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
2026-08-29 15:21:29 +02:00
parent f51aee1ec5
commit ef08718200
4 changed files with 15 additions and 13 deletions
+2 -1
View File
@@ -65,4 +65,5 @@ release: distcheck
DISTCHECK_CONFIGURE_FLAGS = --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--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])
AC_ARG_WITH(libsystemd,
AS_HELP_STRING([--without-libsystemd], [Skip replacement libsystemd library, default: yes]),
[with_libsystemd=$withval], [with_libsystemd=yes])
AS_HELP_STRING([--with-libsystemd], [Build replacement libsystemd library, default: no]),
[with_libsystemd=$withval], [with_libsystemd=no])
AC_ARG_WITH(hook-scripts-path,
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
system file. Those directories are no longer chowned to `messagebus`,
matching how Finit ships directories for other daemons
- The bundled `sulogin` and `watchdogd`, and the replacement `libsystemd`,
are now built and installed by default, like keventd and the D-Bus
support. `--without-sulogin`, `--without-watchdog`, and
`--without-libsystemd` opt out. Note, Finit starts `watchdogd` by
itself when the WDT device node exists, and `libsystemd.so` is
installed to `$libdir`, where a system with systemd already has one
- The bundled `sulogin` and `watchdogd` are now built and installed by
default, like keventd and the D-Bus support. `--without-sulogin` and
`--without-watchdog` opt out. Note, Finit starts `watchdogd` by itself
when the WDT device node exists
- The `tty` block takes `passenv`, which the line-based format has had since
v4.4 (issue #286) and the block format was missing
- 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.
Finit starts it when the device node exists, see [Watchdog](watchdog.md).
* `--without-libsystemd`: Drop the replacement `libsystemd`, built and
installed by default, which lets programs that use `sd_notify()` talk
to Finit without systemd. Note, it installs `libsystemd.so` in
`$libdir`, where a system with systemd already has one.
* `--with-libsystemd`: Build the replacement `libsystemd`, which lets
programs that use `sd_notify()` talk to Finit without systemd. Off by
default because it installs `libsystemd.so.0` in `$libdir`: on a host
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>