!greg 1058558666 bk-3.0.2-rc5: check -acv -f - = 0
!greg 1058558680 bk-3.0.2-rc5: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1058564625 bk-3.0.2-rc5: check -c - = 0
!greg 1058564625 bk-3.0.2-rc5: commit -dqY/tmp/cmt2565 -f/tmp/cfiles2565 = 0
!greg 1058564908 bk-3.0.2-rc5: check -c - = 0
!greg 1058564908 bk-3.0.2-rc5: commit -dqY/tmp/cmt2668 -f/tmp/cfiles2668 = 0
!greg 1058564929 bk-3.0.2-rc5: check -c - = 0
!greg 1058564929 bk-3.0.2-rc5: commit -dqY/tmp/cmt2749 -f/tmp/cfiles2749 = 0
!greg 1058564979 bk-3.0.2-rc5: check -c - = 0
!greg 1058564979 bk-3.0.2-rc5: commit -dqY/tmp/cmt2813 -f/tmp/cfiles2813 = 0
!greg 1058564989 bk-3.0.2-rc5: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=9492
!greg 1058566645 bk-3.0.2-rc5: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=9492
!greg 1058573081 bk-3.0.2-rc5: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1060027735 bk-3.0.2-rc5: check -acv -- - = 0
!greg 1060027736 bk-3.0.2-rc5: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=30625
!greg 1060028419 bk-3.0.2-rc5: check -c - = 0
!greg 1060028419 bk-3.0.2-rc5: commit -dqY/tmp/cmt4088 -f/tmp/cfiles4088 = 0
!min.guo/greg 1060028938 bk-3.0.2-rc5: commit -y[PATCH] remove mknod callout = 1
!greg 1060028962 bk-3.0.2-rc5: check -c - = 0
!greg 1060028962 bk-3.0.2-rc5: commit -dqY/tmp/cmt4673 -f/tmp/cfiles4673 = 0
!greg 1060028972 bk-3.0.2-rc5: check -acv -f - = 0
!greg 1060029021 bk-3.0.2-rc5: check -acvf - = 0
!min.guo/greg 1060029219 bk-3.0.2-rc5: commit -y[PATCH] remove mknod callout = 1
!greg 1060029573 bk-3.0.2-rc5: check -c - = 0
!greg 1060029573 bk-3.0.2-rc5: commit -dqY/tmp/cmt4834 -f/tmp/cfiles4834 = 0
!greg 1060029579 bk-3.0.2-rc5: check -acvf - = 0
!greg 1060030790 bk-3.0.2-rc5: check -c - = 0
!greg 1060030790 bk-3.0.2-rc5: commit -dqY/tmp/cmt5461 -f/tmp/cfiles5461 = 0
!greg 1060031615 bk-3.0.2-rc5: check -c - = 0
!greg 1060031615 bk-3.0.2-rc5: commit -dqY/tmp/cmt5704 -f/tmp/cfiles5704 = 0
!lethal/greg 1060042201 bk-3.0.2-rc5: check -c - = 0
!lethal/greg 1060042201 bk-3.0.2-rc5: commit -y[PATCH] udev/libsysfs cross compile fixes

I noticed that libsysfs doesn't inherently grab cross compilation arguments
that are set in the top-level Makefile, so I've come up with the following
patch to fix this. With the patch, I can succesfully cross compile for other
architectures (such as sh) by doing 'make ARCH=sh CROSS=sh-linux-' in the
top-level directory.
 = 0
!lethal/greg 1060042627 bk-3.0.2-rc5: check -c - = 0
!lethal/greg 1060042627 bk-3.0.2-rc5: commit -y[PATCH] udev spec file

Here's a relatively rudimentary patch that addes udev.spec. With this, you can
rpm -ta the tarball and generate rpms. I've also attached the ones I build on
my RH 7.3 host incase they are of interest to you.
 = 0
!greg 1060042726 bk-3.0.2-rc5: check -c - = 0
!greg 1060042726 bk-3.0.2-rc5: commit -dqY/tmp/cmt8522 -f/tmp/cfiles8522 = 0
!greg 1060042735 bk-3.0.2-rc5: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=9650
!greg 1060042744 bk-3.0.2-rc5: push gregkh@kernel.bkbits.net/udev = 1 xfered=0
!greg 1060042755 bk-3.0.2-rc5: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=11835
!greg 1060043219 bk-3.0.2-rc5: check -c - = 0
!greg 1060043219 bk-3.0.2-rc5: commit -dqY/tmp/cmt8762 -f/tmp/cfiles8762 = 0
!greg 1060043230 bk-3.0.2-rc5: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1060043233 bk-3.0.2-rc5: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=145088
!dsteklof/greg 1060124243 bk-3.0.2-rc5: check -c - = 0
!dsteklof/greg 1060124244 bk-3.0.2-rc5: commit -y[PATCH] udevdb prototype

Here's an "idea" of what I had in mind for udevdb. Let me preface the
code with a few remarks:

1) I was expecting to write this udevdb for udev to keep track of
devices. I was planning an external package that depends upon udev
to provide an external API to the udevdb database. The calls for the
interface would be read only access. Not sure how you want to do
packaging, if having a separate package is ok or having it included
in udev.

2) I created it as it is because udev isn't a daemon. So, the open
database call doesn't take any parameters. My plan was to create a
udevdb_init function that took arguments for initializing the db
to start, where you could specify in memory only or a file location.
This can all be filled in.

3) I hacked the Makefile to get it to work. Not sure how you'd want
that in the future.

4) This assumes TDB has been installed elsewhere, you would need to
edit your Makefile and point it to the header and library locations.
How do you want to do TDB in udev? Do you want to just reference it
and make udev dependent on that package being installed. Or should
we do what samba does and include a limited tdb version in udev?

5) Again, I hacked udev into your existing code. In the future, I'd
probably make a function around the filling out the udevice before
calling the store command. Didn't know if you wanted to change
your add device function to use struct udevice rather than having
everything separate.

6) Not sure what we should include in the udevice structure that's stored
by udev. I made a stab at a first shot - we can add and remove of course,
this was a first pass. I've come to realize - with you including libsysfs
in udev, the "external" interface that references udevdb could make
use of getting information from through libsysfs from sysfs and doesn't
need to be in udevdb.

7) I could write a namedevdb for namedev's device management if you
wanted.
 = 0
!greg 1060124610 bk-3.0.2-rc5: check -c - = 0
!greg 1060124610 bk-3.0.2-rc5: commit -dqY/tmp/cmt517 -f/tmp/cfiles517 = 0
!greg 1060124623 bk-3.0.2-rc5: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=20883
!greg 1060124689 bk-3.0.2-rc5: push gregkh@kernel.bkbits.net/udev = 1 xfered=0
!greg 1060124699 bk-3.0.2-rc5: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=20883
!greg 1060126182 bk-3.0.2-rc5: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!lethal/greg 1060633688 bk-3.0.2-rc5: check -c - = 0
!lethal/greg 1060633688 bk-3.0.2-rc5: commit -y[PATCH] Fix TDB cross compilation

The merge of tdb ended up breaking the ability to cross compile again, here's
a bk patch that yanks CC out of the tdb Makefile, and in turn falls back on
the exported CC value from the top-level Makefile which correctly sets it
based off of the CROSS value.
 = 0
!greg 1060633707 bk-3.0.2-rc5: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1343
!greg 1060633739 bk-3.0.2-rc5: push gregkh@kernel.bkbits.net:udev/ = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=1343
!greg 1064433343 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1064433349 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!olh/greg 1064433377 bk-3.0.2: check -c - = 0
!olh/greg 1064433377 bk-3.0.2: commit -y[PATCH] print udev pid

makes debugging easier.
 = 0
!greg 1064433402 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1258
!greg 1064433408 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=1258
!greg 1066165086 bk-3.0.2: check -acv -- - = 0
!greg 1066165086 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=25559
!greg 1066165275 bk-3.0.2: pull gregkh@kernel.bkbits.net:/udev = 1 xfered=0
!greg 1066165335 bk-3.0.2: pull gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=0
!greg 1066170018 bk-3.0.2: check -c - = 0
!greg 1066170018 bk-3.0.2: commit -dqY/tmp/cmt27576 -f/tmp/cfiles27576 = 0
!dsteklof/greg 1066170053 bk-3.0.2: check -c - = 0
!dsteklof/greg 1066170053 bk-3.0.2: commit -y[PATCH] udevdb patch

This patch:

1) removes the three database files for just one udevdb.tdb file.
2) adds udevdb_init() and udevdb_exit() functions
3) initializes database now in main() in udev.c.

Please look it over.
 = 0
!greg 1066170088 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=5199
!greg 1066170283 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=5199
!patmans/greg 1066170737 bk-3.0.2: check -c - = 0
!patmans/greg 1066170737 bk-3.0.2: commit -y[PATCH] add callout config type to udev

This patch adds a callout config type to udev, so external programs can be
called to get serial numbers or id's that are not available as a sysfs
attribute.
 = 0
!greg 1066170772 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=6023
!greg 1066170838 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=6023
!greg 1066171862 bk-3.0.2: check -acv -- - = 0
!greg 1066171862 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=26757
!greg 1066171942 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=63529
!greg 1066254401 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1066258213 bk-3.0.2: check -c - = 0
!greg 1066258213 bk-3.0.2: commit -dqY/tmp/cmt10533 -f/tmp/cfiles10533 = 0
!greg 1066258250 bk-3.0.2: check -c - = 0
!greg 1066258250 bk-3.0.2: commit -dqY/tmp/cmt10653 -f/tmp/cfiles10653 = 0
!greg 1066258271 bk-3.0.2: check -c - = 0
!greg 1066258272 bk-3.0.2: commit -dqY/tmp/cmt10694 -f/tmp/cfiles10694 = 0
!greg 1066258287 bk-3.0.2: check -c - = 0
!greg 1066258287 bk-3.0.2: commit -dqY/tmp/cmt10738 -f/tmp/cfiles10738 = 0
!greg 1066258861 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=10676
!greg 1066258885 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=10676
!greg 1066263870 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1066345785 bk-3.0.2: check -acv -- - = 0
!greg 1066345785 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=33008
!greg 1066346344 bk-3.0.2: check -c - = 0
!greg 1066346344 bk-3.0.2: commit -dqY/tmp/cmt24732 -f/tmp/cfiles24732 = 0
!greg 1066346957 bk-3.0.2: check -c - = 0
!greg 1066346957 bk-3.0.2: commit -dqY/tmp/cmt25008 -f/tmp/cfiles25008 = 0
!greg 1066346975 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=2958
!greg 1066347062 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=2958
!greg 1066347854 bk-3.0.2: check -c - = 0
!greg 1066347854 bk-3.0.2: commit -dqY/tmp/cmt25412 -f/tmp/cfiles25412 = 0
!greg 1066351159 bk-3.0.2: check -c - = 0
!greg 1066351159 bk-3.0.2: commit -dqY/tmp/cmt25784 -f/tmp/cfiles25784 = 0
!greg 1066351169 bk-3.0.2: check -c - = 0
!greg 1066351169 bk-3.0.2: commit -dqY/tmp/cmt25822 -f/tmp/cfiles25822 = 0
!greg 1066351187 bk-3.0.2: check -c - = 0
!greg 1066351187 bk-3.0.2: commit -dqY/tmp/cmt25854 -f/tmp/cfiles25854 = 0
!greg 1066351202 bk-3.0.2: check -c - = 0
!greg 1066351202 bk-3.0.2: commit -dqY/tmp/cmt25887 -f/tmp/cfiles25887 = 0
!greg 1066351226 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=9103
!greg 1066351567 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=9103
!greg 1066351938 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1066351947 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=0
!greg 1066352668 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1066406953 bk-3.0.2: check -acv -- - = 0
!greg 1066406953 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=38888
!greg 1066413895 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1066415167 bk-3.0.2: check -c - = 0
!greg 1066415167 bk-3.0.2: commit -dqY/tmp/cmt10801 -f/tmp/cfiles10801 = 0
!greg 1066415336 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1338
!greg 1066415360 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=1338
!greg 1066429937 bk-3.0.2: check -c - = 0
!greg 1066429937 bk-3.0.2: commit -dqY/tmp/cmt4409 -f/tmp/cfiles4409 = 0
!greg 1066429962 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=6660
!greg 1066430008 bk-3.0.2: check -c - = 0
!greg 1066430008 bk-3.0.2: commit -dqY/tmp/cmt4494 -f/tmp/cfiles4494 = 0
!rml/greg 1066430059 bk-3.0.2: check -c - = 0
!rml/greg 1066430059 bk-3.0.2: commit -y[PATCH] udev spec file bits

Some spec file changes.  Primarily, this makes the thing build without a
build root if so desired (i.e. build right out of /usr/src/redhat and
the standard file system).  It should still build from a build root,
too.

Also:

	- Add some Prereqs
	- Pass RPM_OPT_FLAGS to make so we build with the RPM build
	  policy (i.e., optimizations, architecture, etc.)
	- Specify the exact files in %files to make sure we install
	  everything properly and avoid a warning
 = 0
!greg 1066430366 bk-3.0.2: check -c - = 0
!greg 1066430366 bk-3.0.2: commit -dqY/tmp/cmt5441 -f/tmp/cfiles5441 = 0
!greg 1066431247 bk-3.0.2: check -c - = 0
!greg 1066431247 bk-3.0.2: commit -dqY/tmp/cmt5877 -f/tmp/cfiles5877 = 0
!rml/greg 1066431254 bk-3.0.2: check -c - = 0
!rml/greg 1066431254 bk-3.0.2: commit -y[PATCH] udev: cool test scripts

This patch changes test.tty and test.block to add/remove each tty and
block device, respectively, on the system.  Great way to
populate/unpopulate udev rapidly.

Its just a simple for loop over the sysfs entries.
 = 0
!greg 1066432273 bk-3.0.2: check -c - = 0
!greg 1066432273 bk-3.0.2: commit -dqY/tmp/cmt6841 -f/tmp/cfiles6841 = 0
!greg 1066432324 bk-3.0.2: check -avf = 1
!greg 1066432329 bk-3.0.2: check -avf - = 0
!rml/greg 1066432336 bk-3.0.2: check -c - = 0
!rml/greg 1066432336 bk-3.0.2: commit -y[PATCH] udev spec file symlink support

> Hm, I would also like to add the /etc/hotplug.d/default/udev.hotplug
> symlink, but rpm doesn't seem to like symlinks in the %files section.
> Anyone know how to do this properly?

The problem is that the symlink is left dangling to an absolute location
in the build root, which won't exist on the installer's system.  RPM 4.0
and on catches this.

Attached patch fixes it up and makes it work.
 = 0
!greg 1066432389 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=9185
!greg 1066432598 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=15570
!rml/greg 1066436284 bk-3.0.2: check -c - = 0
!rml/greg 1066436284 bk-3.0.2: commit -y[PATCH] udev: cool test scripts again

> But the test.block script doesn't catch any partitions on the block
> devices :)

Never happy!

        [19:07:52]root@phantasy:~/src/udev/udev# ./test.block
        [19:13:37]root@phantasy:~/src/udev/udev# ls /udev/hd*
        ls: /udev/hd*: No such file or directory
        [19:13:42]root@phantasy:~/src/udev/udev# ./test.block
        [19:13:53]root@phantasy:~/src/udev/udev# ls /udev/hd*
        /udev/hda   /udev/hda2  /udev/hda4  /udev/hda6  /udev/hdd
        /udev/hda1  /udev/hda3  /udev/hda5  /udev/hdc

test.block now recurses /sys/block, looking for partitions.  Should add
all drives and all partitions.
 = 0
!greg 1066436373 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1903
!greg 1066436385 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=1903
!greg 1066437657 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1066668825 bk-3.0.2: check -acv -- - = 0
!greg 1066668825 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=61607
!greg 1066669103 bk-3.0.2: check -c - = 0
!greg 1066669103 bk-3.0.2: commit -dqY/tmp/cmt21018 -f/tmp/cfiles21018 = 0
!greg 1066671024 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1777
!greg 1066678122 bk-3.0.2: check -c - = 0
!greg 1066678122 bk-3.0.2: commit -dqY/tmp/cmt23160 -f/tmp/cfiles23160 = 0
!greg 1066678141 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=4003
!greg 1066678154 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=5505
!greg 1066678284 bk-3.0.2: check -c - = 0
!greg 1066678284 bk-3.0.2: commit -dqY/tmp/cmt23241 -f/tmp/cfiles23241 = 0
!greg 1066680195 bk-3.0.2: check -c - = 0
!greg 1066680195 bk-3.0.2: commit -dqY/tmp/cmt26293 -f/tmp/cfiles26293 = 0
!greg 1066680208 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=2995
!greg 1066680262 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=2995
!greg 1066686346 bk-3.0.2: check -c - = 0
!greg 1066686346 bk-3.0.2: commit -dqY/tmp/cmt30235 -f/tmp/cfiles30235 = 0
!greg 1066686524 bk-3.0.2: check -c - = 0
!greg 1066686524 bk-3.0.2: commit -dqY/tmp/cmt30444 -f/tmp/cfiles30444 = 0
!greg 1066686550 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=8997
!greg 1066686560 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=8997
!greg 1066686666 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=0
!greg 1066687319 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1066689081 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!lkml001/greg 1066689234 bk-3.0.2: check -c - = 0
!lkml001/greg 1066689234 bk-3.0.2: commit -y[PATCH] man file update

changes:
o CALLOUT method included
o required keys for every match method listed
o keywords changed to uppercase in EXAMPLE
 = 0
!greg 1066689246 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=2099
!greg 1066689274 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=2099
!dsteklof/greg 1066695554 bk-3.0.2: check -c - = 0
!dsteklof/greg 1066695554 bk-3.0.2: commit -y[PATCH] new version of libsysfs patch

Here's the patch applying the latest libsysfs.
	- adds the latest libsysfs code to udev
		* new code includes dlist implementation, a generic linked list
			implementation. Needed our own because LGPL
		* rearranged structures
		* provided more functions for accessing directory and attributes
	- gets rid of ->directory->path references in namedev.c
	- replaces sysfs_get_value_from_attributes with sysfs_get_classdev_attr
 = 0
!greg 1066696431 bk-3.0.2: push -n = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1066696533 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=87990
!greg 1066696825 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=87990
!greg 1066752525 bk-3.0.2: check -c - = 0
!greg 1066752525 bk-3.0.2: commit -dqY/tmp/cmt7544 -f/tmp/cfiles7544 = 0
!greg 1066752592 bk-3.0.2: check -c - = 0
!greg 1066752592 bk-3.0.2: commit -dqY/tmp/cmt7610 -f/tmp/cfiles7610 = 0
!greg 1066752640 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=3647
!greg 1066752817 bk-3.0.2: push gregkh@kernel.bkbits.net: = 1 xfered=0
!greg 1066752909 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=3647
!greg 1066763949 bk-3.0.2: check -c - = 0
!greg 1066763949 bk-3.0.2: commit -dqY/tmp/cmt9438 -f/tmp/cfiles9438 = 0
!greg 1066763992 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=8608
!greg 1066764003 bk-3.0.2: check -c - = 0
!greg 1066764003 bk-3.0.2: commit -dqY/tmp/cmt9697 -f/tmp/cfiles9697 = 0
!greg 1066764015 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1544
!greg 1066764024 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=9877
!greg 1066767242 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=0
!greg 1066768853 bk-3.0.2: check -c - = 0
!greg 1066768853 bk-3.0.2: commit -dqY/tmp/cmt10310 -f/tmp/cfiles10310 = 0
!greg 1066768895 bk-3.0.2: check -c - = 0
!greg 1066768895 bk-3.0.2: commit -dqY/tmp/cmt10355 -f/tmp/cfiles10355 = 0
!rml/greg 1066769119 bk-3.0.2: check -c - = 0
!rml/greg 1066769119 bk-3.0.2: commit -y[PATCH] udev: another canidate for static

Another one of those "trivial patches so everything must be good"

sleep_for_dev() isn't exported or defined in a header, so it can be
marked 'static'
 = 0
!kay/greg 1066769160 bk-3.0.2: check -c - = 0
!kay/greg 1066769160 bk-3.0.2: commit -y[PATCH] man page update

here a new patch for the man page:
o namdev.permissions added
o corrected a few typos
o corrected text for config line format.
  owner, group mode are only in namedev.permissions
  (don't know what i was dreaming, while i wrote this :))
 = 0
!greg 1066769270 bk-3.0.2: check -c - = 0
!greg 1066769270 bk-3.0.2: commit -dqY/tmp/cmt10907 -f/tmp/cfiles10907 = 0
!kay/greg 1066769291 bk-3.0.2: check -c - = 0
!kay/greg 1066769291 bk-3.0.2: commit -y[PATCH] namedev.c comments + debug patch

and a patch for namdev.c comments + debug
o correct 'device device'
o correct permission file to config file
 = 0
!greg 1066769334 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=8355
!greg 1066769345 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=8355
!greg 1066769538 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=0
!greg 1066769544 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1066769744 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1066770483 bk-3.0.2: check -c - = 0
!greg 1066770483 bk-3.0.2: commit -dqY/tmp/cmt11663 -f/tmp/cfiles11663 = 0
!greg 1066770497 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=5616
!greg 1066770564 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=5616
!greg 1066771712 bk-3.0.2: check -c - = 0
!greg 1066771712 bk-3.0.2: commit -dqY/tmp/cmt12323 -f/tmp/cfiles12323 = 0
!greg 1066781560 bk-3.0.2: check -c - = 0
!greg 1066781560 bk-3.0.2: commit -dqY/tmp/cmt13302 -f/tmp/cfiles13302 = 0
!greg 1066781699 bk-3.0.2: check -c - = 0
!greg 1066781699 bk-3.0.2: commit -dqY/tmp/cmt13355 -f/tmp/cfiles13355 = 0
!greg 1066781720 bk-3.0.2: check -c - = 0
!greg 1066781720 bk-3.0.2: commit -dqY/tmp/cmt13617 -f/tmp/cfiles13617 = 0
!greg 1066781751 bk-3.0.2: check -acv -- - = 0
!greg 1066781751 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=67495
!greg 1066782383 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=68697
!greg 1066782401 bk-3.0.2: push gregkh@kernel.bkbits.net = 1 xfered=0
!greg 1066782406 bk-3.0.2: push gregkh@kernel.bkbits.net: = 1 xfered=0
!greg 1066782413 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=69525
!greg 1066782822 bk-3.0.2: check -acv -- - = 0
!greg 1066782822 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=67550
!greg 1066783261 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1066783271 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=1222
!greg 1067034964 bk-3.0.2: check -acv -- - = 0
!greg 1067034964 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=142161
!lethal/greg 1067035037 bk-3.0.2: check -c - = 0
!lethal/greg 1067035037 bk-3.0.2: commit -y[PATCH] Fixup path for kernel includes when building with klibc.

Fixup path for kernel includes when building with klibc.

klibc expects the symlink klibc/linux to point to a relatively up
to date tree, use -Iklibc/linux/include to make linux/ and asm/
includes resolve properly, as these won't exist in the regular
klibc/klibc/include location.
 = 0
!greg 1067037651 bk-3.0.2: check -c - = 0
!greg 1067037651 bk-3.0.2: commit -dqY/tmp/cmt16297 -f/tmp/cfiles16297 = 0
!greg 1067037678 bk-3.0.2: check -c - = 0
!greg 1067037678 bk-3.0.2: commit -dqY/tmp/cmt16329 -f/tmp/cfiles16329 = 0
!greg 1067037703 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=5167
!greg 1067037897 bk-3.0.2: push gregkh@kernel.bkbits.net:udev = 0 rmts=20030410104007-07:00|kroah.com|/home/greg/src/udev/udev|greg|dHtr xfered=5167
!rml/greg 1067465664 bk-3.0.2: check -c - = 0
!rml/greg 1067465664 bk-3.0.2: commit -dqY/tmp/cmt29776 -f/tmp/cfiles29776 = 0
!greg 1067465698 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=3444
!greg 1067466383 bk-3.0.2: check -c - = 0
!greg 1067466383 bk-3.0.2: commit -dqY/tmp/cmt31575 -f/tmp/cfiles31575 = 0
!olh/greg 1067466395 bk-3.0.2: check -c - = 0
!olh/greg 1067466395 bk-3.0.2: commit -y[PATCH] DESTDIR for udev = 0
!greg 1067466422 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=3682
!greg 1067475556 bk-3.0.2: check -c - = 0
!greg 1067475556 bk-3.0.2: commit -dqY/tmp/cmt21639 -f/tmp/cfiles21639 = 0
!greg 1067475612 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1053
!greg 1070301508 bk-3.0.2: check -acv -- - = 0
!greg 1070301509 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=250845
!greg 1070322489 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!patmans/greg 1070322609 bk-3.0.2: check -c - = 0
!patmans/greg 1070322609 bk-3.0.2: commit -y[PATCH] fix udev parallel builds with klibc

I can't build udev with make -j9. Here's a patch to fix it.
 = 0
!greg 1070322675 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1296
!christophe.varoqui/greg 1070324192 bk-3.0.2: check -c - = 0
!christophe.varoqui/greg 1070324192 bk-3.0.2: commit -y[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.
 = 0
!greg 1070324223 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=5473
!greg 1070324284 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=6494
!arnd/greg 1070324806 bk-3.0.2: check -c - = 0
!arnd/greg 1070324806 bk-3.0.2: commit -y[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.
 = 0
!kergoth/greg 1070325582 bk-3.0.2: check -c - = 0
!kergoth/greg 1070325582 bk-3.0.2: commit -y[PATCH] Allow override of CFLAGS/LDFLAGS

As it is generally a good idea to allow the user to override CFLAGS and
LDFLAGS (automake based systems manage this with AM_CFLAGS vs CFLAGS),
here's a patch that does so.  The key is to keep options that are
required to build, along with include and link paths relative to the
source dir seperate from those that should be overridable (warning
flags, debug flags, optimizations, include/lib paths outside the source
tree).  Rather than adding another couple variables, I made use of the
GNU make 'override' directive.
 = 0
!greg 1070325778 bk-3.0.2: check -acv -f - = 0
!greg 1070325873 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1774
!olh/greg 1070325888 bk-3.0.2: check -c - = 0
!olh/greg 1070325888 bk-3.0.2: commit -y[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
 = 0
!greg 1070325963 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1235
!greg 1070325966 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=2734
!greg 1070326072 bk-3.0.2: commit -dF -Y/home/greg/tmp/bk_commit_Y6U6KL = 0
!dsteklof/greg 1070326081 bk-3.0.2: check -c - = 0
!dsteklof/greg 1070326081 bk-3.0.2: commit -y[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.
 = 0
!mort/greg 1070326776 bk-3.0.2: check -c - = 0
!mort/greg 1070326776 bk-3.0.2: commit -y[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.
 = 0
!greg 1070327696 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=8347
!greg 1070327766 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=8347
!greg 1070328755 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1070328763 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=0
!greg 1070387119 bk-3.0.2: check -c - = 0
!greg 1070387119 bk-3.0.2: commit -dqY/tmp/cmt7393 -f/tmp/cfiles7393 = 0
!kay.sievers/greg 1070387546 bk-3.0.2: check -c - = 0
!kay.sievers/greg 1070387546 bk-3.0.2: commit -y[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"
 = 0
!greg 1070387700 bk-3.0.2: check -c - = 0
!greg 1070387700 bk-3.0.2: commit -dqY/tmp/cmt12471 -f/tmp/cfiles12471 = 0
!greg 1070387734 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=4044
!greg 1070388477 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=4044
!greg 1070389101 bk-3.0.2: check -c - = 0
!greg 1070389101 bk-3.0.2: commit -dqY/tmp/cmt13302 -f/tmp/cfiles13302 = 0
!greg 1070390310 bk-3.0.2: check -c - = 0
!greg 1070390310 bk-3.0.2: commit -dqY/tmp/cmt16199 -f/tmp/cfiles16199 = 0
!greg 1070390357 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=16918
!greg 1070390423 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=16918
!greg 1070390489 bk-3.0.2: check -c - = 0
!greg 1070390489 bk-3.0.2: commit -dqY/tmp/cmt16519 -f/tmp/cfiles16519 = 0
!greg 1070390518 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1132
!greg 1070390536 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=1132
!greg 1070413726 bk-3.0.2: check -c - = 0
!greg 1070413726 bk-3.0.2: commit -dqY/tmp/cmt24939 -f/tmp/cfiles24939 = 0
!greg 1070413745 bk-3.0.2: check -c - = 0
!greg 1070413745 bk-3.0.2: commit -dqY/tmp/cmt25076 -f/tmp/cfiles25076 = 0
!greg 1070413788 bk-3.0.2: check -c - = 0
!greg 1070413788 bk-3.0.2: commit -dqY/tmp/cmt25138 -f/tmp/cfiles25138 = 0
!greg 1070413822 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=25545
!greg 1070413932 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=25545
!greg 1070470828 bk-3.0.2: check -acv -- - = 0
!greg 1070470828 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=282690
!greg 1070473049 bk-3.0.2: check -c - = 0
!greg 1070473049 bk-3.0.2: commit -dqY/tmp/cmt28096 -f/tmp/cfiles28096 = 0
!greg 1070473262 bk-3.0.2: check -c - = 0
!greg 1070473262 bk-3.0.2: commit -dqY/tmp/cmt28484 -f/tmp/cfiles28484 = 0
!greg 1070473851 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=2173
!greg 1070473855 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=2173
!greg 1070476249 bk-3.0.2: check -c - = 0
!greg 1070476249 bk-3.0.2: commit -dqY/tmp/cmt32332 -f/tmp/cfiles32332 = 0
!greg 1070476277 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1079
!greg 1070476280 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=1079
!greg 1070476438 bk-3.0.2: check -c - = 0
!greg 1070476438 bk-3.0.2: commit -dqY/tmp/cmt32394 -f/tmp/cfiles32394 = 0
!greg 1070476466 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=6407
!greg 1070476501 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=6407
!greg 1070479562 bk-3.0.2: check -c - = 0
!greg 1070479562 bk-3.0.2: commit -dqY/tmp/cmt405 -f/tmp/cfiles405 = 0
!greg 1070479644 bk-3.0.2: check -c - = 0
!greg 1070479644 bk-3.0.2: commit -dqY/tmp/cmt479 -f/tmp/cfiles479 = 0
!greg 1070479671 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=2595
!greg 1070479762 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=2595
!greg 1070483632 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1070560465 bk-3.0.2: check -acv -- - = 0
!greg 1070560465 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=227811
!greg 1070561840 bk-3.0.2: check -acv -- - = 0
!greg 1070561840 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=243824
!greg 1070565670 bk-3.0.2: check -c - = 0
!greg 1070565670 bk-3.0.2: commit -dqY/tmp/cmt9940 -f/tmp/cfiles9940 = 0
!kay.sievers/greg 1070565687 bk-3.0.2: check -c - = 0
!kay.sievers/greg 1070565687 bk-3.0.2: commit -y[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
 = 0
!kay.sievers/greg 1070565691 bk-3.0.2: check -c - = 0
!kay.sievers/greg 1070565692 bk-3.0.2: commit -y[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
 = 0
!greg 1070565751 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=6487
!kay.sievers/greg 1070565773 bk-3.0.2: check -c - = 0
!kay.sievers/greg 1070565773 bk-3.0.2: commit -y[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
 = 0
!greg 1070565851 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=1921
!greg 1070565887 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=13078
!greg 1070905686 bk-3.0.2: check -acv -- - = 0
!greg 1070905686 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=332731
!greg 1070906488 bk-3.0.2: check -c - = 0
!greg 1070906488 bk-3.0.2: commit -dqY/tmp/cmt7326 -f/tmp/cfiles7326 = 0
!greg 1070906516 bk-3.0.2: check -c - = 0
!greg 1070906516 bk-3.0.2: commit -dqY/tmp/cmt7356 -f/tmp/cfiles7356 = 0
!greg 1070906932 bk-3.0.2: check -c - = 0
!greg 1070906932 bk-3.0.2: commit -dqY/tmp/cmt7422 -f/tmp/cfiles7422 = 0
!greg 1070906969 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=6835
!kay.sievers/greg 1071016243 bk-3.0.2: check -c - = 0
!kay.sievers/greg 1071016243 bk-3.0.2: commit -y[PATCH] cleanup man & remove symlink comment

  remove "want symlinks" text from udev-add.c
  mention SYMLINK in man page
  man page format cleanup
  man page example for SYMLINK
 = 0
!greg 1071016254 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1071016290 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=3282
!greg 1071016622 bk-3.0.2: check -c - = 0
!greg 1071016622 bk-3.0.2: commit -dqY/tmp/cmt20194 -f/tmp/cfiles20194 = 0
!kay.sievers/greg 1071017220 bk-3.0.2: check -c - = 0
!kay.sievers/greg 1071017220 bk-3.0.2: commit -y[PATCH] allow multiple symlinks

Here is a patch to allow the creation of multiple symlinks.
The names must be separated by a space character.


REPLACE, KERNEL="ttyUSB0", NAME="visor", SYMLINK="first-%n second-%n third-%n"

results in:

Dec  9 05:28:51 pim udev[12019]: create_node: mknod(udev-root/visor, 020666, 188, 0)
Dec  9 05:28:51 pim udev[12019]: create_node: symlink 'udev-root/first-0' to node 'visor' requested
Dec  9 05:28:51 pim udev[12019]: create_node: symlink(./visor, udev-root/first-0)
Dec  9 05:28:51 pim udev[12019]: create_node: symlink 'udev-root/second-0' to node 'visor' requested
Dec  9 05:28:51 pim udev[12019]: create_node: symlink(./visor, udev-root/second-0)
Dec  9 05:28:51 pim udev[12019]: create_node: symlink 'udev-root/third-0' to node 'visor' requested
Dec  9 05:28:51 pim udev[12019]: create_node: symlink(./visor, udev-root/third-0)
 = 0
!greg 1071017291 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=6753
!christophe.varoqui/greg 1071017425 bk-3.0.2: check -c - = 0
!christophe.varoqui/greg 1071017425 bk-3.0.2: commit -y[PATCH] more extras/multipath updates

* update the Makefiles to autodetect libgcc.a & gcc includes
"ulibc-style". Factorisation of udevdirs & others niceties
* drop a hint about absent /dev/sd? on failed open() for poor Debian
users who don't imagine their favorite distro with only 16 preconfigured
SCSI device nodes :)
 = 0
!christophe.varoqui/greg 1071017524 bk-3.0.2: check -c - = 0
!christophe.varoqui/greg 1071017524 bk-3.0.2: commit -y[PATCH] and more extras/multipath updates

* configure the multipath target with round-robin path selector and
conservative default for a start : yes it makes this release the first
really useful one.
* temporarily disable map creation for single path device due to current
restrictive defaults in the kernel target. Sistina should work it out.
* correct the strncmp logic in blacklist function.

Tested on StorageWorks with 2.6.0-test10-udm1 :

xa-s03:~# ./multipath -v
60001fe1000bdad0000903507109004b (1 0 1 1) /dev/sda op:1 /dev/sda
[HSG80           ]
60001fe1000bdad000090371312100bf (1 0 1 2) /dev/sdb op:1 /dev/sdb
[HSG80           ]
60001fe1000bdad000090371312100c2 (1 0 1 3) /dev/sdc op:1 /dev/sdc
[HSG80           ]
60001fe1000bdad00009037131210067 (1 0 2 1) /dev/sdd op:1 /dev/sdd
[HSG80           ]
60001fe1000bdad000090371312100b3 (1 0 2 2) /dev/sde op:1 /dev/sde
[HSG80           ]
60001fe1000bdad00009035071090024 (1 0 2 3) /dev/sdf op:1 /dev/sdf
[HSG80           ]
600508b4000156d700012000000b0000 (1 0 3 1) /dev/sdg op:1 /dev/sdg
[HSV110 (C)COMPAQ]
600508b4000156c30001200000210000 (1 0 3 2) /dev/sdh op:1 /dev/sdh
[HSV110 (C)COMPAQ]
600508b4000156d700012000000b0000 (1 0 6 1) /dev/sdi op:1 /dev/sdi
[HSV110 (C)COMPAQ]
600508b4000156c30001200000210000 (1 0 6 2) /dev/sdj op:1 /dev/sdj
[HSV110 (C)COMPAQ]

60001fe1000bdad0000903507109004b
 \_(1 0 1 1) /dev/sda op:1 /dev/sda [HSG80           ]
60001fe1000bdad000090371312100bf
 \_(1 0 1 2) /dev/sdb op:1 /dev/sdb [HSG80           ]
60001fe1000bdad000090371312100c2
 \_(1 0 1 3) /dev/sdc op:1 /dev/sdc [HSG80           ]
60001fe1000bdad00009037131210067
 \_(1 0 2 1) /dev/sdd op:1 /dev/sdd [HSG80           ]
60001fe1000bdad000090371312100b3
 \_(1 0 2 2) /dev/sde op:1 /dev/sde [HSG80           ]
60001fe1000bdad00009035071090024
 \_(1 0 2 3) /dev/sdf op:1 /dev/sdf [HSG80           ]
600508b4000156d700012000000b0000
 \_(1 0 3 1) /dev/sdg op:1 /dev/sdg [HSV110 (C)COMPAQ]
 \_(1 0 6 1) /dev/sdi op:1 /dev/sdi [HSV110 (C)COMPAQ]
600508b4000156c30001200000210000
 \_(1 0 3 2) /dev/sdh op:1 /dev/sdh [HSV110 (C)COMPAQ]
 \_(1 0 6 2) /dev/sdj op:1 /dev/sdj [HSV110 (C)COMPAQ]

N|600508b4000156d700012000000b0000 : 0 4194304 multipath 2 2 10
round-robin 2 /dev/sdg 10 2 1 2 /dev/sdi 10 2 1 2
N|600508b4000156c30001200000210000 : 0 20971520 multipath 2 2 10
round-robin 2 /dev/sdh 10 2 1 2 /dev/sdj 10 2 1 2
xa-s03:~# dmsetup ls
600508b4000156c30001200000210000        (254, 1)
600508b4000156d700012000000b0000        (254, 0)
xa-s03:~# ll /dev/mapper/
total 0
brw-------    1 root     root     254,   1 Dec  9 22:57
600508b4000156c30001200000210000
brw-------    1 root     root     254,   0 Dec  9 22:57
600508b4000156d700012000000b0000
crw-------    1 root     root      10,  63 Jul 25 22:48 control
xa-s03:~# dd if=/dev/mapper/600508b4000156c30001200000210000
of=/dev/null bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes transferred in 5.662530 seconds (92589003 bytes/sec)

gee, that pretty fast :)
 = 0
!greg 1071018123 bk-3.0.2: check -c - = 0
!greg 1071018123 bk-3.0.2: commit -dqY/tmp/cmt21819 -f/tmp/cfiles21819 = 0
!greg 1071018330 bk-3.0.2: check -c - = 0
!greg 1071018330 bk-3.0.2: commit -dqY/tmp/cmt21859 -f/tmp/cfiles21859 = 0
!greg 1071018637 bk-3.0.2: check -c - = 0
!greg 1071018637 bk-3.0.2: commit -dqY/tmp/cmt21909 -f/tmp/cfiles21909 = 0
!greg 1071018864 bk-3.0.2: check -c - = 0
!greg 1071018864 bk-3.0.2: commit -dqY/tmp/cmt21939 -f/tmp/cfiles21939 = 0
!greg 1071019598 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=15362
!greg 1071019963 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=24766
!greg 1071019969 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1071022145 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!greg 1071087862 bk-3.0.2: check -acv -- - = 0
!greg 1071087862 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=259699
!greg 1071094515 bk-3.0.2: check -acv -- - = 0
!greg 1071094515 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=289672
!greg 1071168230 bk-3.0.2: check -acv -- - = 0
!greg 1071168230 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=264363
!greg 1071525202 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!dsteklof/greg 1071525208 bk-3.0.2: check -c - = 0
!dsteklof/greg 1071525208 bk-3.0.2: commit -y[PATCH] pre-libsysfs-0.4.0 patch

I am sending you a pre-release patch. It's everything that's in our
current CVS tree. It adds the functionality you've been looking for. Please
play with this before checking it into your tree, I'd like to know if
it's ok with you or if you find problems. I have tested this out with
test.all and the perl regression test. Let me know what you think.

Still need to do more testing for our work and add some more functions
related to the changes.

I've gone into namedev.c and udev-add.c to make the necessary changes
in line with the library. I have not gone and edited any of the "extras".


Changes:

1) Libsysfs object structures work more as handles now, their included
directories or devices are labeled private. If you need attributes
from a sysfs_class_device, call the available function and don't access
the directory directly. Same holds true for a sysfs_class_device
sysfs_device. Do not access the link directly but call the function
sysfs_get_classdev_device() instead. We only populate entries upon
request, makes things faster and uses less memory.

2) Added sysfs_get_classdev_parent() as requested.

3) Changed getpagesize to sysconf.

4) Added sysfs_refresh_attributes function for refreshing views of
attribute lists. We still need to add refresh for links and subdirs. All
udev needs to do is keep calling sysfs_get_classdev_attr() and that will
internally call the refresh routine.
 = 0
!greg 1071525300 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=41965
!greg 1071525323 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=41965
!eike-hotplug/greg 1071526950 bk-3.0.2: check -c - = 0
!eike-hotplug/greg 1071526950 bk-3.0.2: commit -y[PATCH] add init.d/udev to the spec file

add /etc/init.d/udev to the SPEC-File and this way to the RPM
 = 0
!eike-hotplug/greg 1071526954 bk-3.0.2: check -c - = 0
!eike-hotplug/greg 1071526954 bk-3.0.2: commit -y[PATCH] add init.d/udev to "make install"

adds /etc/init.d/udev to "make install"
 = 0
!greg 1071527103 bk-3.0.2: check -c - = 0
!greg 1071527103 bk-3.0.2: commit -dqY/tmp/cmt14260 -f/tmp/cfiles14260 = 0
!greg 1071527349 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=3236
!kay.sievers/greg 1071527898 bk-3.0.2: check -c - = 0
!kay.sievers/greg 1071527898 bk-3.0.2: commit -y[PATCH] remove '\n' from end of callout return

  remove possible newline at end of callout output,
  for easier matching with ID=
 = 0
!kay.sievers/greg 1071528852 bk-3.0.2: check -c - = 0
!kay.sievers/greg 1071528852 bk-3.0.2: commit -y[PATCH] get part of callout return string

Try this patch if you like, to get special parts of the callout output.
This beast works now:
CALLOUT, BUS="scsi", PROGRAM="/bin/echo -n node link1 link2", ID="node *", NAME="%1c", SYMLINK="%2c %3c"

The callout returned string is separated by spaces and is
addressed by the "len" value of the 'c' format char.
Since we support symlinks, this my be useful for other uses of callout too.

  introduce 'len number' for format chars
  the first use is 'c'-the callout return to select a part of the output string like:
  CALLOUT, BUS="scsi", PROGRAM="/bin/echo -n node link1 link2", ID="node *", NAME="%1c", SYMLINK="%2c %3c"
  (note: first part is requested by len=1, len=0 will return the whole string)
  add a test to udev-test.pl

--liOOAslEiF7prFVr
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename="02-get-part-of-callout-return-string.diff"
 = 0
!greg 1071528867 bk-3.0.2: check -acv -f - = 0
!kay.sievers/greg 1071528878 bk-3.0.2: check -c - = 0
!kay.sievers/greg 1071528878 bk-3.0.2: commit -y[PATCH] get part of callout return string

Try this patch if you like, to get special parts of the callout output.
This beast works now:
CALLOUT, BUS="scsi", PROGRAM="/bin/echo -n node link1 link2", ID="node *", NAME="%1c", SYMLINK="%2c %3c"

The callout returned string is separated by spaces and is
addressed by the "len" value of the 'c' format char.
Since we support symlinks, this my be useful for other uses of callout too.

  introduce 'len number' for format chars
  the first use is 'c'-the callout return to select a part of the output string like:
  CALLOUT, BUS="scsi", PROGRAM="/bin/echo -n node link1 link2", ID="node *", NAME="%1c", SYMLINK="%2c %3c"
  (note: first part is requested by len=1, len=0 will return the whole string)
  add a test to udev-test.pl
 = 0
!christophe.varoqui/greg 1071530751 bk-3.0.2: check -c - = 0
!christophe.varoqui/greg 1071530751 bk-3.0.2: commit -y[PATCH] more extras/multipath changes

* Make the HW-specific get_unique_id switch pretty
* Prepare to field-test by whitelisting all known fibre array, try to
fetch WWID from the standard EVPD 0x83 off 8 for everyone ... we will
learn from feedback :)

Could you drop a note with the udev-009 release-notes asking for testing
this WWID fetching thing ?
 = 0
!greg 1071530784 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=7311
!greg 1071533598 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=10272
!greg 1071597481 bk-3.0.2: pull = 0 parent=greg@bucket:/home/greg/src/udev xfered=0
!rml/greg 1071617415 bk-3.0.2: check -c - = 0
!rml/greg 1071617415 bk-3.0.2: commit -y[PATCH] install initscript in udev rpm

Attached patch installs the initscript via 'make install' and adds it to
the RPM package.  The RPM script then runs chkconfig(8) to setup the
initscript to run at the appropriate runlevels.
 = 0
!rml/greg 1071617476 bk-3.0.2: check -c - = 0
!rml/greg 1071617476 bk-3.0.2: commit -y[PATCH] remove udev from runlevels on uninstall

I guess we should run 'chkconfig --del udev' on removal to clear out the
now-stale udev entries, if any.
 = 0
!greg 1071617512 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=2878
!kay.sievers/greg 1071617779 bk-3.0.2: check -c - = 0
!kay.sievers/greg 1071617779 bk-3.0.2: commit -y[PATCH] don't rely on field order in namedev_parse

  o change the parsing to get a key from the rule and sort it
    into our list of known keys instead of expecting a special order
  o the key to match a sysfs file must be prependend by 'SYSFS_' now
    to match with the new parsing.
    (The config must be changed, but it's a bit more descriptive too.)
  o put names of fields in define's, like the name of the methods
  o update all tests and the man page
 = 0
!greg 1071617984 bk-3.0.2: check -c - = 0
!greg 1071617984 bk-3.0.2: commit -dqY/tmp/cmt30562 -f/tmp/cfiles30562 = 0
!greg 1071618017 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=10808
!olh/greg 1071618119 bk-3.0.2: check -c - = 0
!olh/greg 1071618119 bk-3.0.2: commit -y[PATCH] dump latest klibc into the udev build tree

KLIBC is used as an internal makefile variable, it expands to either
true or false right now. udev should use something else than KLIBC to
allow build against the latest and greatest klibc version.
 = 0
!greg 1071618401 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=2201
!greg 1071619463 bk-3.0.2: check -c - = 0
!greg 1071619463 bk-3.0.2: commit -dqY/tmp/cmt1548 -f/tmp/cfiles1548 = 0
!greg 1071619490 bk-3.0.2: check -c - = 0
!greg 1071619490 bk-3.0.2: commit -dqY/tmp/cmt1586 -f/tmp/cfiles1586 = 0
!greg 1071619778 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=2349
!greg 1071620575 bk-3.0.2: check -c - = 0
!greg 1071620575 bk-3.0.2: commit -dqY/tmp/cmt5257 -f/tmp/cfiles5257 = 0
!greg 1071620608 bk-3.0.2: check -c - = 0
!greg 1071620608 bk-3.0.2: commit -dqY/tmp/cmt5460 -f/tmp/cfiles5460 = 0
!greg 1071620651 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=27285
!greg 1071620791 bk-3.0.2: push bk://linuxusb@bkbits.net/udev = 0 rmts=20031112234106-08:00|hostme.bitkeeper.com|/repos/l/linuxusb/udev|linuxusb.adm|LZYw xfered=44344
!greg 1071621059 bk-3.0.2: check -c - = 0
!greg 1071621059 bk-3.0.2: commit -dqY/tmp/cmt6071 -f/tmp/cfiles6071 = 0
!greg 1071621099 bk-3.0.2: push = 0 parent=greg@bucket:/home/greg/src/udev xfered=4582
