From: Patrick Mansfield <patmans@us.ibm.com>
To: Kay Sievers <kay.sievers@vrfy.org>
Cc: linux-hotplug-devel@lists.sourceforge.net, dm-devel@redhat.com
Subject: Re: udev user specified or human readable /dev names
Date: Tue, 1 Nov 2005 16:35:31 -0800 [thread overview]
Message-ID: <20051102003531.GA15854@us.ibm.com> (raw)
In-Reply-To: <20051102000531.GB17207@vrfy.org>
On Wed, Nov 02, 2005 at 01:05:31AM +0100, Kay Sievers wrote:
> On Tue, Nov 01, 2005 at 02:53:57PM -0800, Patrick Mansfield wrote:
> > If we could set and compare environment variables
>
> Sure we can do that with ENV. '=' sets, '==' compares.
>
> > or compare SYMLINK,
>
> How would we compare the list of sysmlinks?
> True, if on of them matches?
Yes, perhaps:
SYMLINK == "* disk/by-id/scsi-360a98000686f68656c6e7a416f4b6849 *" SYMLINK+="user/name"
I like the above better than using other env variables, it is easier to
read.
> > separate rules file (doesn't have to be separate, just seems like a good
> > idea) could be used to add symlinks to user specified names.
>
> All the persistent symlinks are composed from variables still available
> to match anytime later to add more links.
>
> > i.e. move udev_rules.c:apply_format() into udev_utils.c, and call it
> > before comparison as well as before (AFAIUI) generating names, though I
> > somehow doubt the change is that simple.
> >
> > Then, we could have rules like:
> >
> > KERNEL=="sd*[!0-9]|sr*|dasd*[!0-9]", ENV{ID_SERIAL}=="?*", ENV{ID_FULL_PATH}="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
> > ENV{ID_FULL_PATH}=="?*", SYMLINK+="$env{ID_FULL_PATH}"
>
> Hmm, why this indirection? Can't you just use ID_SERIAL and ID_BUS in
> the second rule again?
Yes, but it is simpler to use one variable, for this and in the by-id
partitions, rather than use "disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" in
multiple places (it is used in two places today, my scheme would mean two
more references).
But it still would not match, per the issue below, right?
> > Running with udev 069 on FC rawhide, with these rules:
> >
> > SYMLINK=="*foo*" SYMLINK+="user/bar"
>
> SYMLINK lists can't be matched until now.
You mean it is possible with current udev?
> > KERNEL="sdm" ENV{VAL1}="somevalue"
> > KERNEL="sdm" ENV{VAL2}="$env{VAL1}"
>
> The value does not get expanded at the time you assign it, so the later compare
> will look like:
> 'somevalue' == '$env{VAL1}'
>
> which does not match.
Right ... so should udev be changed to avoid that problem?
-- Patrick Mansfield
WARNING: multiple messages have this Message-ID (diff)
From: Patrick Mansfield <patmans@us.ibm.com>
To: Kay Sievers <kay.sievers@vrfy.org>
Cc: linux-hotplug-devel@lists.sourceforge.net, dm-devel@redhat.com
Subject: Re: udev user specified or human readable /dev names
Date: Wed, 02 Nov 2005 00:35:31 +0000 [thread overview]
Message-ID: <20051102003531.GA15854@us.ibm.com> (raw)
In-Reply-To: <20051102000531.GB17207@vrfy.org>
On Wed, Nov 02, 2005 at 01:05:31AM +0100, Kay Sievers wrote:
> On Tue, Nov 01, 2005 at 02:53:57PM -0800, Patrick Mansfield wrote:
> > If we could set and compare environment variables
>
> Sure we can do that with ENV. '=' sets, '=' compares.
>
> > or compare SYMLINK,
>
> How would we compare the list of sysmlinks?
> True, if on of them matches?
Yes, perhaps:
SYMLINK = "* disk/by-id/scsi-360a98000686f68656c6e7a416f4b6849 *" SYMLINK+="user/name"
I like the above better than using other env variables, it is easier to
read.
> > separate rules file (doesn't have to be separate, just seems like a good
> > idea) could be used to add symlinks to user specified names.
>
> All the persistent symlinks are composed from variables still available
> to match anytime later to add more links.
>
> > i.e. move udev_rules.c:apply_format() into udev_utils.c, and call it
> > before comparison as well as before (AFAIUI) generating names, though I
> > somehow doubt the change is that simple.
> >
> > Then, we could have rules like:
> >
> > KERNEL="sd*[!0-9]|sr*|dasd*[!0-9]", ENV{ID_SERIAL}="?*", ENV{ID_FULL_PATH}="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
> > ENV{ID_FULL_PATH}="?*", SYMLINK+="$env{ID_FULL_PATH}"
>
> Hmm, why this indirection? Can't you just use ID_SERIAL and ID_BUS in
> the second rule again?
Yes, but it is simpler to use one variable, for this and in the by-id
partitions, rather than use "disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" in
multiple places (it is used in two places today, my scheme would mean two
more references).
But it still would not match, per the issue below, right?
> > Running with udev 069 on FC rawhide, with these rules:
> >
> > SYMLINK="*foo*" SYMLINK+="user/bar"
>
> SYMLINK lists can't be matched until now.
You mean it is possible with current udev?
> > KERNEL="sdm" ENV{VAL1}="somevalue"
> > KERNEL="sdm" ENV{VAL2}="$env{VAL1}"
>
> The value does not get expanded at the time you assign it, so the later compare
> will look like:
> 'somevalue' = '$env{VAL1}'
>
> which does not match.
Right ... so should udev be changed to avoid that problem?
-- Patrick Mansfield
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
next prev parent reply other threads:[~2005-11-02 0:35 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-01 22:53 udev user specified or human readable /dev names Patrick Mansfield
2005-11-01 22:53 ` Patrick Mansfield
2005-11-02 0:05 ` Kay Sievers
2005-11-02 0:05 ` Kay Sievers
2005-11-02 0:35 ` Patrick Mansfield [this message]
2005-11-02 0:35 ` Patrick Mansfield
2005-11-02 1:06 ` Kay Sievers
2005-11-02 1:06 ` Kay Sievers
2005-11-02 2:01 ` Patrick Mansfield
2005-11-02 2:01 ` Patrick Mansfield
2005-11-02 2:53 ` Kay Sievers
2005-11-02 2:53 ` Kay Sievers
2005-11-02 15:30 ` Patrick Mansfield
2005-11-02 15:30 ` Patrick Mansfield
2005-11-02 23:49 ` Kay Sievers
2005-11-02 23:49 ` Kay Sievers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20051102003531.GA15854@us.ibm.com \
--to=patmans@us.ibm.com \
--cc=dm-devel@redhat.com \
--cc=kay.sievers@vrfy.org \
--cc=linux-hotplug-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.