chiark / gitweb /
12 years agoutil_run_program(): skip multiple spaces in argv creation
Kay Sievers [Mon, 7 Sep 2009 10:12:55 +0000 (12:12 +0200)]
util_run_program(): skip multiple spaces in argv creation

12 years agoutil_run_program: restore signal mask before executing event RUN commands
Jeremy Kerr [Sat, 5 Sep 2009 07:48:23 +0000 (17:48 +1000)]
util_run_program: restore signal mask before executing event RUN commands

External programs triggered by events (via RUN=) will inherit udev's
signal mask, which is set to block all but SIGALRM. For most utilities,
this is OK, but if we start daemons from RUN=, we run into trouble
(especially as SIGCHLD is blocked).

This change saves the original sigmask when udev starts, and restores it
just before we exec() the external command.

Signed-off-by: Jeremy Kerr <>
12 years agoudev_queue_get_seqnum_sequence_is_finished(): fix possible file handle leak
Florian Zumbiehl [Sun, 6 Sep 2009 15:28:26 +0000 (17:28 +0200)]
udev_queue_get_seqnum_sequence_is_finished(): fix possible file handle leak

12 years agoudevadm: remove symlink support for old commands
Kay Sievers [Sun, 6 Sep 2009 15:24:26 +0000 (17:24 +0200)]
udevadm: remove symlink support for old commands

12 years agotest: catch possible bug in GOTO resolving
Kay Sievers [Sun, 6 Sep 2009 14:55:00 +0000 (16:55 +0200)]
test: catch possible bug in GOTO resolving

12 years agoRevert "udev-rules.c: remove 'first_token' variable"
Kay Sievers [Sun, 6 Sep 2009 14:53:14 +0000 (16:53 +0200)]
Revert "udev-rules.c: remove 'first_token' variable"

That was a mistake. The variable is needed to be set before
we parse the file. Thanks a lot to Alan Jenkins for spotting

This reverts commit 710fdac1e49276683abe927472fe1b336960edd8.

12 years agomake raw USB printer devices accessible for lp
Martin Pitt [Fri, 4 Sep 2009 15:12:28 +0000 (17:12 +0200)]
make raw USB printer devices accessible for lp

Starting from version 1.4, cups now uses libusb and printer USB devices instead
of the usblp generated /dev/usb/lpX ones. In order to not require the cups USB
backend to run as root now, change raw USB printer devices to be root:lp 0660,
similar to usblpX devices.

This might also enable the hplip backend to not run as root, since this has
always used raw device nodes.

12 years agoudev-rules.c: parse_file() - fix possible buffer overflow
Florian Zumbiehl [Tue, 1 Sep 2009 11:26:37 +0000 (13:26 +0200)]
udev-rules.c: parse_file() - fix possible buffer overflow

12 years agoudev-rules.c: remove 'first_token' variable
Kay Sievers [Tue, 1 Sep 2009 11:16:48 +0000 (13:16 +0200)]
udev-rules.c: remove 'first_token' variable

12 years agoudev_util_encode_string(): fix possible buffer overflow
Florian Zumbiehl [Tue, 1 Sep 2009 10:54:21 +0000 (12:54 +0200)]
udev_util_encode_string(): fix possible buffer overflow

12 years agolibudev-util.c: get_sys_link() - return error for empty link target
Kay Sievers [Tue, 1 Sep 2009 10:39:57 +0000 (12:39 +0200)]
libudev-util.c: get_sys_link() - return error for empty link target

12 years agoutil_resolve_sys_link(): fix possible buffer overflow
Florian Zumbiehl [Tue, 1 Sep 2009 10:38:16 +0000 (12:38 +0200)]
util_resolve_sys_link(): fix possible buffer overflow

12 years agoude_rules.c: fix possible NULL pointer dereference in get_key()
Florian Zumbiehl [Tue, 1 Sep 2009 10:15:54 +0000 (12:15 +0200)]
ude_rules.c: fix possible NULL pointer dereference in get_key()

12 years agorules: sound - do not use /usr/bin/env
Marco d'Itri [Tue, 1 Sep 2009 10:04:26 +0000 (12:04 +0200)]
rules: sound - do not use /usr/bin/env

The C version of path_id does not look at the environment anymore, so
there is no reason to empty it.

12 years agopci-db: make sure we actually read the pci.ids file instead of usb.ids
Lennart Poettering [Tue, 1 Sep 2009 02:47:16 +0000 (04:47 +0200)]
pci-db: make sure we actually read the pci.ids file instead of usb.ids

Since the recent rework both usb-db and pci-db were built to
read the usb.ids database file. This fix makes sure pci-db properly
reads pci.ids instead.

Originally pointed out by Marco d'Itri.

12 years agorules: suse - use NAME for mapper/control
Kay Sievers [Mon, 31 Aug 2009 14:05:52 +0000 (16:05 +0200)]
rules: suse - use NAME for mapper/control

12 years agoupdate README
Kay Sievers [Mon, 31 Aug 2009 08:19:40 +0000 (10:19 +0200)]
update README

12 years agouse nanosleep() instead of usleep()
Daniel Mierswa [Sun, 30 Aug 2009 21:58:57 +0000 (23:58 +0200)]
use nanosleep() instead of usleep()

POSIX.1-2001 declares usleep() function obsolete and POSIX.1-2008
removes it.

[Kay Sievers]
  - include time.h
  - use const for timespec
  - scsi_id: drop rand() in retry loop
  - modem-probe: rename msuspend() to msleep()

12 years agoupdate TODO
Kay Sievers [Sun, 30 Aug 2009 20:45:49 +0000 (22:45 +0200)]
update TODO

12 years agoutil_create_path(): fix possible out of bounds array access
Florian Zumbiehl [Sun, 30 Aug 2009 19:40:13 +0000 (21:40 +0200)]
util_create_path(): fix possible out of bounds array access

12 years agoinotify_add_watch(): do not store watch, if it failed
Kay Sievers [Sun, 30 Aug 2009 18:42:06 +0000 (20:42 +0200)]
inotify_add_watch(): do not store watch, if it failed

On Sun, Aug 30, 2009 at 04:36, Marco d'Itri<> wrote:
> inotify_add_watch may fail in udev_watch_begin, and then a link with
> name -1 is created.
> I do not know why, but it happened once on my system:
> lrwxrwxrwx 1 root root 27 Aug  4 11:27 -1 -> /devices/virtual/block/ram8

12 years agoutil_delete_path(): handle multiple leading slashes
Florian Zumbiehl [Sat, 29 Aug 2009 14:50:43 +0000 (16:50 +0200)]
util_delete_path(): handle multiple leading slashes

12 years agoutil_create_path(): fix errno usage
Kay Sievers [Sat, 29 Aug 2009 14:38:01 +0000 (16:38 +0200)]
util_create_path(): fix errno usage

Based on a patch from: Florian Zumbiehl <>

12 years agoutil_lookup_group(): fix memory leak if realloc() fails
Florian Zumbiehl [Sat, 29 Aug 2009 14:25:47 +0000 (16:25 +0200)]
util_lookup_group(): fix memory leak if realloc() fails

12 years agoutil_delete_path(): use util_strscpy()
Florian Zumbiehl [Sat, 29 Aug 2009 14:17:54 +0000 (16:17 +0200)]
util_delete_path(): use util_strscpy()

12 years agoutil_unlink_secure(): chmod() before chown()
Kay Sievers [Sat, 29 Aug 2009 14:10:24 +0000 (16:10 +0200)]
util_unlink_secure(): chmod() before chown()

Suggested by Florian Zumbiehl <>.

12 years agodoc: udevadm test *does* create nodes and links these days
Kay Sievers [Thu, 27 Aug 2009 01:56:32 +0000 (03:56 +0200)]
doc: udevadm test *does* create nodes and links these days

12 years agodoc: writing_udev_rules updated for the new command names
Marco d'Itri [Thu, 27 Aug 2009 01:55:44 +0000 (03:55 +0200)]
doc: writing_udev_rules updated for the new command names

12 years agoRevert "extras/keymap: Fix case matching for Micro-Star"
Martin Pitt [Wed, 26 Aug 2009 20:39:32 +0000 (22:39 +0200)]
Revert "extras/keymap: Fix case matching for Micro-Star"

This reverts commit 66bf63c05cdc4e9b09818aa5fab0b9d319a1c91c.

Further debugging in showed that for some
weird reason the correct key codes already come out of the "Video Bus" input
device, and the previous commit would cause them to appear a second time
through the standard keyboard device.

This is a kernel bug in the end, but let's not break working things

12 years agoextras/keymap: Fix case matching for Micro-Star
Martin Pitt [Wed, 26 Aug 2009 17:09:06 +0000 (19:09 +0200)]
extras/keymap: Fix case matching for Micro-Star

Some Micro-Star boards apparently have mixed case vendor, instead of all-caps.
Update the glob to catch all such cases.

12 years agoassign errno for getgrnam_r()/getpwnam_r()
Kay Sievers [Tue, 25 Aug 2009 19:06:35 +0000 (21:06 +0200)]
assign errno for getgrnam_r()/getpwnam_r()

On Mon, Aug 24, 2009 at 19:50, Lennart Poettering<> wrote:
> One little comment here: on POSIX getrnam_r() doesn't touch
> errno. Instead it returns the error value as return value.

12 years agoextras/keymap: Fix hold key on Acer Aspire 6920
Martin Pitt [Mon, 24 Aug 2009 15:59:42 +0000 (17:59 +0200)]
extras/keymap: Fix hold key on Acer Aspire 6920

The Hold key locks the panel and is hardwired. It doesn't have a sensible
keycode to map to, and shouldn't be overloaded either.

12 years agoextras/modem-modeswitch: eject ZTE MF6xx fake CD-ROMs
Martin Pitt [Mon, 24 Aug 2009 10:02:07 +0000 (12:02 +0200)]
extras/modem-modeswitch: eject ZTE MF6xx fake CD-ROMs

modem-modeswitch does not fully work on ZTE MF6xx modems, their fake CD-ROMs
need to be properly ejected in order for the actual modem to appear. Add udev
rule for this device (19d2:2000 in CD-ROM mode).

12 years agoextras/keymap: Add Acer Aspire 6920
Martin Pitt [Mon, 24 Aug 2009 06:36:30 +0000 (08:36 +0200)]
extras/keymap: Add Acer Aspire 6920

12 years agohid2hci: remove superfluous bmAttributes match
Mario Limonciello [Thu, 20 Aug 2009 17:43:51 +0000 (19:43 +0200)]
hid2hci: remove superfluous bmAttributes match

For the retrigger of the device on remove we were trying to match bmAttributes
of self powered which is unnecessary.

12 years agochange database file names
Kay Sievers [Wed, 19 Aug 2009 18:49:49 +0000 (20:49 +0200)]
change database file names

With very deeply nested devices, We can not use a single file
name to carry an entire DEVPATH. Use <subsystem>:<sysname> as
the database filename, which should also simplify the handling
of devices moving around, as these values will not change but
still be unique.

For the name stack we use the <maj>:<min> now as the filename.

> On Tue, Aug 18, 2009 at 09:59:56AM -0400, Ric Wheeler wrote:
> The first is that udev grumbles during boot about "file name too long"
> like the following:
> Aug 17 06:49:58 megadeth udevd-event[20447]: unable to create db file
> '/dev/.udev/db/\x2fdevices\x2fpci0000:00\x2f0000:00:04.0\x2f0000:17:00.0\x2f0000:18:0a.0\x2f0000:1f:00.0\x2fhost11\x2fport-11:0\x2fexpander-11:0\x2fport-11:0:0\x2fexpander-11:1\x2fport-11:1:0\x2fexpander-11:2\x2fport-11:2:17\x2fexpander-11:3\x2fport-11:3:1\x2fend_device-11:3:1\x2fbsg\x2fend_device-11:3:1':
> File name too long

12 years agowarn about non-readable or empty rules file
Kay Sievers [Wed, 19 Aug 2009 05:34:07 +0000 (07:34 +0200)]
warn about non-readable or empty rules file

12 years agoprint warning for NAME="%k" - it breaks the kernel supplied DEVNAME
Kay Sievers [Wed, 19 Aug 2009 05:31:39 +0000 (07:31 +0200)]
print warning for NAME="%k" - it breaks the kernel supplied DEVNAME

12 years agodon't compare a non-existing function with NULL
Daniel Mierswa [Mon, 17 Aug 2009 21:13:19 +0000 (23:13 +0200)]
don't compare a non-existing function with NULL

Obviously someone forgot something here or didn't use -ansi. Either way,
index is nowhere declared so I assume the current behaviour is to check
against the index() function coming from somewhere in the POSIX headers.
The comparison doesn't make sense then.

Signed-off-by: Daniel Mierswa <>
12 years agoupdate NEWS
Kay Sievers [Sun, 16 Aug 2009 19:14:59 +0000 (21:14 +0200)]
update NEWS

12 years agomake: add comment
Kay Sievers [Sun, 16 Aug 2009 19:14:39 +0000 (21:14 +0200)]
make: add comment

12 years agorule_generator: net - fix MATCHDEVID
Kay Sievers [Sun, 16 Aug 2009 19:12:04 +0000 (21:12 +0200)]
rule_generator: net - fix MATCHDEVID

This got lost for some reason with an earlier change.

Thanks to Marco d'Itri <> for noticing.

12 years agorules: rfkill has no group, so use 0644
Kay Sievers [Sun, 16 Aug 2009 19:07:39 +0000 (21:07 +0200)]
rules: rfkill has no group, so use 0644

Thanks to Marco d'Itri<> for noticing.

12 years agoudev-acl: allow to skip ACL handling
Kay Sievers [Fri, 14 Aug 2009 18:13:20 +0000 (20:13 +0200)]
udev-acl: allow to skip ACL handling

12 years version bump
Kay Sievers [Fri, 14 Aug 2009 18:08:47 +0000 (20:08 +0200)] version bump

12 years agomake: sort per target/extra
Kay Sievers [Fri, 14 Aug 2009 17:27:00 +0000 (19:27 +0200)]
make: sort per target/extra

12 years agorelease 146
Kay Sievers [Fri, 14 Aug 2009 12:18:58 +0000 (14:18 +0200)]
release 146

12 years agomake: fix issues from non-recursive conversion
Kay Sievers [Fri, 14 Aug 2009 12:17:50 +0000 (14:17 +0200)]
make: fix issues from non-recursive conversion

12 years agoudevd: block for 15 seconds after error when too old kernel is detected
Kay Sievers [Sat, 8 Aug 2009 20:59:41 +0000 (22:59 +0200)]
udevd: block for 15 seconds after error when too old kernel is detected

The compat code will go away some day and CONFIG_SYSFS_DEPRECATED
kernels fail in too many setups now to be worth to support them.

12 years agoUse LT_INIT to explicit that udev needs libtool series 2.
Diego Elio 'Flameeyes' Pettenò [Sat, 8 Aug 2009 20:51:18 +0000 (22:51 +0200)]
Use LT_INIT to explicit that udev needs libtool series 2.

12 years agoFix “make distcheck” run outside of the source directory.
Diego Elio 'Flameeyes' Pettenò [Sat, 8 Aug 2009 20:12:42 +0000 (22:12 +0200)]
Fix “make distcheck” run outside of the source directory.

Pass the path to keys.txt as second parameter of so that
it can be found in the right path.

12 years agofix spelling
Alan Jenkins [Sat, 8 Aug 2009 13:29:38 +0000 (14:29 +0100)]
fix spelling

Fix spelling in docbook comments, code comments, and a local variable
name.  Thanks to "ispell -h" for docbook HTML and "scspell" for source

Signed-off-by: Alan Jenkins <>
12 years agoFix building of documentation when doing out-of-source builds.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 19:54:35 +0000 (21:54 +0200)]
Fix building of documentation when doing out-of-source builds.

Since gtk-mkhtml is executed in a sub-directory of the build directory, and
make does not know of that, the $(buildir) variable will still be "." and
the $(srcdir) will not properly be found. For this reason, use the absolute
variants for the two functions, which won't be changing.

12 years agoUse the keymap check during “make distcheck” rather than “check”.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 18:05:55 +0000 (20:05 +0200)]
Use the keymap check during “make distcheck” rather than “check”.

Since the script checks for validity the source directory
and the file, instead of running it during user-oriented “make
check”, run it during developed-oriented “make distcheck”.

An invalid keymap will abort the execution which will prevent shipping
an incomplete

To properly support out-of-source builds, pass as single parameter to the
test the path to the source directory.

12 years agoMerge in into
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 17:44:30 +0000 (19:44 +0200)]
Merge in into

This removes another file from the distribution, since we're not using it
anywhere else but the top-level file.

12 years agoAsk gperf to use ANSI-C for generation.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 17:41:17 +0000 (19:41 +0200)]
Ask gperf to use ANSI-C for generation.

This avoids an '80s C prototype which caused a warning during our build.

12 years agoAdd tests to the distribution; this fixes "make distcheck".
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 09:22:49 +0000 (11:22 +0200)]
Add tests to the distribution; this fixes "make distcheck".

12 years agoInclude the correct directory for out-of-source builds.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 09:21:34 +0000 (11:21 +0200)]
Include the correct directory for out-of-source builds.

When building in-source, the source and header files are in the same
directory, but they are not in out-of-source.

12 years agoFix another relative path for the new working directory.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 09:12:48 +0000 (11:12 +0200)]
Fix another relative path for the new working directory.

12 years agoFix building of introspection library on top-level
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 09:04:58 +0000 (11:04 +0200)]
Fix building of introspection library on top-level

Since the library is in a subdirectory, it has to know where to look for

12 years agoAdd silent-rule support for the gudev rules.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 01:22:21 +0000 (03:22 +0200)]
Add silent-rule support for the gudev rules.

12 years agoMake sure to use dependency/target variables.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 01:21:00 +0000 (03:21 +0200)]
Make sure to use dependency/target variables.

12 years agoMake sure to clean up all the built sources.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 01:18:44 +0000 (03:18 +0200)]
Make sure to clean up all the built sources.

12 years agoFinally, also merge gudev into the top-level
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 01:16:32 +0000 (03:16 +0200)]
Finally, also merge gudev into the top-level

The Introspection rules are not tested yet; more touch-ups have been made
for them.

12 years agoMove pkg-config docs and man pages before conditionals.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 01:07:51 +0000 (03:07 +0200)]
Move pkg-config docs and man pages before conditionals.

Since gudev conditionally installs further pkg-config data, we have to set
it before the condition might be expanded.

12 years agoMake keymap generation rules be silent (backward-compatible).
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 01:00:23 +0000 (03:00 +0200)]
Make keymap generation rules be silent (backward-compatible).

12 years agoMerge keymap building in the top-level
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 00:58:23 +0000 (02:58 +0200)]
Merge keymap building in the top-level

Slight adjustment around the tests and the rules for the new working

12 years agoChange hook handling to be more portable.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 00:52:49 +0000 (02:52 +0200)]
Change hook handling to be more portable.

12 years agoAlso merge into the top-level the simpler extras.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 00:38:02 +0000 (02:38 +0200)]
Also merge into the top-level the simpler extras.

12 years agoReplace the custom test-run target with the standard make check.
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 00:23:01 +0000 (02:23 +0200)]
Replace the custom test-run target with the standard make check.

A little fix is needed for the script (to be called with the
proper path), but this allows for the test binaries to be only built when
running the tests themselves.

12 years agoMerge libudev, udev, and the unconditional extras in a single
Diego Elio 'Flameeyes' Pettenò [Fri, 7 Aug 2009 00:01:29 +0000 (02:01 +0200)]
Merge libudev, udev, and the unconditional extras in a single

Instead of using multiple recursive files, use a single that sets and builds all the basic suite of libraries and
binaries for udev. This reduces the number of files in the source tree, and
also reduces drastically the build time when using parallel-make.

With this setup, all the compile steps will be executed in parallel, and
just the linking stage will be (partially) serialised on the libraries

12 years agoextras/keymap: Fix Bluetooth key on Acer Aspire 6920
Martin Pitt [Fri, 7 Aug 2009 14:41:54 +0000 (15:41 +0100)]
extras/keymap: Fix Bluetooth key on Acer Aspire 6920


12 years agoman: SYMLINK can be matched as well as assigned
Alan Jenkins [Fri, 7 Aug 2009 12:29:49 +0000 (13:29 +0100)]
man: SYMLINK can be matched as well as assigned

If by-path / by-id links don't quite do what you want, this is a nice
clean way to extend the behaviour.  Real example:

SYMLINK=="serial/by-id/usb-Novatel_Wireless_Inc*CDMA*-if00-port0", \\

Some users ask how to do things like this.

 - create an additional link with a shorter name
 - create a link which matches more loosely
    (omit certain path segments e.g. serial numbers)
 - change permissions on certain USB device nodes

Allow them to realize this without reading the friendly *.c files.

Signed-off-by: Alan Jenkins <>
12 years agoman: fix unused, inaccurate metadata
Alan Jenkins [Fri, 7 Aug 2009 12:28:27 +0000 (13:28 +0100)]
man: fix unused, inaccurate metadata

Dates aren't shown in the manpages.  So they are not really useful,
and no-one is going to remember to update them.

"<refmiscinfo class="version"></refmiscinfo>" sounds even less useful.

I leave the unused "title" and "productname" tags.  They could
theoretically be useful, and aren't hard to maintain.  We just need to
fix the "title" for udevadm.

Signed-off-by: Alan Jenkins <>
12 years agoextras/keymap: Add Samsung NC20
Martin Pitt [Fri, 7 Aug 2009 10:11:48 +0000 (11:11 +0100)]
extras/keymap: Add Samsung NC20

Reported by Dirk Thierbach <> on hal ML.

12 years agohid2hci: install re-trigger for hid device when recovering from S3
Mario Limonciello [Fri, 7 Aug 2009 00:23:44 +0000 (02:23 +0200)]
hid2hci: install re-trigger for hid device when recovering from S3

12 years ago"record_failed" -> "fail_event_on_error"
Kay Sievers [Thu, 6 Aug 2009 17:23:06 +0000 (19:23 +0200)]
"record_failed" -> "fail_event_on_error"

12 years agore-enable failed event tracking
Kay Sievers [Thu, 6 Aug 2009 14:16:26 +0000 (16:16 +0200)]
re-enable failed event tracking

It did not work for the last couple of releases.

If RUN{record_failed}+="..." is given, a non-zero execution will mark
the event as failed. Recorded failed events can be re-triggered with:
  udevadm trigger --type=failed

The failed tracking _might_ be useful for things which might not be
ready to be executed at early bootup, but a bit later when the needed
dependencies are available. In many cases though, it indicates that
something is used in a way it should not.

12 years agomake: suppress enter/leaving directory messages
Kay Sievers [Thu, 6 Aug 2009 13:51:47 +0000 (15:51 +0200)]
make: suppress enter/leaving directory messages

12 years agolibudev: silent gcc warning: may be used uninitialized in this function
Kay Sievers [Thu, 6 Aug 2009 13:37:55 +0000 (15:37 +0200)]
libudev: silent gcc warning: may be used uninitialized in this function

12 years agoudev-acl: add joystick devices
Anssi Hannula [Mon, 27 Jul 2009 20:59:44 +0000 (23:59 +0300)]
udev-acl: add joystick devices

User needs read-write access to joystick devices in order to use force
feedback features.

12 years agorules: exclude digitizers from joystick class
Anssi Hannula [Mon, 27 Jul 2009 20:56:55 +0000 (23:56 +0300)]
rules: exclude digitizers from joystick class

Exclude digitizers and similar devices from ID_CLASS joystick by
checking modalias for BTN_DIGI.

This was also done for linux kernel joydev interface in linux commit

12 years agoupdate a few years of copyright
Kay Sievers [Sat, 1 Aug 2009 13:39:18 +0000 (09:39 -0400)]
update a few years of copyright

12 years agofix util_lookup_group to handle large groups
Eric W. Biederman [Sat, 1 Aug 2009 05:26:10 +0000 (22:26 -0700)]
fix util_lookup_group to handle large groups

I have recently been getting the above message on fc11 and
I have traced it down to a bug in util_lookup_group.

As of 145 util_lookup_group reads:

gid_t util_lookup_group(struct udev *udev, const char *group)
char *endptr;
int buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
char buf[buflen];
struct group grbuf;
struct group *gr;
gid_t gid = 0;

if (strcmp(group, "root") == 0)
return 0;
gid = strtoul(group, &endptr, 10);
if (endptr[0] == '\0')
return gid;

errno = 0;
getgrnam_r(group, &grbuf, buf, buflen, &gr);
if (gr != NULL)
return gr->gr_gid;
if (errno == 0 || errno == ENOENT || errno == ESRCH)
err(udev, "specified group '%s' unknown\n", group);
err(udev, "error resolving group '%s': %m\n", group);
return 0;

The errno value from getgrnam_r here is ERANGE which is documented as
"Insufficient buffer space supplied".

When I call get getgrnam_r with a large enough buffer everything
works.  Indicating that the problem is that sysconf is returning
a value too small.

A quick google search tells me that sysconf(_S_GETGR_R_SIZE_MAX)
is documented as:

> sysconf(_S_GETGR_R_SIZE_MAX) returns either -1 or a good
> suggested starting value for buflen.  It does not return the
> worst case possible for buflen.

In my case I have a group with about 50 users in /etc/group
and that is what triggered the problem in udev and caused
all of the udevs group lookups to fail.

The following patch which dynamically allocates the group member buffer
should fix this problem.

Signed-off-by: "Eric W. Biederman" <>
12 years agoenumeration: move ALSA control devices to the end of the enumerated devices of each...
Lennart Poettering [Mon, 27 Jul 2009 21:24:27 +0000 (23:24 +0200)]
enumeration: move ALSA control devices to the end of the enumerated devices of each card

Generally ALSA control devices should be the last ones to be processed
for ACL changes and similar operations because they can then be used as
indicators that ACL management finished for all device nodes of a
specific card.

This patch simple moves each controlC device behind all the pcmC devices
(and similar).

12 years agomake: build internal tools against
Kay Sievers [Sat, 25 Jul 2009 18:37:45 +0000 (20:37 +0200)]
make: build internal tools against

12 years agohid2hci: rewrite (and break) rules and device handling
Kay Sievers [Fri, 24 Jul 2009 16:06:22 +0000 (18:06 +0200)]
hid2hci: rewrite (and break) rules and device handling

We must never access random devices in /dev which do not belong to
the event we are handling. Hard-coding /dev/hidrawX, and looping over all
devices is absolutely not acceptable --> hook into hidraw events.

We can not relay on (rather random) properties merged into the parent
device by earlier rules --> use libudev to find the sibling device
with a matching interface.

Libusb does not fit into udev's use case. We never want want to scan
and open() all usb devices in the system, just to find the device
we are already handling the event for --> put all the stupid scanning
into a single function and prepare for a fixed libusb or drop it later.

12 years agoformat names are not case insensitive
Kay Sievers [Thu, 23 Jul 2009 18:28:16 +0000 (20:28 +0200)]
format names are not case insensitive

12 years agopath_id: fix typo in comment
Kay Sievers [Thu, 23 Jul 2009 18:27:13 +0000 (20:27 +0200)]
path_id: fix typo in comment

12 years agorules: serial - fix path_id call
Kay Sievers [Thu, 23 Jul 2009 18:26:45 +0000 (20:26 +0200)]
rules: serial - fix path_id call

12 years agoextras/keymap: Fix crash for unknown keys
Martin Pitt [Thu, 23 Jul 2009 17:00:38 +0000 (19:00 +0200)]
extras/keymap: Fix crash for unknown keys

The keymap table has some holes in it, which caused the interactive mode to
crash for unknown keys. In these cases, print the numeric key code instead.

12 years agoextras/modem-modeswitch: Add Huawei E1550 GSM modem
Erik Forsberg [Thu, 23 Jul 2009 14:40:25 +0000 (16:40 +0200)]
extras/modem-modeswitch: Add Huawei E1550 GSM modem

What's odd is that this is a huawei modem, not an option modem, so one would
expect it to work better with usb_modeswitch and it's -H (huawei) mode - but
that's not the case, I've tested that as well.

12 years agoudevadm: trigger - add --sysname-match=
Kay Sievers [Wed, 22 Jul 2009 22:02:28 +0000 (00:02 +0200)]
udevadm: trigger - add --sysname-match=

  $ udevadm trigger -n -v --subsystem-match=usb --sysname-match=2-1.1*

12 years agopath_id: make global variable static
Kay Sievers [Wed, 22 Jul 2009 17:09:48 +0000 (19:09 +0200)]
path_id: make global variable static

12 years agohid2hci: remove hid structures and include kernel header
Kay Sievers [Tue, 21 Jul 2009 23:03:33 +0000 (01:03 +0200)]
hid2hci: remove hid structures and include kernel header

12 years agohid2hci: support to hid2hci for recovering Dell BT devices after S3
Mario Limonciello [Tue, 21 Jul 2009 22:33:27 +0000 (00:33 +0200)]
hid2hci: support to hid2hci for recovering Dell BT devices after S3

12 years version bump
Kay Sievers [Mon, 20 Jul 2009 23:40:47 +0000 (01:40 +0200)] version bump

12 years agov4l_id: exit with 0 when --help is given
Kay Sievers [Mon, 20 Jul 2009 23:36:42 +0000 (01:36 +0200)]
v4l_id: exit with 0 when --help is given

12 years agoextras/keymap: Add Samsung SX22S
Martin Pitt [Mon, 20 Jul 2009 15:59:11 +0000 (17:59 +0200)]
extras/keymap: Add Samsung SX22S

Reported on hal ML by Sergey Astanin <>.

12 years agoextras/keymap: teach findkeyboards about USB keyboards
Martin Pitt [Sat, 18 Jul 2009 14:59:46 +0000 (16:59 +0200)]
extras/keymap: teach findkeyboards about USB keyboards