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 605654c233..44aaf61b21 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 b63595be08..0093130475 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 822f89988e..23735e31e0 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 e56d65ef8e..939962d478 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 41740517eb..bb4eedfe9c 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 06ef0a970c..a91f67edc8 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 56e8c47645..3f3142a16b 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 0000000000..6f4a5ae10f --- /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 44aaf61b21..4112061783 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 0093130475..905ab50516 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 23735e31e0..33f78e51cd 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 8640242539..d97d1cacaf 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 8b0f1d5e05..c84d60d308 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 601a25a467..73304bc2cd 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 00bb2681a5..94a21680b8 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 6ca2e27f76..32c73dc9ec 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 de2ea8a2d9..9fa7cb4bc8 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 04f2077ceb..1583a109e0 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 767aba8f96..31a539cc85 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 c781f05f4d..675effe0d8 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 97384dc833..22df3d2b5a 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 ae797c11a5..2b48e95e90 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