Skip to contentSkip to conversation

udev - allow all files in a directory as the config

PATCH Applied Kay Sievers 3 participants 5 messages Feb 20, 2004 – Feb 26, 2004

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 udev - allow all files in a directory as the config

I was on the train for 5 hours today and the TODO is almost empty :) So, at least four people wanted this feature, then here is a actual working patch.

We may specify now in udev.conf:

udev_rules="/etc/udev/"

and udev will scan the whole directory for files ending with *.rules, sort it in lexical order and create our rule list from all of the files. A plain given file will still work and the same applies to the *.permissions.

I sort the files in our usual linked list, cause klibc has no scandir().

please have a look,
Kay

===== namedev.h 1.25 vs edited =====

namedev.h +3 -1
@@ -48,9 +48,11 @@
 #define ATTR_PARTITIONS		"all_partitions"
 #define PARTITIONS_COUNT	15
 
-
 #define PROGRAM_MAXARG		10
 #define MAX_SYSFS_PAIRS		5
+
+#define RULEFILE_EXT		".rules"
+#define PERMFILE_EXT		".permissions"
 
 struct sysfs_pair {
 	char file[FILE_SIZE];

===== namedev_parse.c 1.26 vs edited =====

namedev_parse.c +98 -9

156 lines not on this page · raw message

===== udev.c 1.46 vs edited =====

udev.c +6 -2
@@ -111,13 +111,13 @@
 
 	action = get_action();
 	if (!action) {
-		dbg ("no action?");
+		dbg("no action?");
 		goto exit;
 	}
 
 	devpath = get_devpath();
 	if (!devpath) {
-		dbg ("no devpath?");
+		dbg("no devpath?");
 		goto exit;
 	}
 	dbg("looking at '%s'", devpath);
@@ -131,6 +131,10 @@
 
 	/* skip blacklisted subsystems */
 	subsystem = argv[1];
+	if (!subsystem) {
+		dbg("no subsystem?");
+		goto exit;
+	}
 	i = 0;
 	while (subsystem_blacklist[i][0] != '\0') {
 		if (strcmp(subsystem, subsystem_blacklist[i]) == 0) {
#1 lore raw
Quoted 1 line · Kay Sievers

I was on the train for 5 hours today and the TODO is almost empty :)

Don't forget about the patch to merge multiple entries (e.g. for adding symlinks)... :-)

Quoted 7 lines

We may specify now in udev.conf:

udev_rules="/etc/udev/"

and udev will scan the whole directory for files ending with *.rules, sort it in lexical order and create our rule list from all of the files. A plain given file will still work and the same applies to the *.permissions.

As a vendor, I think that it would be easier to just specify a list of files in udev.conf. This way users could easily select the config files they need (devfs style, devfsstyle with compatibility symlink, old style, etc) without the need to rename the config files provided (something annoying for package managers).

Signature · 13 lines
ciao, |
Marco | [4685 un7QkK300vm7o]


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id56&alloc_id438&op=click
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
#2 lore raw
In reply to Kay Sievers
Quoted 6 lines · Kay Sievers

I was on the train for 5 hours today and the TODO is almost empty :) So, at least four people wanted this feature, then here is a actual working patch.

We may specify now in udev.conf:

Quoted 7 lines

udev_rules="/etc/udev/"

and udev will scan the whole directory for files ending with *.rules, sort it in lexical order and create our rule list from all of the files. A plain given file will still work and the same applies to the *.permissions.

I sort the files in our usual linked list, cause klibc has no scandir().

Nice, applied, thanks.

greg k-h

-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id56&alloc_id438&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#3 lore raw
In reply to Kay Sievers
Quoted 9 lines · Greg KH
Quoted 8 lines · Kay Sievers

I was on the train for 5 hours today and the TODO is almost empty :) So, at least four people wanted this feature, then here is a actual working patch.

We may specify now in udev.conf:

udev_rules="/etc/udev/"

Quoted 7 lines
Quoted 5 lines

and udev will scan the whole directory for files ending with *.rules, sort it in lexical order and create our rule list from all of the files. A plain given file will still work and the same applies to the *.permissions.

I sort the files in our usual linked list, cause klibc has no scandir().

Nice, applied, thanks.

Nice, here is the corresponding man update which also removes the mention of the limitation of getgrname() and friends with klibc.

thanks,
Kay

===== udev.8 1.40 vs edited =====

udev.8 +20 -17
@@ -35,7 +35,7 @@
 
 .B udev
 expects its main configuration file at
-.I /etc/udev/udev.conf.
+.IR /etc/udev/udev.conf .
 The file consists of a set of variables and values that allow the user to
 override default udev values.  The current set of variables that can be
 overridden in this file is:
@@ -43,39 +43,46 @@
 .B udev_root
 This is the where in the filesystem to place the device nodes.  The default
 value for this is
-.I /udev/
+.IR /udev/ .
 .TP
 .B udev_db
 The name and location of the udev database.  The default value for this is
-.I /udev/.udev.tdb
+.IR /udev/.udev.tdb .
 .TP
 .B udev_rules
 This is the location of the udev rules file.  The default value for this is
-.I /etc/udev/udev.rules
+.IR /etc/udev/udev.rules .
+If a directory is specified, the whole directory is
+scanned for files ending with
+.I .rules
+and all rule files are read in lexical order.
 .TP
 .B udev_permissions
-This is the location of the udev permission file.  The default value for this is
-.I /etc/udev/udev.permissions
+This is the location of the udev permission file. The default value for this is
+.IR /etc/udev/udev.permissions .
+If a directory is specified, the whole directory is scanned for files ending with
+.I .permissions
+and all permission files are read in lexical order.
 .TP
 .B udev_log
 If you want udev to log some information to the syslog for every node created or
 removed. The default value for this is
-.I yes
+.IR yes .
 .TP
 .B default_mode
 This is the default mode for all nodes that have no explicit match in the
 permissions file.  The default value for this is
-.I 0666
+.IR 0666 .
 .TP
 .B default_owner
 This is the default owner for all nodes that have no explicit match in the
 permissions file.  The default value for this is
-.I root
+.IR root .
 .TP
 .B default_group
 This is the default group for all nodes that have no explicit match in the
 permissions file.  The default value for this is
-.I root
+.IR root .
 .br
 .P
 .RI "A sample " udev.conf " might look like this:
@@ -87,8 +94,9 @@
 # udev_db - The name and location of the udev database.
 udev_db="/udev/.udev.tdb"
 
-# udev_rules - The name and location of the udev rules file
-udev_rules="/etc/udev/udev.rules"
+# udev_rules - The location of the directory where to look for files
+               which names ending with .rules
+udev_rules="/etc/udev/"
 
 # udev_permissions - The name and location of the udev permission file
 udev_permissions="/etc/udev/udev.permissions"
@@ -242,11 +250,6 @@
 Every line lists a device name followed by owner, group and permission
 mode. All values are separated by colons. The name field may contain a
 pattern to apply the values to a whole class of devices.
-.br
-If
-.B udev
-was built using klibc or is used before the user database is accessible (e.g.
-.BR initrd "(4)), only numeric owner and group values may be used."
 .sp
 .RI "A sample " udev.permissions " might look like this:"
 .sp

===== udevd.8 1.2 vs edited =====

udevd.8 +1 -1
@@ -33,7 +33,7 @@
 .B udevsend
 will start it.
 .SH "SEE ALSO"
-.BR udev (8), hotplug (8)
+.BR udev (8), " hotplug" (8)
 .SH AUTHORS
 .B udevd
 was developed primarily by Kay Sievers <[email protected]>, with much help
Applied
#4 lore raw
In reply to Kay Sievers
Quoted 14 lines · Kay Sievers
Quoted 13 lines · Greg KH
Quoted 12 lines · Kay Sievers

I was on the train for 5 hours today and the TODO is almost empty :) So, at least four people wanted this feature, then here is a actual working patch.

We may specify now in udev.conf:

udev_rules="/etc/udev/"

and udev will scan the whole directory for files ending with *.rules, sort it in lexical order and create our rule list from all of the files. A plain given file will still work and the same applies to the *.permissions.

Quoted 6 lines
Quoted 3 lines
Quoted 1 line

I sort the files in our usual linked list, cause klibc has no scandir().

Nice, applied, thanks.

Nice, here is the corresponding man update which also removes the mention of the limitation of getgrname() and friends with klibc.

Applied, thanks.

greg k-h

-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id56&alloc_id438&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel