package/dracut: switch to dracut-ng and bump to version 110

Bump dracut package source to the newest version of the project,
dracut-ng, release 110.

The original dracut project is now inactive for a long period of time.
Dracut community has transitioned to the dracut-ng fork to continue
development. The migration ensures regular updates for security and bug
fixing, a better support of modern systemd features and kernel
requirements. It also allows alignment with major Linux distributions
(Fedora, Arch Linux, Gentoo), and other open source projects (Yocto).

Changes made :
- dracut.mk: change source to dracut-ng 110
- dracut.hash: adapt hash to dracut-ng 110
- dracut.mk: fix unused systemd symbolic links build error
- Config.in: adapt fs/cpio/Config.in to mention dracut-ng upgrade
- Config.in.host: adapt dracut Config.in.host to mention dracut-ng upgrade
- .checkpackageignore: remove 001-dracut.sh-don-t-unset-LD_PRELOAD.patch

Patch removals and additions :

- Removed 0001-dracut.sh-don-t-unset-LD_PRELOAD.patch:
Upstream dracut-ng removed the 'unset LD_PRELOAD' instruction, making this
patch obsolete.

- Added 0001-fix-functions-prevent-find_binary-from-dropping-last.patch:
Dracut-ng introduced a regression on non-merged-usr architectures.
This was traced down to a bug in find_binary() where a `while read`
loop drops the last PATH element if the string does not end with a colon.
This local patch fixes the Bash EOF read behavior.
Submitted upstream: https://github.com/dracut-ng/dracut-ng/pull/2416

All dracut related runtime tests, including non-merged-usr, have been
locally tested and passed successfully using the reference Buildroot
docker container.

Signed-off-by: Matéo Pourrier <mateo.pourrier@smile.fr>
[Julien: reword commit log title]
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Matéo Pourrier
2026-04-29 17:33:31 +02:00
committed by Julien Olivain
parent f7bf9b2ba4
commit 90304b7129
7 changed files with 56 additions and 40 deletions

View File

@@ -293,7 +293,6 @@ package/dmalloc/0005-configure-use-LD-instead-of-hard-coding-ld.patch lib_patch.
package/docopt-cpp/0001-only-build-one-target-use-BUILD_SHARED_LIBS-where-appropriate.patch lib_patch.Upstream package/docopt-cpp/0001-only-build-one-target-use-BUILD_SHARED_LIBS-where-appropriate.patch lib_patch.Upstream
package/domoticz/S99domoticz Shellcheck package/domoticz/S99domoticz Shellcheck
package/dovecot/0001-auth-Fix-handling-passdbs-with-identical-driver-args.patch lib_patch.Upstream package/dovecot/0001-auth-Fix-handling-passdbs-with-identical-driver-args.patch lib_patch.Upstream
package/dracut/0001-dracut.sh-don-t-unset-LD_PRELOAD.patch lib_patch.Upstream
package/dracut/merged-usr-module-setup.sh Shellcheck package/dracut/merged-usr-module-setup.sh Shellcheck
package/dropbear/S50dropbear Shellcheck lib_sysv.Indent lib_sysv.Variables package/dropbear/S50dropbear Shellcheck lib_sysv.Indent lib_sysv.Variables
package/dt/0001-adjust-os-symlink.patch lib_patch.Upstream package/dt/0001-adjust-os-symlink.patch lib_patch.Upstream

View File

@@ -20,9 +20,9 @@ config BR2_TARGET_ROOTFS_CPIO_DRACUT
bool "Invoke dracut to make a partial initramfs" bool "Invoke dracut to make a partial initramfs"
select BR2_PACKAGE_HOST_DRACUT select BR2_PACKAGE_HOST_DRACUT
help help
Build an additional initramfs using dracut. This only contains Build an additional initramfs using dracut-ng. This only
a subset of the rootfs, as determined by the configuration contains a subset of the rootfs, as determined by the
file. configuration file.
This can be useful to create a recovery system, for instance. This can be useful to create a recovery system, for instance.
endchoice endchoice

View File

@@ -1,31 +0,0 @@
From bb12f15856911d8532b569116da7dab4cbf107be Mon Sep 17 00:00:00 2001
From: Thierry Bultel <thierry.bultel@linatsea.fr>
Date: Mon, 10 Jan 2022 09:09:43 +0100
Subject: [PATCH] dracut.sh: don't unset LD_PRELOAD
LD_PRELOAD and LD_LIBRARY_PATH are needed to run under fakeroot.
Signed-off-by: Thierry Bultel <thierry.bultel@linatsea.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[yann.morin.1998@free.fr: commit log also mentions LD_LIBRARY_PATH]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
---
dracut.sh | 2 --
1 file changed, 2 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 60ac46f4..37f25b38 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -868,8 +868,6 @@ export LC_ALL=C
export LANG=C
unset LC_MESSAGES
unset LC_CTYPE
-unset LD_LIBRARY_PATH
-unset LD_PRELOAD
unset GREP_OPTIONS
export DRACUT_LOG_LEVEL=warning
--
2.37.1

View File

@@ -0,0 +1,45 @@
From 94c4274e32467235fb580a27ea182169f253ca5f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20Pourrier?= <mateo.pourrier@smile.fr>
Date: Tue, 28 Apr 2026 17:23:23 +0200
Subject: [PATCH] fix(functions): prevent find_binary from dropping last PATH
element
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When `read` encounters EOF before the delimiter, it returns a non-zero
exit status, causing the while loop to terminate immediately. As a result,
if the PATH string doesn't end with a colon, the very last directory in
PATH is ignored by find_binary().
This caused regressions on split-usr architectures where critical
binaries reside exclusively in /bin, and /bin happens to be
appended at the very end of the PATH by dracut.sh.
Appending a virtual colon to the Here-String ensures the loop processes
all directories correctly.
Fixes dracut-ng issue #1467 : https://github.com/dracut-ng/dracut-ng/issues/1467
Upstream: https://github.com/dracut-ng/dracut-ng/pull/2416
Signed-off-by: Matéo Pourrier <mateo.pourrier@smile.fr>
---
dracut-functions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index f430a28e..5046f45e 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -94,7 +94,7 @@ find_binary() {
printf "%s\n" "${_path}"
return 0
fi
- done <<< "$PATH"
+ done <<< "${PATH}:"
[[ -n ${dracutsysrootdir-} ]] && return 1
type -P "${1##*/}"
--
2.34.1

View File

@@ -2,8 +2,10 @@ config BR2_PACKAGE_HOST_DRACUT
bool bool
select BR2_PACKAGE_HOST_KMOD select BR2_PACKAGE_HOST_KMOD
help help
dracut is used to create an initramfs image by dracut-ng is used to create an initramfs image by
copying tools and files from an installed system copying tools and files from an installed system
and combining it with the dracut framework. and combining it with the dracut framework.
dracut-ng is a drop-in replacement for the legacy
dracut project.
https://dracut.wiki.kernel.org https://github.com/dracut-ng/dracut-ng/wiki

View File

@@ -1,3 +1,3 @@
# Locally computed # Locally computed
sha256 eabf0bb685420c1e1d5475b6855ef787104508f0135ff570312845256e0fcecf dracut-059.tar.gz sha256 0d357853f8cf2371d89a8ebcbbb1fd2c1c85a79d8866925fd7385eaeb20a27dc dracut-110.tar.gz
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING

View File

@@ -4,13 +4,14 @@
# #
################################################################################ ################################################################################
DRACUT_VERSION = 059 DRACUT_VERSION = 110
DRACUT_SITE = $(call github,dracutdevs,dracut,$(DRACUT_VERSION)) DRACUT_SITE = $(call github,dracut-ng,dracut-ng,$(DRACUT_VERSION))
DRACUT_LICENSE = GPL-2.0 DRACUT_LICENSE = GPL-2.0
DRACUT_LICENSE_FILES = COPYING DRACUT_LICENSE_FILES = COPYING
DRACUT_CPE_ID_VALID = YES DRACUT_CPE_ID_VALID = YES
HOST_DRACUT_DEPENDENCIES = host-pkgconf host-kmod host-cross-ldd HOST_DRACUT_DEPENDENCIES = host-pkgconf host-kmod host-cross-ldd
HOST_DRACUT_INSTALL_OPTS = systemdsystemunitdir="" install
define HOST_DRACUT_POST_INSTALL_WRAPPER_SCRIPT define HOST_DRACUT_POST_INSTALL_WRAPPER_SCRIPT
mv $(HOST_DIR)/bin/dracut $(HOST_DIR)/bin/dracut.real mv $(HOST_DIR)/bin/dracut $(HOST_DIR)/bin/dracut.real