From 146cde8f4acd52d258ba80817dd1134702a91954 Mon Sep 17 00:00:00 2001 From: Kyle Fuller Date: Sat, 6 Aug 2011 18:28:16 +0100 Subject: [PATCH 1/3] Move 90-zfs udev rule from dracut to udev/rules.d This rule does not need to be dracut specific. Automatically loading the zfs module stack when a zfs device is detected is usually desirable. My only concern is that this might cause trouble for large pools where we don't want to automatically import the pool until all the disks are available. However, we'll cross that bridge when we come to it. Signed-off-by: Brian Behlendorf --- dracut/90zfs/Makefile.am | 1 - dracut/90zfs/Makefile.in | 1 - dracut/90zfs/module-setup.sh | 2 +- udev/rules.d/.gitignore | 1 + .../rules.d/90-zfs.rules.in | 0 udev/rules.d/Makefile.am | 18 ++++++++++++------ udev/rules.d/Makefile.in | 17 ++++++++++++----- zfs.spec.in | 1 - 8 files changed, 26 insertions(+), 15 deletions(-) rename dracut/90zfs/90-zfs.rules => udev/rules.d/90-zfs.rules.in (100%) diff --git a/dracut/90zfs/Makefile.am b/dracut/90zfs/Makefile.am index 605654c23..44aaf61b2 100644 --- a/dracut/90zfs/Makefile.am +++ b/dracut/90zfs/Makefile.am @@ -1,6 +1,5 @@ pkgdracutdir = $(datadir)/dracut/modules.d/90zfs dist_pkgdracut_SCRIPTS = \ - $(top_srcdir)/dracut/90zfs/90-zfs.rules \ $(top_srcdir)/dracut/90zfs/module-setup.sh \ $(top_srcdir)/dracut/90zfs/mount-zfs.sh \ $(top_srcdir)/dracut/90zfs/parse-zfs.sh diff --git a/dracut/90zfs/Makefile.in b/dracut/90zfs/Makefile.in index b63595be0..009313047 100644 --- a/dracut/90zfs/Makefile.in +++ b/dracut/90zfs/Makefile.in @@ -293,7 +293,6 @@ udevdir = @udevdir@ udevruledir = @udevruledir@ pkgdracutdir = $(datadir)/dracut/modules.d/90zfs dist_pkgdracut_SCRIPTS = \ - $(top_srcdir)/dracut/90zfs/90-zfs.rules \ $(top_srcdir)/dracut/90zfs/module-setup.sh \ $(top_srcdir)/dracut/90zfs/mount-zfs.sh \ $(top_srcdir)/dracut/90zfs/parse-zfs.sh diff --git a/dracut/90zfs/module-setup.sh b/dracut/90zfs/module-setup.sh index 822f89988..23735e31e 100755 --- a/dracut/90zfs/module-setup.sh +++ b/dracut/90zfs/module-setup.sh @@ -28,7 +28,7 @@ installkernel() { } install() { - inst_rules "$moddir/90-zfs.rules" + inst_rules /lib/udev/rules.d/90-zfs.rules inst_rules /lib/udev/rules.d/60-zpool.rules inst_rules /lib/udev/rules.d/60-zvol.rules inst /etc/zfs/zdev.conf diff --git a/udev/rules.d/.gitignore b/udev/rules.d/.gitignore index e56d65ef8..939962d47 100644 --- a/udev/rules.d/.gitignore +++ b/udev/rules.d/.gitignore @@ -1,2 +1,3 @@ 60-zpool.rules 60-zvol.rules +90-zfs.rules diff --git a/dracut/90zfs/90-zfs.rules b/udev/rules.d/90-zfs.rules.in similarity index 100% rename from dracut/90zfs/90-zfs.rules rename to udev/rules.d/90-zfs.rules.in diff --git a/udev/rules.d/Makefile.am b/udev/rules.d/Makefile.am index 41740517e..bb4eedfe9 100644 --- a/udev/rules.d/Makefile.am +++ b/udev/rules.d/Makefile.am @@ -1,14 +1,20 @@ udevrule_DATA = \ - 60-zpool.rules \ - 60-zvol.rules + $(top_srcdir)/udev/rules.d/60-zpool.rules \ + $(top_srcdir)/udev/rules.d/60-zvol.rules \ + $(top_srcdir)/udev/rules.d/90-zfs.rules EXTRA_DIST = \ - 60-zpool.rules.in \ - 60-zvol.rules.in + $(top_srcdir)/udev/rules.d/60-zpool.rules.in \ + $(top_srcdir)/udev/rules.d/60-zvol.rules.in \ + $(top_srcdir)/udev/rules.d/90-zfs.rules.in $(udevrule_DATA): - -$(SED) -e 's,@udevdir\@,$(udevdir),g' '$@.in' >'$@' + -$(SED) -e 's,@bindir\@,$(bindir),g' \ + -e 's,@sbindir\@,$(sbindir),g' \ + -e 's,@udevdir\@,$(udevdir),g' \ + -e 's,@udevruledir\@,$(udevruledir),g' \ + -e 's,@sysconfdir\@,$(sysconfdir),g' \ + '$@.in' >'$@' distclean-local:: -$(RM) $(udevrule_DATA) - diff --git a/udev/rules.d/Makefile.in b/udev/rules.d/Makefile.in index 06ef0a970..a91f67edc 100644 --- a/udev/rules.d/Makefile.in +++ b/udev/rules.d/Makefile.in @@ -291,12 +291,14 @@ top_srcdir = @top_srcdir@ udevdir = @udevdir@ udevruledir = @udevruledir@ udevrule_DATA = \ - 60-zpool.rules \ - 60-zvol.rules + $(top_srcdir)/udev/rules.d/60-zpool.rules \ + $(top_srcdir)/udev/rules.d/60-zvol.rules \ + $(top_srcdir)/udev/rules.d/90-zfs.rules EXTRA_DIST = \ - 60-zpool.rules.in \ - 60-zvol.rules.in + $(top_srcdir)/udev/rules.d/60-zpool.rules.in \ + $(top_srcdir)/udev/rules.d/60-zvol.rules.in \ + $(top_srcdir)/udev/rules.d/90-zfs.rules.in all: all-am @@ -509,7 +511,12 @@ uninstall-am: uninstall-udevruleDATA $(udevrule_DATA): - -$(SED) -e 's,@udevdir\@,$(udevdir),g' '$@.in' >'$@' + -$(SED) -e 's,@bindir\@,$(bindir),g' \ + -e 's,@sbindir\@,$(sbindir),g' \ + -e 's,@udevdir\@,$(udevdir),g' \ + -e 's,@udevruledir\@,$(udevruledir),g' \ + -e 's,@sysconfdir\@,$(sysconfdir),g' \ + '$@.in' >'$@' distclean-local:: -$(RM) $(udevrule_DATA) diff --git a/zfs.spec.in b/zfs.spec.in index 56e8c4764..3f3142a16 100644 --- a/zfs.spec.in +++ b/zfs.spec.in @@ -82,7 +82,6 @@ rm -rf $RPM_BUILD_ROOT %{_sysconfdir}/init.d/* %{_sysconfdir}/zfs/* %{_udevdir}/* -%{_udevdir}/rules.d/* %files devel %defattr(-,root,root) From f0102d6e75d51b8d92624ba054a3fa54c807fb7f Mon Sep 17 00:00:00 2001 From: Kyle Fuller Date: Tue, 9 Aug 2011 22:39:47 +0100 Subject: [PATCH 2/3] Make dracut module-setup.sh an autoconf config file This ensures that module-setup.sh script will always be able to install the required dracut components regardless of how the zfs package was configured. Signed-off-by: Brian Behlendorf --- dracut/90zfs/.gitignore | 3 + dracut/90zfs/Makefile.am | 32 ++++----- dracut/90zfs/Makefile.in | 68 +++++++++---------- .../{module-setup.sh => module-setup.sh.in} | 22 +++--- .../90zfs/{mount-zfs.sh => mount-zfs.sh.in} | 0 .../90zfs/{parse-zfs.sh => parse-zfs.sh.in} | 0 6 files changed, 62 insertions(+), 63 deletions(-) create mode 100644 dracut/90zfs/.gitignore rename dracut/90zfs/{module-setup.sh => module-setup.sh.in} (59%) rename dracut/90zfs/{mount-zfs.sh => mount-zfs.sh.in} (100%) rename dracut/90zfs/{parse-zfs.sh => parse-zfs.sh.in} (100%) diff --git a/dracut/90zfs/.gitignore b/dracut/90zfs/.gitignore new file mode 100644 index 000000000..6f4a5ae10 --- /dev/null +++ b/dracut/90zfs/.gitignore @@ -0,0 +1,3 @@ +module-setup.sh +mount-zfs.sh +parse-zfs.sh diff --git a/dracut/90zfs/Makefile.am b/dracut/90zfs/Makefile.am index 44aaf61b2..411206178 100644 --- a/dracut/90zfs/Makefile.am +++ b/dracut/90zfs/Makefile.am @@ -1,23 +1,21 @@ pkgdracutdir = $(datadir)/dracut/modules.d/90zfs -dist_pkgdracut_SCRIPTS = \ +pkgdracut_SCRIPTS = \ $(top_srcdir)/dracut/90zfs/module-setup.sh \ $(top_srcdir)/dracut/90zfs/mount-zfs.sh \ $(top_srcdir)/dracut/90zfs/parse-zfs.sh -all: - @list='$(dist_pkgdracut_SCRIPTS)'; \ - for file in $$list; do \ - link=$$(basename $$file); \ - if [ ! -e $$link ]; then \ - $(LN_S) $$file $$link; \ - fi \ - done +EXTRA_DIST = \ + $(top_srcdir)/dracut/90zfs/module-setup.sh.in \ + $(top_srcdir)/dracut/90zfs/mount-zfs.sh.in \ + $(top_srcdir)/dracut/90zfs/parse-zfs.sh.in -clean: - @list='$(dist_pkgdracut_SCRIPTS)'; \ - for file in $$list; do \ - link=$$(basename $$file); \ - if [ -L $$link ]; then \ - $(RM) $$link; \ - fi \ - done +$(pkgdracut_SCRIPTS): + -$(SED) -e 's,@bindir\@,$(bindir),g' \ + -e 's,@sbindir\@,$(sbindir),g' \ + -e 's,@udevdir\@,$(udevdir),g' \ + -e 's,@udevruledir\@,$(udevruledir),g' \ + -e 's,@sysconfdir\@,$(sysconfdir),g' \ + '$@.in' >'$@' + +distclean-local:: + -$(RM) $(pkgdracut_SCRIPTS) diff --git a/dracut/90zfs/Makefile.in b/dracut/90zfs/Makefile.in index 009313047..905ab5051 100644 --- a/dracut/90zfs/Makefile.in +++ b/dracut/90zfs/Makefile.in @@ -36,8 +36,7 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = dracut/90zfs -DIST_COMMON = $(dist_pkgdracut_SCRIPTS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = \ $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \ @@ -111,7 +110,7 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pkgdracutdir)" -SCRIPTS = $(dist_pkgdracut_SCRIPTS) +SCRIPTS = $(pkgdracut_SCRIPTS) AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; @@ -292,11 +291,16 @@ top_srcdir = @top_srcdir@ udevdir = @udevdir@ udevruledir = @udevruledir@ pkgdracutdir = $(datadir)/dracut/modules.d/90zfs -dist_pkgdracut_SCRIPTS = \ +pkgdracut_SCRIPTS = \ $(top_srcdir)/dracut/90zfs/module-setup.sh \ $(top_srcdir)/dracut/90zfs/mount-zfs.sh \ $(top_srcdir)/dracut/90zfs/parse-zfs.sh +EXTRA_DIST = \ + $(top_srcdir)/dracut/90zfs/module-setup.sh.in \ + $(top_srcdir)/dracut/90zfs/mount-zfs.sh.in \ + $(top_srcdir)/dracut/90zfs/parse-zfs.sh.in + all: all-am .SUFFIXES: @@ -330,10 +334,10 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): -install-dist_pkgdracutSCRIPTS: $(dist_pkgdracut_SCRIPTS) +install-pkgdracutSCRIPTS: $(pkgdracut_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(pkgdracutdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdracutdir)" - @list='$(dist_pkgdracut_SCRIPTS)'; test -n "$(pkgdracutdir)" || list=; \ + @list='$(pkgdracut_SCRIPTS)'; test -n "$(pkgdracutdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ @@ -356,9 +360,9 @@ install-dist_pkgdracutSCRIPTS: $(dist_pkgdracut_SCRIPTS) } \ ; done -uninstall-dist_pkgdracutSCRIPTS: +uninstall-pkgdracutSCRIPTS: @$(NORMAL_UNINSTALL) - @list='$(dist_pkgdracut_SCRIPTS)'; test -n "$(pkgdracutdir)" || exit 0; \ + @list='$(pkgdracut_SCRIPTS)'; test -n "$(pkgdracutdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ @@ -439,11 +443,13 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile -distclean-am: clean-am distclean-generic +distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am @@ -457,7 +463,7 @@ info: info-am info-am: -install-data-am: install-dist_pkgdracutSCRIPTS +install-data-am: install-pkgdracutSCRIPTS install-dvi: install-dvi-am @@ -501,41 +507,33 @@ ps: ps-am ps-am: -uninstall-am: uninstall-dist_pkgdracutSCRIPTS +uninstall-am: uninstall-pkgdracutSCRIPTS .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dist_pkgdracutSCRIPTS \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ + distclean distclean-generic distclean-libtool distclean-local \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pkgdracutSCRIPTS install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am uninstall uninstall-am \ - uninstall-dist_pkgdracutSCRIPTS + ps ps-am uninstall uninstall-am uninstall-pkgdracutSCRIPTS -all: - @list='$(dist_pkgdracut_SCRIPTS)'; \ - for file in $$list; do \ - link=$$(basename $$file); \ - if [ ! -e $$link ]; then \ - $(LN_S) $$file $$link; \ - fi \ - done +$(pkgdracut_SCRIPTS): + -$(SED) -e 's,@bindir\@,$(bindir),g' \ + -e 's,@sbindir\@,$(sbindir),g' \ + -e 's,@udevdir\@,$(udevdir),g' \ + -e 's,@udevruledir\@,$(udevruledir),g' \ + -e 's,@sysconfdir\@,$(sysconfdir),g' \ + '$@.in' >'$@' -clean: - @list='$(dist_pkgdracut_SCRIPTS)'; \ - for file in $$list; do \ - link=$$(basename $$file); \ - if [ -L $$link ]; then \ - $(RM) $$link; \ - fi \ - done +distclean-local:: + -$(RM) $(pkgdracut_SCRIPTS) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/dracut/90zfs/module-setup.sh b/dracut/90zfs/module-setup.sh.in similarity index 59% rename from dracut/90zfs/module-setup.sh rename to dracut/90zfs/module-setup.sh.in index 23735e31e..33f78e51c 100755 --- a/dracut/90zfs/module-setup.sh +++ b/dracut/90zfs/module-setup.sh.in @@ -28,17 +28,17 @@ installkernel() { } install() { - inst_rules /lib/udev/rules.d/90-zfs.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 - dracut_install zfs - dracut_install zpool - dracut_install zpool_layout - dracut_install zpool_id - dracut_install zvol_id + inst_rules @udevruledir@/90-zfs.rules + inst_rules @udevruledir@/60-zpool.rules + inst_rules @udevruledir@/60-zvol.rules + inst @sysconfdir@/zfs/zdev.conf + inst @sysconfdir@/zfs/zpool.cache + inst @sysconfdir@/hostid + dracut_install @sbindir@/zfs + dracut_install @sbindir@/zpool + dracut_install @bindir@/zpool_layout + dracut_install @udevdir@/zpool_id + dracut_install @udevdir@/zvol_id dracut_install mount.zfs dracut_install hostid inst_hook cmdline 95 "$moddir/parse-zfs.sh" diff --git a/dracut/90zfs/mount-zfs.sh b/dracut/90zfs/mount-zfs.sh.in similarity index 100% rename from dracut/90zfs/mount-zfs.sh rename to dracut/90zfs/mount-zfs.sh.in diff --git a/dracut/90zfs/parse-zfs.sh b/dracut/90zfs/parse-zfs.sh.in similarity index 100% rename from dracut/90zfs/parse-zfs.sh rename to dracut/90zfs/parse-zfs.sh.in From aa2b4896c93bbb2652ddc5e10e66175e54ff56c8 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Tue, 9 Aug 2011 16:49:18 -0700 Subject: [PATCH 3/3] Fix autoconf variable substitution in init scripts. Change the variable substitution in the init script templates according to the method described in the Autoconf manual; Chapter 4.7.2: Installation Directory Variables. Signed-off-by: Brian Behlendorf --- configure | 8 +-- configure.ac | 6 -- etc/init.d/.gitignore | 7 +-- etc/init.d/Makefile.am | 25 ++++++-- etc/init.d/Makefile.in | 133 ++++++++++++++++++++++++++++----------- etc/init.d/zfs.arch.in | 2 +- etc/init.d/zfs.fedora.in | 2 +- etc/init.d/zfs.gentoo.in | 2 +- etc/init.d/zfs.lsb.in | 2 +- etc/init.d/zfs.lunar.in | 2 +- etc/init.d/zfs.redhat.in | 2 +- 11 files changed, 127 insertions(+), 64 deletions(-) diff --git a/configure b/configure index 864024253..d97d1caca 100755 --- a/configure +++ b/configure @@ -20744,7 +20744,7 @@ fi $as_echo "$enable_debug" >&6; } -ac_config_files="$ac_config_files Makefile dracut/Makefile dracut/90zfs/Makefile udev/Makefile udev/rules.d/Makefile etc/Makefile etc/init.d/Makefile etc/init.d/zfs.arch etc/init.d/zfs.gentoo etc/init.d/zfs.lunar etc/init.d/zfs.fedora etc/init.d/zfs.lsb etc/init.d/zfs.redhat etc/zfs/Makefile man/Makefile man/man8/Makefile lib/Makefile lib/libspl/Makefile lib/libspl/asm-generic/Makefile lib/libspl/asm-i386/Makefile lib/libspl/asm-x86_64/Makefile lib/libspl/include/Makefile lib/libspl/include/ia32/Makefile lib/libspl/include/ia32/sys/Makefile lib/libspl/include/rpc/Makefile lib/libspl/include/sys/Makefile lib/libspl/include/sys/sysevent/Makefile lib/libspl/include/sys/dktp/Makefile lib/libspl/include/util/Makefile lib/libavl/Makefile lib/libefi/Makefile lib/libnvpair/Makefile lib/libunicode/Makefile lib/libuutil/Makefile lib/libzpool/Makefile lib/libzfs/Makefile lib/libshare/Makefile cmd/Makefile cmd/zdb/Makefile cmd/zfs/Makefile cmd/zinject/Makefile cmd/zpool/Makefile cmd/ztest/Makefile cmd/zpios/Makefile cmd/mount_zfs/Makefile cmd/zpool_layout/Makefile cmd/zvol_id/Makefile cmd/zpool_id/Makefile cmd/sas_switch_id/Makefile module/Makefile module/avl/Makefile module/nvpair/Makefile module/unicode/Makefile module/zcommon/Makefile module/zfs/Makefile module/zpios/Makefile include/Makefile include/linux/Makefile include/sys/Makefile include/sys/fs/Makefile include/sys/fm/Makefile include/sys/fm/fs/Makefile scripts/Makefile scripts/zpios-profile/Makefile scripts/zpios-test/Makefile scripts/zpool-config/Makefile scripts/zpool-layout/Makefile scripts/common.sh zfs.spec zfs-modules.spec zfs-script-config.sh" +ac_config_files="$ac_config_files Makefile dracut/Makefile dracut/90zfs/Makefile udev/Makefile udev/rules.d/Makefile etc/Makefile etc/init.d/Makefile etc/zfs/Makefile man/Makefile man/man8/Makefile lib/Makefile lib/libspl/Makefile lib/libspl/asm-generic/Makefile lib/libspl/asm-i386/Makefile lib/libspl/asm-x86_64/Makefile lib/libspl/include/Makefile lib/libspl/include/ia32/Makefile lib/libspl/include/ia32/sys/Makefile lib/libspl/include/rpc/Makefile lib/libspl/include/sys/Makefile lib/libspl/include/sys/sysevent/Makefile lib/libspl/include/sys/dktp/Makefile lib/libspl/include/util/Makefile lib/libavl/Makefile lib/libefi/Makefile lib/libnvpair/Makefile lib/libunicode/Makefile lib/libuutil/Makefile lib/libzpool/Makefile lib/libzfs/Makefile lib/libshare/Makefile cmd/Makefile cmd/zdb/Makefile cmd/zfs/Makefile cmd/zinject/Makefile cmd/zpool/Makefile cmd/ztest/Makefile cmd/zpios/Makefile cmd/mount_zfs/Makefile cmd/zpool_layout/Makefile cmd/zvol_id/Makefile cmd/zpool_id/Makefile cmd/sas_switch_id/Makefile module/Makefile module/avl/Makefile module/nvpair/Makefile module/unicode/Makefile module/zcommon/Makefile module/zfs/Makefile module/zpios/Makefile include/Makefile include/linux/Makefile include/sys/Makefile include/sys/fs/Makefile include/sys/fm/Makefile include/sys/fm/fs/Makefile scripts/Makefile scripts/zpios-profile/Makefile scripts/zpios-test/Makefile scripts/zpool-config/Makefile scripts/zpool-layout/Makefile scripts/common.sh zfs.spec zfs-modules.spec zfs-script-config.sh" cat >confcache <<\_ACEOF @@ -21667,12 +21667,6 @@ do "udev/rules.d/Makefile") CONFIG_FILES="$CONFIG_FILES udev/rules.d/Makefile" ;; "etc/Makefile") CONFIG_FILES="$CONFIG_FILES etc/Makefile" ;; "etc/init.d/Makefile") CONFIG_FILES="$CONFIG_FILES etc/init.d/Makefile" ;; - "etc/init.d/zfs.arch") CONFIG_FILES="$CONFIG_FILES etc/init.d/zfs.arch" ;; - "etc/init.d/zfs.gentoo") CONFIG_FILES="$CONFIG_FILES etc/init.d/zfs.gentoo" ;; - "etc/init.d/zfs.lunar") CONFIG_FILES="$CONFIG_FILES etc/init.d/zfs.lunar" ;; - "etc/init.d/zfs.fedora") CONFIG_FILES="$CONFIG_FILES etc/init.d/zfs.fedora" ;; - "etc/init.d/zfs.lsb") CONFIG_FILES="$CONFIG_FILES etc/init.d/zfs.lsb" ;; - "etc/init.d/zfs.redhat") CONFIG_FILES="$CONFIG_FILES etc/init.d/zfs.redhat" ;; "etc/zfs/Makefile") CONFIG_FILES="$CONFIG_FILES etc/zfs/Makefile" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "man/man8/Makefile") CONFIG_FILES="$CONFIG_FILES man/man8/Makefile" ;; diff --git a/configure.ac b/configure.ac index 8b0f1d5e0..c84d60d30 100644 --- a/configure.ac +++ b/configure.ac @@ -61,12 +61,6 @@ AC_CONFIG_FILES([ udev/rules.d/Makefile etc/Makefile etc/init.d/Makefile - etc/init.d/zfs.arch - etc/init.d/zfs.gentoo - etc/init.d/zfs.lunar - etc/init.d/zfs.fedora - etc/init.d/zfs.lsb - etc/init.d/zfs.redhat etc/zfs/Makefile man/Makefile man/man8/Makefile diff --git a/etc/init.d/.gitignore b/etc/init.d/.gitignore index 601a25a46..73304bc2c 100644 --- a/etc/init.d/.gitignore +++ b/etc/init.d/.gitignore @@ -1,6 +1 @@ -zfs.arch -zfs.fedora -zfs.gentoo -zfs.lsb -zfs.lunar -zfs.redhat +zfs diff --git a/etc/init.d/Makefile.am b/etc/init.d/Makefile.am index 00bb2681a..94a21680b 100644 --- a/etc/init.d/Makefile.am +++ b/etc/init.d/Makefile.am @@ -1,5 +1,22 @@ -EXTRA_DIST = zfs.fedora zfs.gentoo zfs.lsb zfs.lunar zfs.redhat zfs.arch +initdir = $(DEFAULT_INIT_DIR) +init_SCRIPTS = zfs -install-data-local: - @instdest=$(DESTDIR)$(DEFAULT_INIT_DIR)/zfs; \ - $(INSTALL) -TD zfs.$(DEFAULT_INIT_SCRIPT) $$instdest +EXTRA_DIST = \ + $(top_srcdir)/etc/init.d/zfs.fedora.in \ + $(top_srcdir)/etc/init.d/zfs.gentoo.in \ + $(top_srcdir)/etc/init.d/zfs.lsb.in \ + $(top_srcdir)/etc/init.d/zfs.lunar.in \ + $(top_srcdir)/etc/init.d/zfs.redhat.in \ + $(top_srcdir)/etc/init.d/zfs.arch.in + +$(init_SCRIPTS): + -$(SED) -e 's,@bindir\@,$(bindir),g' \ + -e 's,@sbindir\@,$(sbindir),g' \ + -e 's,@udevdir\@,$(udevdir),g' \ + -e 's,@udevruledir\@,$(udevruledir),g' \ + -e 's,@sysconfdir\@,$(sysconfdir),g' \ + -e 's,@initdir\@,$(initdir),g' \ + 'zfs.$(DEFAULT_INIT_SCRIPT).in' >'$@' + +distclean-local:: + -$(RM) $(init_SCRIPTS) diff --git a/etc/init.d/Makefile.in b/etc/init.d/Makefile.in index 6ca2e27f7..32c73dc9e 100644 --- a/etc/init.d/Makefile.in +++ b/etc/init.d/Makefile.in @@ -14,6 +14,7 @@ # PARTICULAR PURPOSE. @SET_MAKE@ + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ @@ -35,10 +36,7 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = etc/init.d -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/zfs.arch.in $(srcdir)/zfs.fedora.in \ - $(srcdir)/zfs.gentoo.in $(srcdir)/zfs.lsb.in \ - $(srcdir)/zfs.lunar.in $(srcdir)/zfs.redhat.in +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = \ $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \ @@ -88,9 +86,31 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/zfs_config.h -CONFIG_CLEAN_FILES = zfs.arch zfs.gentoo zfs.lunar zfs.fedora zfs.lsb \ - zfs.redhat +CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(initdir)" +SCRIPTS = $(init_SCRIPTS) AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; @@ -270,7 +290,16 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ udevdir = @udevdir@ udevruledir = @udevruledir@ -EXTRA_DIST = zfs.fedora zfs.gentoo zfs.lsb zfs.lunar zfs.redhat zfs.arch +initdir = $(DEFAULT_INIT_DIR) +init_SCRIPTS = zfs +EXTRA_DIST = \ + $(top_srcdir)/etc/init.d/zfs.fedora.in \ + $(top_srcdir)/etc/init.d/zfs.gentoo.in \ + $(top_srcdir)/etc/init.d/zfs.lsb.in \ + $(top_srcdir)/etc/init.d/zfs.lunar.in \ + $(top_srcdir)/etc/init.d/zfs.redhat.in \ + $(top_srcdir)/etc/init.d/zfs.arch.in + all: all-am .SUFFIXES: @@ -304,18 +333,40 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): -zfs.arch: $(top_builddir)/config.status $(srcdir)/zfs.arch.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -zfs.gentoo: $(top_builddir)/config.status $(srcdir)/zfs.gentoo.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -zfs.lunar: $(top_builddir)/config.status $(srcdir)/zfs.lunar.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -zfs.fedora: $(top_builddir)/config.status $(srcdir)/zfs.fedora.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -zfs.lsb: $(top_builddir)/config.status $(srcdir)/zfs.lsb.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -zfs.redhat: $(top_builddir)/config.status $(srcdir)/zfs.redhat.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +install-initSCRIPTS: $(init_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(initdir)" || $(MKDIR_P) "$(DESTDIR)$(initdir)" + @list='$(init_SCRIPTS)'; test -n "$(initdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n' \ + -e 'h;s|.*|.|' \ + -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) { files[d] = files[d] " " $$1; \ + if (++n[d] == $(am__install_max)) { \ + print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ + else { print "f", d "/" $$4, $$1 } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(initdir)$$dir'"; \ + $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(initdir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-initSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(init_SCRIPTS)'; test -n "$(initdir)" || exit 0; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(initdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(initdir)" && rm -f $$files mostlyclean-libtool: -rm -f *.lo @@ -361,8 +412,11 @@ distdir: $(DISTFILES) done check-am: all-am check: check-am -all-am: Makefile +all-am: Makefile $(SCRIPTS) installdirs: + for dir in "$(DESTDIR)$(initdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done install: install-am install-exec: install-exec-am install-data: install-data-am @@ -394,7 +448,7 @@ clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile -distclean-am: clean-am distclean-generic +distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am @@ -408,7 +462,7 @@ info: info-am info-am: -install-data-am: install-data-local +install-data-am: install-initSCRIPTS install-dvi: install-dvi-am @@ -452,26 +506,35 @@ ps: ps-am ps-am: -uninstall-am: +uninstall-am: uninstall-initSCRIPTS .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-data-local install-dvi \ + distclean distclean-generic distclean-libtool distclean-local \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am + install-html-am install-info install-info-am \ + install-initSCRIPTS install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-initSCRIPTS -install-data-local: - @instdest=$(DESTDIR)$(DEFAULT_INIT_DIR)/zfs; \ - $(INSTALL) -TD zfs.$(DEFAULT_INIT_SCRIPT) $$instdest +$(init_SCRIPTS): + -$(SED) -e 's,@bindir\@,$(bindir),g' \ + -e 's,@sbindir\@,$(sbindir),g' \ + -e 's,@udevdir\@,$(udevdir),g' \ + -e 's,@udevruledir\@,$(udevruledir),g' \ + -e 's,@sysconfdir\@,$(sysconfdir),g' \ + -e 's,@initdir\@,$(initdir),g' \ + 'zfs.$(DEFAULT_INIT_SCRIPT).in' >'$@' + +distclean-local:: + -$(RM) $(init_SCRIPTS) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/etc/init.d/zfs.arch.in b/etc/init.d/zfs.arch.in index de2ea8a2d..9fa7cb4bc 100644 --- a/etc/init.d/zfs.arch.in +++ b/etc/init.d/zfs.arch.in @@ -5,7 +5,7 @@ ZFS="@sbindir@/zfs" ZPOOL="@sbindir@/zpool" -ZPOOL_CACHE="@sysconfdir@/zfs/zpool.cache" +ZPOOL_CACHE="@initdir@/zpool.cache" case "$1" in start) diff --git a/etc/init.d/zfs.fedora.in b/etc/init.d/zfs.fedora.in index 04f2077ce..1583a109e 100644 --- a/etc/init.d/zfs.fedora.in +++ b/etc/init.d/zfs.fedora.in @@ -32,7 +32,7 @@ export PATH=/usr/local/sbin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin RETVAL=0 ZFS="@sbindir@/zfs" ZPOOL="@sbindir@/zpool" -ZPOOL_CACHE="@sysconfdir@/zfs/zpool.cache" +ZPOOL_CACHE="@initdir@/zpool.cache" servicename=zfs LOCKFILE=/var/lock/subsys/$servicename diff --git a/etc/init.d/zfs.gentoo.in b/etc/init.d/zfs.gentoo.in index 767aba8f9..31a539cc8 100644 --- a/etc/init.d/zfs.gentoo.in +++ b/etc/init.d/zfs.gentoo.in @@ -13,7 +13,7 @@ depend() ZFS="@sbindir@/zfs" ZPOOL="@sbindir@/zpool" -ZPOOL_CACHE="@sysconfdir@/zfs/zpool.cache" +ZPOOL_CACHE="@initdir@/zpool.cache" ZFS_MODULE=zfs checksystem() { diff --git a/etc/init.d/zfs.lsb.in b/etc/init.d/zfs.lsb.in index c781f05f4..675effe0d 100644 --- a/etc/init.d/zfs.lsb.in +++ b/etc/init.d/zfs.lsb.in @@ -33,7 +33,7 @@ RETVAL=0 LOCKFILE=/var/lock/zfs ZFS="@sbindir@/zfs" ZPOOL="@sbindir@/zpool" -ZPOOL_CACHE="@sysconfdir@/zfs/zpool.cache" +ZPOOL_CACHE="@initdir@/zpool.cache" [ -x $ZPOOL ] || exit 1 [ -x $ZFS ] || exit 2 diff --git a/etc/init.d/zfs.lunar.in b/etc/init.d/zfs.lunar.in index 97384dc83..22df3d2b5 100644 --- a/etc/init.d/zfs.lunar.in +++ b/etc/init.d/zfs.lunar.in @@ -12,7 +12,7 @@ ZFS="@sbindir@/zfs" ZPOOL="@sbindir@/zpool" -ZPOOL_CACHE="@sysconfdir@/zfs/zpool.cache" +ZPOOL_CACHE="@initdir@/zpool.cache" case $1 in start) echo "$1ing ZFS filesystems" diff --git a/etc/init.d/zfs.redhat.in b/etc/init.d/zfs.redhat.in index ae797c11a..2b48e95e9 100644 --- a/etc/init.d/zfs.redhat.in +++ b/etc/init.d/zfs.redhat.in @@ -32,7 +32,7 @@ export PATH=/usr/local/sbin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin RETVAL=0 ZFS="@sbindir@/zfs" ZPOOL="@sbindir@/zpool" -ZPOOL_CACHE="@sysconfdir@/zfs/zpool.cache" +ZPOOL_CACHE="@initdir@/zpool.cache" servicename=zfs LOCKFILE=/var/lock/subsys/$servicename