Commit Graph

263 Commits

Author SHA1 Message Date
david@fubar.dk
5aebfbcb62 [PATCH] D-BUS patch for udev-008
Attached is a patch against udev-008 to send out a D-BUS message when a
device node is added or removed.

Using D-BUS lingo, udev acquires the org.kernel.udev service and sends
out a NodeCreated or NodeDeleted signal on the
org.kernel.udev.NodeMonitor interface. Each signal carries two
parameters: the node in question and the corresponding sysfs path.

[Note: the D-BUS concepts of service, interface, object can be a bit
confusing at first glance]

An example program listening for these messages looks like this

#!/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()

and this is the output when hot-plugging some usb-storage.

[david@laptop udev-008]$ ~/node_monitor.py
Node /udev/sda created for /block/sda
Node /udev/sda1 created for /block/sda/sda1
Node /udev/sda1 deleted for /block/sda/sda1
Node /udev/sda deleted for /block/sda

The patch requires D-BUS 0.20 or later while the python example program
requires D-BUS from CVS as I only recently applied a patch against the
python bindings.
2005-04-26 21:13:06 -07:00
kay.sievers@vrfy.org
3d150dfb28 [PATCH] experimental (very simple) SYMLINK creation
> > here is a experimental symlink creation patch - for discussion,
> > in which direction we should go.
> > It is possible now to define SYMLINK= after the NAME= in udev.rules.
> > The link is relative to the node, but the path is not optimized now
> > if the node and the link are in the same nested directory.
> > Only one link is supported, cause i need to sleep now :)
> >
> > 06-simple-symlink-creation.diff
> >   simple symlink creation
> >   reorganized udev-remove to have access to the symlink field
> >   subdir creation/removal are functions now
> >   udev-test.pl tests for link creation/removal

Here is a new version with relative link target path optimization
an better tests in udev-test.pl:

LABEL, BUS="scsi", vendor="IBM-ESXS", NAME="1/2/a/b/node", SYMLINK="1/2/c/d/symlink"

  Dec  7 06:48:34 pim udev[13789]: create_node: symlink 'udev-root/1/2/c/d/symlink' to node '1/2/a/b/node' requested
  Dec  7 06:48:34 pim udev[13789]: create_path: created 'udev-root/1/2/c'
  Dec  7 06:48:34 pim udev[13789]: create_path: created 'udev-root/1/2/c/d'
  Dec  7 06:48:34 pim udev[13789]: create_node: symlink(../../a/b/node, udev-root/1/2/c/d/symlink)
2005-04-26 21:13:06 -07:00
patmans@us.ibm.com
eadb1bbc2e [PATCH] better allow builds of extras programs under udev
Here is an improved version of the patch that enables builds of the extras
progams for the targets all, clean, install, and uninstall, and passes
down the "prefix" for use by install and uninstall.

This patch enables building of the "extras" programs using the same build
environment as udev (i.e. build with udev's versions of klibc and
sysfsutils).

For example, build scsi_id and udev via:

	make EXTRAS=extras/scsi_id

Build scsi_id and udev with klibc via:

	make KLIBC=true EXTRAS=extras/scsi_id
2005-04-26 21:13:06 -07:00
patmans@us.ibm.com
1bed1db499 [PATCH] update udev extras/scsi_id to version 0.2
This patch updates scsi_id under udev from version 0.1 to version 0.2.
2005-04-26 21:13:06 -07:00
christophe.varoqui@free.fr
a652254ddb [PATCH] yet more extras/multipath
* implement a reschedule flag in /var/run. Last thing the prog do before
exit is check if a call to multipath was done (but canceled by
/var/run/multipath.run check) during its execution. If so restart the
main loop.
* implement a blacklist of sysfs bdev to not bother with for now (hd,
md, dm, sr, scd, ram, raw). This avoid sending SG_IO to unappropiate
devices.

Compiles & survive "while true;do (./multipath -v &);done"
2005-04-26 21:13:06 -07:00
christophe.varoqui@free.fr
d877515791 [PATCH] more extras/multipath updates
* Adds a /var/run/multipath.run handling to avoid simultaneous runs.
* Remove a commented-out "printf"
2005-04-26 21:13:06 -07:00
christophe.varoqui@free.fr
2bf80b67d1 [PATCH] extras/multipath update
here is the next update which brings this multipath to the state i'm not
ashamed of it being in udev :)

* drop a libdevmapper copy in extras/multipath; maybe discussions w/
Sistina folks will bring a better solution in the future.
* drop a putchar usage in libdevmapper to compile cleanly with klibc
* drop another such usage of my own in main.c
* massage the Makefile to compile libdevmapper against klibc
* use "ld" to produce the binary rather than "gcc -static"
* stop being stupid w/ uneeded major, minor & dev in main.c:dm_mk_node()
* reverse to creating striped target for now because the multipath
target is more hairy than expected initialy
* push the version code to 009 to be in synch w/ udev

builds & run here.
binary size is 43ko, which is fairly gratifying after all the efforts
I've put to compiling it with klibc :)
2005-04-26 21:13:06 -07:00
kay.sievers@vrfy.org
83fa40fc2a [PATCH] man page beauty
I've never seen any project where the documentation is in sync with the
code at this early stage. Nice! So here is the patch to make it extra perfect :)

  remove random indent to be consistent
  style is "shell style"
  s/wildcard/pattern/
  mention negation char in character class
2005-04-26 21:13:06 -07:00
kay.sievers@vrfy.org
83be97ba21 [PATCH] pattern match for label method
switch LABEL search to pattern match
  add a test for pattern match in LABEL
  remove useless rule from udev.rules
2005-04-26 21:13:06 -07:00
kay.sievers@vrfy.org
28d6536a0f [PATCH] a bug in linefeed removal
While I was adding pattern match to the LABEL method i hit a bug.
We modify a string returned from libsysfs, so with every iteration is is
truncated by one char:

Dec  4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec  4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec  4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-ESXS '
Dec  4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-ESX' with '?IBM-ESXS'
Dec  4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec  4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec  4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-ESX'
Dec  4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-ES' with 'IBM-ESXS?'
Dec  4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec  4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec  4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-ES'
Dec  4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-E' with 'IBM-ES??'
Dec  4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec  4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec  4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-E'
Dec  4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-' with 'IBM-ESXSS'

I changed the behavior to remove only the line feed.

03-bug-in-linefeed-removal.diff
  remove only the line feed from string not every last char
2005-04-26 21:13:06 -07:00
greg@kroah.com
da146a3e36 [PATCH] 008_bk mark 2005-04-26 21:13:06 -07:00
greg@kroah.com
c9feb4d9f2 [PATCH] v008 release 2005-04-26 21:13:06 -07:00
greg@kroah.com
6ad5f7b40d [PATCH] update ChangeLog for v008 2005-04-26 21:13:06 -07:00
greg@kroah.com
a27170c49a [PATCH] fix up some duplicated function compiler warnings in libsysfs 2005-04-26 21:13:05 -07:00
greg@kroah.com
9c9fb5f6eb [PATCH] fix some compiler warnings in the tdb code. 2005-04-26 21:13:05 -07:00
greg@kroah.com
fc1f0d4326 [PATCH] Added Kay's name to the man page. 2005-04-26 21:13:05 -07:00
greg@kroah.com
07d7cfd1fa [PATCH] update the wildcard documentation in the man page to show the new styles supported. 2005-04-26 21:13:05 -07:00
greg@kroah.com
61219c756a [PATCH] fix permission handling logic
Now we can handle wildcards properly within the permission file.
2005-04-26 21:13:05 -07:00
greg@kroah.com
206d3623c6 [PATCH] enable default_mode ability to actually build 2005-04-26 21:13:05 -07:00
greg@kroah.com
8957102244 [PATCH] add support for the default_mode variable, as it is documented... 2005-04-26 21:13:05 -07:00
greg@kroah.com
356816abf6 [PATCH] show permissions and groups in the label_test 2005-04-26 21:13:05 -07:00
greg@kroah.com
5ec0b54216 [PATCH] remove some items off of the TODO list, as they are now done. 2005-04-26 21:13:05 -07:00
greg@kroah.com
72ffa78deb [PATCH] fix up the tests to work without all of the environ variables. 2005-04-26 21:13:05 -07:00
greg@kroah.com
3836a3c49a [PATCH] get rid of the majority of the debug environment variables.
Now there are only 3 valid environment test variables.  The rest can be
specified with the config file.
2005-04-26 21:13:05 -07:00
kay.sievers@vrfy.org
9f1da36138 [PATCH] pattern matching for namedev
As promised yesterday, here is a patch to implement a more advanced
pattern matching instead of the simple '*'.

We can remove the "tty"="tty" line from udev.rules now and
replace "tty*" by "tty[0-9]*" to catch only the vc's.


  implement pattern matching in namedev
  '*'  - to match zero or more chars
  '?'  - to match exactly one char
  '[]' - character classes with ranges '[0-9]'and negation [!A]
2005-04-26 21:13:05 -07:00
greg@kroah.com
4865de4429 [PATCH] Update the man page to show the new config file, it's format, and how to use it.
wow, update the docs to keep in line with reality, what a concept...
2005-04-26 21:13:05 -07:00
greg@kroah.com
fd9594b61f [PATCH] fix up the tests to support the rules file name change 2005-04-26 21:13:05 -07:00
greg@kroah.com
e8bacccab2 [PATCH] add support for a main udev config file, udev.conf.
the older udev.config file is now called udev.rules.
This allows us to better control configuration values, and move away from 
the environment variables.
2005-04-26 21:13:05 -07:00
greg@kroah.com
29b82deb7e [PATCH] turn debugging messages off by default.
it's a bit noisy for the masses...
2005-04-26 21:13:05 -07:00
greg@kroah.com
19feb35100 [PATCH] split out the namedev config parsing logic to namedev_parse.c 2005-04-26 21:13:05 -07:00
greg@kroah.com
5c6f0fb0dc [PATCH] rename namedev's get_attr() to be main namedev_name_device() as that's what it really is. 2005-04-26 21:13:05 -07:00
greg@kroah.com
8448980019 [PATCH] add devfs like tty rules as an example in the default config file. 2005-04-26 21:13:05 -07:00
kay.sievers@vrfy.org
0db6d4cc61 [PATCH] catch replace device by wildcard
catch device name by wildcard to support a whole class of devices
  by just one config line like:
  REPLACE, KERNEL="tty*", NAME="vc/%n"
2005-04-26 21:13:05 -07:00
greg@kroah.com
8cf7ebe8cd [PATCH] operate on the rules in the order they are in the config file (within the rule type) 2005-04-26 21:13:04 -07:00
mort@wildopensource.com
7f2ea6a382 [PATCH] Add -nodefaultlibs while compiling against klibc
This patch adds -nodefaultlibs to LDFLAGS when compiling udev against
klibc.  This fixes the warning that I was getting when using $(LD)=gcc
in the versions after Makefile.klibc disappeared.  The problem was that
it was still including a "-lc" in the call to the linker.
2005-04-26 21:13:04 -07:00
dsteklof@us.ibm.com
edcd336477 [PATCH] another patch for path problem
The quick patch I sent you yesterday fixes it in one location, but
there are other points in the library that calls sysfs_get_mnt_path. We
need to address all the areas in the library where paths are used. The
following patch is a band-aid until we can get a proper path management
in the library.
2005-04-26 21:13:04 -07:00
greg@kroah.com
bc1530c65c [PATCH] Cset exclude: dsteklof@us.ibm.com|ChangeSet|20031126173159|56255 2005-04-26 21:13:04 -07:00
olh@suse.de
bfd8a5d0f7 [PATCH] ARCH detection for ppc
I'm not sure why ppc is converted to powerpc, it breaks at least $(ARCH)
in klibc.

gcc -dumpmachine
powerpc-suse-linux
2005-04-26 21:13:04 -07:00
arnd@arndb.de
c076a2bde4 [PATCH] Build failure - missing linux/limits.h include?
On Tuesday 25 November 2003 00:12, Chris Larson wrote:
> udev fails to compile here unless I'm doing a KLIBC build.  The reason
> appears to be that the normal limits.h in the gcc inc dir doesn't pull
> in linux/limits.h, whereas the limits.h out in the klibc include dirs
> does.  I'd think it'd be best to add a #include <linux/limits.h> to
> udev.h directly, since it uses PATH_MAX.

No, don't include kernel headers directly if you can avoid it.
The problem you are referring to seems to be with old tool chains,
I have the same symptom with my s390 gcc-2.95/glibc-2.1.3.
Including <sys/param.h> instead of <limits.h> seems to fix it.
2005-04-26 21:13:04 -07:00
christophe.varoqui@free.fr
359618cd6e [PATCH] udev-007/extras/multipath update
here is a clean-up patch :

* removes sg_err.[ch] deps
* makes sure the core code play nice with klibc
* port the sysfs calls to dlist helpers
* links against udev's sysfs (need libsysfs.a & dlist.a)
* finally define DM_TARGET as "multipath" as Joe posted the code today
  (not tested yet)
* push version forward (do you want it in sync with udev version?)

libdevmapper doesn't play well with klibc, so I wasn't able to produce a
static binary yet. Help needed here ... as I don't want to fall back to
merge libdevmapper code in the core.

It compiles here and doesn't segfault.
2005-04-26 21:13:04 -07:00
patmans@us.ibm.com
871ea775c7 [PATCH] fix udev parallel builds with klibc
I can't build udev with make -j9. Here's a patch to fix it.
2005-04-26 21:13:04 -07:00
greg@kroah.com
772558f4e9 [PATCH] add test for checking the BUS value. 2005-04-26 21:13:04 -07:00
greg@kroah.com
137af0cc47 [PATCH] fix problem where we were not looking at the BUS value. 2005-04-26 21:13:04 -07:00
dsteklof@us.ibm.com
b376d32cb4 [PATCH] quick fix for libsysfs bus
There seems to be a
mismatch in udev and in libsysfs as to what to expect if the mnt point
has a slash on the end or not. If I use the included patch, it breaks
something in udev. If I patch sysfs_get_mnt_path I break udev as well
because what you're expecting. I need to sit down and go through
the library and creaate a rule as to trailing slashes. Adding the env
brought this to light.
2005-04-26 21:13:04 -07:00
dsteklof@us.ibm.com
ff44a6b0b7 [PATCH] libsysfs changes for sysfsutils 0.3.0
Here's the patch to up the library to the sysfsutils-0_3_0 level. The
following changes:

1) adds class name to sysfs_class_device structure
2) adds bus to sysfs_device
3) gets rid of code that made assumptions as to bus addresses being
unique across buses, which isn't the case.


I still owe you:

1) change getpagesize->sysconf. This is in the CVS tree and part of other
changes we're currently testing. Patch will follow.
2) you need a function to get a sysfs_class_device's parent. We hadn't
considered class devices to have parents, the one example of a multilevel
is the block class. We will add this function and send the patch to you.
2005-04-26 21:13:04 -07:00
greg@kroah.com
36043f8418 [PATCH] add test and documentation for new %D devfs format modifier 2005-04-26 21:13:04 -07:00
arnd@arndb.de
5c6f0f141d [PATCH] Add format modifier for devfs like naming
On Monday 24 November 2003 01:29, Greg KH wrote:
> I think with the ability to capture the output of the CALLOUT rule,
> combined with the ability to put format modifiers in the CALLOUT program
> string, we now have everything in place to emulate the existing devfs
> naming scheme.  Anyone want to verify this or not?

I would prefer to have the ability of creating partition nodes in devfs
style built-in to udev. Devfs used to call the whole disk e.g.
"/dev/dasd/0123/disk" and the partitions "/dev/dasd/0123/part[1-3]".
This can obviously be done with a CALLOUT rule, but its common enough
to make it a format modifier. AFAIK, this scheme has been used for
ide, scsi and dasd disks, which is about 99% of all disks ever connected
to Linux.
2005-04-26 21:13:04 -07:00
azarah@nosferatu.za.org
befd83cc4e [PATCH] more config file parsing robustness
udev kept on segfaulting when it was in use, and not having the time
(and building it with DEBUG=true showing nothing), I have not tracked it
until tonight.  Seems like I made a type-o, and forgotten the ':'
between one line's group and permission parameters.  Attached patch
should stop the segfault, and warn at that at least.
2005-04-26 21:13:04 -07:00
greg@kroah.com
49d72e4348 [PATCH] changed the default location of the database to /udev/.udev.tdb to be LSB compliant
Finally the Debian people can get off my back...
2005-04-26 21:13:04 -07:00
kay.sievers@vrfy.org
5b8ba50aa2 [PATCH] udev.8 tweak numeric id text
04-udev.8-tweak-numeric-id-text.diff
  o change "return value" to "returned string"
  o add textual owner/group example for udev.permissions
  o mention klibc compile as special case for udev.permissions
  o remove duplicated numeric owner clause
2005-04-26 21:13:04 -07:00