From: Michael Tremer <git@ipfire.org>
To: ipfire-scm@lists.ipfire.org
Subject: [git.ipfire.org] IPFire 2.x development tree branch, next, updated. c85bad4d04875880174ca440b2f057de56c1e557
Date: Mon, 26 Oct 2026 17:00:07 +0000 (UTC) [thread overview]
Message-ID: <4jD0HD14KPz2xVw@people01.haj.ipfire.org> (raw)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 176874 bytes --]
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".
The branch, next has been updated
via c85bad4d04875880174ca440b2f057de56c1e557 (commit)
via e713fa3125ec052ac79d66b9b9ab6ef179579e40 (commit)
via 615b4fb06ea3e488f4b01a9a2ab89b27ceb24d82 (commit)
via 2d532e820dda398e80d666b42f3855c7a85a7ef7 (commit)
via 8ab05dde42c09f1bb143d18559bfa85b52ed50d1 (commit)
via e46c6d5440174bdf0dd3fe93bc501f76afb8c9a2 (commit)
via 1baaae3fe2bcdf4b62cb2eb7b3f30186cb7ac3ae (commit)
via ed825bc835bd24b4bcabba29577533303283fefc (commit)
via 2164bb89b342506a39b0e7f99310a9b3786f8c23 (commit)
via 5d587f6095389e1fb676fe6ee1c773b13f263b06 (commit)
via a24287d2ca5c9465783a85b4c2bd875cea5a395f (commit)
via 074d18a485859778eb06b4bb449fa6a9b51606c2 (commit)
via 9142b0bb01936c031028f65245e9d2aefe361203 (commit)
via c7ef9b7f2e14c875b92772ba3eafa3445d36b04b (commit)
via 9387983a7af0a04fd16f9259ebb80dd03c09c701 (commit)
via ba35f852555d1b6a82c709b3487e769f2715211e (commit)
via 71b3a8b426f036ed705dfad5bd1212a1fd7791d6 (commit)
via 2de311de0cb779250bdbeb51adfc7321cc04c86f (commit)
via f7643e06c0de1681d4be4d2ef349874d9fb04999 (commit)
via 68a046ec89fdaa6334c69a8791c365f174561485 (commit)
via 9302fa3703a5ab0c4a58a471d1ad1e9f5d35e6a8 (commit)
via babb8933197f85d9b3c87209e3ab7c193ef64f49 (commit)
via f8316acf8ce8e223b8854de7dca0ab3bfbfb83c3 (commit)
via ec81ce0904a41474094f8f8c967ac6e69c60cf56 (commit)
via c82c3dc63cd2e310d471b7a0d3e7eebc01d93cf6 (commit)
via eb476a3b3d70cacd5629cccc199efaf56058b737 (commit)
via e7e5ef6398bc3e0f0527872e24bcc4100ba407f8 (commit)
via 5f207b122264100344ca255905fea5e029b8d1ee (commit)
via 6d1638bb71f085b8ad20065d1ccae41ab281b3a4 (commit)
via d94fec95f550a0a4f544bd7e395b0fccdd4580f9 (commit)
via fb989bfa7e59b8f92119f3f06d2d42fea4f21fb1 (commit)
from 36600237689219cfb8ff1e67fa4ab8837c9f694c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c85bad4d04875880174ca440b2f057de56c1e557
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 16:30:35 2026 +0000
Config: Remove Go's telemetry counters after building a package
Go writes usage counters to /root/.config/go/telemetry whenever it runs,
which showed up as new files of whatever package happened to run it
(e.g. swig and amazon-ssm-agent).
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit e713fa3125ec052ac79d66b9b9ab6ef179579e40
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 16:29:13 2026 +0000
linux: Update the x86_64 rootfile
The aligned kernel configuration builds a few more modules (and some that
used to be built-in, e.g. NAT and Hyper-V's VMBus) which have been missing
from the rootfile. They have been shipped anyways because the entire
module directory is being packaged.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 615b4fb06ea3e488f4b01a9a2ab89b27ceb24d82
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 16:19:12 2026 +0000
fireperf: Update to version 0.3.0
This also backports two changes from after the release:
- uring: Register the pool only once all workers have their rings
(fixes #14366)
- server: Log the tests that clients have run, and add --quiet
The patch for gettext 0.25 is no longer needed.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 2d532e820dda398e80d666b42f3855c7a85a7ef7
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 16:09:16 2026 +0000
core206: Don't ship dracut again
This has already been shipped in Core Update 205.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 8ab05dde42c09f1bb143d18559bfa85b52ed50d1
Merge: ba35f8525 e46c6d544
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 16:09:03 2026 +0000
Merge branch 'master' into next
commit e46c6d5440174bdf0dd3fe93bc501f76afb8c9a2
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Tue Oct 20 09:41:03 2026 +0000
zone-sync: Update to 0.0.3
zone-sync now uses IXFR to only fetch the changes of a zone, tries all
addresses of the primary, and fixes a number of crashes and leftover
files in the zone directory.
The man page is now built from asciidoc, which we don't have, so we
don't build it.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
(cherry picked from commit 5a8e7251e3bfd9459d196360777af713fbc01651)
commit 1baaae3fe2bcdf4b62cb2eb7b3f30186cb7ac3ae
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 15:59:58 2026 +0000
core205: Ship ids-ruleset-sources
ThreatFox now requires an Auth-Key for downloads.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit ed825bc835bd24b4bcabba29577533303283fefc
Author: Adam Gibbons <adam.gibbons@ipfire.org>
Date: Mon Oct 26 11:07:50 2026 +0000
ruleset-sources: Require an Auth-Key for ThreatFox downloads
Since 21 October 2026, ThreatFox file exports require an abuse.ch
Auth-Key.
News link: https://www.linkedin.com/posts/abuse-ch_authenticate-steadyplatform-steadysignal-activity-7518660733203832832-ohAX
IPFire's ThreatFox provider still uses the unauthenticated download URL,
which prevents ruleset updates.
I have tested a two-line change that marks ThreatFox as requiring a
subscription code and uses the authenticated v2 export URL. This reuses
the existing WUI "Subscription Code" field, stored provider settings and
URL substitution.
Fixes bug report: https://bugzilla.ipfire.org/show_bug.cgi?id=14664
Signed-off-by: Adam Gibbons <adam.gibbons@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
(cherry picked from commit 469d6976d80dc4c3edbae7b99603c29b67d56a0d)
commit 2164bb89b342506a39b0e7f99310a9b3786f8c23
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 15:54:51 2026 +0000
core205: Remove files from dracut-ng that dracut no longer ships
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 5d587f6095389e1fb676fe6ee1c773b13f263b06
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 15:54:43 2026 +0000
core205: Ship dracut
Core Update 205 ships glibc 2.44 with which dracut-ng 108 no longer finds
most kernel modules. Since this update regenerates the initramfs, systems
would otherwise lose drivers for many storage controllers.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit a24287d2ca5c9465783a85b4c2bd875cea5a395f
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 15:28:48 2026 +0000
cdrom: Don't add Netronome and LiquidIO drivers to the installer
Their firmware alone is about 39 MiB which is more than half of the
installer. It is very unlikely that anyone would install IPFire over the
network using one of those SmartNICs.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
(cherry picked from commit 2de311de0cb779250bdbeb51adfc7321cc04c86f)
commit 074d18a485859778eb06b4bb449fa6a9b51606c2
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 12:52:19 2026 +0000
cdrom: Make the installer smaller
The installer does not need any CPU microcode, and it brings its own
networking, so we can omit dracut's network stack and a few other modules
that it does not use (NFS, CIFS, LVM, ...).
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
(cherry picked from commit c82c3dc63cd2e310d471b7a0d3e7eebc01d93cf6)
commit 9142b0bb01936c031028f65245e9d2aefe361203
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 12:40:51 2026 +0000
cdrom: Compress the installer with zstd -19
The installer is only being built once, so we can afford compressing it
harder than a regular initramfs which is regenerated on every system.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
(cherry picked from commit eb476a3b3d70cacd5629cccc199efaf56058b737)
commit c7ef9b7f2e14c875b92772ba3eafa3445d36b04b
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 15:10:22 2026 +0000
installer: Don't add any graphics drivers
The installer only needs a text console which is provided by the kernel
(simpledrm, efifb and vesafb are built in). The drm module however adds
all GPU drivers and their firmware which has made the installer about
250 MiB larger since dracut finds all kernel modules again.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
(cherry picked from commit 9302fa3703a5ab0c4a58a471d1ad1e9f5d35e6a8)
commit 9387983a7af0a04fd16f9259ebb80dd03c09c701
Author: Adolf Belka <adolf.belka@ipfire.org>
Date: Mon Oct 26 14:25:33 2026 +0100
dracut: Update to version 112 and move from dracut-ng to dracut
- Update from version 108 to 112
- The dracut github repo and website now refer to it as dracut and no longer dracut-ng
- The github repo used to be dracut-ng/dracut-ng but it is now dracut-ng/dracut
- The website is still headed dracut-ng but all pages refer to dracut.
- The tarball was called dracut-ng when version 108 was installed but all tarballs have
now been changed to just dracut.
- Based on above I have changed dracut-ng to dracut for the lfs and rootfile and also
changed it in make.sh
- Update of rootfile
- dracut-version.sh was removed and dracut-init.sh was refactored into dracut.sh in
dracut-110
- Changelog
112
Notes
This release includes the following security related commits:
network-legacy: sanitize DHCP values in dhclient-script.sh (11577739)
overlayfs-crypt: prevent eval injection in parse_overlay_opts() (584e95be)
dracut-lib: sanitize variable assignments using eval (4d2d812b)
base: add escape function implementing printf %q (207c3397)
systemd-networkd: escape values from DHCP options (b456aee2)
iscsi: normalize initiator and target names (843af3e7)
net-lib: validate iSCSI LUN parameters (05c02db9)
This release includes the following new dracut modules:
chrony: introducing the chrony module (4d64d0b9)
qcom-adsp: add module to load Qualcomm ADSP module pre-udev (647a685d)
Bug Fixes
remove basename calls (1898470b)
remove dirname calls (66111f49)
replace true by : (37717095)
base: use printf instead of echo for hook variable (ceadcea0)
bluetooth: skip warning when module is explicitly requested (f334ea7c)
crypt: do not call return to exit a systemd generator (fbb7270e, closes #2490)
dbus: restrict After/Requires removal patterns (95a4da1b)
docs: declare the correct location to report vulnerabilities (6a9d409f)
dracut:
write force_drivers cmdline file in one step (f72f94a2)
use dstdir in build_ld_cache() (6b7db010)
do not exit the loop in push_user_devs() without checking all items (573b91ee)
do not exit the loop in push_host_devs() without checking all items (b57d2c2e)
log warning if touch fails (fcffd4a0)
two typos in the 3cpio fallback (852aeeb2)
default to hostonly_cmdline=no in chroot (67d82872)
properly pass user-supplied SBAT to ukify (abef6535)
remove support for tmpfilesconfdir (fb09ec26)
support chmod applet from busybox (8a0ee588)
dracut-functions:
reset _found flag per rule in inst_rules() (a0383c8d)
correct hostonly path for Gentoo sysusers (f037de42)
dracut-install:
check return value in modalias read() (379e6b35)
handle empty string in dir_len() (0224b30e)
remove FTS_NOSTAT in install_modules() fts traversal (40e7af01)
dracut-lib: sanitize variable assignments using eval (4d2d812b)
dracut-systemd: add ordering constraints (8aa5c93b)
dracut.conf.5: move fstab/chroot warning to hostonly_mode section (1374dc95)
iscsi:
normalize initiator and target names (843af3e7)
handle empty URI in firmware boot mode (3c1a3846)
kernel-modules:
include xhci-pci-prom21 for early USB (bccf5798)
add Mediatek MTU3 USB controller (8f243cfb)
lunmask: use function in parse-lunmask.sh (4815bf38)
mdraid:
escape slash in sed regular expression (a76d9cbe)
install 59-persistent-storage-md.rules only when needed (78c043a9)
net-lib: validate iSCSI LUN parameters (05c02db9)
network-legacy: sanitize DHCP values in dhclient-script.sh (11577739)
network-manager: prevent command injection while parsing DHCP options (589bef03)
nfs: rpc.statd binary is not required for NFSv4 (d152163a)
nvmf:
parse json output from "nvme list-subsys" (c2729e52)
make network driver determination work without nbft$X (21db5cb4)
overlayfs-crypt: prevent eval injection in parse_overlay_opts() (584e95be)
systemd-*: add new dlopen dependencies to modules lists (7ef765d6)
systemd-networkd:
use another name for the default .network file (0d35650a)
escape values from DHCP options (b456aee2)
get DHCP options values from networkctl (7c57b1cc)
systemd-pcrextend: add missing systemd-pcr{nvdone,osseparator}.service (e57ad524)
systemd-tmpfiles: do not include tmpfiles configured in /etc (73e9b649, closes #1706)
systemd-udevd: install systemd-udevd-varlink.socket (4323cf07)
tpm2-tss:
add missing 60-tpm2-id.rules (5e133721)
add missing systemd-tpm2-setup-early.service (98d6a569)
usrmount: filter out subvolid option for btrfs (26bafde3)
virtfs: move mount hook to pre-mount (7e02a913)
Performance
devicetree-firmware: do not call inst_multiple if there are no fw files (c1cb94f0)
dracut-systemd: drop ExecStart from oneshot shutdown service (bb2f35cb)
systemd-modules-load: remove duplicate paths from inst_multiple (a1b9f9ec)
systemd-networkd: remove duplicate service from inst_multiple (d2599468)
systemd-sysctl: remove duplicate paths from inst_multiple (40eae157)
systemd-tmpfiles: do not install systemd-tmpfiles-clean.service (ce430f1e)
udev-rules:
do not install the mtp-probe udev helper (9f772844)
do not install the hid2hci udev helper (bc63ac2c)
do not try to install fw_unit_symlinks.sh (d0146924)
do not try to install create_floppy_devices (55bf9202)
do not try to install udev built-ins (b82d7152)
do not try to install 59-scsi-sg3_utils.rules (4c226acd)
do not try to install 95-udev-late.rules (5c227d40)
Features
check shellcode to support busybox (25bedc75)
Makefile: allow running syntax checks separately (3a489b1c)
base: add escape function implementing printf %q (207c3397)
chrony: introducing the chrony module (4d64d0b9)
dracut:
add module to load Qualcomm ADSP module pre-udev (647a685d)
add parameter --nvmf-nbft-mode (146927ce)
network-manager:
write info about NTP servers in dhcpopts file (8b77df75)
use escape to drop requiring bash (9c7459bd)
nvmf:
set rd.nvmf.nm=1 if NetworkManager 1.54 is detected (97858467)
allow using system interface naming policy (00df7431)
add dracut.conf option nvmf_nbft_mode (bc1f1405)
enable adapting to NBFT reconfiguration (3ecd3048)
resume:
include in hostonly sloppy mode if supported by kernel (0589c659)
add debug logs to check() (03a5ea09)
systemd: drop unnecessary dependency on libgcrypt (0406aa64)
systemd-networkd: write info about NTP servers in dhcpopts file (96c9d5c4)
111
Performance
export DRACUT_ARCH globally (c50c04b0)
systemd-sysext: do not attempt to install extension metadata (25ffc0f0)
Features
derive systemd generator name dynamically from script (6ff36870)
crypt-lib: introduce crypt-lib dracut module (8a82565e)
dmsquash-live: add busybox blkid compatibility (7c0298a7)
dracut:
add module to add fw files from DT firmware-name properties (725fe30b)
add a DRACUT_EXTRA_ARGS environment variable (99738e52)
dracut-catimages.sh: move images directory from /boot to /var/lib (6bfd026e)
overlayfs: support tmpfs size parameter in rd.overlay (9740a99a)
overlayfs-crypt: add new encrypted persistent overlay support (c74f8ac2)
systemd-sysext: include systemd-{sys,conf}ext-sysroot services (205415b5)
systemd-sysusers-service: systemd-sysusers.service module (e0a7c9e2)
Bug Fixes
disable hostonly_cmdline for Gentoo by default (6c772faa)
explicitly set and document Gentoo defaults (86dae808)
avoid arguments for dot commands (045e9e30)
set DRACUT_TMPDIR before using it in dlog_init() (56ba87ad)
SYSTEMD-IMPORT: remount /sysroot with dev and suid flags (32d12606)
base: move initrd.target.wants symlink creation to wait_for_dev (d971230a)
crypt:
use systemd generator for setting the timeout (951be8ce)
use -d instead of -f to check for $NEWROOT/proc directory (57edbca1)
honor timeout setting when using UUID, LABEL, etc (89d5f2cb)
dbus: remove After/Requires from dbus service/socket (6102479e)
dmsquash-live:
correct det_img_fs implementation (f3d81b8d)
load kernel module before mount (9ca2cec1)
dracut:
do not record parameters that do not change the initrd (44a15508)
remove leading space from recorded arguments (0a62cc4a)
inst_libdir_file() does not have a -o option (a8b2a995)
determine hostonly_cmdline after hostonly setting (6cfafda4)
properly detect kernel version with --sysroot (d19f65d1)
enable hostonly_cmdline in hostonly mode again (04af3c09)
remove unused dracut_no_switch_root (f61865ce)
remove udevrulesconfdir variable (d867f00d)
remove unused host_fs_all (8ef39d08)
dracut-catimages.sh:
do not create overlay image without image directory (66336959)
do not call shift for options without arguments (e46ac221)
log proper missing images directory (1d78fd0e)
dracut.sh: use printf instead of echo in mark_hostonly (002f0901)
functions: prevent find_binary from dropping last PATH element (d1c3b6ff)
kernel-modules: install mmc drivers on all architectures (18cfdccd)
kernel-modules-export: use return instead of exit in pre-pivot hook (9c6fce6a)
man: inst_libdir_file() does not have a -o option (8cdd3675)
memdisk: use return instead of exit in cmdline hook (ce9337e4)
network-legacy: add input validation to RFC 3442 route parser (4497dafb)
overlayfs: unmount NEWROOT before mounting overlay (eef62a5b)
overlayfs-crypt: make module-setup.sh executable (29af32af)
ppcmac: use return instead of exit in pre-udev hook (5d81516b)
shutdown: warning printed unconditionally (7f5c88cf)
squash-lib: inst_libdir_file() does not have a -o option (e4a2555e)
syslog: use return instead of exit in initqueue/online hook (ce808b75)
systemd-cryptsetup:
only filter out modules for strict hostonly (c94b1b16)
load libcryptsetup via dlopen (60a5e034)
systemd-networkd:
create /run/systemd/network if missing (93465460)
check if units exist before enabling them (eed94b22)
systemd-pcrextend: add NVPCR definition files (e6b27fd2)
systemd-repart: load libfdisk via dlopen (0a6e83db)
systemd-sysext:
add dependency to systemd-veritysetup (87f4ffd2)
install kernel modules for common disk images (70807834)
systemd-veritysetup: validate dm-verity signatures in userspace (f20fd63e)
zipl: repair parsing of rd.zipl=LABEL|UUID|...= (75731188)
revert: systemd requires cryptsetup targets installed earlier (802c7393)
110
User notes
The systemd-pcrphase module has been renamed to systemd-pcrextend to align with
upstream systemd changes.
The following modules are new for this release:
memdisk
systemd-import
Distributor notes
The separate dracut-version.sh has been removed.
In order to set the distributor version (e.g. when packaging dracut), set
DRACUT_FULL_VERSION when calling make.
When packaging an unreleased snapshot version, please also set
DRACUT_MAIN_VERSION to a version string identifying the base version + commit.
As an example, when packaging a release of dracut as an RPM, use an
invocation like so:
%build
%make_build DRACUT_FULL_VERSION="%{version}-%{release}"
%install
%make_install DRACUT_FULL_VERSION="%{version}-%{release}"
Bug Fixes
avoid leading spaces in systemd units (68cd066c)
grammatical errors (2b992cae)
Makefile:
broken symlink in dracut config examples (c30fdf0f)
improve support for shfmt v3.8.0+ (96d95db4)
correct path for man pages for service files (a18fc183)
base: ensure that /run survives switch_root (b9ecf13f)
cpio: archive correct minor numbers (dca4a403)
crypt-gpg: support missing /etc/dracut.conf.d (786e8f27)
dm: add explicit rootfs-block dependency (5e7e4cd3)
dmsquash-live-autooverlay:
check that parted is present (3290d186)
re-read partition table after creation (99d25ea0)
dracut:
also check libraries when resolving lazy (9becd78c)
move libdirs to dracut-functions.sh (6fe23c38)
move defining DRACUT_LDCONFIG to dracut-functions.sh (294b3583)
remove trailing null characters from SBATs when building UKIs (785fbf8b)
use proper dracut logging when possible (2298980b)
ensure that inst is called after DRACUT_NO_XATTR is computed (1e504843)
move comment back to related dracut_args variable (01efc845)
source dracut-functions.sh before calling dwarning (8552a0f4)
ignore shellcheck SC2329 in addition to SC2317 (d82bff14)
ignore failing find_binary dracut-install (26c55932)
remove newlines from libdirs variable (62d71056)
--printconfig does not work without --force (00bc4fc2)
shellcheck SC2086 (c47e8910)
dracut-functions: check for kmod (4458505e)
dracut-init: do not set DRACUT_KERNEL_MODALIASES for --no-kernel (902bd6ce)
dracut-install:
resolve dependencies even if not executable (fff546a2)
build with -Werror=discarded-qualifiers (f2d0e638, closes #1877)
dracut-logger:
do not require debug to be defined (aa94df95)
disable kernel logging if /dev/kmsg is not writable (49c32f9f)
allow dlog_init to print multiple errors (6aa1abf3)
do not export maxloglvl and syslogfacility (f7fd8d3f)
dracut-systemd:
do not error out with new root= options handled by systemd (529bf27d)
use expected PS1 in the emergency shell (ccd096a1)
dracut.conf.d: demote uki-virt to CI only (39e7cf1f)
functions: do not use path escapes for non-paths (c04ee829)
i18n: remove Gentoo workaround that is no longer needed (53ed2794)
livenet: correct check for deprecated rd.live.overlay.overlayfs (3f3c377b)
man:
avoid bold italic text (fd090e10)
avoid nesting italic in bold text (cdd3daac)
multipath: always forcefully load multipath modules (5ace3b01)
nfs:
simplify DRACUT_CP arguments to increase portability (703c8c19)
do not execute logic in nfs hooks if netroot is not nfs (bf29f4b7)
set the default group of the rpcbind user to the state dir (90dc4436)
overlayfs: make overlayfs-lib.sh executable (186d15df)
plymouth: avoid warning if /etc/plymouth/plymouthd.conf is not present (45d560bb)
release:
use correct argument for head(1) to split header out (5f3c23aa)
use the correct variable to set the new project version (a9114d49)
use correct arguments for head(1) and tail(1) calls (77c0d577)
only install clog-cli if it isn't already installed (d04db3be)
systemd: only install systemd-coredump with systemd-coredump dracut module (a8268a4d)
systemd-cryptsetup: increase ordering to resolve regression (d7bdbbb7)
systemd-networkd:
ensure zzzz-dracut-default.network cleanup (da3353f0)
install and enable systemd-networkd-resolve-hook.socket (84c05fc6)
systemd-pcrphase: do not print an error if an optional binary is not found (7f45703d, closes #2094)
systemd-portabled: do not call portablectl (2a0b1f4e)
test/DMSQUASH: zero overlay partition on reset (ca2335fb)
tpm2-tss: add tss user/group in addition to sysusers config (28adf6f9)
Performance
dracut:
remove duplicate export libdirs (329344bc)
unset threecpio_help_output after usage (724da6ef)
re-use cached 3cpio --help output (e9c3e0bf)
replace grep by bash pattern matching (ddd6a7d3)
nfs:
do not source /lib/nfs-lib.sh twice (0b086e9f)
remove references to old rpcbind state dir (2f49cbbe)
resume:
remove unreachable code (f1ccdaa3)
do not search cmdline options in /etc/cmdline{,.d} (67e8c3d5)
do not attempt to install systemd-hibernate-resume@.service (ddb46200)
Features
memdisk dracut module (f1d6a0bc)
merge rd.overlayfs into rd.overlay (d90c59bb)
replace DRACUT_RESOLVE_DEPS by !DRACUT_RESOLVE_LAZY (1d302268)
rename rd.overlayfs.readonly to rd.overlay.readonly (bcefa9d0)
warn in case 3cpio is present but not suitable (dbd9f0ee)
rename rd.live.overlay to rd.overlay (d6872bbd)
move DRACUT_VERSION from dracut-version.sh into dracut.sh (d5e985d4)
add yamllint config (55ed61f2)
always preserve file ownership (24838e08)
remove rev_lib_symlinks (9d668b20)
remove inst_any (d5571c91)
source dracut-logger.sh from dracut-functions.sh (ffc10b06)
remove unused and undocumented argument (b8651e7b)
add header comment to units created by systemd generators (c80025d6)
rename rd.live.overlay.overlayfs to rd.overlayfs (b77ae7eb)
Makefile: do not install network-legacy by default (30d121b1)
base: support cmdline options in /run/initramfs/cmdline.d (bac8b3da)
cpio: zero device major/minor numbers (0bdecd92)
dmsquash-live: allow booting from compressed ostree filesystems (69a43970)
dracut:
introduce additional hooks locations (04d5e294)
allow hostonly mode if /sys /proc or /run is missing (399e555f)
expose determine_kernel_image as a public function (dd45cbff)
add busybox support for 3cpio and enhanced_cpio (b6877562)
drop unreachable code for dracutbasedir/initdir (71d51e72)
disable xattr when creating cpios (941b18d0)
print $uefi with --printconfig (f235dcb7)
add support for --ukify, --no-ukify (7ec5fbbe)
always check DRACUT_INSTALL being executable (886725eb)
print $initrdname with --printconfig (71a713bb)
dracut-systemd: preserve the content of /var/lib/systemd (fd370b39)
gentoo: introduce a distro config file to default out of ukify (918d54c1)
livenet: support root=http:* as alias for root=live:http:* (7555aca3)
lvm: match host lvm recovery installation (4fd5d2f3)
network-manager: add systemd generator if available (b6329a08)
no-xattr: no longer support no-xattr config (8a915c95)
overlayfs: add persistent device overlay support (716fd4ff)
pcsc: add openSUSE support (254185a6)
qemu-net: auto-add qemu-net if net-lib and qemu included (94b21ab3)
systemd: install new dlopened libraries (1ae49bf5)
systemd-import: introducing the systemd-import module (9297137f)
systemd-pcrphase: rename to systemd-pcrextend (a4a34611)
tpm2-tss: add openSUSE support (66279611)
virtfs, virtiofs: auto-add dracut module if qemu included (f77b1c08)
109
Performance
improve logger efficiency (fd685905)
Features
dracut.sh: try $STRIP for $strip_cmd first (862248dc)
Makefile:
filter out warpclock on S390(x) systems (287c4f66)
filter out s390 specific dracut modules (fe6c4702)
introduce distclean target (bb02f40a)
set Dracut version on install (86d1d086)
configure: autoconfigure configprofile (eada0fb9)
debian.conf:
default to initrd.img-${kernel} on Debian/Ubuntu (5748845e)
add i18n_vars for Debian/Ubuntu (c3078914)
dracut:
add support for /run/initramfs/dracut.conf.d (82cd3d37)
support setting compression level separately (ebb7d787)
support 3cpio for creating initrds (2abaced7)
print the computed configuration and exit (8e24c4bf)
make hostonly the default (24fb4c28)
dracut.conf.d: move examples into subdirectories (d486a909)
dracut.sh: output error message for --regenerate-all (3d58272e)
fedora: switch to strict hostonly mode by default (bc69bf4e)
kernel-modules-export: make kernel modules from initramfs available (21096b7e)
lsinitrd: support 3cpio (7b1612fc)
network-manager: remove support for ifcfg-rh (63baa4e7)
pcsc: add Debian/Ubuntu support (1575aea4)
plymouth:
drop unused plymouth-populate-initrd (d0a66a0f)
do not check plymouth-populate-initrd for "nash" (997be461)
use simpledrm if Plymouth is configured to it (7f41458b)
qemu: install sd_mod driver (2aaf5673)
skipcpio: output additional CPIO information (3841274d)
systemd-networkd: do not require bash (9f2e8da7)
Bug Fixes
line-buffer log output to /dev/kmsg (cfc3fc61)
typo in awk script in _do_dlog_batch_kmsglog (f0d64b02, closes #1803)
make logging functions return 1 only on invalid log level (5f9d2858)
partial revert for hostonly sloppy mode (ac8cb5e5)
place dracut generated cmdline conf files in the 10-49 range (8680a553)
ignore shellcheck SC2329 in addition to SC2317 (c782a166)
make sure final hostonly value is computed before reading it (8d9887bd)
74nvmf:
make sure autoconnect script is run at least once (f879b04d)
only set netroot if it's yet empty (1b11affd)
set root=nvmf (585d7419)
Makefile:
correct filter condition for s390 specific modules (cf735287)
correct loop variable (c2ed439a)
exclude hidden directories from shellcheck part 2 (a421ac07)
exclude hidden directories from shellcheck (7a65d1a1)
use install for installing files (882923bc)
remove the heuristic to determine fallback kernel version (b97ab4a8)
UKI: explicitly specify '--uname' (70466f56)
base:
set udev log level properly (aae995ec)
silence error log if shadow does not exists (55256afa)
btrfs: write cmdline in install() (c7b11828)
cpio:
use mutex to avoid multi-threaded failures (587e7646)
unit test regression from GNU cpio changes (41b20165)
dbus, network-manager: make generic mode host independent (2e14afe8)
debian:
no need to change permissions (f14e3a25)
lower the ordering number for debian conf (33a62941)
remove Debian 12 support (68b0f63f)
debian.conf: re-enable hostonly_cmdline (3a85060c)
dm,dmraid: shellcheck SC2268 (b138454b)
dmsquash-live: install required stat binary (46369b3b, closes #1780)
doc: correct spelling mistake of recommended (62be5b25)
doc_site: remove reference to udev < 143 (4cfac2cf)
dracut:
use grep -q/-s to silence output/error (a80703e8)
install items before dracut modules are included (a2ebe31b)
add support for kernel name Image (df933559)
enforce that hostonly is set for hostonly_install (32b3b8c7)
library directory creation in --kernel-only (52155dde)
use "-name" to avoid find matching temporary directory (5c53a810)
decrease logging by default (86cc122e)
do not call uname -r in chroot environments (d4355425)
look for both vmlinuz and vmlinux for UKI creation (686ab140)
dracut-init:
remove obsolete comment (b1fab596)
remove the heuristic to determine fallback kernel version (f9328b25)
dracut-install:
initialize the fts pointer (60823653)
cache resolve_deps calls for speed and less noise (c3331ed4)
handling of multiple sonames in dlopen JSON (23d32545)
broken calls to mmap with 0 length (063927bd)
the handling of absolute paths in sonames (3484061b)
the RUNPATH expansion returning empty strings (950ebcbe)
the -n short option for --dry-run (3d4763ac)
dracut-rescue: add support for /run/initramfs/dracut.conf.d (05692b89)
dracut-systemd:
install grep if initqueue is used (ba6229e1)
avoid matching extra root= substrings in cmdline (4590c31a)
dracut-util: crash if CMDLINE ends with quotation mark (4f6ca33d)
dracut.sh: check that custom fw search patch exists before reading it (89dcdd91)
dracut.sh,lsinitrd.sh: use obj{copy,dump} set by toolchain (8d870e63)
fedora: always include chroot binary (aaed766b)
fs-lib: include modules for charsets for working vfat support (51bd1331)
hwdb: make module-setup.sh executable (118b3656)
iscsi:
only enable services if they are included (63c48471)
modify iscsid.service in initrd instead of host (edd89c73)
drop ExecStartPre startup-checks.sh from iscsid.service (b2287bb7)
do not include /etc/iscsi/iscsid.conf in generic mode (9b14963b)
kernel-modules: add Cadence USB driver to base (ff6a30c8)
kernel-modules-extra: remove stray \ before / (614e9d34)
livenet: source img-lib.sh for check_live_ram (a9f52182)
lsinitrd:
drop --verbose from cpio --to-stdout call (4a5b728b)
use lowercase skip variable name (8c3a6b6d)
avoid rechecking for squash images (18af4e93)
man:
move the documentation hostonly and hostonly_mode variables (bd0685ad)
expand the documentation for hostonly-cmdline (6a38b720)
multipath: add udev rule 99-z-dm-mpath-late.rules (de8b63f5)
net-lib: always include af_packet (e6f89767)
network: handle network selection properly (8f076010)
network-manager:
hostname not set with old systemd service units (a33ae68d, closes #1743)
load required kernel modules (584fb47c)
nvmf: do not install hostonly configuration in generic initramfs (8b816ea9)
overlayfs: overlayfs should not use rootfsflags as mount options (deeb670c)
plymouth:
do not install plymouth-set-default-theme into initrd (1120dbc5)
check all library directories for Plymouth (1ac7e21e)
drop depending on bash (deb3717b)
release: force push (for updating) (d71b6f51)
resume: avoid matching extra resume= substrings in cmdline (a58b30e2)
systemd:
make dbus optional dependency (fdfa8998)
add compatibility with systemd v258 (eeef28a5)
systemd-networkd: correct path of 99-default.network on hostonly=no (523c9b05)
systemd-portabled, initqueue: enable systemd type units (51a0e49f)
systemd-sysext:
stop adding *.raw to the initramfs automatically (f7f7e856)
skip manual systemct enablement for systemd>=258 (73ad42fa)
package initrd.target.wants symlinks (74e04b63)
systemd-sysusers:
spelling of after (d361c3f0)
increase ordering from 68 to 78 (80bc6ba1)
test: make sure $1 is not read as an unbound variable (fbbd7d5f)
test-functions: use absolute path (088bef78)
test-makeroot: make it dependent on initqueue (e588aeaf)
ubuntu: set DISTRIBUTION when building container (211a1e7a)
virtfs, virtiofs: dracut module should not delete rootfs files (54c0f12f)
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
(cherry picked from commit ec81ce0904a41474094f8f8c967ac6e69c60cf56)
commit ba35f852555d1b6a82c709b3487e769f2715211e
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 15:43:39 2026 +0000
p11-kit: Build without debugging information
The configure script adds -g unless debugging is disabled.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 71b3a8b426f036ed705dfad5bd1212a1fd7791d6
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 15:43:39 2026 +0000
harfbuzz: Build with our compiler flags and without debugging information
Passing cpp_args to meson made it ignore CXXFLAGS, so that the C++ code
was built without our hardening flags. The default build type also added
debugging information that we strip away later anyways.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 2de311de0cb779250bdbeb51adfc7321cc04c86f
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 15:28:48 2026 +0000
cdrom: Don't add Netronome and LiquidIO drivers to the installer
Their firmware alone is about 39 MiB which is more than half of the
installer. It is very unlikely that anyone would install IPFire over the
network using one of those SmartNICs.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit f7643e06c0de1681d4be4d2ef349874d9fb04999
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 15:27:06 2026 +0000
make.sh: Don't build Rust code with debugging information
Some packages (e.g. Suricata) enable debugging information in their
release profile which we strip away later anyways.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 68a046ec89fdaa6334c69a8791c365f174561485
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 15:27:06 2026 +0000
make.sh: Increase the ccache to 12 GiB
A full build fills the cache almost entirely, so that we start losing
cached objects that we would need in the next build.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 9302fa3703a5ab0c4a58a471d1ad1e9f5d35e6a8
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 15:10:22 2026 +0000
installer: Don't add any graphics drivers
The installer only needs a text console which is provided by the kernel
(simpledrm, efifb and vesafb are built in). The drm module however adds
all GPU drivers and their firmware which has made the installer about
250 MiB larger since dracut finds all kernel modules again.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit babb8933197f85d9b3c87209e3ab7c193ef64f49
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 13:31:05 2026 +0000
core206: Remove files from dracut-ng that dracut no longer ships
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit f8316acf8ce8e223b8854de7dca0ab3bfbfb83c3
Author: Adolf Belka <adolf.belka@ipfire.org>
Date: Mon Oct 26 14:25:32 2026 +0100
core206: Ship dracut
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit ec81ce0904a41474094f8f8c967ac6e69c60cf56
Author: Adolf Belka <adolf.belka@ipfire.org>
Date: Mon Oct 26 14:25:33 2026 +0100
dracut: Update to version 112 and move from dracut-ng to dracut
- Update from version 108 to 112
- The dracut github repo and website now refer to it as dracut and no longer dracut-ng
- The github repo used to be dracut-ng/dracut-ng but it is now dracut-ng/dracut
- The website is still headed dracut-ng but all pages refer to dracut.
- The tarball was called dracut-ng when version 108 was installed but all tarballs have
now been changed to just dracut.
- Based on above I have changed dracut-ng to dracut for the lfs and rootfile and also
changed it in make.sh
- Update of rootfile
- dracut-version.sh was removed and dracut-init.sh was refactored into dracut.sh in
dracut-110
- Changelog
112
Notes
This release includes the following security related commits:
network-legacy: sanitize DHCP values in dhclient-script.sh (11577739)
overlayfs-crypt: prevent eval injection in parse_overlay_opts() (584e95be)
dracut-lib: sanitize variable assignments using eval (4d2d812b)
base: add escape function implementing printf %q (207c3397)
systemd-networkd: escape values from DHCP options (b456aee2)
iscsi: normalize initiator and target names (843af3e7)
net-lib: validate iSCSI LUN parameters (05c02db9)
This release includes the following new dracut modules:
chrony: introducing the chrony module (4d64d0b9)
qcom-adsp: add module to load Qualcomm ADSP module pre-udev (647a685d)
Bug Fixes
remove basename calls (1898470b)
remove dirname calls (66111f49)
replace true by : (37717095)
base: use printf instead of echo for hook variable (ceadcea0)
bluetooth: skip warning when module is explicitly requested (f334ea7c)
crypt: do not call return to exit a systemd generator (fbb7270e, closes #2490)
dbus: restrict After/Requires removal patterns (95a4da1b)
docs: declare the correct location to report vulnerabilities (6a9d409f)
dracut:
write force_drivers cmdline file in one step (f72f94a2)
use dstdir in build_ld_cache() (6b7db010)
do not exit the loop in push_user_devs() without checking all items (573b91ee)
do not exit the loop in push_host_devs() without checking all items (b57d2c2e)
log warning if touch fails (fcffd4a0)
two typos in the 3cpio fallback (852aeeb2)
default to hostonly_cmdline=no in chroot (67d82872)
properly pass user-supplied SBAT to ukify (abef6535)
remove support for tmpfilesconfdir (fb09ec26)
support chmod applet from busybox (8a0ee588)
dracut-functions:
reset _found flag per rule in inst_rules() (a0383c8d)
correct hostonly path for Gentoo sysusers (f037de42)
dracut-install:
check return value in modalias read() (379e6b35)
handle empty string in dir_len() (0224b30e)
remove FTS_NOSTAT in install_modules() fts traversal (40e7af01)
dracut-lib: sanitize variable assignments using eval (4d2d812b)
dracut-systemd: add ordering constraints (8aa5c93b)
dracut.conf.5: move fstab/chroot warning to hostonly_mode section (1374dc95)
iscsi:
normalize initiator and target names (843af3e7)
handle empty URI in firmware boot mode (3c1a3846)
kernel-modules:
include xhci-pci-prom21 for early USB (bccf5798)
add Mediatek MTU3 USB controller (8f243cfb)
lunmask: use function in parse-lunmask.sh (4815bf38)
mdraid:
escape slash in sed regular expression (a76d9cbe)
install 59-persistent-storage-md.rules only when needed (78c043a9)
net-lib: validate iSCSI LUN parameters (05c02db9)
network-legacy: sanitize DHCP values in dhclient-script.sh (11577739)
network-manager: prevent command injection while parsing DHCP options (589bef03)
nfs: rpc.statd binary is not required for NFSv4 (d152163a)
nvmf:
parse json output from "nvme list-subsys" (c2729e52)
make network driver determination work without nbft$X (21db5cb4)
overlayfs-crypt: prevent eval injection in parse_overlay_opts() (584e95be)
systemd-*: add new dlopen dependencies to modules lists (7ef765d6)
systemd-networkd:
use another name for the default .network file (0d35650a)
escape values from DHCP options (b456aee2)
get DHCP options values from networkctl (7c57b1cc)
systemd-pcrextend: add missing systemd-pcr{nvdone,osseparator}.service (e57ad524)
systemd-tmpfiles: do not include tmpfiles configured in /etc (73e9b649, closes #1706)
systemd-udevd: install systemd-udevd-varlink.socket (4323cf07)
tpm2-tss:
add missing 60-tpm2-id.rules (5e133721)
add missing systemd-tpm2-setup-early.service (98d6a569)
usrmount: filter out subvolid option for btrfs (26bafde3)
virtfs: move mount hook to pre-mount (7e02a913)
Performance
devicetree-firmware: do not call inst_multiple if there are no fw files (c1cb94f0)
dracut-systemd: drop ExecStart from oneshot shutdown service (bb2f35cb)
systemd-modules-load: remove duplicate paths from inst_multiple (a1b9f9ec)
systemd-networkd: remove duplicate service from inst_multiple (d2599468)
systemd-sysctl: remove duplicate paths from inst_multiple (40eae157)
systemd-tmpfiles: do not install systemd-tmpfiles-clean.service (ce430f1e)
udev-rules:
do not install the mtp-probe udev helper (9f772844)
do not install the hid2hci udev helper (bc63ac2c)
do not try to install fw_unit_symlinks.sh (d0146924)
do not try to install create_floppy_devices (55bf9202)
do not try to install udev built-ins (b82d7152)
do not try to install 59-scsi-sg3_utils.rules (4c226acd)
do not try to install 95-udev-late.rules (5c227d40)
Features
check shellcode to support busybox (25bedc75)
Makefile: allow running syntax checks separately (3a489b1c)
base: add escape function implementing printf %q (207c3397)
chrony: introducing the chrony module (4d64d0b9)
dracut:
add module to load Qualcomm ADSP module pre-udev (647a685d)
add parameter --nvmf-nbft-mode (146927ce)
network-manager:
write info about NTP servers in dhcpopts file (8b77df75)
use escape to drop requiring bash (9c7459bd)
nvmf:
set rd.nvmf.nm=1 if NetworkManager 1.54 is detected (97858467)
allow using system interface naming policy (00df7431)
add dracut.conf option nvmf_nbft_mode (bc1f1405)
enable adapting to NBFT reconfiguration (3ecd3048)
resume:
include in hostonly sloppy mode if supported by kernel (0589c659)
add debug logs to check() (03a5ea09)
systemd: drop unnecessary dependency on libgcrypt (0406aa64)
systemd-networkd: write info about NTP servers in dhcpopts file (96c9d5c4)
111
Performance
export DRACUT_ARCH globally (c50c04b0)
systemd-sysext: do not attempt to install extension metadata (25ffc0f0)
Features
derive systemd generator name dynamically from script (6ff36870)
crypt-lib: introduce crypt-lib dracut module (8a82565e)
dmsquash-live: add busybox blkid compatibility (7c0298a7)
dracut:
add module to add fw files from DT firmware-name properties (725fe30b)
add a DRACUT_EXTRA_ARGS environment variable (99738e52)
dracut-catimages.sh: move images directory from /boot to /var/lib (6bfd026e)
overlayfs: support tmpfs size parameter in rd.overlay (9740a99a)
overlayfs-crypt: add new encrypted persistent overlay support (c74f8ac2)
systemd-sysext: include systemd-{sys,conf}ext-sysroot services (205415b5)
systemd-sysusers-service: systemd-sysusers.service module (e0a7c9e2)
Bug Fixes
disable hostonly_cmdline for Gentoo by default (6c772faa)
explicitly set and document Gentoo defaults (86dae808)
avoid arguments for dot commands (045e9e30)
set DRACUT_TMPDIR before using it in dlog_init() (56ba87ad)
SYSTEMD-IMPORT: remount /sysroot with dev and suid flags (32d12606)
base: move initrd.target.wants symlink creation to wait_for_dev (d971230a)
crypt:
use systemd generator for setting the timeout (951be8ce)
use -d instead of -f to check for $NEWROOT/proc directory (57edbca1)
honor timeout setting when using UUID, LABEL, etc (89d5f2cb)
dbus: remove After/Requires from dbus service/socket (6102479e)
dmsquash-live:
correct det_img_fs implementation (f3d81b8d)
load kernel module before mount (9ca2cec1)
dracut:
do not record parameters that do not change the initrd (44a15508)
remove leading space from recorded arguments (0a62cc4a)
inst_libdir_file() does not have a -o option (a8b2a995)
determine hostonly_cmdline after hostonly setting (6cfafda4)
properly detect kernel version with --sysroot (d19f65d1)
enable hostonly_cmdline in hostonly mode again (04af3c09)
remove unused dracut_no_switch_root (f61865ce)
remove udevrulesconfdir variable (d867f00d)
remove unused host_fs_all (8ef39d08)
dracut-catimages.sh:
do not create overlay image without image directory (66336959)
do not call shift for options without arguments (e46ac221)
log proper missing images directory (1d78fd0e)
dracut.sh: use printf instead of echo in mark_hostonly (002f0901)
functions: prevent find_binary from dropping last PATH element (d1c3b6ff)
kernel-modules: install mmc drivers on all architectures (18cfdccd)
kernel-modules-export: use return instead of exit in pre-pivot hook (9c6fce6a)
man: inst_libdir_file() does not have a -o option (8cdd3675)
memdisk: use return instead of exit in cmdline hook (ce9337e4)
network-legacy: add input validation to RFC 3442 route parser (4497dafb)
overlayfs: unmount NEWROOT before mounting overlay (eef62a5b)
overlayfs-crypt: make module-setup.sh executable (29af32af)
ppcmac: use return instead of exit in pre-udev hook (5d81516b)
shutdown: warning printed unconditionally (7f5c88cf)
squash-lib: inst_libdir_file() does not have a -o option (e4a2555e)
syslog: use return instead of exit in initqueue/online hook (ce808b75)
systemd-cryptsetup:
only filter out modules for strict hostonly (c94b1b16)
load libcryptsetup via dlopen (60a5e034)
systemd-networkd:
create /run/systemd/network if missing (93465460)
check if units exist before enabling them (eed94b22)
systemd-pcrextend: add NVPCR definition files (e6b27fd2)
systemd-repart: load libfdisk via dlopen (0a6e83db)
systemd-sysext:
add dependency to systemd-veritysetup (87f4ffd2)
install kernel modules for common disk images (70807834)
systemd-veritysetup: validate dm-verity signatures in userspace (f20fd63e)
zipl: repair parsing of rd.zipl=LABEL|UUID|...= (75731188)
revert: systemd requires cryptsetup targets installed earlier (802c7393)
110
User notes
The systemd-pcrphase module has been renamed to systemd-pcrextend to align with
upstream systemd changes.
The following modules are new for this release:
memdisk
systemd-import
Distributor notes
The separate dracut-version.sh has been removed.
In order to set the distributor version (e.g. when packaging dracut), set
DRACUT_FULL_VERSION when calling make.
When packaging an unreleased snapshot version, please also set
DRACUT_MAIN_VERSION to a version string identifying the base version + commit.
As an example, when packaging a release of dracut as an RPM, use an
invocation like so:
%build
%make_build DRACUT_FULL_VERSION="%{version}-%{release}"
%install
%make_install DRACUT_FULL_VERSION="%{version}-%{release}"
Bug Fixes
avoid leading spaces in systemd units (68cd066c)
grammatical errors (2b992cae)
Makefile:
broken symlink in dracut config examples (c30fdf0f)
improve support for shfmt v3.8.0+ (96d95db4)
correct path for man pages for service files (a18fc183)
base: ensure that /run survives switch_root (b9ecf13f)
cpio: archive correct minor numbers (dca4a403)
crypt-gpg: support missing /etc/dracut.conf.d (786e8f27)
dm: add explicit rootfs-block dependency (5e7e4cd3)
dmsquash-live-autooverlay:
check that parted is present (3290d186)
re-read partition table after creation (99d25ea0)
dracut:
also check libraries when resolving lazy (9becd78c)
move libdirs to dracut-functions.sh (6fe23c38)
move defining DRACUT_LDCONFIG to dracut-functions.sh (294b3583)
remove trailing null characters from SBATs when building UKIs (785fbf8b)
use proper dracut logging when possible (2298980b)
ensure that inst is called after DRACUT_NO_XATTR is computed (1e504843)
move comment back to related dracut_args variable (01efc845)
source dracut-functions.sh before calling dwarning (8552a0f4)
ignore shellcheck SC2329 in addition to SC2317 (d82bff14)
ignore failing find_binary dracut-install (26c55932)
remove newlines from libdirs variable (62d71056)
--printconfig does not work without --force (00bc4fc2)
shellcheck SC2086 (c47e8910)
dracut-functions: check for kmod (4458505e)
dracut-init: do not set DRACUT_KERNEL_MODALIASES for --no-kernel (902bd6ce)
dracut-install:
resolve dependencies even if not executable (fff546a2)
build with -Werror=discarded-qualifiers (f2d0e638, closes #1877)
dracut-logger:
do not require debug to be defined (aa94df95)
disable kernel logging if /dev/kmsg is not writable (49c32f9f)
allow dlog_init to print multiple errors (6aa1abf3)
do not export maxloglvl and syslogfacility (f7fd8d3f)
dracut-systemd:
do not error out with new root= options handled by systemd (529bf27d)
use expected PS1 in the emergency shell (ccd096a1)
dracut.conf.d: demote uki-virt to CI only (39e7cf1f)
functions: do not use path escapes for non-paths (c04ee829)
i18n: remove Gentoo workaround that is no longer needed (53ed2794)
livenet: correct check for deprecated rd.live.overlay.overlayfs (3f3c377b)
man:
avoid bold italic text (fd090e10)
avoid nesting italic in bold text (cdd3daac)
multipath: always forcefully load multipath modules (5ace3b01)
nfs:
simplify DRACUT_CP arguments to increase portability (703c8c19)
do not execute logic in nfs hooks if netroot is not nfs (bf29f4b7)
set the default group of the rpcbind user to the state dir (90dc4436)
overlayfs: make overlayfs-lib.sh executable (186d15df)
plymouth: avoid warning if /etc/plymouth/plymouthd.conf is not present (45d560bb)
release:
use correct argument for head(1) to split header out (5f3c23aa)
use the correct variable to set the new project version (a9114d49)
use correct arguments for head(1) and tail(1) calls (77c0d577)
only install clog-cli if it isn't already installed (d04db3be)
systemd: only install systemd-coredump with systemd-coredump dracut module (a8268a4d)
systemd-cryptsetup: increase ordering to resolve regression (d7bdbbb7)
systemd-networkd:
ensure zzzz-dracut-default.network cleanup (da3353f0)
install and enable systemd-networkd-resolve-hook.socket (84c05fc6)
systemd-pcrphase: do not print an error if an optional binary is not found (7f45703d, closes #2094)
systemd-portabled: do not call portablectl (2a0b1f4e)
test/DMSQUASH: zero overlay partition on reset (ca2335fb)
tpm2-tss: add tss user/group in addition to sysusers config (28adf6f9)
Performance
dracut:
remove duplicate export libdirs (329344bc)
unset threecpio_help_output after usage (724da6ef)
re-use cached 3cpio --help output (e9c3e0bf)
replace grep by bash pattern matching (ddd6a7d3)
nfs:
do not source /lib/nfs-lib.sh twice (0b086e9f)
remove references to old rpcbind state dir (2f49cbbe)
resume:
remove unreachable code (f1ccdaa3)
do not search cmdline options in /etc/cmdline{,.d} (67e8c3d5)
do not attempt to install systemd-hibernate-resume@.service (ddb46200)
Features
memdisk dracut module (f1d6a0bc)
merge rd.overlayfs into rd.overlay (d90c59bb)
replace DRACUT_RESOLVE_DEPS by !DRACUT_RESOLVE_LAZY (1d302268)
rename rd.overlayfs.readonly to rd.overlay.readonly (bcefa9d0)
warn in case 3cpio is present but not suitable (dbd9f0ee)
rename rd.live.overlay to rd.overlay (d6872bbd)
move DRACUT_VERSION from dracut-version.sh into dracut.sh (d5e985d4)
add yamllint config (55ed61f2)
always preserve file ownership (24838e08)
remove rev_lib_symlinks (9d668b20)
remove inst_any (d5571c91)
source dracut-logger.sh from dracut-functions.sh (ffc10b06)
remove unused and undocumented argument (b8651e7b)
add header comment to units created by systemd generators (c80025d6)
rename rd.live.overlay.overlayfs to rd.overlayfs (b77ae7eb)
Makefile: do not install network-legacy by default (30d121b1)
base: support cmdline options in /run/initramfs/cmdline.d (bac8b3da)
cpio: zero device major/minor numbers (0bdecd92)
dmsquash-live: allow booting from compressed ostree filesystems (69a43970)
dracut:
introduce additional hooks locations (04d5e294)
allow hostonly mode if /sys /proc or /run is missing (399e555f)
expose determine_kernel_image as a public function (dd45cbff)
add busybox support for 3cpio and enhanced_cpio (b6877562)
drop unreachable code for dracutbasedir/initdir (71d51e72)
disable xattr when creating cpios (941b18d0)
print $uefi with --printconfig (f235dcb7)
add support for --ukify, --no-ukify (7ec5fbbe)
always check DRACUT_INSTALL being executable (886725eb)
print $initrdname with --printconfig (71a713bb)
dracut-systemd: preserve the content of /var/lib/systemd (fd370b39)
gentoo: introduce a distro config file to default out of ukify (918d54c1)
livenet: support root=http:* as alias for root=live:http:* (7555aca3)
lvm: match host lvm recovery installation (4fd5d2f3)
network-manager: add systemd generator if available (b6329a08)
no-xattr: no longer support no-xattr config (8a915c95)
overlayfs: add persistent device overlay support (716fd4ff)
pcsc: add openSUSE support (254185a6)
qemu-net: auto-add qemu-net if net-lib and qemu included (94b21ab3)
systemd: install new dlopened libraries (1ae49bf5)
systemd-import: introducing the systemd-import module (9297137f)
systemd-pcrphase: rename to systemd-pcrextend (a4a34611)
tpm2-tss: add openSUSE support (66279611)
virtfs, virtiofs: auto-add dracut module if qemu included (f77b1c08)
109
Performance
improve logger efficiency (fd685905)
Features
dracut.sh: try $STRIP for $strip_cmd first (862248dc)
Makefile:
filter out warpclock on S390(x) systems (287c4f66)
filter out s390 specific dracut modules (fe6c4702)
introduce distclean target (bb02f40a)
set Dracut version on install (86d1d086)
configure: autoconfigure configprofile (eada0fb9)
debian.conf:
default to initrd.img-${kernel} on Debian/Ubuntu (5748845e)
add i18n_vars for Debian/Ubuntu (c3078914)
dracut:
add support for /run/initramfs/dracut.conf.d (82cd3d37)
support setting compression level separately (ebb7d787)
support 3cpio for creating initrds (2abaced7)
print the computed configuration and exit (8e24c4bf)
make hostonly the default (24fb4c28)
dracut.conf.d: move examples into subdirectories (d486a909)
dracut.sh: output error message for --regenerate-all (3d58272e)
fedora: switch to strict hostonly mode by default (bc69bf4e)
kernel-modules-export: make kernel modules from initramfs available (21096b7e)
lsinitrd: support 3cpio (7b1612fc)
network-manager: remove support for ifcfg-rh (63baa4e7)
pcsc: add Debian/Ubuntu support (1575aea4)
plymouth:
drop unused plymouth-populate-initrd (d0a66a0f)
do not check plymouth-populate-initrd for "nash" (997be461)
use simpledrm if Plymouth is configured to it (7f41458b)
qemu: install sd_mod driver (2aaf5673)
skipcpio: output additional CPIO information (3841274d)
systemd-networkd: do not require bash (9f2e8da7)
Bug Fixes
line-buffer log output to /dev/kmsg (cfc3fc61)
typo in awk script in _do_dlog_batch_kmsglog (f0d64b02, closes #1803)
make logging functions return 1 only on invalid log level (5f9d2858)
partial revert for hostonly sloppy mode (ac8cb5e5)
place dracut generated cmdline conf files in the 10-49 range (8680a553)
ignore shellcheck SC2329 in addition to SC2317 (c782a166)
make sure final hostonly value is computed before reading it (8d9887bd)
74nvmf:
make sure autoconnect script is run at least once (f879b04d)
only set netroot if it's yet empty (1b11affd)
set root=nvmf (585d7419)
Makefile:
correct filter condition for s390 specific modules (cf735287)
correct loop variable (c2ed439a)
exclude hidden directories from shellcheck part 2 (a421ac07)
exclude hidden directories from shellcheck (7a65d1a1)
use install for installing files (882923bc)
remove the heuristic to determine fallback kernel version (b97ab4a8)
UKI: explicitly specify '--uname' (70466f56)
base:
set udev log level properly (aae995ec)
silence error log if shadow does not exists (55256afa)
btrfs: write cmdline in install() (c7b11828)
cpio:
use mutex to avoid multi-threaded failures (587e7646)
unit test regression from GNU cpio changes (41b20165)
dbus, network-manager: make generic mode host independent (2e14afe8)
debian:
no need to change permissions (f14e3a25)
lower the ordering number for debian conf (33a62941)
remove Debian 12 support (68b0f63f)
debian.conf: re-enable hostonly_cmdline (3a85060c)
dm,dmraid: shellcheck SC2268 (b138454b)
dmsquash-live: install required stat binary (46369b3b, closes #1780)
doc: correct spelling mistake of recommended (62be5b25)
doc_site: remove reference to udev < 143 (4cfac2cf)
dracut:
use grep -q/-s to silence output/error (a80703e8)
install items before dracut modules are included (a2ebe31b)
add support for kernel name Image (df933559)
enforce that hostonly is set for hostonly_install (32b3b8c7)
library directory creation in --kernel-only (52155dde)
use "-name" to avoid find matching temporary directory (5c53a810)
decrease logging by default (86cc122e)
do not call uname -r in chroot environments (d4355425)
look for both vmlinuz and vmlinux for UKI creation (686ab140)
dracut-init:
remove obsolete comment (b1fab596)
remove the heuristic to determine fallback kernel version (f9328b25)
dracut-install:
initialize the fts pointer (60823653)
cache resolve_deps calls for speed and less noise (c3331ed4)
handling of multiple sonames in dlopen JSON (23d32545)
broken calls to mmap with 0 length (063927bd)
the handling of absolute paths in sonames (3484061b)
the RUNPATH expansion returning empty strings (950ebcbe)
the -n short option for --dry-run (3d4763ac)
dracut-rescue: add support for /run/initramfs/dracut.conf.d (05692b89)
dracut-systemd:
install grep if initqueue is used (ba6229e1)
avoid matching extra root= substrings in cmdline (4590c31a)
dracut-util: crash if CMDLINE ends with quotation mark (4f6ca33d)
dracut.sh: check that custom fw search patch exists before reading it (89dcdd91)
dracut.sh,lsinitrd.sh: use obj{copy,dump} set by toolchain (8d870e63)
fedora: always include chroot binary (aaed766b)
fs-lib: include modules for charsets for working vfat support (51bd1331)
hwdb: make module-setup.sh executable (118b3656)
iscsi:
only enable services if they are included (63c48471)
modify iscsid.service in initrd instead of host (edd89c73)
drop ExecStartPre startup-checks.sh from iscsid.service (b2287bb7)
do not include /etc/iscsi/iscsid.conf in generic mode (9b14963b)
kernel-modules: add Cadence USB driver to base (ff6a30c8)
kernel-modules-extra: remove stray \ before / (614e9d34)
livenet: source img-lib.sh for check_live_ram (a9f52182)
lsinitrd:
drop --verbose from cpio --to-stdout call (4a5b728b)
use lowercase skip variable name (8c3a6b6d)
avoid rechecking for squash images (18af4e93)
man:
move the documentation hostonly and hostonly_mode variables (bd0685ad)
expand the documentation for hostonly-cmdline (6a38b720)
multipath: add udev rule 99-z-dm-mpath-late.rules (de8b63f5)
net-lib: always include af_packet (e6f89767)
network: handle network selection properly (8f076010)
network-manager:
hostname not set with old systemd service units (a33ae68d, closes #1743)
load required kernel modules (584fb47c)
nvmf: do not install hostonly configuration in generic initramfs (8b816ea9)
overlayfs: overlayfs should not use rootfsflags as mount options (deeb670c)
plymouth:
do not install plymouth-set-default-theme into initrd (1120dbc5)
check all library directories for Plymouth (1ac7e21e)
drop depending on bash (deb3717b)
release: force push (for updating) (d71b6f51)
resume: avoid matching extra resume= substrings in cmdline (a58b30e2)
systemd:
make dbus optional dependency (fdfa8998)
add compatibility with systemd v258 (eeef28a5)
systemd-networkd: correct path of 99-default.network on hostonly=no (523c9b05)
systemd-portabled, initqueue: enable systemd type units (51a0e49f)
systemd-sysext:
stop adding *.raw to the initramfs automatically (f7f7e856)
skip manual systemct enablement for systemd>=258 (73ad42fa)
package initrd.target.wants symlinks (74e04b63)
systemd-sysusers:
spelling of after (d361c3f0)
increase ordering from 68 to 78 (80bc6ba1)
test: make sure $1 is not read as an unbound variable (fbbd7d5f)
test-functions: use absolute path (088bef78)
test-makeroot: make it dependent on initqueue (e588aeaf)
ubuntu: set DISTRIBUTION when building container (211a1e7a)
virtfs, virtiofs: dracut module should not delete rootfs files (54c0f12f)
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit c82c3dc63cd2e310d471b7a0d3e7eebc01d93cf6
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 12:52:19 2026 +0000
cdrom: Make the installer smaller
The installer does not need any CPU microcode, and it brings its own
networking, so we can omit dracut's network stack and a few other modules
that it does not use (NFS, CIFS, LVM, ...).
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit eb476a3b3d70cacd5629cccc199efaf56058b737
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 12:40:51 2026 +0000
cdrom: Compress the installer with zstd -19
The installer is only being built once, so we can afford compressing it
harder than a regular initramfs which is regenerated on every system.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit e7e5ef6398bc3e0f0527872e24bcc4100ba407f8
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 12:40:50 2026 +0000
systemd: Link udev against libsystemd-shared
All udev helpers have been statically linked against the shared code of
systemd which made each of them about 2 MiB large.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 5f207b122264100344ca255905fea5e029b8d1ee
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Oct 26 12:40:02 2026 +0000
stripper: Strip shared libraries that are not executable
Many shared libraries (e.g. Python modules, libgcc_s, sudo plugins)
are installed without the executable bit and have therefore never been
stripped.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
-----------------------------------------------------------------------
Summary of changes:
config/rootfiles/common/{dracut-ng => dracut} | 93 +--
config/rootfiles/common/systemd | 1 +
config/rootfiles/common/x86_64/linux | 108 +++
.../206 => oldcore/205}/filelists/ca-certificates | 0
.../oldcore/{167 => 205}/filelists/dracut | 0
.../{131 => 205}/filelists/ids-ruleset-sources | 0
config/rootfiles/oldcore/205/update.sh | 2 +
config/rootfiles/packages/fireperf | 1 +
lfs/Config | 2 +-
lfs/cdrom | 37 +-
lfs/{dracut-ng => dracut} | 8 +-
lfs/fireperf | 9 +-
lfs/harfbuzz | 5 +-
lfs/p11-kit | 3 +-
lfs/systemd | 3 +-
make.sh | 7 +-
src/installer/dracut-module/module-setup.sh | 2 +-
src/patches/fireperf-0.2.0_gettext-0.25_fix.patch | 26 -
...ter-the-pool-only-once-all-workers-have-t.patch | 183 ++++
...the-tests-that-clients-have-run-and-add-q.patch | 917 +++++++++++++++++++++
src/stripper | 4 +-
21 files changed, 1315 insertions(+), 96 deletions(-)
rename config/rootfiles/common/{dracut-ng => dracut} (90%)
copy config/rootfiles/{core/206 => oldcore/205}/filelists/ca-certificates (100%)
copy config/rootfiles/oldcore/{167 => 205}/filelists/dracut (100%)
copy config/rootfiles/oldcore/{131 => 205}/filelists/ids-ruleset-sources (100%)
rename lfs/{dracut-ng => dracut} (92%)
delete mode 100644 src/patches/fireperf-0.2.0_gettext-0.25_fix.patch
create mode 100644 src/patches/fireperf/0001-uring-Register-the-pool-only-once-all-workers-have-t.patch
create mode 100644 src/patches/fireperf/0002-server-Log-the-tests-that-clients-have-run-and-add-q.patch
Difference in files:
diff --git a/config/rootfiles/common/dracut-ng b/config/rootfiles/common/dracut
similarity index 90%
rename from config/rootfiles/common/dracut-ng
rename to config/rootfiles/common/dracut
index b1760a6145..baf55652ad 100644
--- a/config/rootfiles/common/dracut-ng
+++ b/config/rootfiles/common/dracut
@@ -6,12 +6,10 @@ usr/bin/lsinitrd
#usr/lib/dracut
usr/lib/dracut/dracut-functions
usr/lib/dracut/dracut-functions.sh
-usr/lib/dracut/dracut-init.sh
usr/lib/dracut/dracut-initramfs-restore
usr/lib/dracut/dracut-install
usr/lib/dracut/dracut-logger.sh
usr/lib/dracut/dracut-util
-usr/lib/dracut/dracut-version.sh
usr/lib/dracut/dracut.conf.d
usr/lib/dracut/dracut.conf.d/01-ipfire.conf
#usr/lib/dracut/modules.d
@@ -51,8 +49,6 @@ usr/lib/dracut/modules.d/10warpclock/warpclock.sh
#usr/lib/dracut/modules.d/11systemd-coredump/module-setup.sh
#usr/lib/dracut/modules.d/11systemd-creds
#usr/lib/dracut/modules.d/11systemd-creds/module-setup.sh
-#usr/lib/dracut/modules.d/11systemd-cryptsetup
-#usr/lib/dracut/modules.d/11systemd-cryptsetup/module-setup.sh
#usr/lib/dracut/modules.d/11systemd-hostnamed
#usr/lib/dracut/modules.d/11systemd-hostnamed/99-systemd-networkd-dracut.conf
#usr/lib/dracut/modules.d/11systemd-hostnamed/module-setup.sh
@@ -70,13 +66,13 @@ usr/lib/dracut/modules.d/10warpclock/warpclock.sh
#usr/lib/dracut/modules.d/11systemd-modules-load
#usr/lib/dracut/modules.d/11systemd-modules-load/module-setup.sh
#usr/lib/dracut/modules.d/11systemd-networkd
-#usr/lib/dracut/modules.d/11systemd-networkd/99-default.network
#usr/lib/dracut/modules.d/11systemd-networkd/99-wait-online-dracut.conf
+#usr/lib/dracut/modules.d/11systemd-networkd/dracut-default.network
#usr/lib/dracut/modules.d/11systemd-networkd/module-setup.sh
#usr/lib/dracut/modules.d/11systemd-networkd/networkd-config.sh
#usr/lib/dracut/modules.d/11systemd-networkd/networkd-run.sh
-#usr/lib/dracut/modules.d/11systemd-pcrphase
-#usr/lib/dracut/modules.d/11systemd-pcrphase/module-setup.sh
+#usr/lib/dracut/modules.d/11systemd-pcrextend
+#usr/lib/dracut/modules.d/11systemd-pcrextend/module-setup.sh
#usr/lib/dracut/modules.d/11systemd-portabled
#usr/lib/dracut/modules.d/11systemd-portabled/module-setup.sh
#usr/lib/dracut/modules.d/11systemd-pstore
@@ -90,6 +86,9 @@ usr/lib/dracut/modules.d/10warpclock/warpclock.sh
#usr/lib/dracut/modules.d/11systemd-sysctl/module-setup.sh
#usr/lib/dracut/modules.d/11systemd-sysext
#usr/lib/dracut/modules.d/11systemd-sysext/module-setup.sh
+#usr/lib/dracut/modules.d/11systemd-sysusers-service
+#usr/lib/dracut/modules.d/11systemd-sysusers-service/module-setup.sh
+#usr/lib/dracut/modules.d/11systemd-sysusers-service/sysusers-dracut.conf
#usr/lib/dracut/modules.d/11systemd-timedated
#usr/lib/dracut/modules.d/11systemd-timedated/module-setup.sh
#usr/lib/dracut/modules.d/11systemd-timesyncd
@@ -142,21 +141,6 @@ usr/lib/dracut/modules.d/20i18n/parse-i18n.sh
#usr/lib/dracut/modules.d/35connman/cm-run.sh
#usr/lib/dracut/modules.d/35connman/cm-wait-online-initrd.service
#usr/lib/dracut/modules.d/35connman/module-setup.sh
-#usr/lib/dracut/modules.d/35network-legacy
-#usr/lib/dracut/modules.d/35network-legacy/dhclient-script.sh
-#usr/lib/dracut/modules.d/35network-legacy/dhclient.conf
-#usr/lib/dracut/modules.d/35network-legacy/dhcp-multi.sh
-#usr/lib/dracut/modules.d/35network-legacy/ifup.sh
-#usr/lib/dracut/modules.d/35network-legacy/kill-dhclient.sh
-#usr/lib/dracut/modules.d/35network-legacy/module-setup.sh
-#usr/lib/dracut/modules.d/35network-legacy/net-genrules.sh
-#usr/lib/dracut/modules.d/35network-legacy/parse-bond.sh
-#usr/lib/dracut/modules.d/35network-legacy/parse-bridge.sh
-#usr/lib/dracut/modules.d/35network-legacy/parse-ibft.sh
-#usr/lib/dracut/modules.d/35network-legacy/parse-ifname.sh
-#usr/lib/dracut/modules.d/35network-legacy/parse-ip-opts.sh
-#usr/lib/dracut/modules.d/35network-legacy/parse-team.sh
-#usr/lib/dracut/modules.d/35network-legacy/parse-vlan.sh
#usr/lib/dracut/modules.d/35network-manager
#usr/lib/dracut/modules.d/35network-manager/NetworkManager-config-initrd-dracut.conf
#usr/lib/dracut/modules.d/35network-manager/NetworkManager-wait-online-initrd-dracut.conf
@@ -181,18 +165,16 @@ usr/lib/dracut/modules.d/45drm/module-setup.sh
#usr/lib/dracut/modules.d/45plymouth/module-setup.sh
#usr/lib/dracut/modules.d/45plymouth/plymouth-emergency.sh
#usr/lib/dracut/modules.d/45plymouth/plymouth-newroot.sh
-#usr/lib/dracut/modules.d/45plymouth/plymouth-populate-initrd.sh
#usr/lib/dracut/modules.d/45plymouth/plymouth-pretrigger.sh
#usr/lib/dracut/modules.d/45simpledrm
#usr/lib/dracut/modules.d/45simpledrm/module-setup.sh
+#usr/lib/dracut/modules.d/45systemd-import
+#usr/lib/dracut/modules.d/45systemd-import/dracut-remount-sysroot.service
+#usr/lib/dracut/modules.d/45systemd-import/module-setup.sh
+#usr/lib/dracut/modules.d/45systemd-import/parse-systemd-import.sh
#usr/lib/dracut/modules.d/45url-lib
#usr/lib/dracut/modules.d/45url-lib/module-setup.sh
#usr/lib/dracut/modules.d/45url-lib/url-lib.sh
-#usr/lib/dracut/modules.d/68cms
-#usr/lib/dracut/modules.d/68cms/cms-write-ifcfg.sh
-#usr/lib/dracut/modules.d/68cms/cmsifup.sh
-#usr/lib/dracut/modules.d/68cms/cmssetup.sh
-#usr/lib/dracut/modules.d/68cms/module-setup.sh
#usr/lib/dracut/modules.d/68lvmmerge
#usr/lib/dracut/modules.d/68lvmmerge/README.md
#usr/lib/dracut/modules.d/68lvmmerge/lvmmerge.sh
@@ -201,11 +183,6 @@ usr/lib/dracut/modules.d/45drm/module-setup.sh
#usr/lib/dracut/modules.d/68lvmthinpool-monitor/module-setup.sh
#usr/lib/dracut/modules.d/68lvmthinpool-monitor/start-thinpool-monitor.service
#usr/lib/dracut/modules.d/68lvmthinpool-monitor/start-thinpool-monitor.sh
-#usr/lib/dracut/modules.d/68systemd-sysusers
-#usr/lib/dracut/modules.d/68systemd-sysusers/module-setup.sh
-#usr/lib/dracut/modules.d/69cio_ignore
-#usr/lib/dracut/modules.d/69cio_ignore/module-setup.sh
-#usr/lib/dracut/modules.d/69cio_ignore/parse-cio_accept.sh
#usr/lib/dracut/modules.d/70bluetooth
#usr/lib/dracut/modules.d/70bluetooth/module-setup.sh
usr/lib/dracut/modules.d/70btrfs
@@ -215,14 +192,19 @@ usr/lib/dracut/modules.d/70btrfs/btrfs_finished.sh
usr/lib/dracut/modules.d/70btrfs/btrfs_timeout.sh
usr/lib/dracut/modules.d/70btrfs/module-setup.sh
#usr/lib/dracut/modules.d/70crypt
+#usr/lib/dracut/modules.d/70crypt-lib
+#usr/lib/dracut/modules.d/70crypt-lib/crypt-lib.sh
+#usr/lib/dracut/modules.d/70crypt-lib/module-setup.sh
#usr/lib/dracut/modules.d/70crypt/crypt-cleanup.sh
-#usr/lib/dracut/modules.d/70crypt/crypt-lib.sh
+#usr/lib/dracut/modules.d/70crypt/crypt-generator.sh
#usr/lib/dracut/modules.d/70crypt/crypt-run-generator.sh
#usr/lib/dracut/modules.d/70crypt/cryptroot-ask.sh
#usr/lib/dracut/modules.d/70crypt/module-setup.sh
#usr/lib/dracut/modules.d/70crypt/parse-crypt.sh
#usr/lib/dracut/modules.d/70crypt/parse-keydev.sh
#usr/lib/dracut/modules.d/70crypt/probe-keydev.sh
+#usr/lib/dracut/modules.d/70devicetree-firmware
+#usr/lib/dracut/modules.d/70devicetree-firmware/module-setup.sh
usr/lib/dracut/modules.d/70dm
usr/lib/dracut/modules.d/70dm/11-dm.rules
usr/lib/dracut/modules.d/70dm/dm-pre-udev.sh
@@ -258,6 +240,9 @@ usr/lib/dracut/modules.d/70fs-lib/module-setup.sh
#usr/lib/dracut/modules.d/70img-lib/img-lib.sh
#usr/lib/dracut/modules.d/70img-lib/module-setup.sh
usr/lib/dracut/modules.d/70kernel-modules
+usr/lib/dracut/modules.d/70kernel-modules-export
+usr/lib/dracut/modules.d/70kernel-modules-export/module-setup.sh
+usr/lib/dracut/modules.d/70kernel-modules-export/modules-export.sh
usr/lib/dracut/modules.d/70kernel-modules-extra
usr/lib/dracut/modules.d/70kernel-modules-extra/module-setup.sh
usr/lib/dracut/modules.d/70kernel-modules/module-setup.sh
@@ -286,6 +271,9 @@ usr/lib/dracut/modules.d/70mdraid/mdraid-waitclean.sh
usr/lib/dracut/modules.d/70mdraid/mdraid_start.sh
usr/lib/dracut/modules.d/70mdraid/module-setup.sh
usr/lib/dracut/modules.d/70mdraid/parse-md.sh
+#usr/lib/dracut/modules.d/70memdisk
+#usr/lib/dracut/modules.d/70memdisk/memdisk.sh
+#usr/lib/dracut/modules.d/70memdisk/module-setup.sh
#usr/lib/dracut/modules.d/70multipath
#usr/lib/dracut/modules.d/70multipath/module-setup.sh
#usr/lib/dracut/modules.d/70multipath/multipath-shutdown.sh
@@ -302,12 +290,16 @@ usr/lib/dracut/modules.d/70mdraid/parse-md.sh
#usr/lib/dracut/modules.d/70overlayfs
#usr/lib/dracut/modules.d/70overlayfs/module-setup.sh
#usr/lib/dracut/modules.d/70overlayfs/mount-overlayfs.sh
+#usr/lib/dracut/modules.d/70overlayfs/overlayfs-lib.sh
#usr/lib/dracut/modules.d/70overlayfs/prepare-overlayfs.sh
#usr/lib/dracut/modules.d/70pcmcia
#usr/lib/dracut/modules.d/70pcmcia/module-setup.sh
#usr/lib/dracut/modules.d/70ppcmac
#usr/lib/dracut/modules.d/70ppcmac/load-thermal.sh
#usr/lib/dracut/modules.d/70ppcmac/module-setup.sh
+#usr/lib/dracut/modules.d/70qcom-adsp
+#usr/lib/dracut/modules.d/70qcom-adsp/module-setup.sh
+#usr/lib/dracut/modules.d/70qcom-adsp/qcom-adsp-pre-udev.sh
usr/lib/dracut/modules.d/70qemu
#usr/lib/dracut/modules.d/70qemu-net
#usr/lib/dracut/modules.d/70qemu-net/module-setup.sh
@@ -315,6 +307,12 @@ usr/lib/dracut/modules.d/70qemu/module-setup.sh
#usr/lib/dracut/modules.d/70uefi-lib
#usr/lib/dracut/modules.d/70uefi-lib/module-setup.sh
#usr/lib/dracut/modules.d/70uefi-lib/uefi-lib.sh
+#usr/lib/dracut/modules.d/71overlayfs-crypt
+#usr/lib/dracut/modules.d/71overlayfs-crypt/module-setup.sh
+#usr/lib/dracut/modules.d/71overlayfs-crypt/overlayfs-crypt-lib.sh
+#usr/lib/dracut/modules.d/71overlayfs-crypt/prepare-overlayfs-crypt.sh
+#usr/lib/dracut/modules.d/71systemd-cryptsetup
+#usr/lib/dracut/modules.d/71systemd-cryptsetup/module-setup.sh
#usr/lib/dracut/modules.d/73crypt-gpg
#usr/lib/dracut/modules.d/73crypt-gpg/README
#usr/lib/dracut/modules.d/73crypt-gpg/crypt-gpg-lib.sh
@@ -332,23 +330,18 @@ usr/lib/dracut/modules.d/70qemu/module-setup.sh
#usr/lib/dracut/modules.d/73pkcs11/module-setup.sh
#usr/lib/dracut/modules.d/73tpm2-tss
#usr/lib/dracut/modules.d/73tpm2-tss/module-setup.sh
-#usr/lib/dracut/modules.d/73zipl
-#usr/lib/dracut/modules.d/73zipl/install_zipl_cmdline.sh
-#usr/lib/dracut/modules.d/73zipl/module-setup.sh
-#usr/lib/dracut/modules.d/73zipl/parse-zipl.sh
+#usr/lib/dracut/modules.d/74chrony
+#usr/lib/dracut/modules.d/74chrony/chrony-ntp-source.sh
+#usr/lib/dracut/modules.d/74chrony/chrony-wait.service
+#usr/lib/dracut/modules.d/74chrony/chrony.conf
+#usr/lib/dracut/modules.d/74chrony/chronyd.service
+#usr/lib/dracut/modules.d/74chrony/module-setup.sh
+#usr/lib/dracut/modules.d/74chrony/parse-ntp.sh
#usr/lib/dracut/modules.d/74cifs
#usr/lib/dracut/modules.d/74cifs/cifs-lib.sh
#usr/lib/dracut/modules.d/74cifs/cifsroot.sh
#usr/lib/dracut/modules.d/74cifs/module-setup.sh
#usr/lib/dracut/modules.d/74cifs/parse-cifsroot.sh
-#usr/lib/dracut/modules.d/74dasd
-#usr/lib/dracut/modules.d/74dasd/module-setup.sh
-#usr/lib/dracut/modules.d/74dasd_mod
-#usr/lib/dracut/modules.d/74dasd_mod/module-setup.sh
-#usr/lib/dracut/modules.d/74dasd_mod/parse-dasd-mod.sh
-#usr/lib/dracut/modules.d/74dcssblk
-#usr/lib/dracut/modules.d/74dcssblk/module-setup.sh
-#usr/lib/dracut/modules.d/74dcssblk/parse-dcssblk.sh
#usr/lib/dracut/modules.d/74debug
#usr/lib/dracut/modules.d/74debug/module-setup.sh
#usr/lib/dracut/modules.d/74fcoe
@@ -428,12 +421,6 @@ usr/lib/dracut/modules.d/74udev-rules/module-setup.sh
#usr/lib/dracut/modules.d/74virtiofs/module-setup.sh
#usr/lib/dracut/modules.d/74virtiofs/mount-virtiofs.sh
#usr/lib/dracut/modules.d/74virtiofs/parse-virtiofs.sh
-#usr/lib/dracut/modules.d/74zfcp
-#usr/lib/dracut/modules.d/74zfcp/module-setup.sh
-#usr/lib/dracut/modules.d/74zfcp/parse-zfcp.sh
-#usr/lib/dracut/modules.d/74znet
-#usr/lib/dracut/modules.d/74znet/module-setup.sh
-#usr/lib/dracut/modules.d/74znet/parse-ccw.sh
#usr/lib/dracut/modules.d/75securityfs
#usr/lib/dracut/modules.d/75securityfs/module-setup.sh
#usr/lib/dracut/modules.d/75securityfs/securityfs.sh
@@ -510,6 +497,8 @@ usr/lib/dracut/modules.d/77initqueue/module-setup.sh
#usr/lib/dracut/modules.d/77usrmount
#usr/lib/dracut/modules.d/77usrmount/module-setup.sh
#usr/lib/dracut/modules.d/77usrmount/mount-usr.sh
+#usr/lib/dracut/modules.d/78systemd-sysusers
+#usr/lib/dracut/modules.d/78systemd-sysusers/module-setup.sh
usr/lib/dracut/modules.d/80base
usr/lib/dracut/modules.d/80base/dracut-dev-lib.sh
usr/lib/dracut/modules.d/80base/dracut-lib.sh
diff --git a/config/rootfiles/common/systemd b/config/rootfiles/common/systemd
index 983001384b..546ae71c1c 100644
--- a/config/rootfiles/common/systemd
+++ b/config/rootfiles/common/systemd
@@ -59,6 +59,7 @@ usr/bin/udev-hwdb
#usr/lib/libsystemd.so
usr/lib/libsystemd.so.0
usr/lib/libsystemd.so.0.44.0
+usr/lib/libsystemd-shared-261.so
#usr/lib/libudev.so
usr/lib/libudev.so.1
usr/lib/libudev.so.1.7.14
diff --git a/config/rootfiles/common/x86_64/linux b/config/rootfiles/common/x86_64/linux
index f8614e7a7d..49ae5d6c4c 100644
--- a/config/rootfiles/common/x86_64/linux
+++ b/config/rootfiles/common/x86_64/linux
@@ -7310,6 +7310,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/AHCI_DWC
#lib/modules/@KERNEL_RELEASE@/build/include/config/AIC79XX_CMDS_PER_DEVICE
#lib/modules/@KERNEL_RELEASE@/build/include/config/AIC79XX_DEBUG_MASK
+#lib/modules/@KERNEL_RELEASE@/build/include/config/AIC79XX_REG_PRETTY_PRINT
#lib/modules/@KERNEL_RELEASE@/build/include/config/AIC79XX_RESET_DELAY_MS
#lib/modules/@KERNEL_RELEASE@/build/include/config/AIC7XXX_CMDS_PER_DEVICE
#lib/modules/@KERNEL_RELEASE@/build/include/config/AIC7XXX_DEBUG_ENABLE
@@ -7809,6 +7810,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/CGROUP_WRITEBACK
#lib/modules/@KERNEL_RELEASE@/build/include/config/CHECK_SIGNATURE
#lib/modules/@KERNEL_RELEASE@/build/include/config/CHELSIO_INLINE_CRYPTO
+#lib/modules/@KERNEL_RELEASE@/build/include/config/CHELSIO_IPSEC_INLINE
#lib/modules/@KERNEL_RELEASE@/build/include/config/CHELSIO_LIB
#lib/modules/@KERNEL_RELEASE@/build/include/config/CHELSIO_T1
#lib/modules/@KERNEL_RELEASE@/build/include/config/CHELSIO_T1_1G
@@ -7841,6 +7843,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/CMA_SIZE_SEL_MBYTES
#lib/modules/@KERNEL_RELEASE@/build/include/config/CNIC
#lib/modules/@KERNEL_RELEASE@/build/include/config/COMMON_CLK
+#lib/modules/@KERNEL_RELEASE@/build/include/config/COMMON_CLK_SI5351
#lib/modules/@KERNEL_RELEASE@/build/include/config/COMPACTION
#lib/modules/@KERNEL_RELEASE@/build/include/config/COMPACT_UNEVICTABLE_DEFAULT
#lib/modules/@KERNEL_RELEASE@/build/include/config/COMPAL_LAPTOP
@@ -7945,6 +7948,10 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_DEFLATE
#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_DES
#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_DES3_EDE_X86_64
+#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_DEV_AMLOGIC_GXL
+#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_DEV_ATMEL_ECC
+#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_DEV_ATMEL_I2C
+#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_DEV_ATMEL_SHA204A
#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_DEV_CCP
#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_DEV_CCP_CRYPTO
#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_DEV_CCP_DD
@@ -8080,6 +8087,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_XCTR
#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_XTS
#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_XXHASH
+#lib/modules/@KERNEL_RELEASE@/build/include/config/CRYPTO_ZSTD
#lib/modules/@KERNEL_RELEASE@/build/include/config/CUSE
#lib/modules/@KERNEL_RELEASE@/build/include/config/CW1200
#lib/modules/@KERNEL_RELEASE@/build/include/config/CW1200_WLAN_SDIO
@@ -8261,10 +8269,12 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_PRIVACY_SCREEN
#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_QXL
#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_RADEON
+#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_RADEON_USERPTR
#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_SCHED
#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_SIMPLEDRM
#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_SSD130X
#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_SSD130X_I2C
+#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_ST7571_I2C
#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_SUBALLOC_HELPER
#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_SYSFB_HELPER
#lib/modules/@KERNEL_RELEASE@/build/include/config/DRM_TTM
@@ -8726,14 +8736,17 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_AMDPT
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_CDEV
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_CDEV_V1
+#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_DS4520
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_DWAPB
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_EXAR
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_F7188X
+#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_FXL6408
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_GENERIC
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_ICH
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_IT87
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_LJCA
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_MOCKUP
+#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_PCA953X
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_PCA9570
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_REGMAP
#lib/modules/@KERNEL_RELEASE@/build/include/config/GPIO_SCH
@@ -8952,6 +8965,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/HID_TIVO
#lib/modules/@KERNEL_RELEASE@/build/include/config/HID_TOPSEED
#lib/modules/@KERNEL_RELEASE@/build/include/config/HID_TWINHAN
+#lib/modules/@KERNEL_RELEASE@/build/include/config/HID_UNIVERSAL_PIDFF
#lib/modules/@KERNEL_RELEASE@/build/include/config/HID_ZYDACRON
#lib/modules/@KERNEL_RELEASE@/build/include/config/HIGH_RES_TIMERS
#lib/modules/@KERNEL_RELEASE@/build/include/config/HINIC
@@ -8965,7 +8979,12 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/HOTPLUG_PCI
#lib/modules/@KERNEL_RELEASE@/build/include/config/HOTPLUG_PCI_ACPI
#lib/modules/@KERNEL_RELEASE@/build/include/config/HOTPLUG_PCI_ACPI_IBM
+#lib/modules/@KERNEL_RELEASE@/build/include/config/HOTPLUG_PCI_CPCI
+#lib/modules/@KERNEL_RELEASE@/build/include/config/HOTPLUG_PCI_CPCI_GENERIC
+#lib/modules/@KERNEL_RELEASE@/build/include/config/HOTPLUG_PCI_CPCI_ZT5550
+#lib/modules/@KERNEL_RELEASE@/build/include/config/HOTPLUG_PCI_OCTEONEP
#lib/modules/@KERNEL_RELEASE@/build/include/config/HOTPLUG_PCI_PCIE
+#lib/modules/@KERNEL_RELEASE@/build/include/config/HOTPLUG_PCI_SHPC
#lib/modules/@KERNEL_RELEASE@/build/include/config/HOTPLUG_SMT
#lib/modules/@KERNEL_RELEASE@/build/include/config/HOTPLUG_SPLIT_STARTUP
#lib/modules/@KERNEL_RELEASE@/build/include/config/HPET
@@ -9031,6 +9050,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_DESIGNWARE_PLATFORM
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_DIOLAN_U2C
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_EMEV2
+#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_GPIO
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_HELPER_AUTO
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_HID
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_HID_ACPI
@@ -9064,6 +9084,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_SLAVE
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_SLAVE_EEPROM
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_SMBUS
+#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_STUB
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_TINY_USB
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_VIA
#lib/modules/@KERNEL_RELEASE@/build/include/config/I2C_VIAPRO
@@ -9125,9 +9146,11 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/INPUT_APANEL
#lib/modules/@KERNEL_RELEASE@/build/include/config/INPUT_ATI_REMOTE2
#lib/modules/@KERNEL_RELEASE@/build/include/config/INPUT_ATLAS_BTNS
+#lib/modules/@KERNEL_RELEASE@/build/include/config/INPUT_AXP20X_PEK
#lib/modules/@KERNEL_RELEASE@/build/include/config/INPUT_CM109
#lib/modules/@KERNEL_RELEASE@/build/include/config/INPUT_EVDEV
#lib/modules/@KERNEL_RELEASE@/build/include/config/INPUT_FF_MEMLESS
+#lib/modules/@KERNEL_RELEASE@/build/include/config/INPUT_GPIO_BEEPER
#lib/modules/@KERNEL_RELEASE@/build/include/config/INPUT_IDEAPAD_SLIDEBAR
#lib/modules/@KERNEL_RELEASE@/build/include/config/INPUT_KEYBOARD
#lib/modules/@KERNEL_RELEASE@/build/include/config/INPUT_KEYSPAN_REMOTE
@@ -9224,6 +9247,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/IP6_NF_TARGET_REJECT
#lib/modules/@KERNEL_RELEASE@/build/include/config/IP6_NF_TARGET_SYNPROXY
#lib/modules/@KERNEL_RELEASE@/build/include/config/IPC_NS
+#lib/modules/@KERNEL_RELEASE@/build/include/config/IPMB_DEVICE_INTERFACE
#lib/modules/@KERNEL_RELEASE@/build/include/config/IPMI_DEVICE_INTERFACE
#lib/modules/@KERNEL_RELEASE@/build/include/config/IPMI_DMI_DECODE
#lib/modules/@KERNEL_RELEASE@/build/include/config/IPMI_HANDLER
@@ -9413,6 +9437,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/KALLSYMS_ALL
#lib/modules/@KERNEL_RELEASE@/build/include/config/KCMP
#lib/modules/@KERNEL_RELEASE@/build/include/config/KERNEL_XZ
+#lib/modules/@KERNEL_RELEASE@/build/include/config/KERNEL_ZSTD
#lib/modules/@KERNEL_RELEASE@/build/include/config/KERNFS
#lib/modules/@KERNEL_RELEASE@/build/include/config/KEXEC
#lib/modules/@KERNEL_RELEASE@/build/include/config/KEXEC_CORE
@@ -9592,6 +9617,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/MDIO_BITBANG
#lib/modules/@KERNEL_RELEASE@/build/include/config/MDIO_BUS
#lib/modules/@KERNEL_RELEASE@/build/include/config/MDIO_CAVIUM
+#lib/modules/@KERNEL_RELEASE@/build/include/config/MDIO_GPIO
#lib/modules/@KERNEL_RELEASE@/build/include/config/MDIO_I2C
#lib/modules/@KERNEL_RELEASE@/build/include/config/MDIO_MSCC_MIIM
#lib/modules/@KERNEL_RELEASE@/build/include/config/MDIO_MVUSB
@@ -9691,13 +9717,19 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_LM3533
#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_MADERA
#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_MADERA_I2C
+#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_MT6360
+#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_MT6370
#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_RETU
+#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_SIMPLE_MFD_I2C
#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_SM501
#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_SM501_GPIO
+#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_SMPRO
+#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_SY7636A
#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_SYSCON
#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_VIPERBOARD
#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_VX855
#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_WL1273_CORE
+#lib/modules/@KERNEL_RELEASE@/build/include/config/MFD_WM8994
#lib/modules/@KERNEL_RELEASE@/build/include/config/MHI_BUS
#lib/modules/@KERNEL_RELEASE@/build/include/config/MHI_NET
#lib/modules/@KERNEL_RELEASE@/build/include/config/MICREL_PHY
@@ -9773,6 +9805,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/MMC_CQHCI
#lib/modules/@KERNEL_RELEASE@/build/include/config/MMC_CRYPTO
#lib/modules/@KERNEL_RELEASE@/build/include/config/MMC_REALTEK_PCI
+#lib/modules/@KERNEL_RELEASE@/build/include/config/MMC_REALTEK_USB
#lib/modules/@KERNEL_RELEASE@/build/include/config/MMC_RICOH_MMC
#lib/modules/@KERNEL_RELEASE@/build/include/config/MMC_SDHCI
#lib/modules/@KERNEL_RELEASE@/build/include/config/MMC_SDHCI_ACPI
@@ -10558,6 +10591,8 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCIEASPM_DEFAULT
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCIEPORTBUS
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCIE_BUS_DEFAULT
+#lib/modules/@KERNEL_RELEASE@/build/include/config/PCIE_DW
+#lib/modules/@KERNEL_RELEASE@/build/include/config/PCIE_DW_HOST
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCIE_ECRC
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCIE_PME
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCIE_THERMAL
@@ -10565,11 +10600,14 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_ATS
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_DIRECT
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_DOMAINS
+#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_ECAM
+#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_HOST_COMMON
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_HYPERV
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_HYPERV_INTERFACE
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_IOV
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_LABEL
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_LOCKLESS_CONFIG
+#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_MESON
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_MMCONFIG
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_MSI
#lib/modules/@KERNEL_RELEASE@/build/include/config/PCI_PASID
@@ -10783,6 +10821,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/RD_ZSTD
#lib/modules/@KERNEL_RELEASE@/build/include/config/REALTEK_AUTOPM
#lib/modules/@KERNEL_RELEASE@/build/include/config/REALTEK_PHY
+#lib/modules/@KERNEL_RELEASE@/build/include/config/REALTEK_PHY_HWMON
#lib/modules/@KERNEL_RELEASE@/build/include/config/REF_TRACKER
#lib/modules/@KERNEL_RELEASE@/build/include/config/REGMAP
#lib/modules/@KERNEL_RELEASE@/build/include/config/REGMAP_I2C
@@ -10897,6 +10936,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/RTC_HCTOSYS_DEVICE
#lib/modules/@KERNEL_RELEASE@/build/include/config/RTC_I2C_AND_SPI
#lib/modules/@KERNEL_RELEASE@/build/include/config/RTC_INTF_DEV
+#lib/modules/@KERNEL_RELEASE@/build/include/config/RTC_INTF_DEV_UIE_EMUL
#lib/modules/@KERNEL_RELEASE@/build/include/config/RTC_INTF_PROC
#lib/modules/@KERNEL_RELEASE@/build/include/config/RTC_INTF_SYSFS
#lib/modules/@KERNEL_RELEASE@/build/include/config/RTC_LIB
@@ -11067,6 +11107,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/SCSI_FC_ATTRS
#lib/modules/@KERNEL_RELEASE@/build/include/config/SCSI_FDOMAIN
#lib/modules/@KERNEL_RELEASE@/build/include/config/SCSI_FDOMAIN_PCI
+#lib/modules/@KERNEL_RELEASE@/build/include/config/SCSI_FLASHPOINT
#lib/modules/@KERNEL_RELEASE@/build/include/config/SCSI_HPSA
#lib/modules/@KERNEL_RELEASE@/build/include/config/SCSI_HPTIOP
#lib/modules/@KERNEL_RELEASE@/build/include/config/SCSI_IMM
@@ -11474,6 +11515,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/SND_AU8810
#lib/modules/@KERNEL_RELEASE@/build/include/config/SND_AU8820
#lib/modules/@KERNEL_RELEASE@/build/include/config/SND_AU8830
+#lib/modules/@KERNEL_RELEASE@/build/include/config/SND_AW2
#lib/modules/@KERNEL_RELEASE@/build/include/config/SND_AZT3328
#lib/modules/@KERNEL_RELEASE@/build/include/config/SND_BCD2000
#lib/modules/@KERNEL_RELEASE@/build/include/config/SND_BT87X
@@ -11841,6 +11883,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/TTY
#lib/modules/@KERNEL_RELEASE@/build/include/config/TULIP
#lib/modules/@KERNEL_RELEASE@/build/include/config/TULIP_MMIO
+#lib/modules/@KERNEL_RELEASE@/build/include/config/TULIP_MWI
#lib/modules/@KERNEL_RELEASE@/build/include/config/TULIP_NAPI
#lib/modules/@KERNEL_RELEASE@/build/include/config/TULIP_NAPI_HW_MITIGATION
#lib/modules/@KERNEL_RELEASE@/build/include/config/TUN
@@ -11917,6 +11960,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_EPSON2888
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_EZUSB_FX2
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_GL860
+#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_GPIO_VBUS
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_GSPCA
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_GSPCA_BENQ
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_GSPCA_CONEX
@@ -11973,6 +12017,8 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_HUB_USB251XB
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_IOWARRIOR
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_IPHETH
+#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_ISP116X_HCD
+#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_ISP1301
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_KAWETH
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_KC2190
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_LAN78XX
@@ -11983,6 +12029,8 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_MDC800
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_MICROTEK
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_MON
+#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_MUSB_HDRC
+#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_MUSB_HOST
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_NET_AQC111
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_NET_AX88179_178A
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_NET_AX8817X
@@ -12016,6 +12064,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_OHCI_LITTLE_ENDIAN
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_OTG
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_OTG_FSM
+#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_OXU210HP_HCD
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_PCI
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_PCI_AMD
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_PEGASUS
@@ -12023,6 +12072,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_PRINTER
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_PWC
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_PWC_INPUT_EVDEV
+#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_R8A66597_HCD
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_ROLES_INTEL_XHCI
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_ROLE_SWITCH
#lib/modules/@KERNEL_RELEASE@/build/include/config/USB_RTL8150
@@ -12120,6 +12170,8 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/V4L2_MEM2MEM_DEV
#lib/modules/@KERNEL_RELEASE@/build/include/config/V4L_MEM2MEM_DRIVERS
#lib/modules/@KERNEL_RELEASE@/build/include/config/V4L_PLATFORM_DRIVERS
+#lib/modules/@KERNEL_RELEASE@/build/include/config/VBOXGUEST
+#lib/modules/@KERNEL_RELEASE@/build/include/config/VBOXSF_FS
#lib/modules/@KERNEL_RELEASE@/build/include/config/VDSO_GETRANDOM
#lib/modules/@KERNEL_RELEASE@/build/include/config/VETH
#lib/modules/@KERNEL_RELEASE@/build/include/config/VFAT_FS
@@ -12259,6 +12311,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/VIRTIO_IOMMU
#lib/modules/@KERNEL_RELEASE@/build/include/config/VIRTIO_MENU
#lib/modules/@KERNEL_RELEASE@/build/include/config/VIRTIO_MMIO
+#lib/modules/@KERNEL_RELEASE@/build/include/config/VIRTIO_MMIO_CMDLINE_DEVICES
#lib/modules/@KERNEL_RELEASE@/build/include/config/VIRTIO_NET
#lib/modules/@KERNEL_RELEASE@/build/include/config/VIRTIO_PCI
#lib/modules/@KERNEL_RELEASE@/build/include/config/VIRTIO_PCI_ADMIN_LEGACY
@@ -12302,6 +12355,7 @@ etc/modprobe.d/ipv6.conf
#lib/modules/@KERNEL_RELEASE@/build/include/config/W1_CON
#lib/modules/@KERNEL_RELEASE@/build/include/config/W1_MASTER_DS2482
#lib/modules/@KERNEL_RELEASE@/build/include/config/W1_MASTER_DS2490
+#lib/modules/@KERNEL_RELEASE@/build/include/config/W1_MASTER_GPIO
#lib/modules/@KERNEL_RELEASE@/build/include/config/W1_SLAVE_DS2406
#lib/modules/@KERNEL_RELEASE@/build/include/config/W1_SLAVE_DS2408
#lib/modules/@KERNEL_RELEASE@/build/include/config/W1_SLAVE_DS2408_READBACK
@@ -21696,6 +21750,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/crypto/xctr.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/crypto/xor.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/crypto/xxhash_generic.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/crypto/zstd.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/acpi
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/acpi/acpi_extlog.ko.xz
@@ -21802,6 +21857,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/char
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/char/hangcheck-timer.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/char/ipmi
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/char/ipmi/ipmb_dev_int.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/char/ipmi/ipmi_devintf.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/char/ipmi/ipmi_ipmb.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/char/ipmi/ipmi_msghandler.ko.xz
@@ -21832,6 +21888,8 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/char/tpm/tpm_tis_i2c_cr50.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/char/tpm/tpm_vtpm_proxy.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/char/tpm/xen-tpmfront.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/clk
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/clk/clk-si5351.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/cpufreq
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/cpufreq/acpi-cpufreq.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/cpufreq/amd-pstate-ut.ko.xz
@@ -21843,6 +21901,11 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/cpufreq/powernow-k8.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/cpufreq/speedstep-lib.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/crypto
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/crypto/amlogic
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/crypto/amlogic/amlogic-gxl-crypto.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/crypto/atmel-ecc.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/crypto/atmel-i2c.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/crypto/atmel-sha204a.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/crypto/cavium
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/crypto/cavium/nitrox
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/crypto/cavium/nitrox/n5pf.ko.xz
@@ -21941,14 +22004,17 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/firmware/iscsi_ibft.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-amdpt.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-ds4520.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-dwapb.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-exar.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-f7188x.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-fxl6408.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-generic.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-ich.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-it87.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-ljca.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-mockup.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-pca953x.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-pca9570.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-regmap.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpio/gpio-sch.ko.xz
@@ -22005,6 +22071,8 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpu/drm/radeon/radeon.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpu/drm/scheduler
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpu/drm/scheduler/gpu-sched.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpu/drm/sitronix
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpu/drm/sitronix/st7571-i2c.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpu/drm/solomon
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpu/drm/solomon/ssd130x-i2c.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/gpu/drm/solomon/ssd130x.ko.xz
@@ -22065,6 +22133,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hid/hid-tivo.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hid/hid-topseed.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hid/hid-twinhan.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hid/hid-universal-pidff.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hid/hid-zydacron.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hid/i2c-hid
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hid/i2c-hid/i2c-hid-acpi-prp0001.ko.xz
@@ -22082,6 +22151,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hv
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hv/hv_balloon.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hv/hv_utils.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hv/hv_vmbus.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hv/mshv_root.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hwmon
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/hwmon/abituguru.ko.xz
@@ -22334,6 +22404,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/busses/i2c-designware-platform.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/busses/i2c-emev2.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/busses/i2c-gpio.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/busses/i2c-i801.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/busses/i2c-isch.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/busses/i2c-ismt.ko.xz
@@ -22362,6 +22433,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/i2c-mux.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/i2c-slave-eeprom.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/i2c-smbus.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/i2c-stub.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/muxes
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/muxes/i2c-mux-gpio.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/i2c/muxes/i2c-mux-ltc4306.ko.xz
@@ -22379,7 +22451,9 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/input/misc/apanel.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/input/misc/ati_remote2.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/input/misc/atlas_btns.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/input/misc/axp20x-pek.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/input/misc/cm109.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/input/misc/gpio-beeper.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/input/misc/ideapad_slidebar.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/input/misc/keyspan_remote.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/input/misc/pcspkr.ko.xz
@@ -23095,11 +23169,16 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/madera-i2c.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/madera.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/mfd-core.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/mt6360-core.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/mt6370.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/retu-mfd.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/simple-mfd-i2c.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/sm501.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/smpro-core.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/viperboard.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/vx855.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/wl1273-core.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mfd/wm8994.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/misc
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/misc/altera-stapl
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/misc/altera-stapl/altera-stapl.ko.xz
@@ -23149,6 +23228,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mmc/host/cb710-mmc.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mmc/host/cqhci.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mmc/host/rtsx_pci_sdmmc.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mmc/host/rtsx_usb_sdmmc.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mmc/host/sdhci-acpi.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mmc/host/sdhci-pci.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/mmc/host/sdhci-pltfm.ko.xz
@@ -23287,6 +23367,9 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/ethernet/chelsio/cxgb4vf
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/ethernet/chelsio/inline_crypto
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/ch_ipsec.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/ethernet/chelsio/libcxgb
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/ethernet/chelsio/libcxgb/libcxgb.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/ethernet/cisco
@@ -23520,6 +23603,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/mdio/mdio-bcm-unimac.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/mdio/mdio-bitbang.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/mdio/mdio-cavium.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/mdio/mdio-gpio.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/mdio/mdio-i2c.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/mdio/mdio-mscc-miim.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/net/mdio/mdio-mvusb.ko.xz
@@ -23960,11 +24044,15 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/parport/parport_serial.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/controller
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/controller/dwc
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/controller/dwc/pci-meson.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/controller/pci-hyperv-intf.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/controller/pci-hyperv.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/controller/vmd.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/hotplug
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/hotplug/acpiphp_ibm.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/hotplug/cpcihp_generic.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/hotplug/cpcihp_zt5550.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/pcie
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/pcie/aer_inject.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/pci/pwrctrl
@@ -24351,7 +24439,10 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/dwc3/dwc3.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/host
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/host/bcma-hcd.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/host/isp116x-hcd.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/host/ohci-pci.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/host/oxu210hp-hcd.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/host/r8a66597-hcd.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/host/sl811-hcd.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/host/ssb-hcd.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/host/xen-hcd.ko.xz
@@ -24377,6 +24468,11 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/misc/yurex.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/mon
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/mon/usbmon.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/musb
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/musb/musb_hdrc.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/phy
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/phy/phy-gpio-vbus-usb.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/phy/phy-isp1301.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/roles
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/roles/intel-xhci-usb-role-switch.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/usb/roles/roles.ko.xz
@@ -24476,6 +24572,9 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/video/fbdev/hyperv_fb.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/video/fbdev/ocfb.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/video/fbdev/pm2fb.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/virt
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/virt/vboxguest
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/virt/vboxguest/vboxguest.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/virtio
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/virtio/virtio_balloon.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/virtio/virtio_dma_buf.ko.xz
@@ -24486,6 +24585,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/w1/masters
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/w1/masters/ds2482.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/w1/masters/ds2490.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/drivers/w1/masters/w1-gpio.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/w1/slaves
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/w1/slaves/w1_ds2406.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/drivers/w1/slaves/w1_ds2408.ko.xz
@@ -24669,6 +24769,8 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/fs/smb/server/ksmbd.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/fs/udf
#lib/modules/@KERNEL_RELEASE@/kernel/fs/udf/udf.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/fs/vboxsf
+#lib/modules/@KERNEL_RELEASE@/kernel/fs/vboxsf/vboxsf.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/fs/xfs
#lib/modules/@KERNEL_RELEASE@/kernel/fs/xfs/xfs.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/kernel
@@ -24740,6 +24842,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/net/bridge/netfilter/ebtable_broute.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/bridge/netfilter/ebtable_filter.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/bridge/netfilter/ebtable_nat.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/net/bridge/netfilter/ebtables.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/bridge/netfilter/nf_conntrack_bridge.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/bridge/netfilter/nft_meta_bridge.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/bridge/netfilter/nft_reject_bridge.ko.xz
@@ -24793,6 +24896,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/net/ipv4/netfilter/ipt_rpfilter.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/ipv4/netfilter/iptable_filter.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/ipv4/netfilter/iptable_mangle.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/net/ipv4/netfilter/iptable_nat.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/ipv4/netfilter/iptable_raw.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/ipv4/netfilter/iptable_security.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/ipv4/netfilter/nf_dup_ipv4.ko.xz
@@ -24920,6 +25024,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/nf_flow_table.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/nf_flow_table_inet.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/nf_log_syslog.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/nf_nat.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/nf_synproxy_core.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/nfnetlink_acct.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/nfnetlink_cthelper.ko.xz
@@ -25000,6 +25105,7 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/xt_mac.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/xt_mark.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/xt_multiport.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/xt_nat.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/xt_nfacct.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/xt_osf.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/net/netfilter/xt_owner.ko.xz
@@ -25237,6 +25343,8 @@ lib/modules/@KERNEL_RELEASE@/kernel
#lib/modules/@KERNEL_RELEASE@/kernel/sound/pci/au88x0/snd-au8810.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/sound/pci/au88x0/snd-au8820.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/sound/pci/au88x0/snd-au8830.ko.xz
+#lib/modules/@KERNEL_RELEASE@/kernel/sound/pci/aw2
+#lib/modules/@KERNEL_RELEASE@/kernel/sound/pci/aw2/snd-aw2.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/sound/pci/ca0106
#lib/modules/@KERNEL_RELEASE@/kernel/sound/pci/ca0106/snd-ca0106.ko.xz
#lib/modules/@KERNEL_RELEASE@/kernel/sound/pci/cs46xx
diff --git a/config/rootfiles/oldcore/205/filelists/ca-certificates b/config/rootfiles/oldcore/205/filelists/ca-certificates
new file mode 120000
index 0000000000..320fea8f40
--- /dev/null
+++ b/config/rootfiles/oldcore/205/filelists/ca-certificates
@@ -0,0 +1 @@
+../../../common/ca-certificates
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/205/filelists/dracut b/config/rootfiles/oldcore/205/filelists/dracut
new file mode 120000
index 0000000000..160869946d
--- /dev/null
+++ b/config/rootfiles/oldcore/205/filelists/dracut
@@ -0,0 +1 @@
+../../../common/dracut
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/205/filelists/ids-ruleset-sources b/config/rootfiles/oldcore/205/filelists/ids-ruleset-sources
new file mode 120000
index 0000000000..a226ada39b
--- /dev/null
+++ b/config/rootfiles/oldcore/205/filelists/ids-ruleset-sources
@@ -0,0 +1 @@
+../../../common/ids-ruleset-sources
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/205/update.sh b/config/rootfiles/oldcore/205/update.sh
index 19665cb7a6..88281e890c 100644
--- a/config/rootfiles/oldcore/205/update.sh
+++ b/config/rootfiles/oldcore/205/update.sh
@@ -36,6 +36,8 @@ done
# Remove files
rm -rfv \
/etc/strongswan.d/charon/gcrypt.conf \
+ /usr/lib/dracut/dracut-init.sh \
+ /usr/lib/dracut/dracut-version.sh \
/usr/lib/ipsec/plugins/libstrongswan-gcrypt.so \
/usr/lib/python3.10/site-packages/knot_resolver-6.4.0-py3.10.egg-info \
/usr/local/bin/unboundctrl \
diff --git a/config/rootfiles/packages/fireperf b/config/rootfiles/packages/fireperf
index bf6e51e710..aad6b0dd59 100644
--- a/config/rootfiles/packages/fireperf
+++ b/config/rootfiles/packages/fireperf
@@ -1 +1,2 @@
usr/bin/fireperf
+#usr/share/locale/de/LC_MESSAGES/fireperf.mo
diff --git a/lfs/Config b/lfs/Config
index 5f71f2153b..e64760b204 100644
--- a/lfs/Config
+++ b/lfs/Config
@@ -298,7 +298,7 @@ define POSTBUILD
@echo "Updating linker cache..."
@type -p ldconfig >/dev/null && ldconfig || :
@echo "Install done; saving file list to $(TARGET) ..."
- @rm -rf $(GOPATH) /root/.cargo
+ @rm -rf $(GOPATH) /root/.cargo /root/.config/go
@$(FIND_FILES) > $(DIR_SRC)/lsalrnew
@diff $(DIR_SRC)/lsalr $(DIR_SRC)/lsalrnew | grep '^> ' | sed 's/^> //' > $(TARGET)_diff
@mv -f $(DIR_SRC)/lsalrnew $(DIR_SRC)/lsalr
diff --git a/lfs/cdrom b/lfs/cdrom
index 4658aa3224..11604b7222 100644
--- a/lfs/cdrom
+++ b/lfs/cdrom
@@ -66,6 +66,33 @@ ISO_ARGS += \
ISO_FILE = $(IMAGES_DIR)/$(SNAME)-$(VERSION)-core$(CORE)-$(BUILD_ARCH).iso
+# Dracut modules that the installer does not need
+INSTALLER_OMIT_MODULES = \
+ cifs \
+ dm \
+ hwdb \
+ kernel-network-modules \
+ lunmask \
+ lvm \
+ modsign \
+ net-lib \
+ network \
+ network-legacy \
+ nfs \
+ nvdimm \
+ qemu \
+ qemu-net \
+ resume \
+ usrmount \
+ virtiofs
+
+# Drivers whose firmware is too large to carry in the installer
+INSTALLER_OMIT_DRIVERS = \
+ liquidio \
+ liquidio-core \
+ liquidio_vf \
+ nfp
+
###############################################################################
# Top-level Rules
###############################################################################
@@ -122,7 +149,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
mkdir -p $(DIR_TMP)/cdrom/boot/isolinux
cp /boot/vmlinuz-$(KVER) $(DIR_TMP)/cdrom/boot/isolinux/vmlinuz
- dracut --force -a "installer" --strip $(DIR_TMP)/cdrom/boot/isolinux/instroot $(KVER)
+ # Build the installer
+ # - compress it harder than any regular initramfs since we only build it once
+ # - don't add any microcode because it is not needed to run the installer
+ # - omit any modules the installer doesn't use (it brings its own networking)
+ # - omit network drivers for SmartNICs with very large firmware
+ dracut --force -a "installer" --strip --compress "zstd -19 -q -T0" \
+ --no-early-microcode -o "$(INSTALLER_OMIT_MODULES)" \
+ --omit-drivers "$(INSTALLER_OMIT_DRIVERS)" \
+ $(DIR_TMP)/cdrom/boot/isolinux/instroot $(KVER)
ifeq "$(HAS_ISOLINUX)" "1"
dd if=/dev/zero bs=1k count=2 > $(DIR_TMP)/cdrom/boot/isolinux/boot.catalog
diff --git a/lfs/dracut-ng b/lfs/dracut
similarity index 92%
rename from lfs/dracut-ng
rename to lfs/dracut
index 68c26adb7c..e8fe2fe356 100644
--- a/lfs/dracut-ng
+++ b/lfs/dracut
@@ -1,7 +1,7 @@
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2025 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2026 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
@@ -24,9 +24,9 @@
include Config
-VER = 108
+VER = 112
-THISAPP = dracut-ng-$(VER)
+THISAPP = dracut-$(VER)
DL_FILE = $(THISAPP).tar.gz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = fa5efd4039be8d2d30564a0768d2dec8c3d72b3721391d3a02bde8445cd7a5766d4b119594ebbca86dbd59bd71b64353febaaa7e2257f02d0075333dc29e9047
+$(DL_FILE)_BLAKE2 = 8affe092f6876ba52f59e08b33341c108c378f97f761b638f1d4f5520399aa87bb4bbafb362f5edc15fdabd3ebf0c7acec667ee3762535f9b780da522886f205
install : $(TARGET)
diff --git a/lfs/fireperf b/lfs/fireperf
index 497bba538a..5218239535 100644
--- a/lfs/fireperf
+++ b/lfs/fireperf
@@ -26,7 +26,7 @@ include Config
SUMMARY = A Network Benchmarking Tool
-VER = 0.2.0
+VER = 0.3.0
THISAPP = fireperf-$(VER)
DL_FILE = $(THISAPP).tar.gz
@@ -34,7 +34,7 @@ DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = fireperf
-PAK_VER = 3
+PAK_VER = 4
DEPS =
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = https://source.ipfire.org/releases/fireperf/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 0ff72d810e97d0f553f2fc43d4fb4b5af275e156599ac0b982651b584859cbe394a8168e2d0436329053ee0e406ef764d054d1433999cf3d5194d66a656d274e
+$(DL_FILE)_BLAKE2 = 5f21302765f34a3043fc5df984b13f21355742ad787af84fb5c5d89707bbda079e1a84de465053e59a7f3ac2bb25d72fe45ba0084132d3a4067582bac9962a85
install : $(TARGET)
@@ -81,7 +81,8 @@ $(subst %,%_BLAKE2,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xvf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/fireperf-0.2.0_gettext-0.25_fix.patch
+ cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/fireperf/0001-uring-Register-the-pool-only-once-all-workers-have-t.patch
+ cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/fireperf/0002-server-Log-the-tests-that-clients-have-run-and-add-q.patch
cd $(DIR_APP) && ./autogen.sh
cd $(DIR_APP) && ./configure \
--prefix=/usr \
diff --git a/lfs/harfbuzz b/lfs/harfbuzz
index bfa4a5773c..4ada0986e2 100644
--- a/lfs/harfbuzz
+++ b/lfs/harfbuzz
@@ -72,8 +72,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
$(UPDATE_AUTOMAKE)
cd $(DIR_APP) && meson setup \
- --prefix=/usr \
- -Dcpp_args=-fno-exceptions \
+ --prefix=/usr \
+ --buildtype=release \
+ -Dcpp_args="$(CXXFLAGS) -fno-exceptions" \
builddir/
cd $(DIR_APP) && ninja -C builddir/ $(MAKETUNING)
cd $(DIR_APP) && ninja -C builddir/ install
diff --git a/lfs/p11-kit b/lfs/p11-kit
index 91950548c7..03425d5586 100644
--- a/lfs/p11-kit
+++ b/lfs/p11-kit
@@ -76,7 +76,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
$(UPDATE_AUTOMAKE)
cd $(DIR_APP) && ./configure \
--prefix=/usr \
- --with-trust-paths=/etc/pki/ca-trust/source
+ --with-trust-paths=/etc/pki/ca-trust/source \
+ --enable-debug=no
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
@rm -rf $(DIR_APP)
diff --git a/lfs/systemd b/lfs/systemd
index 7af3e5f6e8..ea06ad3a9f 100644
--- a/lfs/systemd
+++ b/lfs/systemd
@@ -98,7 +98,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
--buildtype=release \
-D mode=release \
-D dev-kvm-mode=0660 \
- -D link-udev-shared=false \
+ -D link-udev-shared=true \
-D logind=false \
-D vconsole=false \
..
@@ -126,6 +126,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
cd $(DIR_APP)/build && install -vm755 systemd-hwdb /usr/bin/udev-hwdb
cd $(DIR_APP)/build && ln -svfn ../bin/udevadm /sbin/udevd
cd $(DIR_APP)/build && cp -av libudev.so{,*[0-9]} /usr/lib/
+ cd $(DIR_APP)/build && install -vm755 src/shared/libsystemd-shared-*.so /usr/lib/
cd $(DIR_APP)/build && install -vm644 ../src/libudev/libudev.h /usr/include/
cd $(DIR_APP)/build && install -vm644 src/libudev/*.pc /usr/lib/pkgconfig/
cd $(DIR_APP)/build && install -vm644 src/udev/*.pc /usr/share/pkgconfig/
diff --git a/make.sh b/make.sh
index ad8d1ccbe5..c768e8a682 100755
--- a/make.sh
+++ b/make.sh
@@ -644,6 +644,9 @@ execute() {
[CXXFLAGS]="${CFLAGS[@]}"
[RUSTFLAGS]="${RUSTFLAGS[@]}"
+ # Don't generate any debugging information in Rust (some crates enable it)
+ [CARGO_PROFILE_RELEASE_DEBUG]="false"
+
# ccache
[CCACHE_DIR]="${CCACHE_DIR}"
[CCACHE_TEMPDIR]="${CCACHE_TEMPDIR}"
@@ -1657,7 +1660,7 @@ build_system() {
lfsmake2 systemd
lfsmake2 libusb
lfsmake2 mdadm
- lfsmake2 dracut-ng
+ lfsmake2 dracut
lfsmake2 lvm2
lfsmake2 multipath-tools
lfsmake2 glib
@@ -2481,7 +2484,7 @@ SYSTEM_MEMORY="$(system_memory)"
# Default settings
BUILD_ARCH="${HOST_ARCH}"
-CCACHE_CACHE_SIZE="4G"
+CCACHE_CACHE_SIZE="12G"
# Auto use ramdisk the host system more than 10GB of RAM or more
if [ ${SYSTEM_MEMORY} -ge 10240 ]; then
diff --git a/src/installer/dracut-module/module-setup.sh b/src/installer/dracut-module/module-setup.sh
index 7d6d9e1667..bccdf5e04b 100755
--- a/src/installer/dracut-module/module-setup.sh
+++ b/src/installer/dracut-module/module-setup.sh
@@ -9,7 +9,7 @@ check() {
# called by dracut
depends() {
- echo base bash drm i18n mdraid shutdown
+ echo base bash i18n mdraid shutdown
return 0
}
diff --git a/src/patches/fireperf-0.2.0_gettext-0.25_fix.patch b/src/patches/fireperf-0.2.0_gettext-0.25_fix.patch
deleted file mode 100644
index 8bd152e79e..0000000000
--- a/src/patches/fireperf-0.2.0_gettext-0.25_fix.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -Naur fireperf-0.2.0.orig/autogen.sh fireperf-0.2.0/autogen.sh
---- fireperf-0.2.0.orig/autogen.sh 2021-02-23 16:06:33.000000000 +0100
-+++ fireperf-0.2.0/autogen.sh 2025-05-14 10:03:40.623918720 +0200
-@@ -8,8 +8,9 @@
- echo "Activated pre-commit hook."
- fi
-
-+autopoint
- intltoolize --force --automake
--autoreconf --install --symlink
-+autoreconf --install --symlink --force
-
- libdir() {
- echo $(cd $1/$(gcc -print-multi-os-directory); pwd)
-diff -Naur fireperf-0.2.0.orig/configure.ac fireperf-0.2.0/configure.ac
---- fireperf-0.2.0.orig/configure.ac 2021-02-23 16:06:33.000000000 +0100
-+++ fireperf-0.2.0/configure.ac 2025-05-13 20:47:20.578717837 +0200
-@@ -28,6 +28,8 @@
- pic-only
- ])
- AC_PREFIX_DEFAULT([/usr])
-+AM_GNU_GETTEXT_VERSION(0.25)
-+AM_GNU_GETTEXT([external])
-
- IT_PROG_INTLTOOL([0.40.0])
-
diff --git a/src/patches/fireperf/0001-uring-Register-the-pool-only-once-all-workers-have-t.patch b/src/patches/fireperf/0001-uring-Register-the-pool-only-once-all-workers-have-t.patch
new file mode 100644
index 0000000000..ee28724d6a
--- /dev/null
+++ b/src/patches/fireperf/0001-uring-Register-the-pool-only-once-all-workers-have-t.patch
@@ -0,0 +1,183 @@
+From 6a07cc5ed17b15f56a4ef41ca2e05647402d7400 Mon Sep 17 00:00:00 2001
+From: Michael Tremer <michael.tremer@ipfire.org>
+Date: Fri, 16 Oct 2026 15:40:59 +0000
+Subject: [PATCH 1/2] uring: Register the pool only once all workers have their
+ rings
+
+Every worker has registered its share of the pool right after it had set
+up its ring. Those shares have taken almost all of RLIMIT_MEMLOCK, so
+that there was nothing left for the rings of the workers after them on
+kernels that count the rings, too, no matter how small we made them,
+and we have always ended up using epoll.
+
+The pool is now being registered once all workers have their rings,
+with what they have left: if a share does not fit, we try with half of
+it, until it is too small to be worth it. The soft limit is now raised
+before the first ring is being set up, too.
+
+Fixes: #14366
+Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
+---
+ src/backend-uring.c | 69 +++++++++++++++++++++++++++++++--------------
+ src/backend.h | 5 ++++
+ src/worker.c | 4 +++
+ 3 files changed, 57 insertions(+), 21 deletions(-)
+
+diff --git a/src/backend-uring.c b/src/backend-uring.c
+index 45da90c..3d6ba7a 100644
+--- a/src/backend-uring.c
++++ b/src/backend-uring.c
+@@ -241,8 +241,29 @@ static void fireperf_uring_free(void* data) {
+ straight away. The kernel tells us what it has done, so we try and go back to
+ copying if that is what happens anyway.
+ */
++/*
++ Unless we are allowed to lock as much memory as we like, the rings and what
++ we register count towards RLIMIT_MEMLOCK, which is often only a couple of
++ MiB. So ask for as much as we may have.
++*/
++static void fireperf_uring_raise_memlock(void) {
++ struct rlimit limit;
++
++ if (getrlimit(RLIMIT_MEMLOCK, &limit) == 0 && limit.rlim_cur < limit.rlim_max) {
++ limit.rlim_cur = limit.rlim_max;
++
++ setrlimit(RLIMIT_MEMLOCK, &limit);
++ }
++}
++
++/*
++ Registers the pool, so that the kernel does not have to look up its pages
++ whenever we send from it. This happens once all workers have their rings,
++ which they need more, and only takes what they have left.
++*/
+ static void fireperf_uring_register_pool(struct fireperf_uring* u) {
+ struct fireperf_ctx* ctx = fireperf_worker_get_ctx(u->worker);
++ const size_t page = sysconf(_SC_PAGESIZE);
+ struct rlimit limit;
+ size_t length = RANDOM_POOL_SIZE;
+ int r;
+@@ -253,33 +274,29 @@ static void fireperf_uring_register_pool(struct fireperf_uring* u) {
+ { .iov_base = ctx->pool + RANDOM_POOL_SIZE, .iov_len = SEND_CHUNK_SIZE },
+ };
+
+- // Unless we are allowed to lock as much memory as we like, what we register
+- // counts towards RLIMIT_MEMLOCK, which is often only a couple of MiB. So ask
+- // for as much as we may have.
+- if (getrlimit(RLIMIT_MEMLOCK, &limit) == 0 && limit.rlim_cur < limit.rlim_max) {
+- limit.rlim_cur = limit.rlim_max;
+-
+- setrlimit(RLIMIT_MEMLOCK, &limit);
+- }
+-
+ // Try to register all of it
+ r = io_uring_register_buffers(&u->ring, pool, 2);
+
+ // If that is too much, register as much as every worker may have and leave a
+- // share for everything else. We will only send what is in there then.
++ // share for everything else. If that is still too much, because the rings and
++ // everybody else have taken some of it, try less. We will only send what is
++ // in there then.
+ if (r == -ENOMEM && getrlimit(RLIMIT_MEMLOCK, &limit) == 0 && limit.rlim_cur != RLIM_INFINITY) {
++ // Leave space for the zeroes
+ length = limit.rlim_cur / (ctx->max_workers + 1);
+
+- // Round down to whole pages
+- length &= ~((size_t)sysconf(_SC_PAGESIZE) - 1);
++ // Keep enough to pick from
++ while (r == -ENOMEM && length >= SEND_CHUNK_SIZE * 3) {
++ // Round down to whole pages
++ length &= ~(page - 1);
+
+- // Leave space for the zeroes, and keep enough to pick from
+- if (length >= SEND_CHUNK_SIZE * 3) {
+- length -= SEND_CHUNK_SIZE;
+-
+- pool[0].iov_len = length;
++ pool[0].iov_len = length - SEND_CHUNK_SIZE;
+
+ r = io_uring_register_buffers(&u->ring, pool, 2);
++ if (r == 0)
++ length -= SEND_CHUNK_SIZE;
++ else
++ length /= 2;
+ }
+ }
+
+@@ -317,10 +334,7 @@ static void fireperf_uring_setup_zerocopy(struct fireperf_uring* u) {
+
+ io_uring_free_probe(probe);
+
+- if (!u->zerocopy)
+- return;
+-
+- fireperf_uring_register_pool(u);
++ // The pool will be registered once all workers have been set up
+ }
+
+ /*
+@@ -404,6 +418,8 @@ static int fireperf_uring_create(struct fireperf_worker* worker, void** data) {
+ u->worker = worker;
+ u->eventfd = -1;
+
++ fireperf_uring_raise_memlock();
++
+ // Make space for many completions, as there are up to
+ // two operations in flight for every connection
+ struct io_uring_params params = {
+@@ -1150,10 +1166,21 @@ static void fireperf_uring_wakeup(void* data) {
+ (void)bytes;
+ }
+
++/*
++ Called once all workers have been set up
++*/
++static void fireperf_uring_launch(void* data) {
++ struct fireperf_uring* u = data;
++
++ if (u->zerocopy)
++ fireperf_uring_register_pool(u);
++}
++
+ const struct fireperf_backend fireperf_backend_uring = {
+ .name = "io_uring",
+ .create = fireperf_uring_create,
+ .free = fireperf_uring_free,
++ .launch = fireperf_uring_launch,
+ .add_listener = fireperf_uring_add_listener,
+ .accept_pending = fireperf_uring_accept_pending,
+ .add_conn = fireperf_uring_add_conn,
+diff --git a/src/backend.h b/src/backend.h
+index e4795a4..a613544 100644
+--- a/src/backend.h
++++ b/src/backend.h
+@@ -157,6 +157,11 @@ struct fireperf_backend {
+ int (*create)(struct fireperf_worker* worker, void** data);
+ void (*free)(void* data);
+
++ // Called once all workers have been set up, right before this one is
++ // being launched. This is where a backend claims what is good to have,
++ // but less important than what all workers need to run.
++ void (*launch)(void* data);
++
+ // Starts watching a listening socket
+ int (*add_listener)(void* data, int fd);
+
+diff --git a/src/worker.c b/src/worker.c
+index 186d686..34ba6bf 100644
+--- a/src/worker.c
++++ b/src/worker.c
+@@ -2087,6 +2087,10 @@ static void* fireperf_worker_main(void* w) {
+ int fireperf_worker_launch(struct fireperf_worker* worker) {
+ int r;
+
++ // Let the backend finish setting up
++ if (worker->backend->launch)
++ worker->backend->launch(worker->data);
++
+ // Launch the worker
+ r = pthread_create(&worker->thread, NULL, fireperf_worker_main, worker);
+ if (r) {
+--
+2.47.3
+
diff --git a/src/patches/fireperf/0002-server-Log-the-tests-that-clients-have-run-and-add-q.patch b/src/patches/fireperf/0002-server-Log-the-tests-that-clients-have-run-and-add-q.patch
new file mode 100644
index 0000000000..abe60b9b5e
--- /dev/null
+++ b/src/patches/fireperf/0002-server-Log-the-tests-that-clients-have-run-and-add-q.patch
@@ -0,0 +1,917 @@
+From b55a9b1f81e824bdbc53638b5707b878765f44f3 Mon Sep 17 00:00:00 2001
+From: Michael Tremer <michael.tremer@ipfire.org>
+Date: Tue, 20 Oct 2026 10:01:15 +0000
+Subject: [PATCH 2/2] server: Log the tests that clients have run, and add
+ --quiet
+
+The server now logs when a client starts a test, and what it has done
+when it has finished: how long it took, how many connections it has
+opened and reset, and how much it has received and sent at what rate.
+A test is everything that a client does until it has had no connections
+open, and has not opened any new ones, for three seconds.
+
+With --quiet, nothing but messages, these tests and the summary at the
+end is being printed, instead of a line every second, which is what
+the server needs when it runs as a service.
+
+If stdout or stderr go to the journal, which systemd tells us in
+$JOURNAL_STREAM, every message starts with its priority, so that the
+journal knows how important it is. stdout is now line-buffered when it
+is not a terminal, so that nothing waits for a full buffer.
+
+Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
+---
+ Makefile.am | 3 +
+ man/fireperf.txt | 19 +++++
+ po/POTFILES.in | 1 +
+ po/de.po | 25 ++++++-
+ po/fireperf.pot | 23 +++++-
+ src/ctx.c | 22 +++++-
+ src/ctx.h | 12 ++++
+ src/logging.c | 55 +++++++++++---
+ src/logging.h | 2 +
+ src/main.c | 42 ++++++++++-
+ src/plain.c | 13 ++--
+ src/sessions.c | 184 +++++++++++++++++++++++++++++++++++++++++++++++
+ src/sessions.h | 51 +++++++++++++
+ tests/lib.sh | 3 +-
+ tests/quiet.sh | 80 +++++++++++++++++++++
+ 15 files changed, 515 insertions(+), 20 deletions(-)
+ create mode 100644 src/sessions.c
+ create mode 100644 src/sessions.h
+ create mode 100755 tests/quiet.sh
+
+diff --git a/Makefile.am b/Makefile.am
+index 59e8918..761f472 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -92,6 +92,8 @@ fireperf_SOURCES = \
+ src/remotes.h \
+ src/resolver.c \
+ src/resolver.h \
++ src/sessions.c \
++ src/sessions.h \
+ src/socket.c \
+ src/socket.h \
+ src/stats.c \
+@@ -225,6 +227,7 @@ dist_check_SCRIPTS = \
+ tests/negotiate.sh \
+ tests/parallel.sh \
+ tests/port-range.sh \
++ tests/quiet.sh \
+ tests/rate.sh \
+ tests/signals.sh \
+ tests/timeout.sh \
+diff --git a/man/fireperf.txt b/man/fireperf.txt
+index 42b5a41..020ea72 100644
+--- a/man/fireperf.txt
++++ b/man/fireperf.txt
+@@ -71,6 +71,13 @@ INTEROPERABILITY below.
+ Prints plain text reports instead of showing the interactive terminal interface.
+ See OUTPUT below.
+
++--quiet::
++-q::
++ Does not show the interactive terminal interface, and does not print a line every
++ second either, but only messages, the tests that clients have run on the server,
++ and the summary at the end. This is how the server runs as a service. See RUNNING
++ AS A SERVICE below. It cannot be used with `--json`.
++
+ --zerocopy=MODE::
+ Most of what it costs to send data is copying it from the program into the kernel,
+ which `fireperf` avoids. How depends on the backend:
+@@ -426,6 +433,18 @@ connection until it is established, and is accurate to about six percent. If a p
+ of the handshake is lost, it is being sent again after one second, which shows up as a
+ 99th percentile or a maximum of slightly more than that.
+
++The server logs when a client starts a test, and what it has done when it has
++finished, so that this can be looked at later:
++
++----
++Test from 192.0.2.1 has started
++Test from 192.0.2.1 (fireperf) has finished after about 10s: 8 connection(s), 0 reset, received 0.00 B (0.00 b/s), sent 11.02 GiB (9.46 Gb/s)
++----
++
++A test is everything that a client does from its first connection until it has had
++no connections open, and has not opened any new ones, for three seconds. The server
++looks once a second, so the duration and the rates are not exact.
++
+ == JSON OUTPUT
+
+ With `--json`, `fireperf` prints one JSON object per line (JSON Lines) to standard
+diff --git a/po/POTFILES.in b/po/POTFILES.in
+index c771e1f..0d9db5d 100644
+--- a/po/POTFILES.in
++++ b/po/POTFILES.in
+@@ -5,6 +5,7 @@ src/logging.c
+ src/main.c
+ src/plain.c
+ src/random.c
++src/sessions.c
+ src/socket.c
+ src/tui.c
+ src/worker.c
+diff --git a/po/de.po b/po/de.po
+index 18e05ae..eae444e 100644
+--- a/po/de.po
++++ b/po/de.po
+@@ -6,7 +6,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: fireperf\n"
+ "Report-Msgid-Bugs-To: https://bugzilla.ipfire.org/\n"
+-"POT-Creation-Date: 2026-10-16 12:21+0000\n"
++"POT-Creation-Date: 2026-10-20 09:52+0000\n"
+ "PO-Revision-Date: 2026-10-14 10:00+0000\n"
+ "Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+ "Language-Team: German\n"
+@@ -140,6 +140,9 @@ msgstr "Berichte als einfachen Text ausgeben statt die TUI anzuzeigen"
+ msgid "Print JSON (one object per line) for other programs to read"
+ msgstr "JSON (ein Objekt pro Zeile) für andere Programme ausgeben"
+
++msgid "Only log messages and what clients have done (for running as a service)"
++msgstr "Nur Meldungen und was Clients getan haben protokollieren (für den Betrieb als Dienst)"
++
+ msgid "Colours for a dark or light terminal: auto, dark, light (default: auto)"
+ msgstr ""
+ "Farben für ein dunkles oder helles Terminal: auto, dark, light (Standard: "
+@@ -245,6 +248,10 @@ msgstr "--bind braucht hier IPv4-Adressen\n"
+ msgid "--bind needs IPv6 addresses here\n"
+ msgstr "--bind braucht hier IPv6-Adressen\n"
+
++#, c-format
++msgid "--quiet cannot be used with --json\n"
++msgstr "--quiet kann nicht zusammen mit --json verwendet werden\n"
++
+ #, c-format
+ msgid "--exchange cannot be used with --keepalive or --close\n"
+ msgstr ""
+@@ -407,6 +414,10 @@ msgstr "Das Terminal konnte nicht eingerichtet werden: %s\n"
+ msgid "Falling back to plain text output\n"
+ msgstr "Ausgabe erfolgt stattdessen als einfacher Text\n"
+
++#, c-format
++msgid "Could not allocate memory: %s\n"
++msgstr "Speicher konnte nicht reserviert werden: %s\n"
++
+ #, c-format
+ msgid "Could not initialize epoll(): %m\n"
+ msgstr "epoll() konnte nicht initialisiert werden: %m\n"
+@@ -597,6 +608,18 @@ msgstr "Der Pool konnte nicht eingeblendet werden: %m\n"
+ msgid "Could not fetch random data: %m\n"
+ msgstr "Es konnten keine Zufallsdaten abgerufen werden: %m\n"
+
++#, c-format
++msgid "Test from %s has started\n"
++msgstr "Test von %s hat begonnen\n"
++
++#, c-format
++msgid ""
++"Test from %s (%s) has finished after about %.0fs: %lu connection(s), %lu "
++"reset, received %s (%s), sent %s (%s)\n"
++msgstr ""
++"Test von %s (%s) ist nach etwa %.0fs beendet: %lu Verbindung(en), %lu "
++"zurückgesetzt, %s empfangen (%s), %s gesendet (%s)\n"
++
+ #, c-format
+ msgid "Could not set SO_KEEPALIVE on socket %d: %m\n"
+ msgstr "SO_KEEPALIVE konnte für Socket %d nicht gesetzt werden: %m\n"
+diff --git a/po/fireperf.pot b/po/fireperf.pot
+index 097382d..aa9012c 100644
+--- a/po/fireperf.pot
++++ b/po/fireperf.pot
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: fireperf 0.3.0\n"
+ "Report-Msgid-Bugs-To: https://bugzilla.ipfire.org/\n"
+-"POT-Creation-Date: 2026-10-16 12:21+0000\n"
++"POT-Creation-Date: 2026-10-20 09:52+0000\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -137,6 +137,9 @@ msgstr ""
+ msgid "Print JSON (one object per line) for other programs to read"
+ msgstr ""
+
++msgid "Only log messages and what clients have done (for running as a service)"
++msgstr ""
++
+ msgid "Colours for a dark or light terminal: auto, dark, light (default: auto)"
+ msgstr ""
+
+@@ -234,6 +237,10 @@ msgstr ""
+ msgid "--bind needs IPv6 addresses here\n"
+ msgstr ""
+
++#, c-format
++msgid "--quiet cannot be used with --json\n"
++msgstr ""
++
+ #, c-format
+ msgid "--exchange cannot be used with --keepalive or --close\n"
+ msgstr ""
+@@ -364,6 +371,10 @@ msgstr ""
+ msgid "Falling back to plain text output\n"
+ msgstr ""
+
++#, c-format
++msgid "Could not allocate memory: %s\n"
++msgstr ""
++
+ #, c-format
+ msgid "Could not initialize epoll(): %m\n"
+ msgstr ""
+@@ -537,6 +548,16 @@ msgstr ""
+ msgid "Could not fetch random data: %m\n"
+ msgstr ""
+
++#, c-format
++msgid "Test from %s has started\n"
++msgstr ""
++
++#, c-format
++msgid ""
++"Test from %s (%s) has finished after about %.0fs: %lu connection(s), %lu "
++"reset, received %s (%s), sent %s (%s)\n"
++msgstr ""
++
+ #, c-format
+ msgid "Could not set SO_KEEPALIVE on socket %d: %m\n"
+ msgstr ""
+diff --git a/src/ctx.c b/src/ctx.c
+index 986fe9d..9bc9584 100644
+--- a/src/ctx.c
++++ b/src/ctx.c
+@@ -40,6 +40,7 @@
+ #include "logging.h"
+ #include "random.h"
+ #include "remotes.h"
++#include "sessions.h"
+ #include "stats.h"
+ #include "util.h"
+ #include "i18n.h"
+@@ -366,6 +367,7 @@ static void usage(FILE* f) {
+ { "-z, --zero", N_("Send zeroes instead of random data") },
+ { "-n, --no-tui", N_("Print plain text reports instead of showing the TUI") },
+ { "-j, --json", N_("Print JSON (one object per line) for other programs to read") },
++ { "-q, --quiet", N_("Only log messages and what clients have done (for running as a service)") },
+ { " --theme MODE", N_("Colours for a dark or light terminal: auto, dark, light (default: auto)") },
+ { " --zerocopy MODE", N_("Send without copying: auto, always, never (default: auto)") },
+ { "-d, --debug", N_("Enable debugging output") },
+@@ -402,6 +404,7 @@ static int parse_argv(struct fireperf_ctx* ctx, int argc, char* argv[]) {
+ {"keepalive-interval", required_argument, 0, OPTION_KEEPALIVE_INTERVAL},
+ {"no-tui", no_argument, 0, 'n'},
+ {"parallel", required_argument, 0, 'P'},
++ {"quiet", no_argument, 0, 'q'},
+ {"port", required_argument, 0, 'p'},
+ {"rate", required_argument, 0, 'r'},
+ {"reset", no_argument, 0, 'R'},
+@@ -422,7 +425,7 @@ static int parse_argv(struct fireperf_ctx* ctx, int argc, char* argv[]) {
+ int r;
+
+ while (!done) {
+- int c = getopt_long(argc, argv, "46b:c:dhjknp:r:st:w:xzB:C:DP:RT:VX:", long_options, &option_index);
++ int c = getopt_long(argc, argv, "46b:c:dhjknp:qr:st:w:xzB:C:DP:RT:VX:", long_options, &option_index);
+
+ // End
+ if (c == -1)
+@@ -603,6 +606,11 @@ static int parse_argv(struct fireperf_ctx* ctx, int argc, char* argv[]) {
+ ctx->no_tui = 1;
+ break;
+
++ case 'q':
++ ctx->quiet = 1;
++ ctx->no_tui = 1;
++ break;
++
+ case 'P':
+ r = parse_option_number("--parallel", optarg, 1, MAX_PARALLEL, &ctx->parallel);
+ if (r)
+@@ -685,6 +693,12 @@ static int parse_argv(struct fireperf_ctx* ctx, int argc, char* argv[]) {
+ ctx->family = family;
+ }
+
++ // We cannot be quiet and print JSON every second
++ if (ctx->quiet && ctx->json) {
++ fprintf(stderr, _("--quiet cannot be used with --json\n"));
++ return 2;
++ }
++
+ // A connection can either carry a request and a response, be kept open or be
+ // closed straight away
+ if (ctx->exchange && (ctx->keepalive_only || ctx->close)) {
+@@ -763,6 +777,9 @@ int fireperf_ctx_create(struct fireperf_ctx** ctx, int argc, char* argv[]) {
+
+ // Only this thread is allowed to write log messages
+ c->log.thread = pthread_self();
++
++ // Find out if we are writing to the journal
++ fireperf_log_detect_journal(c);
+ pthread_mutex_init(&c->log.lock, NULL);
+ pthread_mutex_init(&c->iperf3.lock, NULL);
+
+@@ -838,6 +855,9 @@ ERROR:
+ void fireperf_ctx_free(struct fireperf_ctx* ctx) {
+ free(ctx->frozen_remotes);
+
++ if (ctx->sessions)
++ fireperf_sessions_free(ctx->sessions);
++
+ // Free all workers (they must have been terminated before)
+ for (unsigned int i = 0; i < ctx->num_workers; i++)
+ fireperf_worker_free(ctx->workers[i]);
+diff --git a/src/ctx.h b/src/ctx.h
+index c13f65e..0d6a3f4 100644
+--- a/src/ctx.h
++++ b/src/ctx.h
+@@ -36,6 +36,7 @@
+ // Forward declarations
+ struct fireperf_backend;
+ struct fireperf_iperf3;
++struct fireperf_sessions;
+ struct fireperf_worker;
+
+ typedef void (*fireperf_log_callback)(void* data, int priority, const char* file,
+@@ -51,6 +52,11 @@ struct fireperf_ctx {
+ // The thread which is allowed to call the callback
+ pthread_t thread;
+
++ // Set if stdout/stderr go to the journal, which wants to know
++ // the priority of every message at the beginning of the line
++ int journal_stdout;
++ int journal_stderr;
++
+ // Messages from all other threads are queued here
+ pthread_mutex_t lock;
+ struct fireperf_log_message {
+@@ -98,6 +104,12 @@ struct fireperf_ctx {
+
+ int no_tui;
+
++ // Only log messages, and what the clients have done, but nothing every second
++ int quiet;
++
++ // Tests that clients are running on the server
++ struct fireperf_sessions* sessions;
++
+ // Whether the terminal has a dark or a light background
+ enum {
+ FIREPERF_THEME_AUTO = 0,
+diff --git a/src/logging.c b/src/logging.c
+index e0664b3..4e6bd01 100644
+--- a/src/logging.c
++++ b/src/logging.c
+@@ -21,7 +21,10 @@
+ #include <pthread.h>
+ #include <stdarg.h>
+ #include <stdio.h>
++#include <stdlib.h>
++#include <sys/stat.h>
+ #include <syslog.h>
++#include <unistd.h>
+
+ #include "ctx.h"
+ #include "logging.h"
+@@ -35,24 +38,58 @@ static void __attribute__((format(printf, 6, 0))) fireperf_log_console(void* dat
+ const char* file, int line, const char* fn, const char* format, va_list args) {
+ struct fireperf_ctx* ctx = data;
+
+- // Nothing but JSON must go to stdout if that is what we are writing
+- if (ctx->json) {
+- vfprintf(stderr, format, args);
+- return;
+- }
++ FILE* f = stdout;
++ int journal = ctx->log.journal_stdout;
+
++ // Nothing but JSON must go to stdout if that is what we are writing,
++ // and warnings and error messages go to stderr
+ switch (priority) {
+- // Print warnings and error messages to stderr
+ case LOG_WARNING:
+ case LOG_ERR:
+- vfprintf(stderr, format, args);
++ f = stderr;
++ journal = ctx->log.journal_stderr;
+ break;
+
+- // Otherwise print to stdout
+ default:
+- vprintf(format, args);
++ if (ctx->json) {
++ f = stderr;
++ journal = ctx->log.journal_stderr;
++ }
+ break;
+ }
++
++ // Tell the journal how important this is
++ if (journal)
++ fprintf(f, "<%d>", priority);
++
++ vfprintf(f, format, args);
++}
++
++/*
++ Returns true if fd is the stream that systemd has connected to the journal,
++ which it tells us in $JOURNAL_STREAM as its device and inode
++*/
++static int fireperf_log_is_journal(int fd) {
++ unsigned long long dev = 0;
++ unsigned long long ino = 0;
++ struct stat st;
++
++ const char* stream = getenv("JOURNAL_STREAM");
++ if (!stream)
++ return 0;
++
++ if (sscanf(stream, "%llu:%llu", &dev, &ino) != 2)
++ return 0;
++
++ if (fstat(fd, &st) < 0)
++ return 0;
++
++ return (st.st_dev == dev && st.st_ino == ino);
++}
++
++void fireperf_log_detect_journal(struct fireperf_ctx* ctx) {
++ ctx->log.journal_stdout = fireperf_log_is_journal(STDOUT_FILENO);
++ ctx->log.journal_stderr = fireperf_log_is_journal(STDERR_FILENO);
+ }
+
+ void fireperf_set_log_callback(struct fireperf_ctx* ctx,
+diff --git a/src/logging.h b/src/logging.h
+index 17e3a43..65e6174 100644
+--- a/src/logging.h
++++ b/src/logging.h
+@@ -47,6 +47,8 @@ static inline void __attribute__((always_inline, format(printf, 2, 3)))
+
+ int fireperf_get_log_level(struct fireperf_ctx* ctx);
+
++void fireperf_log_detect_journal(struct fireperf_ctx* ctx);
++
+ void fireperf_set_log_callback(struct fireperf_ctx* ctx,
+ fireperf_log_callback callback, void* data);
+
+diff --git a/src/main.c b/src/main.c
+index 6d109b5..5329d69 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -36,9 +36,23 @@
+ #include "logging.h"
+ #include "json.h"
+ #include "plain.h"
++#include "remotes.h"
++#include "sessions.h"
+ #include "stats.h"
+ #include "i18n.h"
+
++/*
++ Looks at what has happened for every address, and logs tests that
++ clients have started and finished
++*/
++static void update_sessions(struct fireperf_ctx* ctx, const struct timespec* now) {
++ struct fireperf_remote_totals totals[FIREPERF_REMOTES_SHOWN];
++
++ const unsigned int count = fireperf_ctx_get_remotes(ctx, totals, FIREPERF_REMOTES_SHOWN);
++
++ fireperf_sessions_update(ctx->sessions, ctx, totals, count, now);
++}
++
+ /*
+ Creates a timer that fires after value seconds and then every interval seconds
+ */
+@@ -226,6 +240,20 @@ int main(int argc, char* argv[]) {
+ else if (r)
+ return EXIT_FAILURE;
+
++ // Write every line as soon as it is complete if nobody is watching on a
++ // terminal, so that what we say does not wait for a full buffer
++ if (!isatty(STDOUT_FILENO))
++ setvbuf(stdout, NULL, _IOLBF, 0);
++
++ // The server logs what every client has done
++ if (ctx->mode == FIREPERF_MODE_SERVER) {
++ r = fireperf_sessions_create(&ctx->sessions);
++ if (r < 0) {
++ ERROR(ctx, _("Could not allocate memory: %s\n"), strerror(-r));
++ goto ERROR;
++ }
++ }
++
+ // Initialize epoll()
+ epollfd = epoll_create1(EPOLL_CLOEXEC);
+ if (epollfd < 0) {
+@@ -313,7 +341,7 @@ int main(int argc, char* argv[]) {
+ // Print the header
+ if (ctx->json)
+ fireperf_json_start(ctx);
+- else if (!ctx->tui)
++ else if (!ctx->tui && !ctx->quiet)
+ fireperf_plain_header(ctx);
+
+ running = 1;
+@@ -368,10 +396,14 @@ int main(int argc, char* argv[]) {
+ fireperf_json_update(ctx, &start, &ctx->stats, &stats);
+
+ // Or print the next line
+- } else {
++ } else if (!ctx->quiet) {
+ fireperf_plain_update(ctx, &start, &ctx->stats, &stats);
+ }
+
++ // Log what the clients have done
++ if (ctx->sessions)
++ update_sessions(ctx, &stats.t);
++
+ // Replace the stats for the next iteration
+ ctx->stats = stats;
+
+@@ -445,6 +477,12 @@ ERROR:
+ end = fireperf_ctx_get_stats(ctx);
+ fireperf_ctx_freeze_remotes(ctx);
+
++ // Log the tests that are still running
++ if (ctx->sessions && running) {
++ update_sessions(ctx, &end.t);
++ fireperf_sessions_finish(ctx->sessions, ctx);
++ }
++
+ // Terminate all workers. If one of them fails while doing that (for example because
+ // the server has said something bad at the end of a test), that is a failure, too.
+ const int e = fireperf_ctx_terminate_workers(ctx);
+diff --git a/src/plain.c b/src/plain.c
+index 3b328b1..ec8699f 100644
+--- a/src/plain.c
++++ b/src/plain.c
+@@ -164,13 +164,16 @@ void fireperf_plain_summary(struct fireperf_ctx* ctx,
+ char p99[32];
+ char max[32];
+
+- printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+- "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n");
++ // Show the averages over the entire runtime below the lines of every second,
++ // unless we have not printed those
++ if (!ctx->quiet) {
++ printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
++ "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n");
+
+- // Show the averages over the entire runtime
+- fireperf_plain_line(start, start, end, latency, end->total_cpu);
++ fireperf_plain_line(start, start, end, latency, end->total_cpu);
+
+- printf("\n");
++ printf("\n");
++ }
+
+ // Show how busy we were
+ if (ctx->num_workers)
+diff --git a/src/sessions.c b/src/sessions.c
+new file mode 100644
+index 0000000..cba1ea3
+--- /dev/null
++++ b/src/sessions.c
+@@ -0,0 +1,184 @@
++/*#############################################################################
++# #
++# fireperf - A network benchmarking tool #
++# Copyright (C) 2026 IPFire Development Team #
++# #
++# This program is free software: you can redistribute it and/or modify #
++# it under the terms of the GNU General Public License as published by #
++# the Free Software Foundation, either version 3 of the License, or #
++# (at your option) any later version. #
++# #
++# This program is distributed in the hope that it will be useful, #
++# but WITHOUT ANY WARRANTY; without even the implied warranty of #
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
++# GNU General Public License for more details. #
++# #
++# You should have received a copy of the GNU General Public License #
++# along with this program. If not, see <http://www.gnu.org/licenses/>. #
++# #
++#############################################################################*/
++
++#include <errno.h>
++#include <stdlib.h>
++#include <string.h>
++
++#include "ctx.h"
++#include "logging.h"
++#include "remotes.h"
++#include "sessions.h"
++#include "util.h"
++#include "i18n.h"
++
++// A test has finished when a client has done nothing for this many seconds
++#define SESSION_IDLE 3
++
++struct fireperf_session {
++ union fireperf_address address;
++
++ // Set while the client is running a test
++ int active;
++
++ // When we have seen the client do something first and last
++ struct timespec started;
++ struct timespec seen;
++
++ // What we have counted for the address before the test has started
++ struct fireperf_remote_totals before;
++
++ // What we have counted for the address most recently
++ struct fireperf_remote_totals last;
++};
++
++struct fireperf_sessions {
++ struct fireperf_session sessions[FIREPERF_REMOTES_SHOWN];
++ unsigned int count;
++};
++
++int fireperf_sessions_create(struct fireperf_sessions** sessions) {
++ struct fireperf_sessions* s = calloc(1, sizeof(*s));
++ if (!s)
++ return -errno;
++
++ *sessions = s;
++
++ return 0;
++}
++
++void fireperf_sessions_free(struct fireperf_sessions* sessions) {
++ free(sessions);
++}
++
++static struct fireperf_session* fireperf_sessions_find(
++ struct fireperf_sessions* sessions, const union fireperf_address* address) {
++ for (unsigned int i = 0; i < sessions->count; i++) {
++ if (fireperf_remote_address_equal(&sessions->sessions[i].address, address))
++ return &sessions->sessions[i];
++ }
++
++ // Make space for a new one
++ if (sessions->count >= FIREPERF_REMOTES_SHOWN)
++ return NULL;
++
++ struct fireperf_session* session = &sessions->sessions[sessions->count++];
++
++ session->address = *address;
++
++ return session;
++}
++
++static void fireperf_session_start(struct fireperf_session* session,
++ struct fireperf_ctx* ctx, const struct timespec* now) {
++ char address[INET6_ADDRSTRLEN];
++
++ session->active = 1;
++ session->started = *now;
++
++ // Everything that has happened so far does not belong to this test
++ session->before = session->last;
++
++ INFO(ctx, _("Test from %s has started\n"),
++ fireperf_address_format(&session->address, address, sizeof(address)));
++}
++
++static void fireperf_session_finish(struct fireperf_session* session, struct fireperf_ctx* ctx) {
++ const struct fireperf_remote_totals* before = &session->before;
++ const struct fireperf_remote_totals* last = &session->last;
++ char address[INET6_ADDRSTRLEN];
++ char received[32];
++ char sent[32];
++ char rx_rate[32];
++ char tx_rate[32];
++
++ session->active = 0;
++
++ // We only look once a second, so this is not exact, but
++ // every test that we have noticed has taken some time
++ double duration = timespec_delta(&session->seen, &session->started);
++ if (duration < 1)
++ duration = 1;
++
++ const unsigned long long bytes_received = last->bytes_received - before->bytes_received;
++ const unsigned long long bytes_sent = last->bytes_sent - before->bytes_sent;
++
++ format_size(received, bytes_received, FIREPERF_FORMAT_BYTES);
++ format_size(sent, bytes_sent, FIREPERF_FORMAT_BYTES);
++ format_size(rx_rate, bytes_received * 8 / duration, FIREPERF_FORMAT_BITS_PER_SECOND);
++ format_size(tx_rate, bytes_sent * 8 / duration, FIREPERF_FORMAT_BITS_PER_SECOND);
++
++ const char* kind = fireperf_remote_kind(last->kind);
++ if (!kind)
++ kind = "-";
++
++ INFO(ctx, _("Test from %s (%s) has finished after about %.0fs: %lu connection(s), "
++ "%lu reset, received %s (%s), sent %s (%s)\n"),
++ fireperf_address_format(&session->address, address, sizeof(address)), kind, duration,
++ last->total - before->total, last->resets - before->resets,
++ received, rx_rate, sent, tx_rate);
++}
++
++void fireperf_sessions_update(struct fireperf_sessions* sessions, struct fireperf_ctx* ctx,
++ const struct fireperf_remote_totals* totals, unsigned int count, const struct timespec* now) {
++ for (unsigned int i = 0; i < count; i++) {
++ const struct fireperf_remote_totals* t = &totals[i];
++
++ // We cannot tell clients apart that have not fit in
++ if (t->others)
++ continue;
++
++ struct fireperf_session* session = fireperf_sessions_find(sessions, &t->address);
++ if (!session)
++ continue;
++
++ // Has the client done anything since we have looked last?
++ const int busy = t->open
++ || t->total != session->last.total
++ || t->bytes_received != session->last.bytes_received
++ || t->bytes_sent != session->last.bytes_sent;
++
++ if (busy) {
++ if (!session->active)
++ fireperf_session_start(session, ctx, now);
++
++ session->seen = *now;
++ }
++
++ session->last = *t;
++ }
++
++ // Finish all tests where the client has been quiet for a while
++ for (unsigned int i = 0; i < sessions->count; i++) {
++ struct fireperf_session* session = &sessions->sessions[i];
++
++ if (session->active && timespec_delta(now, &session->seen) >= SESSION_IDLE)
++ fireperf_session_finish(session, ctx);
++ }
++}
++
++void fireperf_sessions_finish(struct fireperf_sessions* sessions, struct fireperf_ctx* ctx) {
++ for (unsigned int i = 0; i < sessions->count; i++) {
++ struct fireperf_session* session = &sessions->sessions[i];
++
++ if (session->active)
++ fireperf_session_finish(session, ctx);
++ }
++}
+diff --git a/src/sessions.h b/src/sessions.h
+new file mode 100644
+index 0000000..46a9cd9
+--- /dev/null
++++ b/src/sessions.h
+@@ -0,0 +1,51 @@
++/*#############################################################################
++# #
++# fireperf - A network benchmarking tool #
++# Copyright (C) 2026 IPFire Development Team #
++# #
++# This program is free software: you can redistribute it and/or modify #
++# it under the terms of the GNU General Public License as published by #
++# the Free Software Foundation, either version 3 of the License, or #
++# (at your option) any later version. #
++# #
++# This program is distributed in the hope that it will be useful, #
++# but WITHOUT ANY WARRANTY; without even the implied warranty of #
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
++# GNU General Public License for more details. #
++# #
++# You should have received a copy of the GNU General Public License #
++# along with this program. If not, see <http://www.gnu.org/licenses/>. #
++# #
++#############################################################################*/
++
++#ifndef FIREPERF_SESSIONS_H
++#define FIREPERF_SESSIONS_H
++
++#include <time.h>
++
++#include "remotes.h"
++
++// Forward declarations
++struct fireperf_ctx;
++
++/*
++ The server logs a line when a client starts a test, and another one with what
++ has happened when it has finished, so that it can be looked at later.
++
++ A test is everything that a client does from the moment it opens a connection
++ until it has had no connections open, and has not opened any new ones, for a
++ little while.
++*/
++struct fireperf_sessions;
++
++int fireperf_sessions_create(struct fireperf_sessions** sessions);
++void fireperf_sessions_free(struct fireperf_sessions* sessions);
++
++// Looks at what has happened for every address (once a second)
++void fireperf_sessions_update(struct fireperf_sessions* sessions, struct fireperf_ctx* ctx,
++ const struct fireperf_remote_totals* totals, unsigned int count, const struct timespec* now);
++
++// Logs all tests that are still running when we are terminating
++void fireperf_sessions_finish(struct fireperf_sessions* sessions, struct fireperf_ctx* ctx);
++
++#endif /* FIREPERF_SESSIONS_H */
+diff --git a/tests/lib.sh b/tests/lib.sh
+index 01aaf4d..926850e 100644
+--- a/tests/lib.sh
++++ b/tests/lib.sh
+@@ -248,7 +248,8 @@ start_server() {
+ wait_for_server() {
+ local i
+ for i in $(seq 600); do
+- if grep -q "^Ready" "${SERVER_LOG}"; then
++ # It might be telling the journal how important this is
++ if grep -q -E "^(<[0-7]>)?Ready" "${SERVER_LOG}"; then
+ return 0
+ fi
+
+diff --git a/tests/quiet.sh b/tests/quiet.sh
+new file mode 100755
+index 0000000..359675f
+--- /dev/null
++++ b/tests/quiet.sh
+@@ -0,0 +1,80 @@
++#!/bin/bash
++###############################################################################
++# #
++# fireperf - A network benchmarking tool #
++# Copyright (C) 2026 IPFire Development Team #
++# #
++# This program is free software: you can redistribute it and/or modify #
++# it under the terms of the GNU General Public License as published by #
++# the Free Software Foundation, either version 3 of the License, or #
++# (at your option) any later version. #
++# #
++# This program is distributed in the hope that it will be useful, #
++# but WITHOUT ANY WARRANTY; without even the implied warranty of #
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
++# GNU General Public License for more details. #
++# #
++# You should have received a copy of the GNU General Public License #
++# along with this program. If not, see <http://www.gnu.org/licenses/>. #
++# #
++###############################################################################
++
++# With --quiet, the server only logs messages and the tests that clients have run,
++# which is what it does when it is running as a service
++
++. "${srcdir:-.}/tests/lib.sh"
++
++# Waits until the server has logged that a test has finished, which it does once
++# the client has been quiet for a few seconds
++wait_for_test() {
++ local i
++ for i in $(seq 300); do
++ if grep -q "has finished after" "${SERVER_LOG}"; then
++ return 0
++ fi
++
++ sleep 0.1
++ done
++
++ fail "The server has not logged that the test has finished"
++}
++
++run() {
++ local backend="${1}"
++
++ start_server --backend="${backend}" --quiet
++ run_client --backend="${backend}" --timeout=2 --parallel=3
++ wait_for_test
++ stop_server
++
++ # Nothing is being printed every second
++ if grep -q -E "^ *[0-9.]+s " "${SERVER_LOG}"; then
++ fail "The server has printed what has happened every second"
++ fi
++
++ grep -q "^Test from 127\.0\.0\.1 has started$" "${SERVER_LOG}" \
++ || fail "The server has not logged that the test has started"
++
++ grep -q -E "^Test from 127\.0\.0\.1 \(fireperf\) has finished after about [0-9]+s: 3 connection\(s\), 0 reset, received 0\.00 B \(0\.00 b/s\), sent [0-9.]+ [KMGT]?i?B \([0-9.]+ [kMGT]?b/s\)$" \
++ "${SERVER_LOG}" || fail "The server has not logged what the test has done"
++
++ # The summary is still there when the server terminates
++ grep -q "^Workers:" "${SERVER_LOG}" || fail "The server has not printed a summary"
++
++ # If we are writing to the journal, every message starts with its priority. The
++ # journal tells us that by the device and inode of what it has connected us to.
++ : >"${SERVER_LOG}"
++
++ JOURNAL_STREAM="$(stat -c "%d:%i" "${SERVER_LOG}")" \
++ start_server --backend="${backend}" --quiet
++
++ stop_server
++
++ grep -q "^<6>Ready\.\.\.$" "${SERVER_LOG}" \
++ || fail "The server has not told the journal how important its messages are"
++}
++
++# The server says nothing every second, which JSON would
++expect_exit 2 --server --quiet --json
++
++run_with_all_backends run
+--
+2.47.3
+
diff --git a/src/stripper b/src/stripper
index 4014f03a4f..8a14a23614 100755
--- a/src/stripper
+++ b/src/stripper
@@ -74,7 +74,9 @@ function _strip() {
}
for path in ${paths[@]}; do
- for file in $(find -H "${path}" -xdev "${excludes[@]}" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) 2>/dev/null); do
+ # Find all executable files and all shared libraries (which are not always executable)
+ for file in $(find -H "${path}" -xdev "${excludes[@]}" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \
+ -or -name "*.so" -or -name "*.so.*" \) 2>/dev/null); do
_strip "${file}" || exit $?
done
done
hooks/post-receive
--
IPFire 2.x development tree
reply other threads:[~2026-10-26 17:00 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4jD0HD14KPz2xVw@people01.haj.ipfire.org \
--to=git@ipfire.org \
--cc=ipfire-scm@lists.ipfire.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox