configure: keep the replacement libsystemd opt-in

Building it by default installs our libsystemd.so.0 in $libdir.  Where
the real one is already present, and contrib/debian/build.sh configures
--prefix=/usr --exec-prefix= on a Debian host, ours outranks it in the
loader cache, and every program linking libsystemd loses
sd_journal_stream_fd and the LIBSYSTEMD_209 symbol versions.  The test
sysroot ran into exactly that, dbus-daemon exited 127 on every restart.

Restore the default to no.  sulogin and watchdogd stay on, they only add
binaries.  distcheck asks for the library so it stays covered.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg committed 2026-08-29 15:21:29 +02:00
1 parent f51aee1ec5
commit ef08718200
4 files changed
+15 -13

No files matched your search

+2 -1
View File
@@ -65,4 +65,5 @@ release: distcheck
DISTCHECK_CONFIGURE_FLAGS = --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ DISTCHECK_CONFIGURE_FLAGS = --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--enable-testserv-plugin --enable-x11-common-plugin \ --enable-testserv-plugin --enable-x11-common-plugin \
--with-fstab=/etc/fstab --with-bash-completion-dir=no --with-fstab=/etc/fstab --with-libsystemd \
--with-bash-completion-dir=no
+2 -2
View File
@@ -191,8 +191,8 @@ AC_ARG_WITH(watchdog,
[watchdog=$withval], [with_watchdog=yes watchdog=yes]) [watchdog=$withval], [with_watchdog=yes watchdog=yes])
AC_ARG_WITH(libsystemd, AC_ARG_WITH(libsystemd,
AS_HELP_STRING([--without-libsystemd], [Skip replacement libsystemd library, default: yes]), AS_HELP_STRING([--with-libsystemd], [Build replacement libsystemd library, default: no]),
[with_libsystemd=$withval], [with_libsystemd=yes]) [with_libsystemd=$withval], [with_libsystemd=no])
AC_ARG_WITH(hook-scripts-path, AC_ARG_WITH(hook-scripts-path,
AS_HELP_STRING([--with-hook-scripts-path=DIR], [Base directory for hook scripts, default $libexecdir/finit/hook]), AS_HELP_STRING([--with-hook-scripts-path=DIR], [Base directory for hook scripts, default $libexecdir/finit/hook]),
+4 -6
View File
@@ -69,12 +69,10 @@ All relevant changes are documented in this file.
`tmpfiles.d/dbus.conf`, so both can be overridden from `/etc` like any other `tmpfiles.d/dbus.conf`, so both can be overridden from `/etc` like any other
system file. Those directories are no longer chowned to `messagebus`, system file. Those directories are no longer chowned to `messagebus`,
matching how Finit ships directories for other daemons matching how Finit ships directories for other daemons
- The bundled `sulogin` and `watchdogd`, and the replacement `libsystemd`, - The bundled `sulogin` and `watchdogd` are now built and installed by
are now built and installed by default, like keventd and the D-Bus default, like keventd and the D-Bus support. `--without-sulogin` and
support. `--without-sulogin`, `--without-watchdog`, and `--without-watchdog` opt out. Note, Finit starts `watchdogd` by itself
`--without-libsystemd` opt out. Note, Finit starts `watchdogd` by when the WDT device node exists
itself when the WDT device node exists, and `libsystemd.so` is
installed to `$libdir`, where a system with systemd already has one
- The `tty` block takes `passenv`, which the line-based format has had since - The `tty` block takes `passenv`, which the line-based format has had since
v4.4 (issue #286) and the block format was missing v4.4 (issue #286) and the block format was missing
- New `provides` setting for run/task/service/sysv blocks, naming conditions - New `provides` setting for run/task/service/sysv blocks, naming conditions
+7 -4
View File
@@ -89,10 +89,13 @@ Below are a few of the main switches to configure:
on `/dev/watchdog`, `--with-watchdog=DEV` selects another device. on `/dev/watchdog`, `--with-watchdog=DEV` selects another device.
Finit starts it when the device node exists, see [Watchdog](watchdog.md). Finit starts it when the device node exists, see [Watchdog](watchdog.md).
* `--without-libsystemd`: Drop the replacement `libsystemd`, built and * `--with-libsystemd`: Build the replacement `libsystemd`, which lets
installed by default, which lets programs that use `sd_notify()` talk programs that use `sd_notify()` talk to Finit without systemd. Off by
to Finit without systemd. Note, it installs `libsystemd.so` in default because it installs `libsystemd.so.0` in `$libdir`: on a host
`$libdir`, where a system with systemd already has one. that has the real one, ours shadows it in the loader cache and every
program linking it, `dbus-daemon` and `udevd` included, loses the
symbols it needs. Safe on a systemd-free system, which is the point
of it.
For more configure flags, see <kbd>./configure --help</kbd> For more configure flags, see <kbd>./configure --help</kbd>