linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Zeuthen <david@fubar.dk>
To: linux-hotplug@vger.kernel.org
Subject: Re: D-BUS patch for udev-008
Date: Mon, 08 Dec 2003 20:11:10 +0000	[thread overview]
Message-ID: <marc-linux-hotplug-107091462617458@msgid-missing> (raw)
In-Reply-To: <marc-linux-hotplug-107083813306826@msgid-missing>

On Mon, 2003-12-08 at 20:40, Greg KH wrote:
> On Mon, Dec 08, 2003 at 12:01:01AM +0100, David Zeuthen wrote:
> > Hi,
> > 
> > Attached is a patch against udev-008 to send out a D-BUS message when a
> > device node is added or removed.
> 
> Very nice.  I've applied your patch, and then made the following
> changes:
> 	- fixed the formatting to use tabs instead of spaces
> 	- removed all of the #ifdef USE_DBUS statments out of the code
> 	  (I've been writing kernel code too long, #ifdef within .c
> 	  files looks ugly to me...) and created a new file udev_dbus.c
> 	  to hold these functions.
> 	- changed the Makefile variable to DBUS instead of USE_DBUS
> 	- turned the default option to not build the DBUS support as I
> 	  can't get it to link properly on a number of different OSs.
> 

Many thanks for this.

> 
> How did you test this?  I get lots of errors at link time using a Fedora
> 1 machine.  And I can't even build DBUS on an old Red Hat 7.3 box due to
> automake issues :(
> 

I'm using Fedora 1 with D-BUS from CVS installed in /usr/local. I do get
a few message from the linker because of static linking, see below, but
it does link. What's the reason for linking statically?

Btw, Fedora 1 ships with D-BUS 0.13 which is way different from D-BUS in
CVS, so you might need to set PKG_CONFIG_PATH to point to the correct
dbus-1.pc and install udev_sysbus_policy.conf into the proper location.

Oh, and even though you have done this, you might still link with the
old D-BUS because I made a mistake in the Makefile. You need to change

  LIB_OBJS += $(shell pkg-config --libs-only-l dbus-1)

to something like

  LDFLAGS += $(shell pkg-config --libs dbus-1)

yes? (I was tweaking the Makefile quite a lot myself; sorry about that)

I've also found a problem with my patch: There's an issue where when two
instances of udev is running at the same time (processing /block/sda and
/block/sda/sda1 when plugging in usb-storage). 

One of the copies become a secondary owner of the org.kernel.udev
service and this means that the emitted D-BUS signal doesn't appear to
come from the owner of that service as I thought it would. I'm not sure
if this is the intended behavior of D-BUS, it might be.. 

The only reason it works in python is that, uhm, the python bindings are
a bit broken. It only works in C if you ignore filtering on service
owner.

Cheers,
David


[david@laptop udev-008]$ touch udev.c
[david@laptop udev-008]$ make
gcc -pipe -Wall -Wshadow -Wstrict-prototypes -Wmissing-prototypes
-Wmissing-declarations -Os -fomit-frame-pointer -D_GNU_SOURCE
-I/usr/lib/gcc-lib/i386-redhat-linux/3.3.2/include -DUSE_DBUS
-I/usr/local/include/dbus-1.0 -I/usr/local/lib/dbus-1.0/include     -c
-o udev.o udev.c
udev.c:75: warning: function declaration isn't a prototype
udev.c:85: warning: function declaration isn't a prototype
gcc --static  -o udev  udev.o udev_config.o udev-add.o udev-remove.o
udevdb.o logging.o namedev.o namedev_parse.o libsysfs/sysfs_bus.o
libsysfs/sysfs_class.o libsysfs/sysfs_device.o libsysfs/sysfs_dir.o
libsysfs/sysfs_driver.o libsysfs/sysfs_utils.o libsysfs/dlist.o
tdb/tdb.o tdb/spinlock.o -lc -ldbus-1
udev-add.o(.text+0x30d): In function `create_node':
: warning: Using 'getgrnam' in statically linked applications requires
at runtime the shared libraries from the glibc version used for linking
udev-add.o(.text+0x2cb): In function `create_node':
: warning: Using 'getpwnam' in statically linked applications requires
at runtime the shared libraries from the glibc version used for linking
/usr/local/lib/libdbus-1.a(dbus-sysdeps.o)(.text+0x14e0): In function
`fill_user_info':
/home/david/xdg-hacking/dbus/dbus/dbus-sysdeps.c:1504: warning: Using
'getgrouplist' in statically linked applications requires at runtime the
shared libraries from the glibc version used for linking
/usr/local/lib/libdbus-1.a(dbus-sysdeps.o)(.text+0x1482):/home/david/xdg-hacking/dbus/dbus/dbus-sysdeps.c:1467: warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/local/lib/libdbus-1.a(dbus-sysdeps.o)(.text+0x6e3): In function
`_dbus_connect_tcp_socket':
/home/david/xdg-hacking/dbus/dbus/dbus-sysdeps.c:617: warning: Using
'gethostbyname' in statically linked applications requires at runtime
the shared libraries from the glibc version used for linking
strip -s --remove-section=.note --remove-section=.comment udev





-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id\x1278&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

  parent reply	other threads:[~2003-12-08 20:11 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-07 23:01 D-BUS patch for udev-008 David Zeuthen
2003-12-08  0:34 ` Rob Love
2003-12-08 19:40 ` Greg KH
2003-12-08 20:11 ` David Zeuthen [this message]
2003-12-10  1:02 ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-linux-hotplug-107091462617458@msgid-missing \
    --to=david@fubar.dk \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).