udev_dbus changes
PATCH 1/1 udev_dbus changes
Here we change extras/dbus/* to
o install the binary in /etc/dev.d
o append .dev to the binary
o add David's copyright
o add the listener script to watch the sent dbus messages
o removed the undefined udev_log variable
o switch printf() to dbg()
thanks,
Kay
extras/dbus/Makefile +3 -1
@@ -23,7 +23,7 @@ sbindir = ${exec_prefix}/sbin usrbindir = ${exec_prefix}/usr/bin mandir = ${prefix}/usr/share/man -hotplugdir = ${etcdir}/hotplug.d/default +devddir = ${etcdir}/dev.d/default dbusdir = ${etcdir}/dbus-1/system.d configdir = ${etcdir}/udev/ initdir = ${etcdir}/init.d/
@@ -53,9 +53,11 @@ install-dbus-policy: $(INSTALL) -d $(DESTDIR)$(dbusdir) $(INSTALL_DATA) etc/dbus-1/system.d/udev_sysbus_policy.conf $(DESTDIR)$(dbusdir) + $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(devddir)/$(PROG).dev uninstall-dbus-policy: - rm $(DESTDIR)$(dbusdir)/udev_sysbus_policy.conf + - rm $(DESTDIR)$(devddir)/$(PROG).dev install: install-dbus-policy all
extras/dbus/dbus-listener.py new file +25 -0
@@ -0,0 +1,25 @@ +#!/usr/bin/python + +import dbus +import gtk + +def udev_signal_received(dbus_iface, member, service, object_path, +message): + [filename, sysfs_path] = message.get_args_list() + if member=='NodeCreated': + print 'Node %s created for %s'%(filename, sysfs_path) + elif member=='NodeDeleted': + print 'Node %s deleted for %s'%(filename, sysfs_path) + +def main(): + bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM) + bus.add_signal_receiver(udev_signal_received, + 'org.kernel.udev.NodeMonitor', # interface + 'org.kernel.udev', # service + '/org/kernel/udev/NodeMonitor') # object + + gtk.mainloop() + +if __name__ == '__main__': + main() +
extras/dbus/udev_dbus.c +28 -11
@@ -1,3 +1,23 @@ +/* +* udev_dbus.c +* +* Copyright (C) 2003 David Zeuthen <[email protected]> +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation version 2 of the License. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 675 Mass Ave, Cambridge, MA 02139, USA. +* +*/ +#include <stdlib.h> #include <string.h> #include <stdio.h>
@@ -18,21 +38,18 @@ {va_list args; -if (!udev_log) -return ; -va_start (args, format);vsyslog (level, format, args);va_end (args); }#endif -/** variable for the connection the to system message bus or #NULL +/* variable for the connection the to system message bus or NULL * if we cannot connect or acquire the org.kernel.udev service */ static DBusConnection * sysbus_connection; -/** Disconnect from the system message bus */ +/* disconnect from the system message bus */ static void sysbus_disconnect (void ) {if (sysbus_connection ==NULL )
@@ -42,12 +59,12 @@ sysbus_connection =NULL ; } -/** Connect to the system message bus */ +/* connect to the system message bus */ static void sysbus_connect (void ) {DBusError error; -/* Connect to a well-known bus instance, the system bus */ +/* connect to a well-known bus instance, the system bus */ dbus_error_init (&error); sysbus_connection =dbus_bus_get (DBUS_BUS_SYSTEM , &error);if (sysbus_connection ==NULL ) {
@@ -70,15 +87,15 @@dbus_bus_acquire_service (sysbus_connection,"org.kernel.udev" ,0 , &error);if (dbus_error_is_set (&error)) { -printf ("cannot acquire org.kernel.udev service, error %s: %s'" , - error.name, error.message); +dbg ("cannot acquire org.kernel.udev service, error %s: %s'" , + error.name, error.message);sysbus_disconnect ();return ; } } -/** Send out a signal that a device node is created +/* send out a signal that a device node is created * * @param devname name of the device node, e.g. /dev/sda1 * @param path Sysfs path of device
@@ -105,7 +122,7 @@dbus_connection_flush (sysbus_connection); } -/** Send out a signal that a device node is deleted +/* send out a signal that a device node is deleted * * @param devname Name of the device node, e.g. /udev/sda1 * @param path Sysfs path of device
Kay,
Greate! I also need the listener script to watch the sent dbus messages.
Nick
Quoted 157 lines
From: Kay Sievers <[email protected]>
To: Greg KH <[email protected]>
CC: hotplug <[email protected]>
Subject: [PATCH]udev_dbuschanges
Date: Sun, 11 Apr 2004 03:51:07 +0200Here we change extras/dbus/* to
o install the binary in/etc/dev.d
o append .dev to the binary
o add David's copyright
o add the listener script to watch the sent dbus messages
o removed the undefinedudev_logvariable
o switchprintf()todbg()thanks,
Kaydiff -Nru a/extras/dbus/Makefile b/extras/dbus/Makefile
extras/dbus/Makefile +3
-1@@ -23,7 +23,7 @@ sbindir = ${exec_prefix}/sbin usrbindir = ${exec_prefix}/usr/bin mandir = ${prefix}/usr/share/man -hotplugdir = ${etcdir}/hotplug.d/default +devddir = ${etcdir}/dev.d/default dbusdir = ${etcdir}/dbus-1/system.d configdir = ${etcdir}/udev/ initdir = ${etcdir}/init.d/@@ -53,9 +53,11 @@ install-dbus-policy: $(INSTALL) -d $(DESTDIR)$(dbusdir) $(INSTALL_DATA) etc/dbus-1/system.d/udev_sysbus_policy.conf $(DESTDIR)$(dbusdir) + $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(devddir)/$(PROG).dev uninstall-dbus-policy: - rm $(DESTDIR)$(dbusdir)/udev_sysbus_policy.conf + - rm $(DESTDIR)$(devddir)/$(PROG).dev install: install-dbus-policy alldiff -Nru
a/extras/dbus/dbus-listener.pyb/extras/dbus/dbus-listener.pyextras/dbus/dbus-listener.py new file +25
-0@@ -0,0 +1,25 @@ +#!/usr/bin/python + +import dbus +import gtk + +def udev_signal_received(dbus_iface, member, service, object_path, +message): + [filename, sysfs_path] = message.get_args_list() + if member='NodeCreated': + print 'Node %s created for %s'%(filename, sysfs_path) + elif member='NodeDeleted': + print 'Node %s deleted for %s'%(filename, sysfs_path) + +def main(): + bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM) + bus.add_signal_receiver(udev_signal_received, + 'org.kernel.udev.NodeMonitor', # interface + 'org.kernel.udev', # service + '/org/kernel/udev/NodeMonitor') # object + + gtk.mainloop() + +if __name__ = '__main__': + main() +diff -Nru
a/extras/dbus/udev_dbus.cb/extras/dbus/udev_dbus.cextras/dbus/udev_dbus.c +27
-10@@ -1,3 +1,23 @@ +/* +* udev_dbus.c +* +* Copyright (C) 2003 David Zeuthen <[email protected]> +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation version 2 of the License. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 675 Mass Ave, Cambridge, MA 02139, USA. +* +*/ +#include <stdlib.h> #include <string.h> #include <stdio.h> @@ -18,21 +38,18 @@ {va_list args; -if (!udev_log) -return ; -va_start (args, format);vsyslog (level, format, args);va_end (args); }#endif -/** variable for the connection the to system message bus or #NULL +/* variable for the connection the to system message bus or NULL * if we cannot connect or acquire the org.kernel.udev service */ static DBusConnection * sysbus_connection; -/** Disconnect from the system message bus */ +/* disconnect from the system message bus */ static void sysbus_disconnect (void ) {if (sysbus_connection =NULL )@@ -42,12 +59,12 @@ sysbus_connection =NULL ; } -/** Connect to the system message bus */ +/* connect to the system message bus */ static void sysbus_connect (void ) {DBusError error; -/* Connect to a well-known bus instance, the system bus */ +/* connect to a well-known bus instance, the system bus */ dbus_error_init (&error); sysbus_connection =dbus_bus_get (DBUS_BUS_SYSTEM , &error);if (sysbus_connection =NULL ) {@@ -70,15 +87,15 @@dbus_bus_acquire_service (sysbus_connection,"org.kernel.udev" ,0 , &error);if (dbus_error_is_set (&error)) { -printf ("cannot acquire org.kernel.udev service, error %s: %s'" , - error.name, error.message); +dbg ("cannot acquire org.kernel.udev service, error %s: %s'" , + error.name, error.message);sysbus_disconnect ();return ; } } -/** Send out a signal that a device node is created +/* send out a signal that a device node is created * * @param devname name of the device node, e.g. /dev/sda1 * @param path Sysfs path of device
extras/dbus/udev_dbus.c line 128
Quoted 8 lines
extras/dbus/udev_dbus.c +1
-1@@ -105,7 +122,7 @@dbus_connection_flush (sysbus_connection); } -/** Send out a signal that a device node is deleted +/* send out a signal that a device node is deleted * * @param devname Name of the device node, e.g. /udev/sda1 * @param path Sysfs path of device
_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid963
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
Quoted 1 line · Kay Sievers
o install the binary in
/etc/dev.d
Bad idea. They should be installed in /sbin/ and referenced by a symlink.
Signature · 13 lines
ciao, | Marco | [5660 in2WmO7h.GEY.] ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net [email protected] https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
Quoted 4 lines · Marco d'Itri
Quoted 1 line · Kay Sievers
o install the binary in
/etc/dev.dBad idea. They should be installed in
/sbin/and referenced by a symlink.
Ok, sounds better. But should it go in /sbin/ or /usr/sbin/. Hal installs the caller in /usr/libexec/, so what's the best :)
Kay
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
Quoted 4 lines · Kay Sievers
Quoted 2 lines
Quoted 1 line
o install the binary in
/etc/dev.dBad idea. They should be installed in
/sbin/and referenced by a symlink.Ok, sounds better. But should it go in
/sbin/or/usr/sbin/. Hal installs the caller in/usr/libexec/, so what's the best :)
/usr/libexec has been removed from FHS many years ago.
For debian, I use /usr/sbin/ for the programs which depends on libraries in /usr/lib/ (currently only udev_dbus) and /sbin/ for the others.
Signature · 13 lines
ciao, | Marco | [5662 tuoQffg2g26RM] ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net [email protected] https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
Quoted 7 lines · Kay Sievers
Here we change extras/dbus/* to
o install the binary in/etc/dev.d
o append .dev to the binary
o add David's copyright
o add the listener script to watch the sent dbus messages
o removed the undefinedudev_logvariable
o switchprintf()todbg()
Here we install the binary in /usr/sbin/ and symlink it to /etc/dev.d/ with the .dev suffix.
thanks,
Kay
extras/dbus/Makefile +6 -1
@@ -22,8 +22,9 @@ etcdir = ${prefix}/etc sbindir = ${exec_prefix}/sbin usrbindir = ${exec_prefix}/usr/bin +usrsbindir = ${exec_prefix}/usr/sbin mandir = ${prefix}/usr/share/man -hotplugdir = ${etcdir}/hotplug.d/default +devddir = ${etcdir}/dev.d/default dbusdir = ${etcdir}/dbus-1/system.d configdir = ${etcdir}/udev/ initdir = ${etcdir}/init.d/
@@ -53,9 +54,13 @@ install-dbus-policy: $(INSTALL) -d $(DESTDIR)$(dbusdir) $(INSTALL_DATA) etc/dbus-1/system.d/udev_sysbus_policy.conf $(DESTDIR)$(dbusdir) + $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(usrsbindir)/$(PROG) + - ln -s -f $(DESTDIR)$(usrsbindir)/$(PROG) $(DESTDIR)$(devddir)/$(PROG).dev uninstall-dbus-policy: - rm $(DESTDIR)$(dbusdir)/udev_sysbus_policy.conf + - rm $(DESTDIR)$(devddir)/$(PROG).dev + - rm $(DESTDIR)$(usrsbindir)/$(PROG) install: install-dbus-policy all
extras/dbus/dbus-listen-test.py new file +26 -0
@@ -0,0 +1,26 @@ +#!/usr/bin/python + +# receives and prints the messages udev_dbus sent +# to the org.kernel.udev.NodeMonitor interface + +import dbus +import gtk + +def udev_signal_received(dbus_iface, member, service, object_path, message): + [filename, sysfs_path] = message.get_args_list() + if member=='NodeCreated': + print 'Node %s created for %s'%(filename, sysfs_path) + elif member=='NodeDeleted': + print 'Node %s deleted for %s'%(filename, sysfs_path) + +def main(): + bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM) + bus.add_signal_receiver(udev_signal_received, + 'org.kernel.udev.NodeMonitor', # interface + 'org.kernel.udev', # service + '/org/kernel/udev/NodeMonitor') # object + gtk.mainloop() + +if __name__ == '__main__': + main() +
extras/dbus/udev_dbus.c +31 -14
90 lines not on this page · raw message
Quoted 9 lines · Marco d'Itri
Quoted 4 lines · Kay Sievers
Quoted 2 lines
Quoted 1 line
o install the binary in
/etc/dev.dBad idea. They should be installed in
/sbin/and referenced by a symlink.Ok, sounds better. But should it go in
/sbin/or/usr/sbin/. Hal installs the caller in/usr/libexec/, so what's the best :)
/usr/libexechas been removed from FHS many years ago.
For debian, I use/usr/sbin/for the programs which depends on libraries in/usr/lib/(currently onlyudev_dbus) and/sbin/for the others.
Thanks for pointing this out.
Hmm, so FHS doesn't specify a directory for binaries, which are not included in the $PATH by default, right?
Kay
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
Quoted 2 lines · Kay Sievers
Hmm, so FHS doesn't specify a directory for binaries, which are not included in the $PATH by default, right?
Right.
Signature · 13 lines
ciao, | Marco | [5663 moSIJXlZrg/zI] ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net [email protected] https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
Greg KH
AppliedQuoted 11 lines · Kay Sievers
Quoted 7 lines · Kay Sievers
Here we change extras/dbus/* to
o install the binary in/etc/dev.d
o append .dev to the binary
o add David's copyright
o add the listener script to watch the sent dbus messages
o removed the undefinedudev_logvariable
o switchprintf()todbg()Here we install the binary in
/usr/sbin/and symlink it to/etc/dev.d/with the .dev suffix.
Applied, thanks.
greg k-h
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel