diff --git a/config/user-systemd.m4 b/config/user-systemd.m4 index c2105abce0..de2a44f10c 100644 --- a/config/user-systemd.m4 +++ b/config/user-systemd.m4 @@ -2,7 +2,8 @@ AC_DEFUN([ZFS_AC_CONFIG_USER_SYSTEMD], [ AC_ARG_ENABLE(systemd, AC_HELP_STRING([--enable-systemd], [install systemd unit/preset files [[default: yes]]]), - [],enable_systemd=yes) + [enable_systemd=$enableval], + [enable_systemd=check]) AC_ARG_WITH(systemdunitdir, AC_HELP_STRING([--with-systemdunitdir=DIR], @@ -19,16 +20,27 @@ AC_DEFUN([ZFS_AC_CONFIG_USER_SYSTEMD], [ [install systemd module load files into dir [[/usr/lib/modules-load.d]]]), systemdmoduleloaddir=$withval,systemdmodulesloaddir=/usr/lib/modules-load.d) + AS_IF([test "x$enable_systemd" = xcheck], [ + AS_IF([systemctl --version >/dev/null 2>&1], + [enable_systemd=yes], + [enable_systemd=no]) + ]) - AS_IF([test "x$enable_systemd" = xyes], - [ + AC_MSG_CHECKING(for systemd support) + AC_MSG_RESULT([$enable_systemd]) + + AS_IF([test "x$enable_systemd" = xyes], [ ZFS_INIT_SYSTEMD=systemd ZFS_MODULE_LOAD=modules-load.d + DEFINE_SYSTEMD='--with systemd --define "_unitdir $(systemdunitdir)" --define "_presetdir $(systemdpresetdir)"' modulesloaddir=$systemdmodulesloaddir - ]) + ],[ + DEFINE_SYSTEMD='--without systemd' + ]) AC_SUBST(ZFS_INIT_SYSTEMD) AC_SUBST(ZFS_MODULE_LOAD) + AC_SUBST(DEFINE_SYSTEMD) AC_SUBST(systemdunitdir) AC_SUBST(systemdpresetdir) AC_SUBST(modulesloaddir) diff --git a/config/zfs-build.m4 b/config/zfs-build.m4 index 17cc80462c..5eaa49c875 100644 --- a/config/zfs-build.m4 +++ b/config/zfs-build.m4 @@ -160,7 +160,7 @@ AC_DEFUN([ZFS_AC_RPM], [ ]) RPM_DEFINE_COMMON='--define "$(DEBUG_ZFS) 1"' - RPM_DEFINE_UTIL='--define "_dracutdir $(dracutdir)" --define "_udevdir $(udevdir)" --define "_udevruledir $(udevruledir)" --define "_initconfdir $(DEFAULT_INITCONF_DIR)" $(DEFINE_INITRAMFS)' + RPM_DEFINE_UTIL='--define "_dracutdir $(dracutdir)" --define "_udevdir $(udevdir)" --define "_udevruledir $(udevruledir)" --define "_initconfdir $(DEFAULT_INITCONF_DIR)" $(DEFINE_INITRAMFS) $(DEFINE_SYSTEMD)' RPM_DEFINE_KMOD='--define "kernels $(LINUX_VERSION)" --define "require_spldir $(SPL)" --define "require_splobj $(SPL_OBJ)" --define "ksrc $(LINUX)" --define "kobj $(LINUX_OBJ)"' RPM_DEFINE_DKMS= diff --git a/rpm/generic/zfs.spec.in b/rpm/generic/zfs.spec.in index b37b348eeb..20bb36e4ea 100644 --- a/rpm/generic/zfs.spec.in +++ b/rpm/generic/zfs.spec.in @@ -88,12 +88,15 @@ BuildRequires: libudev-devel BuildRequires: libattr-devel BuildRequires: openssl-devel Requires: openssl +%if 0%{?_systemd} +BuildRequires: systemd %endif +%endif + %if 0%{?_systemd} Requires(post): systemd Requires(preun): systemd Requires(postun): systemd -BuildRequires: systemd %endif # The zpool iostat/status -c scripts call some utilities like lsblk and iostat