]> git.ipfire.org Git - thirdparty/dracut-ng.git/log
thirdparty/dracut-ng.git
3 months agofix(systemd-repart): copy systemd system drop-in configuration
Jo Zzsi [Wed, 21 May 2025 12:52:06 +0000 (08:52 -0400)] 
fix(systemd-repart): copy systemd system drop-in configuration

Fixes https://github.com/dracut-ng/dracut-ng/issues/1328

3 months agodocs: range 90 - 99 are reserved for out of tree dracut modules
Jo Zzsi [Thu, 22 May 2025 12:44:05 +0000 (08:44 -0400)] 
docs: range 90 - 99 are reserved for out of tree dracut modules

Document the new feature introduced by 2199846 .

3 months agotest: fix the dlopen dependencies test on Gentoo
James Le Cuirot [Fri, 23 May 2025 21:53:26 +0000 (22:53 +0100)] 
test: fix the dlopen dependencies test on Gentoo

systemd needs to have fido2 support enabled at build time for the dlopen
dependency to be present.

Closes: https://github.com/dracut-ng/dracut-ng/issues/1347
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
3 months agotest: omit fido2 module when testing dlopen dependencies support
James Le Cuirot [Fri, 23 May 2025 21:51:44 +0000 (22:51 +0100)] 
test: omit fido2 module when testing dlopen dependencies support

We check whether libfido2.so.1 is included, but we want it to be because
of systemd's dlopen dependency, not because of the fido2 Dracut module.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
3 months agofeat: set hostonly_cmdline config to no by default
Jo Zzsi [Sun, 18 May 2025 16:30:52 +0000 (12:30 -0400)] 
feat: set hostonly_cmdline config to no by default

This is already the default on Fedora, see

https://github.com/dracut-ng/dracut-ng/blob/main/dracut.conf.d/fedora.conf.example#L44

Fixes: https://github.com/dracut-ng/dracut-ng/issues/1326
3 months agoci: fix integration extra
Jo Zzsi [Wed, 21 May 2025 01:35:33 +0000 (21:35 -0400)] 
ci: fix integration extra

Resolve CI regression introduced by cba9e77 .

3 months agofix(modules): all modules with 99 ordering should have a unique number
Jo Zzsi [Sun, 18 May 2025 11:43:15 +0000 (07:43 -0400)] 
fix(modules): all modules with 99 ordering should have a unique number

This PR does not change the ascending sort order of the modules.

Partially resolve https://github.com/dracut-ng/dracut-ng/issues/538#issuecomment-2487284279

3 months agofix(dracut.sh): don't pass empty string as dir
David Tardon [Tue, 20 May 2025 07:31:52 +0000 (09:31 +0200)] 
fix(dracut.sh): don't pass empty string as dir

That causes dropindirs_sort() to look for .conf files in / due to
expansion:

    for d in "$@"; do
        for i in "$d/"*"$suffix"; do

Fixes #1275

3 months agotest(IMSM): retire testing with dmraid
Jo Zzsi [Mon, 19 May 2025 11:03:27 +0000 (07:03 -0400)] 
test(IMSM): retire testing with dmraid

Neither Debian nor Fedora packages dmraid anymore.

Let's stop focusing on testing dmraid related dracut module anymore.

This is only a CI change; the dmraid dracut module is intentionally
not removed.

Fixes: https://github.com/dracut-ng/dracut-ng/issues/1308
3 months agotest(SYSTEMD-INITRD): demonstrate boot without initqueue
Jo Zzsi [Mon, 19 May 2025 10:08:48 +0000 (06:08 -0400)] 
test(SYSTEMD-INITRD): demonstrate boot without initqueue

After this change initqueue dracut module is no longer used
in the initramfs for this test.

initqueue was added as a dependency of the watchdog module,
which was added as a dependency of the test dracut module.

3 months agorefactor(configure): replace confusing libsystemd error messages
Marcos Mello [Mon, 19 May 2025 15:21:58 +0000 (12:21 -0300)] 
refactor(configure): replace confusing libsystemd error messages

Replace confusing libsystemd error messages (version < 257 or missing development files) during ./configure
with a message clearly indicating that sd-json support is disabled, as it is optional. Previously, users
saw:

```
$ ./configure
Package dependency requirement 'libsystemd >= 257' could not be satisfied.
Package 'libsystemd' has version '252', required version is '>= 257'
Package dependency requirement 'libsystemd >= 257' could not be satisfied.
Package 'libsystemd' has version '252', required version is '>= 257'
```

```
$ ./configure
Package libsystemd was not found in the pkg-config search path.
Perhaps you should add the directory containing `libsystemd.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libsystemd', required by 'virtual:world', not found
Package libsystemd was not found in the pkg-config search path.
Perhaps you should add the directory containing `libsystemd.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libsystemd', required by 'virtual:world', not found
```

3 months agoci: fix syntax error for extra integration tests
Jo Zzsi [Sun, 18 May 2025 11:33:40 +0000 (07:33 -0400)] 
ci: fix syntax error for extra integration tests

3 months agoci: disable failing extra integration tests
Jo Zzsi [Mon, 12 May 2025 15:02:31 +0000 (11:02 -0400)] 
ci: disable failing extra integration tests

These tests are known to fail for weeks, so let's stop running them.

3 months agofix: improve hostonly sloppy mode
Jo Zzsi [Mon, 12 May 2025 01:16:42 +0000 (21:16 -0400)] 
fix: improve hostonly sloppy mode

Resolve regression introduced by 8519dcd.

Fixes #1321 .

3 months agofix(dracut-install): install all suppliers of a supplier's module
Alper Nebi Yasak [Mon, 3 Jun 2024 08:03:32 +0000 (11:03 +0300)] 
fix(dracut-install): install all suppliers of a supplier's module

After installing a module, we get its dependencies and suppliers' paths,
and recurse into two functions that handle installing those. The code
handling a supplier path tries to also handle suppliers-of-suppliers
relations. But when installing a supplier's module, it only recurses to
suppliers for that specific device provided by the module.

Having a subset of its suppliers might not be enough for a module to
work correctly. Recurse into all suppliers of the supplier modules we
are installing.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
3 months agofix(dracut-install): do not limit supplier handling to platform bus
Alper Nebi Yasak [Mon, 3 Jun 2024 07:33:03 +0000 (10:33 +0300)] 
fix(dracut-install): do not limit supplier handling to platform bus

The code that explores a sysfs node for suppliers looks for directories
with a "supplier:platform" prefix. Only the "supplier:" prefix refers to
the devlink relation itself here, the rest is the bus and device name of
the supplier. The bus is not necessarily "platform", but can be "phy",
"regulator", etc.

Correct the searched prefix for sysfs supplier relations to "supplier:"
so we can handle all supplier dependencies to devices, not just those
under the platform bus.

The initial device search is still limited to "/sys/devices/platform".
It theoretically limits the dependencies we check to that directory, but
on device-tree systems it looks like all devices are available there and
we don't miss anything.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
3 months agofix(dracut-install): add sysfs node parents' modules as dependencies
Alper Nebi Yasak [Mon, 3 Jun 2024 07:07:35 +0000 (10:07 +0300)] 
fix(dracut-install): add sysfs node parents' modules as dependencies

While searching a sysfs node for suppliers to add as dependencies, we
also consider suppliers of its parent nodes as dependencies. The code
doing so doesn't explore suppliers-of-suppliers chains, which is meant
to be handled elsewhere. More importantly it misses the parent nodes of
the devices themselves, parents-of-suppliers chains, and their
dependencies; all of which is necessary to get a device working.

Consider the parent nodes of a sysfs node as a supplier dependency when
building the `module_suppliers` hashmap. So the suppliers-of-suppliers
handling elsewhere can work with any combination of parent/supplier
relation.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
3 months agofeat(initqueue): factor out initqueue into its own module
Jo Zzsi [Fri, 31 Jan 2025 14:56:05 +0000 (09:56 -0500)] 
feat(initqueue): factor out initqueue into its own module

This PR allows excluding dracut initqueue module, while
including the base or the dracut-systemd module.

Factoring out functionality into its own module
allows to better control to include or exclude the
functionality.

Co-authored-by: Adam Williamson <awilliam@redhat.com>
3 months agorevert(dracut.install): force hostonly for kernel-install plugin
Jo Zzsi [Tue, 13 May 2025 15:02:47 +0000 (11:02 -0400)] 
revert(dracut.install): force hostonly for kernel-install plugin

revert 17706f9 as now the default is hostonly.

3 months agofeat: set hostonly config by default in configure
Jo Zzsi [Sat, 1 Mar 2025 12:46:53 +0000 (07:46 -0500)] 
feat: set hostonly config by default in configure

Follow-up to https://github.com/dracut-ng/dracut-ng/pull/1158 .

Fix storage test case for zfs.

3 months agotest: sync only relevant files
Benjamin Drung [Mon, 5 May 2025 11:25:37 +0000 (13:25 +0200)] 
test: sync only relevant files

The tests call `sync` without any parameters. This slows down the tests
in case some unrelated disk writes happen somewhere else.

Specify the relevant files that should be synchronized to avoid
unrelated writes to slow down the tests.

Signed-off-by: Benjamin Drung <benjamin.drung@canonical.com>
3 months agotest: extend TEST-40-SYSTEMD to cover add_dlopen_features
James Le Cuirot [Thu, 27 Mar 2025 19:20:35 +0000 (19:20 +0000)] 
test: extend TEST-40-SYSTEMD to cover add_dlopen_features

Use systemd's fido2 feature because nothing else is likely to pull in
libfido2.so.1. Not all of the containers currently have a new enough
systemd version for this to work. The test will effectively be skipped
until the container includes a new enough systemd-devel and libfido2.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
3 months agofeat(dracut): allow users to choose which dlopen dependencies they want
James Le Cuirot [Wed, 26 Mar 2025 13:02:35 +0000 (13:02 +0000)] 
feat(dracut): allow users to choose which dlopen dependencies they want

Handling dlopen dependencies is nice, but installing these
unconditionally will install more than before rather than less, leading
to bigger images and unhappy users.

This introduces the add_dlopen_features and omit_dlopen_features
configuration options. Modules that are successfully loaded set the
default set of features to add_dlopen_features in the config() function.
Users can request additional features by appending to this variable.
They can also omit features by appending to omit_dlopen_features, which
takes precedence.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
3 months agofeat(dracut): replace ldd with dracut-install --dry-run or header check
James Le Cuirot [Wed, 5 Mar 2025 11:53:18 +0000 (11:53 +0000)] 
feat(dracut): replace ldd with dracut-install --dry-run or header check

One instance checks whether */lib64/* is used by /bin/sh and another
checks whether libusb is used by scdaemon. These can be handled by the
new dracut-install --dry-run option.

find_binary currently uses ldd to check whether a given *.so* is a valid
ELF. ldd exits successfully even when libraries are missing, so it is
sufficient to replace this check with one that looks at the first 4
bytes.

Closes: https://github.com/dracut-ng/dracut-ng/issues/338
Closes: https://github.com/dracut-ng/dracut-ng/issues/1257
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
3 months agofeat(dracut-install): add --dry-run option to replace external ldd usage
James Le Cuirot [Tue, 4 Mar 2025 17:21:27 +0000 (17:21 +0000)] 
feat(dracut-install): add --dry-run option to replace external ldd usage

To remove the remaining use of ldd, we need a way to show which
libraries a binary requires. I initially considered adding another small
tool, sharing code with dracut-install, but then I realised that adding
a --dry-run option to dracut-install would also meet that need with a
lot less effort.

It simply shows what would be installed and doesn't require you to
specify a destination directory. It is similar to the existing --logdir
option, but that cannot log to stdout and includes additional output.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
3 months agofeat(dracut-install): extend new ELF parsing code to replace ldd calls
James Le Cuirot [Tue, 4 Mar 2025 11:09:32 +0000 (11:09 +0000)] 
feat(dracut-install): extend new ELF parsing code to replace ldd calls

Now that dracut-install has its own ELF parsing code to handle dlopen
dependencies, it is only a small additional step to also handle
traditional DT_NEEDED dependencies, removing the need to call ldd, which
is not cross-friendly.

This avoids the earlier issue seen with musl in #1087.

We should no longer directly install libsystemd*.so because
libsystemd-core does not have the RUNPATH to find libsystemd-shared by
itself. Both get pulled in by the main systemd binary anyway. ldd had
the same issue, dracut-install silently ignored the failure.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
3 months agofeat(dracut-install): parse ELF .note.dlopen entries for extra deps
James Le Cuirot [Tue, 18 Feb 2025 17:24:05 +0000 (17:24 +0000)] 
feat(dracut-install): parse ELF .note.dlopen entries for extra deps

Unlike traditional DT_NEEDED dependencies, there has not been a way to
determine what libraries an ELF may dlopen until recently. systemd has
documented a convention to declare such dependencies using JSON in the
ELF metadata. See https://systemd.io/ELF_DLOPEN_METADATA/ for details.

This metadata references sonames rather than full paths, so Dracut needs
to determine the full paths by itself. It cannot use ldd to do this as
that relies on DT_NEEDED. ldconfig can show the paths for all sonames in
the cache, but that relies on the cache having already been generated,
it isn't cross-friendly, and musl doesn't even have ldconfig. It
therefore makes sense for Dracut to parse the ELF headers directly. This
also paves the way for removing the dependency on ldd entirely, making
Dracut more cross-friendly as a whole.

To avoid adding an entirely new dependency, the JSON parsing is done by
libsystemd's sd-json API. This has been exposed since systemd v257. If
libsystemd is too old or not present at all, then this dlopen handling
is simply skipped. This is currently not an issue for non-systemd
distributions as systemd is the only project using this convention. If
that were to change, libsystemd can still be used without the rest of
systemd, as demonstrated by Gentoo.

The metadata itself has only been included by systemd since v256. If an
earlier version is detected, Dracut will unconditionally install the
same libraries that it did before.

There are different structs for 32-bit and 64-bit ELF headers, so this
new code makes heavy use of C macros to avoid a lot of code duplication.
One macro is also used heavily for endian conversion, as almost every
field needs to be adjusted.

See the code comments for the remaining details.

Closes: https://github.com/dracut-ng/dracut-ng/issues/154
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agodocs(crypt-gpg): update docs
farfalleflickan [Sat, 15 Mar 2025 10:29:06 +0000 (11:29 +0100)] 
docs(crypt-gpg): update docs

4 months agofeat(crypt-gpg): handle multiple gpg pubkeys
farfalleflickan [Sat, 15 Mar 2025 10:07:56 +0000 (11:07 +0100)] 
feat(crypt-gpg): handle multiple gpg pubkeys

4 months agofix(simpledrm): add =drivers/gpu/drm/panel
Benjamin Drung [Mon, 5 May 2025 11:00:06 +0000 (13:00 +0200)] 
fix(simpledrm): add =drivers/gpu/drm/panel

On Qualcomm CRD the display only turns on after the initrd. The initrd
seems to be missing the panel module.

So install `=drivers/gpu/drm/panel` also in the simpledrm module
(similar to the drm module).

Bug-Ubuntu: https://launchpad.net/bugs/2107477

4 months agofix: load more kernel modules in sloppy hostonly mode
Jo Zzsi [Wed, 23 Apr 2025 23:21:59 +0000 (19:21 -0400)] 
fix: load more kernel modules in sloppy hostonly mode

When hostonly_mode is set to "sloppy" instmods consults the host for currently loaded kernel modules and
refuses to copy the Linux kernel module into the generated initramfs unless the kernel
module is already loaded on the host.

Let's set hostonly explicitly to a better default before calling instmods.

For compatibility, we should not change the default in the instmods function itself.

4 months agotest: add TEST-13-SYSROOT to cover --sysroot option
James Le Cuirot [Thu, 27 Mar 2025 16:44:30 +0000 (16:44 +0000)] 
test: add TEST-13-SYSROOT to cover --sysroot option

This really just uses the regular root filesystem but symlinked to
another directory. Ideally, this would use an image for a different
architecture, but that would be more intensive.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agofix(dracut-install): rework broken destination existence logic
James Le Cuirot [Wed, 5 Mar 2025 17:29:51 +0000 (17:29 +0000)] 
fix(dracut-install): rework broken destination existence logic

The return code of `stat` is checked twice when it only needs to be
checked once. The `dst_exists` condition will also never be true, making
the variable redundant.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agofix(dracut-install): plug memory leak on kerneldir
James Le Cuirot [Mon, 10 Mar 2025 13:11:05 +0000 (13:11 +0000)] 
fix(dracut-install): plug memory leak on kerneldir

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agofix(dracut-install): deadcode.DeadStores static analyzer warnings
James Le Cuirot [Mon, 21 Apr 2025 11:16:43 +0000 (12:16 +0100)] 
fix(dracut-install): deadcode.DeadStores static analyzer warnings

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agofix(i18n): add $dracutsysrootdir to systemd-vconsole-setup.service path
James Le Cuirot [Thu, 1 May 2025 16:49:35 +0000 (17:49 +0100)] 
fix(i18n): add $dracutsysrootdir to systemd-vconsole-setup.service path

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agofix(dracut-init): use sysroot when checking udev rule program existence
James Le Cuirot [Wed, 30 Apr 2025 16:24:54 +0000 (17:24 +0100)] 
fix(dracut-init): use sysroot when checking udev rule program existence

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agofeat(dracut): set systemdversion global var using pkg-config
James Le Cuirot [Thu, 5 Sep 2024 11:19:09 +0000 (12:19 +0100)] 
feat(dracut): set systemdversion global var using pkg-config

This falls back to 0 if the version cannot be determined. The version
isn't a regular pkg-config variable like the others, but we still want
the ability to override this through the Dracut config, so make
"modversion" a special case.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agofix(dracut): respect PKG_CONFIG env var instead of hardcoding pkg-config
James Le Cuirot [Thu, 5 Sep 2024 10:55:35 +0000 (11:55 +0100)] 
fix(dracut): respect PKG_CONFIG env var instead of hardcoding pkg-config

When using a sysroot, we should use pkg-config data from the sysroot.
While we could set PKG_CONFIG_LIBDIR, the lib directory can vary.
Distributions typically set up pkg-config wrappers for this purpose and
it is customary to respect the PKG_CONFIG variable in build systems.
Users can still set simply PKG_CONFIG_LIBDIR instead if they prefer that
approach.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agostyle: max-continuation-indent has replaced max-instatement-indent
James Le Cuirot [Wed, 5 Mar 2025 11:54:43 +0000 (11:54 +0000)] 
style: max-continuation-indent has replaced max-instatement-indent

The latter was deprecated for a long time and has now gone.

4 months agofix(systemd-cryptsetup): don't pull in fido2/pkcs11/tpm2-tss if omitted
James Le Cuirot [Thu, 10 Apr 2025 10:37:01 +0000 (11:37 +0100)] 
fix(systemd-cryptsetup): don't pull in fido2/pkcs11/tpm2-tss if omitted

These modules have some large dependencies. Allow users to explicitly
omit them if desired. Other modules like systemd-udevd also do this.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agodocs: update NEWS.md and AUTHORS for release 107 107
dracutng[bot] [Thu, 1 May 2025 01:43:15 +0000 (01:43 +0000)] 
docs: update NEWS.md and AUTHORS for release 107

4 months agoci(opensuse): typo that regressed arm runners
Jo Zzsi [Sun, 27 Apr 2025 11:15:28 +0000 (07:15 -0400)] 
ci(opensuse): typo that regressed arm runners

4 months agofix(multipath): disable user_friendly_names with mpathconf
Benjamin Marzinski [Thu, 24 Apr 2025 21:51:01 +0000 (17:51 -0400)] 
fix(multipath): disable user_friendly_names with mpathconf

If dracut is creating /etc/multipath.conf by calling mpathconf in either
multipathd-configure.service or multipathd.sh, there is a chance that
the multipath config in the real root differs. Specifically, it might
have chosen different user_friendly_names for the devices. When the
systems switches to the real root, multipath may not be able to switch
the devices to their configured names because those might already be
in use. To avoid this, call mpathconf with "--user_friendly_names n"
to create a multipath.conf with user_friendly_names disabled. If all
devices use WWID names, it is always possible for multipath to rename
them later.

Fixes b8a92b715 ("multipath: add automatic configuration for multipath")

4 months agotest(DMSQUASH): make sure ext4 and squashfs kernel modules are loaded
Jo Zzsi [Fri, 25 Apr 2025 23:04:28 +0000 (19:04 -0400)] 
test(DMSQUASH): make sure ext4 and squashfs kernel modules are loaded

In some distributions (e.g. Alpine), ext4 and squashfs might not be
loaded as it might not be built into the Linux kernel.

4 months agofix(squash-erofs): adjust configuration in order to match SquashFS
Gao Xiang [Fri, 25 Apr 2025 09:32:34 +0000 (17:32 +0800)] 
fix(squash-erofs): adjust configuration in order to match SquashFS

 - `-C 65536` should be specified to match the default setup `-b 131072`
   for SquashFS;

 - `-x -1` should be specified to match the SquashFS `-no-xattrs`;

 - `-U 00000000-0000-0000-0000-000000000000` for reproducibility;

 - `-T 0` can be specified to clear all inode timestamps for reduced
   metadata since I'm not sure timestamps are needed for dracut.

Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
4 months agofix(rngd): adjust license to match the license of the whole project
Dylan Aïssi [Thu, 24 Apr 2025 09:54:07 +0000 (11:54 +0200)] 
fix(rngd): adjust license to match the license of the whole project

This file was originally licensed under GPL-3+ but that was not
intentional, instead relicense it under GPL-2+ to match the
project license.

As discussed at https://github.com/dracut-ng/dracut-ng/issues/1286

Signed-off-by: Renaud Métrich <rmetrich@redhat.com>
Signed-off-by: Dylan Aïssi <dylan.aissi@collabora.com>
4 months agofix(dracut-init): do not detect virt environment in non-hostonly mode
Jo Zzsi [Wed, 23 Apr 2025 20:39:03 +0000 (16:39 -0400)] 
fix(dracut-init): do not detect virt environment in non-hostonly mode

Follow-up to bb7425b .
.

4 months agofix(base): tighten /dev/pts permissions
Jo Zzsi [Thu, 24 Apr 2025 12:10:27 +0000 (08:10 -0400)] 
fix(base): tighten /dev/pts permissions

This PR only impacts non-systemd based initramfs.

Inspired by https://salsa.debian.org/kernel-team/initramfs-tools/-/commit/319cdc98f15d3213f58610141a84b5c67a8a1ebc

4 months agofix(man): --include can be specified multiple times
Jo Zzsi [Thu, 24 Apr 2025 16:23:46 +0000 (12:23 -0400)] 
fix(man): --include can be specified multiple times

4 months agotest(debian): enable url-lib dracut module testing
Jo Zzsi [Tue, 15 Apr 2025 16:15:54 +0000 (12:15 -0400)] 
test(debian): enable url-lib dracut module testing

NFS test requires url-lib dracut module (and curl).

4 months agoci(azurelinux): remove some binaries to workaround test failures
Jo Zzsi [Mon, 21 Apr 2025 17:42:37 +0000 (13:42 -0400)] 
ci(azurelinux): remove some binaries to workaround test failures

TEST-41 is failing on azurelinux due to issues
with multipath and systemd-portabled dracut modules.

Remove binaries to prevent multipath and systemd-portabled
dracut modules to be tested until the issues are resolved
with the azurelinux container.

4 months agofix(dracut): kernel module name normalization in drivers lists
Stefan Dirsch [Wed, 23 Apr 2025 14:55:28 +0000 (16:55 +0200)] 
fix(dracut): kernel module name normalization in drivers lists

In drivers/add_drivers/force_drivers/omit_drivers kernel modules
lists replace all occurrences of "-" with "_", not only the first
one!

4 months agofix(hwdb): enable hwdb dracut module when hostonly is sloppy
Jo Zzsi [Wed, 23 Apr 2025 16:01:30 +0000 (12:01 -0400)] 
fix(hwdb): enable hwdb dracut module when hostonly is sloppy

4 months agoci(opensuse): enable strict hostonly
Jo Zzsi [Wed, 23 Apr 2025 15:57:49 +0000 (11:57 -0400)] 
ci(opensuse): enable strict hostonly

As the the strict and non-strict (a.k.a. sloppy) hostonly
configurations are significantly different, the CI should
have test covergae for both.

Enable strict hostonly for the openSUSE container.

4 months agofeat: strip out unused/unlikely AMDGPU firmware
Mingcong Bai [Sun, 26 Jan 2025 21:00:38 +0000 (05:00 +0800)] 
feat: strip out unused/unlikely AMDGPU firmware

Introduce logic to remove unlikely or impossible firmware on a platform-
specific basis to save space - this is the largest set of firmware in the
linux-firmware.git tree.

To update the list of prefixes:

  1. Look for (grep) MODULE_FIRMWARE in /drivers/gpu/drm/amd (please note
     that AMD does not always use the file name to the firmware as
     parameter to this macro.
  2. Reference "Misc AMDGPU driver information"[^1], Wikipedia, and
     TechPowerUp to determine which class certain set(s) of firmware
     belong out of the list below.
  3. Refer to manufacturers and/or OEM contacts for state of support
     (some should be obvious - there is no non-x86 APUs - yet?).

[^1]: https://docs.kernel.org/gpu/amdgpu/driver-misc.html

Signed-off-by: Mingcong Bai <jeffbai@aosc.io>
4 months agofix: improve hostonly sloppy mode
Jo Zzsi [Tue, 22 Apr 2025 22:04:18 +0000 (18:04 -0400)] 
fix: improve hostonly sloppy mode

Sloppy mode is the original hostonly mode.

Strict mode was newly introduced much later in 2018 (v048) as a non-default
opt-in special optimization mode to allow modules to ignore more drivers
or do some extra job to save memory and disk space, while making the image less portable.

This PR includes more dracut modules (and with that more kernel modules) in sloppy mode.

4 months agoci(fedora): test 61 (MULTINIC) is failing on Fedora
Jo Zzsi [Wed, 23 Apr 2025 01:29:48 +0000 (21:29 -0400)] 
ci(fedora): test 61 (MULTINIC) is failing on Fedora

This test is only flaky on Fedora and it needs several times to retry
on each PR.

Let's disable it and let the Fedora team investigate it.

4 months agodocs(usage): clarify hostonly
Jo Zzsi [Mon, 21 Apr 2025 19:51:03 +0000 (15:51 -0400)] 
docs(usage): clarify hostonly

4 months agoci: install libfido2 to test upcoming add_dlopen_features feature
James Le Cuirot [Mon, 21 Apr 2025 14:14:24 +0000 (15:14 +0100)] 
ci: install libfido2 to test upcoming add_dlopen_features feature

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agoci: install packages for testing upcoming .note.dlopen parsing feature
James Le Cuirot [Mon, 21 Apr 2025 14:10:20 +0000 (15:10 +0100)] 
ci: install packages for testing upcoming .note.dlopen parsing feature

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agofix(dracut): protect existing output file against build errors 694/head
Antonio Alvarez Feijoo [Thu, 13 Mar 2025 16:03:21 +0000 (17:03 +0100)] 
fix(dracut): protect existing output file against build errors

If dracut fails to build the initrd image or EFI binary for any reason (e.g., if
`cp` fails because there is no space left on the device), it removes the
existing output file before exiting, which may result in an unbootable system.
Instead of copying the initrd image directly to the output, copy it alongside it
to the same output directory, and if the copy succeeds, replace it.

4 months agochore: document recently introduced dracut modules
Jo Zzsi [Sun, 20 Apr 2025 01:05:47 +0000 (21:05 -0400)] 
chore: document recently introduced dracut modules

 - simpledrm
 - systemd-battery-check
 - systemd-emergency

4 months agoci(azurelinux): make sure tar is installed
Jo Zzsi [Sun, 20 Apr 2025 01:22:40 +0000 (21:22 -0400)] 
ci(azurelinux): make sure tar is installed

tar is required to download dracut source code before a build.

4 months agoci(opensuse): make sure cpio is explicitelly installed
Jo Zzsi [Sun, 20 Apr 2025 01:11:17 +0000 (21:11 -0400)] 
ci(opensuse): make sure cpio is explicitelly installed

arm64 CI started to fail with cpio binary missing.

4 months agofix(systemd-sysusers): make sure tss user for tpm2 is created
Jo Zzsi [Mon, 10 Feb 2025 01:38:52 +0000 (20:38 -0500)] 
fix(systemd-sysusers): make sure tss user for tpm2 is created

systemd-sysuser module should be orders afer all modules that
depends on it.

This is to make sure that all inst_sysusers calls are in place before
systemd-sysusers is called.

4 months agotest(GETARG): remove hardcoded dracut module ordering
Jo Zzsi [Tue, 15 Apr 2025 16:19:44 +0000 (12:19 -0400)] 
test(GETARG): remove hardcoded dracut module ordering

The intention of this PR is to help with issue
https://github.com/dracut-ng/dracut-ng/issues/538
and future-proof the test case.

4 months agofix(rngd): do not check for +x perms
Nowa Ammerlaan [Sun, 9 Feb 2025 09:20:02 +0000 (10:20 +0100)] 
fix(rngd): do not check for +x perms

require_binaries checks for an executable binary, but systemd
service files are usually not executable nor binary.

resolves an issue discovered on gentoo where the rngd module would
refuse to be included due to a missing file that does in fact exist

Signed-off-by: Nowa Ammerlaan <nowa@gentoo.org>
4 months agofix(base): only set ID to dracut if systemd is not used
Jo Zzsi [Thu, 3 Apr 2025 11:54:57 +0000 (07:54 -0400)] 
fix(base): only set ID to dracut if systemd is not used

5bf724f & 41f9e8f, have exposed the misuse of the ID= parameter
in initrd-release and its links when using init.sh.

4 months agotest(NFS): remove hardcoded dracut module ordering
Jo Zzsi [Tue, 15 Apr 2025 12:58:40 +0000 (08:58 -0400)] 
test(NFS): remove hardcoded dracut module ordering

Use test-root and nfs dracut modules instead of reimplementing
logic as part of the test case.

4 months agofeat(UKI): use ukify when available to generate UKI
Jo Zzsi [Wed, 15 Jan 2025 22:26:03 +0000 (17:26 -0500)] 
feat(UKI): use ukify when available to generate UKI

Prefer to use ukify over the current objcopy and awk
based solution to generate UKI.

4 months agotest: add container for Azure Linux
Thien Trung Vuong [Tue, 1 Apr 2025 20:54:45 +0000 (20:54 +0000)] 
test: add container for Azure Linux

Signed-off-by: Thien Trung Vuong <tvuong@microsoft.com>
4 months agofix: don't use command -v to find binaries in the sysroot
James Le Cuirot [Tue, 1 Apr 2025 10:51:19 +0000 (11:51 +0100)] 
fix: don't use command -v to find binaries in the sysroot

If the binaries were missing outside the sysroot, "" was passed to
dracut-install, which then created an empty directory instead!

dracut-install will automatically search the sysroot for a named binary
if it is given without a path anyway.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agofix: add $dracutsysrootdir to paths where it should be present
James Le Cuirot [Fri, 14 Mar 2025 14:08:00 +0000 (14:08 +0000)] 
fix: add $dracutsysrootdir to paths where it should be present

inst_simpl is sometimes called with the sysroot (particular via moddir)
and sometimes without. dracut-install knows how to handle this, so the
inst_simpl existence check needs to handle it too.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
4 months agofix(crypt): always install s390 crypto modules
Antonio Alvarez Feijoo [Thu, 3 Apr 2025 05:31:10 +0000 (07:31 +0200)] 
fix(crypt): always install s390 crypto modules

Not only are the specific encryption modules not being installed on s390/s390x
in non-hostonly mode, but also it's failing the detection of the kernel modules
needed to decrypt PAES-encrypted volumes in hostonly mode via dmsetup. So,
since the increase in size is not that much (~ 150K), always add all the drivers
under s390/crypto in this architecture.

4 months agofix(dracut-init): assign real path to srcmods
Antonio Alvarez Feijoo [Tue, 15 Apr 2025 15:16:22 +0000 (17:16 +0200)] 
fix(dracut-init): assign real path to srcmods

On usrmerge systems, /lib is a symlink to /usr/lib, so the real path of the
kernel directory is /usr/lib/modules/<kver>. The issue on these systems is that
a kernel module can be added to the initrd (via dracut-install) by different
dracut modules using both paths, and that causes libkmod to display the
following type of errors in the middle of the dracut build:

```
libkmod: ERROR: kmod_module_new_from_path: kmod_module 'nvidia' already exists with different path: new-path='/lib/modules/6.14.1-1-default//weak-updates/updates/nvidia-open-driver-G06-signed-570.133.07/nvidia.ko.zst' old-path='/usr/lib/modules/6.14.1-1-default/weak-updates/updates/nvidia-open-driver-G06-signed-570.133.07/nvidia.ko.zst'
libkmod: ERROR: kmod_module_parse_depline: ctx=0x560bbacad8f0 path=/lib/modules/6.14.1-1-default//weak-updates/updates/nvidia-open-driver-G06-signed-570.133.07/nvidia.ko.zst error=File exists
```

openSUSE bug report: https://bugzilla.opensuse.org/show_bug.cgi?id=1241114

4 months agofix(nfs): add possible `statd` user and group
Antonio Alvarez Feijoo [Tue, 1 Apr 2025 12:34:04 +0000 (14:34 +0200)] 
fix(nfs): add possible `statd` user and group

Some distributions use the `statd` user (openSUSE, Ubuntu) and group (openSUSE)
to handle `rpc.statd` directories.

4 months agofix(nfs): use `DRACUT_CP` instead of `cp`
Antonio Alvarez Feijoo [Tue, 1 Apr 2025 12:33:38 +0000 (14:33 +0200)] 
fix(nfs): use `DRACUT_CP` instead of `cp`

Using `cp` directly ignores `DRACUT_NO_XATTR`.

4 months agofix(nfs): libnfsidmap plugins not added in some distributions
Antonio Alvarez Feijoo [Tue, 25 Mar 2025 14:20:48 +0000 (15:20 +0100)] 
fix(nfs): libnfsidmap plugins not added in some distributions

`nfs-utils` can be configured using `--with-pluginpath` to avoid using the
default `/usr/lib/libnfsidmap`. For example, Fedora sets
`--with-pluginpath=%{_libdir}/libnfsidmap`, which is covered by the current
glob, but openSUSE sets `--with-pluginpath=%{_libdir}/libnfsidmap-1.0.0`.

Also, remove reference to the old `libnfsidmap_<plugin>.so` path.

4 months agorefactor(multipath): remove custom multipathd.service
Antonio Alvarez Feijoo [Mon, 3 Mar 2025 14:23:41 +0000 (15:23 +0100)] 
refactor(multipath): remove custom multipathd.service

Install `multipathd.service` provided by upstream, and add a dropin to support
`rd.multipath=0`.

4 months agochore(multipath): remove `rd_NO_MULTIPATH` kernel command line option
Antonio Alvarez Feijoo [Mon, 3 Mar 2025 14:22:14 +0000 (15:22 +0100)] 
chore(multipath): remove `rd_NO_MULTIPATH` kernel command line option

Deprecated since 778b3543609d8c9d32df7111229f4072d00d02f0 (Nov 25, 2014).

4 months agofeat(systemd): add new systemd-validatefs@.service
Antonio Alvarez Feijoo [Fri, 4 Apr 2025 08:18:07 +0000 (10:18 +0200)] 
feat(systemd): add new systemd-validatefs@.service

Introduced in https://github.com/systemd/systemd/commit/0bdd5ccc8145af8dae9779751d3e7a34c4fa6aa5
Used internally in fstab-generator (new `x-systemd.validatefs` mount option) and
gpt-auto-generator: https://github.com/systemd/systemd/commit/f872373a26dcaa0818b49220abfe35611d12fa82

4 months agofeat: add simpledrm module (as subset of drm module)
Benjamin Drung [Thu, 3 Apr 2025 12:14:07 +0000 (14:14 +0200)] 
feat: add simpledrm module (as subset of drm module)

Plymouth doesn't always show a splash screen if DRM drivers are
installed in initrd.

Provide a `simpledrm` module that only installs the SimpleDRM module
and the potentially needed privacy screen providers. This `simpledrm`
module is a subset of the `drm` module. It could be used instead of
`drm` to avoid pulling in drivers like amdgpu, nouveau, or nvidia-drm.

Bug-Ubuntu: https://launchpad.net/bugs/2105377

4 months agoperf(base): move the chmod dependency from base to systemd
Jo Zzsi [Mon, 24 Mar 2025 13:23:22 +0000 (09:23 -0400)] 
perf(base): move the chmod dependency from base to systemd

base dracut module no longer requires chmod.

4 months agochore(network-legacy): no need to call chmod on ifup.sh
Jo Zzsi [Mon, 24 Mar 2025 13:12:13 +0000 (09:12 -0400)] 
chore(network-legacy): no need to call chmod on ifup.sh

This is a small optimization, with the goal of avoiding
calling chmod for a file that is already guaranteed to be
an executable.

4 months agoci(Fedora): make sure portablectl is installed
Jo Zzsi [Sat, 15 Mar 2025 11:54:23 +0000 (07:54 -0400)] 
ci(Fedora): make sure portablectl is installed

Add systemd-container to make sure portablectl is installed.

See https://src.fedoraproject.org/rpms/systemd/c/49ec9f3286e6c18e48f3ee3a08da950d0113f853?branch=rawhide
portablectl and importctl are moved to systemd-container (rhbz#2345551)

5 months agofix(multipath): skip default multipath.conf with mpathconf
Benjamin Marzinski [Wed, 26 Mar 2025 22:04:25 +0000 (18:04 -0400)] 
fix(multipath): skip default multipath.conf with mpathconf

Commit 1e802f15f creates a default multipath.conf file with
"find_multipaths strict" when run in non-hostonly mode if there are no
multipath devices and no multipath.conf. Unfortunately for systems that
want to use mpathconf to create a multipath.conf file (e.g. Fedora and
Centos) either through multipathd-configure.service or multipathd.sh,
this default file keeps that from occurring. To make sure mpathconf is
called to create the config file, do not install a default config file
if mpathconf is installed.

Fixes: ("fix(multipath): include module with find_multipaths strict")
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
5 months agofix(mdraid): do not call mdadm with full path
Alexander Tsoy [Tue, 18 Mar 2025 20:56:37 +0000 (23:56 +0300)] 
fix(mdraid): do not call mdadm with full path

We use `command -v` to find mdadm binary on the system anyway, so it
makes no sense to call it using the full path.

Bug: https://bugs.gentoo.org/951284
Signed-off-by: Alexander Tsoy <alexander@tsoy.me>
5 months agoci(fedora): always use update-crypto-policies to enable fips
Jo Zzsi [Tue, 4 Mar 2025 00:03:04 +0000 (19:03 -0500)] 
ci(fedora): always use update-crypto-policies to enable fips

5 months agofeat(systemd-integritysetup): add remote-integritysetup.target
Antonio Alvarez Feijoo [Wed, 26 Feb 2025 07:20:09 +0000 (08:20 +0100)] 
feat(systemd-integritysetup): add remote-integritysetup.target

Required since https://github.com/systemd/systemd/commit/810708f4b820543b8585a36e84ccca4bc5b18fee

6 months agofix(90kernel-modules): explicitly include xhci-pci-renesas
Xinhui Yang [Fri, 28 Feb 2025 16:54:31 +0000 (00:54 +0800)] 
fix(90kernel-modules): explicitly include xhci-pci-renesas

Since Linux v6.12-rc1 (commit 25f51b76f90f), xhci-pci no longer depends
on xhci-pci-renesas, causing the Renesas driver to be omitted during
initramfs generation (when built as a module).

This makes platforms with such xHCI controllers unavailable during
initrd, and unable to boot from a USB drive. There are SuperSpeed ports
routed through such controller on some platforms, too, which also
renders the USB keyboard and mouse unusable.

Here's a snippet of the kernel log from such platform, showing a
keyboard and a mouse being detected only after the initrd switched root:

[    9.352608] systemd-journald[187]: Received SIGTERM from PID 1 (systemd).
[    9.500146] systemd[1]: systemd 257.2 running in system mode (OMITTED)
...
[   11.187756] xhci-pci-renesas 0000:04:00.0: xHCI Host Controller
[   11.187870] xhci-pci-renesas 0000:04:00.0: new USB bus registered, assigned bus number 7
[   11.193261] xhci-pci-renesas 0000:04:00.0: hcc params 0x014051cf hci version 0x100 quirks 0x0000000100000010
[   11.194806] xhci-pci-renesas 0000:04:00.0: xHCI Host Controller
[   11.196601] xhci-pci-renesas 0000:04:00.0: new USB bus registered, assigned bus number 8
[   11.196613] xhci-pci-renesas 0000:04:00.0: Host supports USB 3.0 SuperSpeed
[   11.196927] usb usb7: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.13
[   11.196931] usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   11.196935] usb usb7: Product: xHCI Host Controller
[   11.196938] usb usb7: Manufacturer: Linux 6.13.3-aosc-main xhci-hcd
[   11.196941] usb usb7: SerialNumber: 0000:04:00.0
[   11.199598] hub 7-0:1.0: USB hub found
[   11.199630] hub 7-0:1.0: 4 ports detected
...
[   11.439561] usb 7-2: new high-speed USB device number 2 using xhci-pci-renesas
[   11.568361] usb 7-2: New USB device found, idVendor=1532, idProduct=0114, bcdDevice= 1.00
[   11.568369] usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   11.568372] usb 7-2: Product: DeathStalker Ultimate
[   11.568376] usb 7-2: Manufacturer: Razer
[   11.600474] input: Razer DeathStalker Ultimate as /devices/pci0000:00/0000:00:0e.0/0000:04:00.0/usb7/7-2/7-2:1.0/0003:1532:0114.0001/input/input12
[   11.600686] hid-generic 0003:1532:0114.0001: input,hidraw0: USB HID v1.11 Mouse [Razer DeathStalker Ultimate] on usb-0000:04:00.0-2/input0
[   11.601137] input: Razer DeathStalker Ultimate Keyboard as /devices/pci0000:00/0000:00:0e.0/0000:04:00.0/usb7/7-2/7-2:1.1/0003:1532:0114.0002/input/input13
[   11.652148] input: Razer DeathStalker Ultimate as /devices/pci0000:00/0000:00:0e.0/0000:04:00.0/usb7/7-2/7-2:1.1/0003:1532:0114.0002/input/input14
[   11.652409] hid-generic 0003:1532:0114.0002: input,hidraw1: USB HID v1.11 Keyboard [Razer DeathStalker Ultimate] on usb-0000:04:00.0-2/input1
[   11.653054] input: Razer DeathStalker Ultimate as /devices/pci0000:00/0000:00:0e.0/0000:04:00.0/usb7/7-2/7-2:1.2/0003:1532:0114.0003/input/input15
[   11.703768] hid-generic 0003:1532:0114.0003: input,hidraw2: USB HID v1.11 Keyboard [Razer DeathStalker Ultimate] on usb-0000:04:00.0-2/input2

6 months agoci: fix container image name
Jo Zzsi [Thu, 27 Feb 2025 12:24:25 +0000 (07:24 -0500)] 
ci: fix container image name

Fix regression introduced by d8ff139 .

6 months agofix(iscsi): make sure services are shut down when switching root
Martin Wilck [Wed, 26 Feb 2025 13:59:44 +0000 (14:59 +0100)] 
fix(iscsi): make sure services are shut down when switching root

When systemd prepares switching root, it starts 'initrd-cleanup.service',
which runs 'systemctl --no-block isolate initrd-switch-root.target'.
This will stop all units on which initrd-switch-root.target does not
depend, including iscsid.service and iscsiuio.service. But systemd
doesn't guarantee a time ordering in this case. It can happen that
systemd switches root (i.e. restarts itself on the new root) before
iscsiuio is actually stopped, or at least before PID 1 receives
the notification that it has stopped. In this case, it considers
iscsiuio still running, and will not start it later in the boot
sequence when iscsid is coming up.

A typical log excerpt with systemd.log_level=debug looks like this:

[   36.470761] worker2 systemd[1]: initrd-cleanup.service: Trying to enqueue job initrd-cleanup.service/start/replace
[   36.765241] worker2 systemd[1]: initrd-switch-root.target: Trying to enqueue job initrd-switch-root.target/start/isolate
[   36.765337] worker2 systemd[1]: iscsid.service: Installed new job iscsid.service/stop as 139
[   36.765535] worker2 systemd[1]: iscsiuio.service: Installed new job iscsiuio.service/stop as 138
[   36.824789] worker2 systemd[1]: iscsid.socket: stopping held back, waiting for: iscsid.service
[   36.824813] worker2 systemd[1]: iscsiuio.socket: stopping held back, waiting for: iscsiuio.service
[   36.888759] worker2 systemd[1]: iscsid.service: Thawing unit.
[   36.888882] worker2 systemd[1]: iscsid.service: Changed running -> stop-sigterm
[   36.889355] worker2 systemd[1]: Stopping Open-iSCSI...
[   36.889413] worker2 systemd[1]: iscsiuio.service: stopping held back, waiting for: iscsid.service
[   37.512072] worker2 systemd[1]: Reached target Switch Root.
[   37.549512] worker2 @ystemctl[1614]: Switching root - root: /sysroot; init: n/a
[   37.577264] worker2 systemd[1]: Switching root.

When iscsid is started later on in the real root, it resets all existing iSCSI
connections, causing the root FS to come offline. In iSCSI offload scenarios
if iscsiuio is already running, it will re-establish the session after a few
seconds. But if iscsiuio has not been started at this point in time, it can't
be loaded any more from the root FS, and booting fails.

To avoid this problem, add "Conflicts" and a "Before" dependencies against
initrd-cleanup.service to the iSCSI service units.

See also https://github.com/systemd/systemd/issues/3436

Signed-off-by: Martin Wilck <mwilck@suse.com>
6 months agofix(iscsi): don't require network setup for qedi
Martin Wilck [Wed, 26 Feb 2025 13:54:51 +0000 (14:54 +0100)] 
fix(iscsi): don't require network setup for qedi

This adds the logic of cc2c48a ("fix(iscsi): don't require network setup
for bnx2i") for the qedi iSCSI offload driver. Testing has shown
that for qedi, network setup in the initrd is even more superfluous
as it is for bnx2i. qedi devices are usually separate PCI functions
that don't show up as ethernet interfaces at all.

While at it, simplify the conditional a bit.

Signed-off-by: Martin Wilck <mwilck@suse.com>
6 months agofix(systemd-veritysetup): install dm-verity kernel module
Antonio Alvarez Feijoo [Thu, 20 Feb 2025 10:20:36 +0000 (11:20 +0100)] 
fix(systemd-veritysetup): install dm-verity kernel module

6 months agofix(systemd-sysusers): silence "Creating " on stderr
Benjamin Drung [Fri, 21 Feb 2025 22:49:04 +0000 (23:49 +0100)] 
fix(systemd-sysusers): silence "Creating " on stderr

dracut prints 20 lines when creating users and groups even with
`--quiet` option. Sample output:

```
Creating group 'nobody' with GID 65534.
Creating group 'audio' with GID 997.
Creating group 'disk' with GID 995.
Creating group 'input' with GID 994.
Creating group 'kmem' with GID 993.
Creating group 'kvm' with GID 992.
Creating group 'lp' with GID 991.
Creating group 'optical' with GID 990.
Creating group 'render' with GID 989.
Creating group 'sgx' with GID 988.
Creating group 'storage' with GID 987.
Creating group 'tty' with GID 5.
Creating group 'uucp' with GID 986.
Creating group 'video' with GID 985.
Creating group 'users' with GID 984.
Creating group 'systemd-journal' with GID 983.
Creating user 'root' (Super User) with UID 0 and GID 0.
Creating user 'nobody' (Kernel Overflow User) with UID 65534 and GID 65534.
Creating group 'nobody' with GID 65534.
Creating group 'audio' with GID 997.
```

Filter "Creating " messages from stderr, but keep the other messages on
stderr and all messages on stdout untouched.

Fixes: https://github.com/dracut-ng/dracut-ng/issues/1195
Fixes: f3dacc013d90 ("feat(systemd-sysusers): run systemd-sysusers as part of the build process")
6 months agofeat(btrfs): also install btrfstune
Mark Harmstone [Thu, 23 Jan 2025 11:39:13 +0000 (11:39 +0000)] 
feat(btrfs): also install btrfstune

6 months agofix(dracut-install): install compressed blobs that match wildcard fwpath
You-Sheng Yang [Wed, 22 Jan 2025 15:37:53 +0000 (23:37 +0800)] 
fix(dracut-install): install compressed blobs that match wildcard fwpath

dracut-install tries to invoke `glob()` with full path expanded from
"intel/ish/ish_*.bin", but while all the binaries were compressed, this
matches no file and none of the custom ISH firmware blobs will be
installed.

Closes: #1150
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2095518
Signed-off-by: You-Sheng Yang <vicamo.yang@canonical.com>
6 months agotest(test-functions): drop defining TEST_FSTYPE
Benjamin Drung [Wed, 12 Feb 2025 17:48:19 +0000 (18:48 +0100)] 
test(test-functions): drop defining TEST_FSTYPE

The variable `TEST_FSTYPE` is only used by `TEST-20-STORAGE` and is
defined there as well.

6 months agotest: define default network in the respective tests
Benjamin Drung [Wed, 12 Feb 2025 17:46:50 +0000 (18:46 +0100)] 
test: define default network in the respective tests

The variable `TEST_FSTYPE` will be needed to construct
`TEST_DESCRIPTION`.

So define `TEST_FSTYPE` in the respective tests before defining
`TEST_DESCRIPTION`.