Move udev rules from /etc/udev to /lib/udev
authorKyle Fuller <inbox@kylefuller.co.uk>
Fri, 5 Aug 2011 19:22:58 +0000 (20:22 +0100)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 8 Aug 2011 23:21:10 +0000 (16:21 -0700)
This change moves the default install location for the zfs udev
rules from /etc/udev/ to /lib/udev/.  The correct convention is
for rules provided by a package to be installed in /lib/udev/.
The /etc/udev/ directory is reserved for custom rules or local
overrides.

Additionally, this patch cleans up some abuse of the bindir install
location by adding a udevdir and udevruledir install directories.
This allows us to revert to the default bin install location.  The
udev install directories can be set with the following new options.

  --with-udevdir=DIR      install udev helpers [EPREFIX/lib/udev]
  --with-udevruledir=DIR  install udev rules [UDEVDIR/rules.d]

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #356

18 files changed:
Makefile.am
cmd/sas_switch_id/Makefile.am
cmd/zpool_id/Makefile.am
cmd/zvol_id/Makefile.am
config/user-udev.m4 [new file with mode: 0644]
config/user.m4
configure.ac
dracut/90zfs/module-setup.sh
etc/Makefile.am
etc/udev/rules.d/Makefile.am [deleted file]
udev/Makefile.am [moved from etc/udev/Makefile.am with 100% similarity]
udev/Makefile.in [moved from etc/udev/Makefile.in with 100% similarity]
udev/rules.d/.gitignore [moved from etc/udev/rules.d/.gitignore with 100% similarity]
udev/rules.d/60-zpool.rules.in [moved from etc/udev/rules.d/60-zpool.rules.in with 76% similarity]
udev/rules.d/60-zvol.rules.in [moved from etc/udev/rules.d/60-zvol.rules.in with 80% similarity]
udev/rules.d/Makefile.am [new file with mode: 0644]
udev/rules.d/Makefile.in [moved from etc/udev/rules.d/Makefile.in with 100% similarity]
zfs.spec.in

index c6ed200..17e4c9c 100644 (file)
@@ -3,7 +3,7 @@ include $(top_srcdir)/config/deb.am
 include $(top_srcdir)/config/tgz.am
 
 if CONFIG_USER
-USER_DIR = dracut etc man scripts lib cmd
+USER_DIR = dracut udev etc man scripts lib cmd
 endif
 if CONFIG_KERNEL
 KERNEL_DIR = module
index 0927663..b666bea 100644 (file)
@@ -1 +1 @@
-dist_bin_SCRIPTS = sas_switch_id
+dist_udev_SCRIPTS = sas_switch_id
index 023e1ab..5f492cf 100644 (file)
@@ -1 +1 @@
-dist_bin_SCRIPTS = zpool_id
+dist_udev_SCRIPTS = zpool_id
index dcdea58..88ece6b 100644 (file)
@@ -4,7 +4,7 @@ DEFAULT_INCLUDES += \
        -I$(top_srcdir)/include \
        -I$(top_srcdir)/lib/libspl/include
 
-bin_PROGRAMS = zvol_id
+udev_PROGRAMS = zvol_id
 
 zvol_id_SOURCES = \
        $(top_srcdir)/cmd/zvol_id/zvol_id_main.c
diff --git a/config/user-udev.m4 b/config/user-udev.m4
new file mode 100644 (file)
index 0000000..47da604
--- /dev/null
@@ -0,0 +1,14 @@
+AC_DEFUN([ZFS_AC_CONFIG_USER_UDEV], [
+       AC_ARG_WITH(udevdir,
+               AC_HELP_STRING([--with-udevdir=DIR],
+               [install udev helpers [[EPREFIX/lib/udev]]]),
+               udevdir=$withval, udevdir='${exec_prefix}/lib/udev')
+
+       AC_ARG_WITH(udevruledir,
+               AC_HELP_STRING([--with-udevruledir=DIR],
+               [install udev rules [[UDEVDIR/rules.d]]]),
+               udevruledir=$withval, udevruledir='${udevdir}/rules.d')
+
+       AC_SUBST(udevdir)
+       AC_SUBST(udevruledir)
+])
index a79deef..4fcef3d 100644 (file)
@@ -2,6 +2,7 @@ dnl #
 dnl # Default ZFS user configuration
 dnl #
 AC_DEFUN([ZFS_AC_CONFIG_USER], [
+       ZFS_AC_CONFIG_USER_UDEV
        ZFS_AC_CONFIG_USER_ARCH
        ZFS_AC_CONFIG_USER_IOCTL
        ZFS_AC_CONFIG_USER_ZLIB
index 8afd0fc..8b0f1d5 100644 (file)
@@ -57,9 +57,9 @@ AC_CONFIG_FILES([
        Makefile
        dracut/Makefile
        dracut/90zfs/Makefile
+       udev/Makefile
+       udev/rules.d/Makefile
        etc/Makefile
-       etc/udev/Makefile
-       etc/udev/rules.d/Makefile
        etc/init.d/Makefile
        etc/init.d/zfs.arch
        etc/init.d/zfs.gentoo
index 6dd3d5c..822f899 100755 (executable)
@@ -29,8 +29,8 @@ installkernel() {
 
 install() {
        inst_rules "$moddir/90-zfs.rules"
-       inst_rules /etc/udev/rules.d/60-zpool.rules
-       inst_rules /etc/udev/rules.d/60-zvol.rules
+       inst_rules /lib/udev/rules.d/60-zpool.rules
+       inst_rules /lib/udev/rules.d/60-zvol.rules
        inst /etc/zfs/zdev.conf
        inst /etc/zfs/zpool.cache
        inst /etc/hostid
index 1a8c656..65882b5 100644 (file)
@@ -1 +1 @@
-SUBDIRS = init.d udev zfs
+SUBDIRS = init.d zfs
diff --git a/etc/udev/rules.d/Makefile.am b/etc/udev/rules.d/Makefile.am
deleted file mode 100644 (file)
index 9929c45..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-pkgsysconfdir = $(sysconfdir)/udev/rules.d
-
-pkgsysconf_DATA = \
-       60-zpool.rules \
-       60-zvol.rules
-
-EXTRA_DIST = \
-       60-zpool.rules.in \
-       60-zvol.rules.in
-
-$(pkgsysconf_DATA):
-       -$(SED) -e 's,@bindir\@,$(bindir),g' '$@.in' >'$@'
-
-distclean-local::
-       -$(RM) $(pkgsysconf_DATA)
similarity index 100%
rename from etc/udev/Makefile.am
rename to udev/Makefile.am
similarity index 100%
rename from etc/udev/Makefile.in
rename to udev/Makefile.in
similarity index 76%
rename from etc/udev/rules.d/60-zpool.rules.in
rename to udev/rules.d/60-zpool.rules.in
index e3a1f70..32fceed 100644 (file)
@@ -1,8 +1,8 @@
 #
-# /etc/udev/rules.d/60-zpool.rules
+# /lib/udev/rules.d/60-zpool.rules
 #
 
-ENV{DEVTYPE}=="disk", IMPORT{program}="@bindir@/zpool_id -d %p"
+ENV{DEVTYPE}=="disk", IMPORT{program}="@udevdir@/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{DEVTYPE}=="partition", ENV{ID_ZPOOL}=="?*", SYMLINK+="$env{ID_ZPOOL_PATH}-part%n"
similarity index 80%
rename from etc/udev/rules.d/60-zvol.rules.in
rename to udev/rules.d/60-zvol.rules.in
index e71e5be..199f77e 100644 (file)
@@ -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="@bindir@/zvol_id $tempnode" SYMLINK+="zvol/%c %c"
+KERNEL=="zd*" SUBSYSTEM=="block" ACTION=="add|change" PROGRAM="@udevdir@/zvol_id $tempnode" SYMLINK+="zvol/%c %c"
diff --git a/udev/rules.d/Makefile.am b/udev/rules.d/Makefile.am
new file mode 100644 (file)
index 0000000..4174051
--- /dev/null
@@ -0,0 +1,14 @@
+udevrule_DATA = \
+       60-zpool.rules \
+       60-zvol.rules
+
+EXTRA_DIST = \
+       60-zpool.rules.in \
+       60-zvol.rules.in
+
+$(udevrule_DATA):
+       -$(SED) -e 's,@udevdir\@,$(udevdir),g' '$@.in' >'$@'
+
+distclean-local::
+       -$(RM) $(udevrule_DATA)
+
index cba98af..56e8c47 100644 (file)
@@ -3,9 +3,9 @@
 %define release          @ZFS_META_RELEASE@
 %define debug_package    %{nil}
 %define _prefix          /
-%define _bindir          /lib/udev
 %define _libexecdir      /usr/libexec
 %define _datadir         /usr/share
+%define _udevdir         /lib/udev
 
 Summary:         ZFS Library and Utils
 Group:           Utilities/System
@@ -61,7 +61,7 @@ which are ZFS aware.
 %prep
 %setup
 %build
-%configure --with-config=user --without-blkid
+%configure --with-config=user --without-blkid --with-udevdir=%{_udevdir}
 make
 
 %install
@@ -80,8 +80,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/*
 %{_mandir}/man8/*
 %{_sysconfdir}/init.d/*
-%{_sysconfdir}/udev/rules.d/*
 %{_sysconfdir}/zfs/*
+%{_udevdir}/*
+%{_udevdir}/rules.d/*
 
 %files devel
 %defattr(-,root,root)