Martin Schwenke <martin@meltin.net> asked for this feature and posted a
patch:
The following patch almost let's me have the following configuration:
PROGRAM="/sbin/aliaser %b %k %n %M %m", RESULT="?*", NAME="%c{1}", SYMLINK="%c{2+}"
allowing me to specify an arbitrary number of symlinks by saying
"giveme the second and later words"."
Here is the actual version with tests and a few words in the man page.
This allows to set the permissions along with the rule.
This is not a general replacement for the permissions config, but it
may be easier sometimes for the user to specify the permissions along
with the rule, cause the permissions config file wants the final node
name to match, which seems sometimes a bit difficult to guess, if
format % chars are used in the NAME field.
Any value not given in the rule is still be read from the permissions
file or set to the default. This one will also work:
BUS="usb", KERNEL="video*", NAME="my-%k", OWNER="$local"
A few words to man page are also added and add_perm_dev() is moved into
namedev_parse.c where it belongs to.
Hey, it may never happen, that one wants to distinguish attributes by
trailing spaces, but we should not lose the control over it, just for
being lazy :)
Here we remove the trailing spaces of the sysfs attribute only if the
configured value to match doesn't have any trailing spaces by itself.
So if you put a attribute in a rule with spaces at the end, the sysfs
attribute _must_ match exactly.
Is that cool for everyone?
As usual, 2 tests are added for it with a artificial sysfs file and
a few words to the man page.
On Mon, 2004-03-01 at 17:44, Greg KH wrote:
> Hm, that should be Robert's job actually, he should do something for
> real... :)
Hey, I wrote the nifty local user detection snippet - but, I owe Kay, so
here is an updated man page.
Here is a small change to the udev man page:
- clarify the use of the NAME{all_partitions} syntax
and add a example to udev.rules.example
- mention the empty NAME field to ignore the device
- prepare a SYMLINK field for the addition of Andrey's
"multiple symlinks" documentation :)
We carried the the old callout part selector syntax for two releases
now after it was replaced by the new %c{1} syntax. So here we remove
the old syntax and use the code to possibly specify the maximum count
of chars to insert into the string. It will work with all of our format
chars.
I don't know if somebody will use it, but the code is already there :)
's%3s{vendor}' returns "IBM" now, instead of "IBM-ESXS".
Also added is a test for it and a few words in the man page.
Hey it's not longer the "goal" to provide a dynamic dev directory,
we have just arrived. So I change it to more self-confident words :)
I've also added the completly missing environment variables to the
man pages.
To stop the misuse of the PROGRAM= call paramenters, we better mention
its limitations.
Here we switch the configs and man pages to the new attribute syntax.
Also the 'partition trick' is mentioned in udev.8
I think it's more clear visible now, that inside the brackets are user
supplied values used and not some magic keys handled:
'SYSFS_dev' is now 'SYSFS{dev}'
The old syntax is still supported.
I've edited the man page today, so this is alreay included :)
Also a few more trivials:
o added the defaults to udev.conf.in
o removed class_dev from get_default_mode(), to match with Hanna's
o changed size of mode_str to MODE_SIZE
o changed a few char compares from from 0x00 to '\0'
Here we get the ability to query with the name of the node instead of
the device path. It uses a linear search over the whole database.
kay@pim:~/src/udev.kay$ ./udev -q path -n video/webcam0
/class/video4linux/video0
New version, with better function return codes for error handling.
On Wed, Dec 31, 2003 at 11:24:53AM -0800, Greg KH wrote:
> > There should be a possibility to tell udev not to create a device node.
> >
> > device-mapper: Usually set up by libdevmapper (or EVMS tools) which
> > creates the device node on its own under /dev/mapper/<name>.
> >
> > With udev a second device is created named /dev/dm-<minor> which is not
> > really needed.
>
> Good point. Ok, I'll agree with you. Care to make up a patch for this
> kind of feature?
Yes, I can try.
There was no way to tell not to do anything so I created one. Errors
are signalled via negative return values, so I thought that a positive,
non-zero one could mean to ignore the device. I don't like it but
perhaps you have a better solution.
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
As usual, when the stuff gets in the tree - here is a small
man page update and a TODO line removal.
mention multiple symlinks
update example with silly symlink rule :)
shorten example line to have less than 80 chars
remove "want symlink support" from TODO
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
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
I want to bring the CALLOUT field ordering in line with the other
methods, cause the current parsing relies on the ordering it's good
to have it like the others. The BUS= is now the first expected field.
Also made the last two remaining field names to uppercase and the man page
callout example is updated.