aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorBenda Xu <[email protected]>2024-04-09 07:52:24 +0800
committerTony Hutter <[email protected]>2024-04-22 09:28:06 -0700
commit6732e223bf700bd8bb45d6af6221f5a9418b1493 (patch)
treea7291cafd5bf8056d4ad6f1fdd9b1e96319cf837 /config
parentbaaac316554273f84c8bec06bddb7c5a09967c09 (diff)
etc/init.d: decide which variant to use at build time.
Let Debian use the sysv-rc variant of the script, even when OpenRC is installed. Unlike on Gentoo, OpenRC on Debian consumes both the sysv-rc scripts and OpenRC ones. ZFS initscripts on Debian should be the sysv-rc version to provide most compatibility and to integrate with the rest of initscripts for dependency tracking. Restrict the substitution in the Makefile to the dedicated list. This construct is inspired by Mo Zhou's detection of the execution shell and follows the strategy of Peter in 6ef28c526ba7. As of 2024, the initscripts are mostly relevant on Debian, Gentoo and their derivatives. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Benda Xu <[email protected]> Issue #8063 Issue #8204 Issue #8359 Closes #15977
Diffstat (limited to 'config')
-rw-r--r--config/Substfiles.am1
-rw-r--r--config/zfs-build.m48
2 files changed, 6 insertions, 3 deletions
diff --git a/config/Substfiles.am b/config/Substfiles.am
index 809eaef23..2459637ab 100644
--- a/config/Substfiles.am
+++ b/config/Substfiles.am
@@ -18,6 +18,7 @@ subst_sed_cmd = \
-e 's|@ASAN_ENABLED[@]|$(ASAN_ENABLED)|g' \
-e 's|@DEFAULT_INIT_NFS_SERVER[@]|$(DEFAULT_INIT_NFS_SERVER)|g' \
-e 's|@DEFAULT_INIT_SHELL[@]|$(DEFAULT_INIT_SHELL)|g' \
+ -e 's|@IS_SYSV_RC[@]|$(IS_SYSV_RC)|g' \
-e 's|@LIBFETCH_DYNAMIC[@]|$(LIBFETCH_DYNAMIC)|g' \
-e 's|@LIBFETCH_SONAME[@]|$(LIBFETCH_SONAME)|g' \
-e 's|@PYTHON[@]|$(PYTHON)|g' \
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index 5f36569fe..bb5a85d81 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -578,13 +578,15 @@ AC_DEFUN([ZFS_AC_DEFAULT_PACKAGE], [
AC_MSG_CHECKING([default shell])
case "$VENDOR" in
- gentoo) DEFAULT_INIT_SHELL="/sbin/openrc-run";;
- alpine) DEFAULT_INIT_SHELL="/sbin/openrc-run";;
- *) DEFAULT_INIT_SHELL="/bin/sh" ;;
+ gentoo|alpine) DEFAULT_INIT_SHELL=/sbin/openrc-run
+ IS_SYSV_RC=false ;;
+ *) DEFAULT_INIT_SHELL=/bin/sh
+ IS_SYSV_RC=true ;;
esac
AC_MSG_RESULT([$DEFAULT_INIT_SHELL])
AC_SUBST(DEFAULT_INIT_SHELL)
+ AC_SUBST(IS_SYSV_RC)
AC_MSG_CHECKING([default nfs server init script])
AS_IF([test "$VENDOR" = "debian"],