diff options
author | Darik Horn <[email protected]> | 2011-06-17 10:02:36 -0500 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2011-06-17 10:11:29 -0700 |
commit | b9f27ee76582fa7826ca930889f8c281430c6b7a (patch) | |
tree | 72cad6900cbef9218c3dcc55e430672b939f9005 /etc | |
parent | e130330a874f4dec6628c094455180d4113c6aa1 (diff) |
Fix autoconf variable substitution in udev rules.
Change the variable substitution in the udev rule templates
according to the method described in the Autoconf manual;
Chapter 4.7.2: Installation Directory Variables.
The udev rules are improperly generated if the bindir parameter
overrides the prefix parameter during configure. For example:
# ./configure --prefix=/usr/local --bindir=/opt/zfs/bin
The udev helper is installed as /opt/zfs/bin/zpool_id, but the
corresponding udev rule has a different path:
# /usr/local/etc/udev/rules.d/60-zpool.rules
ENV{DEVTYPE}=="disk", IMPORT{program}="/usr/local/bin/zpool_id -d %p"
The @bindir@ variable expands to "${exec_prefix}/bin", so it cannot
be used instead of @prefix@ directly.
This also applies to the zvol_id helper.
Closes #283.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/udev/rules.d/60-zpool.rules.in | 2 | ||||
-rw-r--r-- | etc/udev/rules.d/60-zvol.rules.in | 2 | ||||
-rw-r--r-- | etc/udev/rules.d/Makefile.am | 7 |
3 files changed, 8 insertions, 3 deletions
diff --git a/etc/udev/rules.d/60-zpool.rules.in b/etc/udev/rules.d/60-zpool.rules.in index fc1a1d1f4..6e5a727fe 100644 --- a/etc/udev/rules.d/60-zpool.rules.in +++ b/etc/udev/rules.d/60-zpool.rules.in @@ -2,7 +2,7 @@ # /etc/udev/rules.d/60-zpool.rules # -ENV{DEVTYPE}=="disk", IMPORT{program}="@prefix@/bin/zpool_id -d %p" +ENV{DEVTYPE}=="disk", IMPORT{program}="@bindir@/zpool_id -d %p" KERNEL=="*[!0-9]", ENV{SUBSYSTEM}=="block", ENV{ID_ZPOOL}=="?*", SYMLINK+="$env{ID_ZPOOL_PATH}" KERNEL=="*[0-9]", ENV{SUBSYSTEM}=="block", ENV{ID_ZPOOL}=="?*", SYMLINK+="$env{ID_ZPOOL_PATH}-part%n" diff --git a/etc/udev/rules.d/60-zvol.rules.in b/etc/udev/rules.d/60-zvol.rules.in index 06f5f93e8..e71e5be28 100644 --- a/etc/udev/rules.d/60-zvol.rules.in +++ b/etc/udev/rules.d/60-zvol.rules.in @@ -3,4 +3,4 @@ # persistent disk links: /dev/zvol/dataset_name # also creates compatibilty symlink of /dev/dataset_name -KERNEL=="zd*" SUBSYSTEM=="block" ACTION=="add|change" PROGRAM="@prefix@/bin/zvol_id $tempnode" SYMLINK+="zvol/%c %c" +KERNEL=="zd*" SUBSYSTEM=="block" ACTION=="add|change" PROGRAM="@bindir@/zvol_id $tempnode" SYMLINK+="zvol/%c %c" diff --git a/etc/udev/rules.d/Makefile.am b/etc/udev/rules.d/Makefile.am index 1a7a1e392..9929c45bd 100644 --- a/etc/udev/rules.d/Makefile.am +++ b/etc/udev/rules.d/Makefile.am @@ -4,7 +4,12 @@ pkgsysconf_DATA = \ 60-zpool.rules \ 60-zvol.rules -EXTRA_DIST = 60-zpool.rules.in 60-zvol.rules.in +EXTRA_DIST = \ + 60-zpool.rules.in \ + 60-zvol.rules.in + +$(pkgsysconf_DATA): + -$(SED) -e 's,@bindir\@,$(bindir),g' '[email protected]' >'$@' distclean-local:: -$(RM) $(pkgsysconf_DATA) |