From b9f27ee76582fa7826ca930889f8c281430c6b7a Mon Sep 17 00:00:00 2001 From: Darik Horn Date: Fri, 17 Jun 2011 10:02:36 -0500 Subject: 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. --- etc/udev/rules.d/60-zpool.rules.in | 2 +- etc/udev/rules.d/60-zvol.rules.in | 2 +- etc/udev/rules.d/Makefile.am | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) (limited to 'etc') 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' '$@.in' >'$@' distclean-local:: -$(RM) $(pkgsysconf_DATA) -- cgit v1.2.3