From e3fc979b653de406eab020eb9f5c814ba64b30dd Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Tue, 23 Sep 2025 10:25:47 +0200 Subject: dracut: update to 108 Drop stale patches, add a patch that enables stripping in an OE enviroment. Upstream changelog: * systemd-udevd: 99-systemd.rules added in two places ([a8c0a15c](https://github.com/dracut-ng/dracut-ng/commit/a8c0a15cf9b61b7f606e4162164b526eb58f620b)) * watchdog: only install wdctl for the non-systemd case ([ad0fd3a8](https://github.com/dracut-ng/dracut-ng/commit/ad0fd3a8dfcb155290bc8b7ec9f83144daa3d9df)) * add Debian/Ubuntu specific Dracut configuration ([cba1a2c2](https://github.com/dracut-ng/dracut-ng/commit/cba1a2c2cda9d2fb26fb694f59dac88bf1b0b725)) * allow the use of $kernel in initrdname= config ([696397dd](https://github.com/dracut-ng/dracut-ng/commit/696397dd8d8b200549fba4b564f97b1864143093)) * add support for removing a space separated list of files ([f8dfe3ee](https://github.com/dracut-ng/dracut-ng/commit/f8dfe3ee5b958262c38a821b15443893e400dba0)) * make variable set check work with "set -u" ([ee8f4f9d](https://github.com/dracut-ng/dracut-ng/commit/ee8f4f9d3e011c829bda7a8b7ee19aef85dd6ffb)) * support dracutsysrootdir being unset ([348888b8](https://github.com/dracut-ng/dracut-ng/commit/348888b8d9067a9e983650129b7a3ea64fb8430f)) * tests are not packaged by default to simplify packaging ([e65a87cf](https://github.com/dracut-ng/dracut-ng/commit/e65a87cf0a14a5c7157ea4cfe56eb8639435eaa4)) * set hostonly_cmdline config to no by default ([efaee447](https://github.com/dracut-ng/dracut-ng/commit/efaee4473680db78f4f3244ba952e783ea3b5aa9)) * set hostonly config by default in configure ([62fdf59c](https://github.com/dracut-ng/dracut-ng/commit/62fdf59c94ef7ec2261d054384ceddff39c3643b)) * Makefile: explicitly list configs to install ([f7416501](https://github.com/dracut-ng/dracut-ng/commit/f7416501a7465318682bf7c619c1f52bdb6b1b02)) * base: add support for rd.driver.pre ([5ca76df3](https://github.com/dracut-ng/dracut-ng/commit/5ca76df3a29467404611443d75539a02824a0dfa)) * crypt-gpg: handle multiple gpg pubkeys ([28ad7910](https://github.com/dracut-ng/dracut-ng/commit/28ad79106c7fc87ba7f5f6f0c86faeb4191c567e)) * dracut: * drop DRACUT_PATH and rely on PATH ([2606f985](https://github.com/dracut-ng/dracut-ng/commit/2606f985d6f38c464a8485421683571e2df266dd)) * support SOURCE_DATE_EPOCH ([dfcfa6fb](https://github.com/dracut-ng/dracut-ng/commit/dfcfa6fbe8007e62f4f7977f69646710f0af6100)) * allow users to choose which dlopen dependencies they want ([96a91d04](https://github.com/dracut-ng/dracut-ng/commit/96a91d04ddf004071007870dc1cabab6b4c94f69)) * replace ldd with dracut-install --dry-run or header check ([e8b733f7](https://github.com/dracut-ng/dracut-ng/commit/e8b733f7c545b35511711ae6514065dce6530724)) * set systemdversion global var using pkg-config ([ed80f9f4](https://github.com/dracut-ng/dracut-ng/commit/ed80f9f42c2e92c9494ddaad9cfca0312319eec2)) * dracut-install: * add --dry-run option to replace external ldd usage ([161153f9](https://github.com/dracut-ng/dracut-ng/commit/161153f901877f825f3e038367fee631eacac8f2)) * extend new ELF parsing code to replace ldd calls ([aac5c914](https://github.com/dracut-ng/dracut-ng/commit/aac5c914af84e8880fcc154ebb93a05c6b6855dc)) * parse ELF .note.dlopen entries for extra deps ([19b5faad](https://github.com/dracut-ng/dracut-ng/commit/19b5faad97971a6d906740de28cfe366a7fae687)) * initqueue: factor out initqueue into its own module ([3daf6783](https://github.com/dracut-ng/dracut-ng/commit/3daf67830d8db3b12bc45eef9f8f29f606192db9)) * network-manager: use upstream initrd services if available ([83dffc58](https://github.com/dracut-ng/dracut-ng/commit/83dffc58f606ad7ad47a32716ce240831d7f018f)) * resume: do not depend on initqueue if systemd is used ([34457e07](https://github.com/dracut-ng/dracut-ng/commit/34457e070bc9d5c5bc622363eb7acf4767f16e46)) * rootfs-block-fallback: factor out rootfallback into its own module ([2676f1a5](https://github.com/dracut-ng/dracut-ng/commit/2676f1a5fc9a090866d0b29bf161850a7e93e87e)) * watchdog: do not depend on initqueue if systemd is used ([c8dbd9ec](https://github.com/dracut-ng/dracut-ng/commit/c8dbd9ecc8ea1983c6e51c1205939247a434c661)) * load essential storage kernel modules in sloppy hostonly mode ([87304767](https://github.com/dracut-ng/dracut-ng/commit/87304767b16f45b7eacd1e5e622adab029e7902e)) * increase deteminism by not relying on the default sorting from ls ([c9f6b867](https://github.com/dracut-ng/dracut-ng/commit/c9f6b8674e38b19c7666e30601bb5ed6a205b661)) * network-manager dracut module no longer depends on systemd ([8f063e23](https://github.com/dracut-ng/dracut-ng/commit/8f063e23370e8953b6189990a1179517d2454c69)) * support DRACUT_SYSTEMD being unset ([79ffbd28](https://github.com/dracut-ng/dracut-ng/commit/79ffbd28294818a36e515a441142125d70e3acbb)) * support hostonly being unset ([c85c9324](https://github.com/dracut-ng/dracut-ng/commit/c85c93245bf48d1a47e12c30cdb4aa49ea2a585e)) * support DRACUT_RESOLVE_LAZY being unset ([3d383ba4](https://github.com/dracut-ng/dracut-ng/commit/3d383ba4fa98993a423c849054cb1d51eff81b24)) * loongarch architecture support ([38f44b35](https://github.com/dracut-ng/dracut-ng/commit/38f44b35d05587c601caea50d765b89be6f9305d)) * let check_vol_slaves_all return 1 when checks on all slaves fail ([b117013b](https://github.com/dracut-ng/dracut-ng/commit/b117013b7829883f6b2b1d0fe12e8a7772a38029)) * improve hostonly sloppy mode ([53537ae7](https://github.com/dracut-ng/dracut-ng/commit/53537ae77e49ab5ba157fdab544489db10ad8b1b), closes [#1321](https://github.com/dracut-ng/dracut-ng/issues/1321)) * load more kernel modules in sloppy hostonly mode ([de862885](https://github.com/dracut-ng/dracut-ng/commit/de862885ec55bb19bfa3e3f1afd27577b7c5e309)) * Makefile: remove test modules after renumbering ([80961ee0](https://github.com/dracut-ng/dracut-ng/commit/80961ee0b36ca3ff60cacd68986217506c305176)) * base: * base module failure if root password is already set ([e4551d40](https://github.com/dracut-ng/dracut-ng/commit/e4551d403f9fd6e09bde401c16bb0974bce3a23a)) * dracut-lib.sh soft depends on poweroff/reboot/halt ([237108c3](https://github.com/dracut-ng/dracut-ng/commit/237108c332a4a738c29e9b5210cdd00b7922c6ce)) * support PREFIX being unset ([7bea9dfe](https://github.com/dracut-ng/dracut-ng/commit/7bea9dfed63207b1fb7b9fd5b5aab4b038727652)) * only create nobody user for nfs dracut module ([8934a8e5](https://github.com/dracut-ng/dracut-ng/commit/8934a8e50fc89f7f13539be027149b1246c2481d)) * dmsquash-live: erofs collision with latest util-linux ([950475e8](https://github.com/dracut-ng/dracut-ng/commit/950475e848c9eec03b5283bfd1d8722c051edd2d)) * dracut: * only call uname -r if it is safe to do ([3f4497ed](https://github.com/dracut-ng/dracut-ng/commit/3f4497ed842ba8be998893b441cc936e2721cd63)) * detect if systemd-detect-virt is available before calling it ([5d3298ea](https://github.com/dracut-ng/dracut-ng/commit/5d3298ea9ed8790e57514d1d0ea2117fb7af363b)) * consolidate reporting running in a container ([000f5dbf](https://github.com/dracut-ng/dracut-ng/commit/000f5dbfb6539d03fc90165d04de88b49ff6bedb)) * ensure hardlink deduplication is reproducible ([9fdf683f](https://github.com/dracut-ng/dracut-ng/commit/9fdf683f6d2f7c6ecbd98884f142de86bbea5a56)) * respect PKG_CONFIG env var instead of hardcoding pkg-config ([0ee92dbb](https://github.com/dracut-ng/dracut-ng/commit/0ee92dbba684e2c39b615a50b03ae5d15e3dc18e)) * dracut-init: use sysroot when checking udev rule program existence ([c1000cda](https://github.com/dracut-ng/dracut-ng/commit/c1000cda35959b6f7dfb2e88cc657a846e44d841)) * dracut-init.sh: * support DRACUT_NO_XATTR being unset ([d520252a](https://github.com/dracut-ng/dracut-ng/commit/d520252aae1553ecc4d368236287baf3a32040c9)) * initialize _files in inst_libdir_file ([2311abeb](https://github.com/dracut-ng/dracut-ng/commit/2311abeba53ec353f494240d7da9b24aad9e3d5e)) * dracut-initramfs-restore: check for Debian initrd.img symlink ([f80128e9](https://github.com/dracut-ng/dracut-ng/commit/f80128e91aae68449e1006cc7a9d6fcf8eacea32)) * dracut-install: * sort output of --modalias ([41e43068](https://github.com/dracut-ng/dracut-ng/commit/41e4306840959b88758aad6a768c613b0864c763)) * install all suppliers of a supplier's module ([80574db7](https://github.com/dracut-ng/dracut-ng/commit/80574db78cf7d0cf007d933cf950ac159f6de3b3)) * do not limit supplier handling to platform bus ([e35c5173](https://github.com/dracut-ng/dracut-ng/commit/e35c517310d7e5edb24c10bf5be7f597502197a2)) * add sysfs node parents' modules as dependencies ([3607cd8f](https://github.com/dracut-ng/dracut-ng/commit/3607cd8fcbe433802e70d7cc055b18f829cb3b3c)) * rework broken destination existence logic ([425e263b](https://github.com/dracut-ng/dracut-ng/commit/425e263be559c7a005579072f4051c047a1c1511)) * plug memory leak on kerneldir ([082b6b0a](https://github.com/dracut-ng/dracut-ng/commit/082b6b0a6e544865948f177126aac7d40c69b1ba)) * deadcode.DeadStores static analyzer warnings ([28041543](https://github.com/dracut-ng/dracut-ng/commit/28041543f661a918ce1eb97ce0b69b20cb891c9b)) * dracut-lib.sh: initialize variables in getargs ([ef60bd71](https://github.com/dracut-ng/dracut-ng/commit/ef60bd7179505b49ef4c9fd077d7647e0161af2b)) * dracut-logger.sh: initialize errmsg in dlog_init ([f35a8c7f](https://github.com/dracut-ng/dracut-ng/commit/f35a8c7f04c02cea063a8c0346c9993f120a8196)) * dracut.conf.d: reserve namespace 50 to out-of-tree configurations ([d470b436](https://github.com/dracut-ng/dracut-ng/commit/d470b436aecceacd520d1629484e7365c9607183)) * dracut.sh: * do not use uname to detect kernel version in a container ([2b2debd7](https://github.com/dracut-ng/dracut-ng/commit/2b2debd7947b7d5a357c1a89691a75dfd3565747)) * initialize variables that get exported ([50426818](https://github.com/dracut-ng/dracut-ng/commit/504268187b863d11a8c39e0a242aa77e688c8b0d)) * don't pass empty string as dir ([758f3eaf](https://github.com/dracut-ng/dracut-ng/commit/758f3eaf61ac210507715f4b5681e24f6dc4d3b0), closes [#1275](https://github.com/dracut-ng/dracut-ng/issues/1275)) * fcoe-uefi: exit early on empty vlan ([555b6e1d](https://github.com/dracut-ng/dracut-ng/commit/555b6e1d685ce5960109aefe736ed3ebdf50a839)) * fips: make sha512hmac an optional requirement ([3d319b55](https://github.com/dracut-ng/dracut-ng/commit/3d319b55a65d9be2c9a9dade3c23cd0f377416b7)) * generic.conf: increase ordering for generic.conf ([d823fd86](https://github.com/dracut-ng/dracut-ng/commit/d823fd86d364dce3b26cd0cc441aa4c86a8db20c)) * i18n: add $dracutsysrootdir to systemd-vconsole-setup.service path ([90956522](https://github.com/dracut-ng/dracut-ng/commit/90956522ba143125de9f060368cef83aa64e1a3e)) * livenet: drop stray command call ([9135136d](https://github.com/dracut-ng/dracut-ng/commit/9135136d7dfca0deb8b0c618c43e3ffcc35b3090), closes [#1240](https://github.com/dracut-ng/dracut-ng/issues/1240)) * lsinitrd: resolve initrd to real path ([22d93bc0](https://github.com/dracut-ng/dracut-ng/commit/22d93bc0cd5afd0d9170c6bdc8ba7ceac68b8eb5)) * man: document what to expect running dracut non-root ([b853eba8](https://github.com/dracut-ng/dracut-ng/commit/b853eba87684d608637493f8c8214dda4ec96102)) * modules: * free up range 00-09 to out of tree dracut modules ([1edcb076](https://github.com/dracut-ng/dracut-ng/commit/1edcb07619958f05727d3c30b72f7810b62c22a1)) * document known module dependencies ([2d98ddb5](https://github.com/dracut-ng/dracut-ng/commit/2d98ddb5d273348db32c248561560dc0975a0189)) * move more modules with unimportant ordering to 70 ([c439438d](https://github.com/dracut-ng/dracut-ng/commit/c439438d4f87f391db021b6037830a034f321dfd)) * all modules with 99 ordering should have a unique number ([2199846f](https://github.com/dracut-ng/dracut-ng/commit/2199846ffebca406a957b781509c42a42d101ba7)) * network-manager: depend on dbus only when using systemd ([58baf861](https://github.com/dracut-ng/dracut-ng/commit/58baf861c68b1f233da4c89d1a8a398ac307cb6c)) * simpledrm: add =drivers/gpu/drm/panel ([b7a2f8d0](https://github.com/dracut-ng/dracut-ng/commit/b7a2f8d0bdcc57ef7ad137fde657c4a359b7a824)) * systemd: * systemd.volatile needs overlayfs kernel module ([e1452003](https://github.com/dracut-ng/dracut-ng/commit/e14520035286dbb4ee856cac2e05c1f21c6e148d)) * make checking for systemd availability consistent ([8e575556](https://github.com/dracut-ng/dracut-ng/commit/8e575556da2bc6d41265fdffd4c4bf7bd69ab71e)) * systemd-cryptsetup: don't pull in fido2/pkcs11/tpm2-tss if omitted ([01b369a5](https://github.com/dracut-ng/dracut-ng/commit/01b369a5866853c8dc5c53c7d4d8613e5721be34)) * systemd-repart: * allow partition format ([02201361](https://github.com/dracut-ng/dracut-ng/commit/02201361ac0e646f9367ec7f14b215795e89cf6a)) * copy systemd system drop-in configuration ([bb8bf124](https://github.com/dracut-ng/dracut-ng/commit/bb8bf124526f25ac698ef05bc95eb2fe625d69c7)) * systemd-sysext: * install the required kernel modules ([7f524d3d](https://github.com/dracut-ng/dracut-ng/commit/7f524d3d24528a7261f0cce1e445ef464f5bf126)) * make non-hostonly non-host ([e42755c3](https://github.com/dracut-ng/dracut-ng/commit/e42755c342bdc15ae77be722f0ec2a8c23390be5)) * systemd-sysusers: * maintain users and groups ([50285645](https://github.com/dracut-ng/dracut-ng/commit/50285645e617a537e69d4eb8f22dbe83c9b22665)) * remove (g)shadow created by systemd-sysusers ([97b5f91f](https://github.com/dracut-ng/dracut-ng/commit/97b5f91ff043b13b213438295675ff85e83dc6de), closes [#1242](https://github.com/dracut-ng/dracut-ng/issues/1242)) * systemd-udevd: handle root=gpt-auto for systemd-v258 ([fa17b6fb](https://github.com/dracut-ng/dracut-ng/commit/fa17b6fb0e5a226a83588c2d8fdec5ff285f5eab)) * test: renumber test modules to 70 ([99ed458b](https://github.com/dracut-ng/dracut-ng/commit/99ed458b5b1870c57e936a216149c9b7bb5b9f21)) Signed-off-by: Koen Kooi Signed-off-by: Khem Raj --- ...-install-split-ldd-command-arguments-for-.patch | 91 ------------------ ...t-dracut.sh-try-STRIP-for-strip_cmd-first.patch | 33 +++++++ ...-broken-symlink-in-dracut-config-examples.patch | 44 --------- ...-broken-symlink-in-dracut-config-examples.patch | 44 +++++++++ .../recipes-devtools/dracut/dracut_106.bb | 73 --------------- .../recipes-devtools/dracut/dracut_108.bb | 104 +++++++++++++++++++++ 6 files changed, 181 insertions(+), 208 deletions(-) delete mode 100644 meta-initramfs/recipes-devtools/dracut/dracut/0001-feat-dracut-install-split-ldd-command-arguments-for-.patch create mode 100644 meta-initramfs/recipes-devtools/dracut/dracut/0001-feat-dracut.sh-try-STRIP-for-strip_cmd-first.patch delete mode 100644 meta-initramfs/recipes-devtools/dracut/dracut/0001-fix-broken-symlink-in-dracut-config-examples.patch create mode 100644 meta-initramfs/recipes-devtools/dracut/dracut/0002-fix-broken-symlink-in-dracut-config-examples.patch delete mode 100644 meta-initramfs/recipes-devtools/dracut/dracut_106.bb create mode 100644 meta-initramfs/recipes-devtools/dracut/dracut_108.bb (limited to 'meta-initramfs') diff --git a/meta-initramfs/recipes-devtools/dracut/dracut/0001-feat-dracut-install-split-ldd-command-arguments-for-.patch b/meta-initramfs/recipes-devtools/dracut/dracut/0001-feat-dracut-install-split-ldd-command-arguments-for-.patch deleted file mode 100644 index febdbdbddd..0000000000 --- a/meta-initramfs/recipes-devtools/dracut/dracut/0001-feat-dracut-install-split-ldd-command-arguments-for-.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 38dea7dd671fd621b563377cfbd95e4783568c6e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= - -Date: Fri, 7 Jun 2024 10:32:40 +0200 -Subject: [PATCH] feat(dracut-install): split ldd command arguments for - execvp() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This restores a not-so-subtle feature of previously executing ldd -via popen(), i.e. the ability to use a cross-compiled sysroot. - -The ldd command may be passed in via the DRACUT_LDD environment -variable, and the command may contain command line arguments. -The number of such arguments are not known in advance. - -Split the command into executable and arguments and run it -via execvp(). - -Fixes: d010fa0d7f8ef42ad31729d027d2e4be6dd6e588 -Signed-off-by: Zoltán Böszörményi -Upstream-Status: Submitted [https://github.com/dracut-ng/dracut-ng/pull/339] ---- - src/install/dracut-install.c | 47 +++++++++++++++++++++++++++++++++++- - 1 file changed, 46 insertions(+), 1 deletion(-) - -diff --git a/src/install/dracut-install.c b/src/install/dracut-install.c -index e9708c45..724b27b5 100644 ---- a/src/install/dracut-install.c -+++ b/src/install/dracut-install.c -@@ -559,10 +559,55 @@ static int resolve_deps(const char *src) - log_debug("%s %s", ldd, fullsrcpath); - pid_t ldd_pid; - if ((ldd_pid = fork()) == 0) { -+ char **cmdline = NULL; -+ int start, pos, idx = 0; -+ /* Account for at least 2 elements plus the terminating NULL in cmdline */ -+ int args = 3; -+ -+ /* Estimate the number of space-separated elements in the "ldd" string */ -+ pos = 0; -+ while (isspace(ldd[pos])) -+ pos++; -+ for (; ldd[pos]; pos++) { -+ if (isspace(ldd[pos])) { -+ if (pos) -+ args++; -+ while (isspace(ldd[pos])) -+ pos++; -+ } -+ } -+ -+ cmdline = malloc(args * sizeof(char *)); -+ memset(cmdline, 0, args * sizeof(char *)); -+ -+ pos = 0; -+ while (isspace(ldd[pos])) -+ pos++; -+ start = pos; -+ for (; ldd[pos]; pos++) { -+ while (ldd[pos] && !isspace(ldd[pos])) -+ pos++; -+ -+ cmdline[idx] = malloc(pos - start + 1); -+ memcpy(cmdline[idx], ldd + start, pos - start); -+ cmdline[idx][pos - start] = 0; -+ idx++; -+ -+ if (!ldd[pos]) -+ break; -+ -+ while (isspace(ldd[pos])) -+ pos++; -+ start = pos; -+ } -+ -+ cmdline[idx++] = fullsrcpath; -+ cmdline[idx] = NULL; -+ - dup2(fds[1], 1); - dup2(fds[1], 2); - putenv("LC_ALL=C"); -- execlp(ldd, ldd, fullsrcpath, (char *)NULL); -+ execvp(cmdline[0], cmdline); - _exit(errno == ENOENT ? 127 : 126); - } - close(fds[1]); --- -2.45.2 - diff --git a/meta-initramfs/recipes-devtools/dracut/dracut/0001-feat-dracut.sh-try-STRIP-for-strip_cmd-first.patch b/meta-initramfs/recipes-devtools/dracut/dracut/0001-feat-dracut.sh-try-STRIP-for-strip_cmd-first.patch new file mode 100644 index 0000000000..00d75ccff6 --- /dev/null +++ b/meta-initramfs/recipes-devtools/dracut/dracut/0001-feat-dracut.sh-try-STRIP-for-strip_cmd-first.patch @@ -0,0 +1,33 @@ +From b8504fdbc6ac7b49aa0a9671267be8ac7affb2ee Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Thu, 19 Jun 2025 16:06:14 +0200 +Subject: [PATCH 1/2] feat: dracut.sh: try $STRIP for $strip_cmd first + +When using dracut in a cross enviroment, like OpenEmbedded, the host +provided strip (or eu-strip) won't work, so try using the $STRIP +variable from the shell environment first before falling back to path +based lookups. + +Signed-off-by: Koen Kooi +Upstream-Status: Submitted [https://github.com/dracut-ng/dracut-ng/pull/1639] +--- + dracut.sh | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/dracut.sh b/dracut.sh +index 45373efb..dbc5cd72 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -2262,7 +2262,8 @@ done + if [[ $do_strip == yes ]]; then + # Prefer strip from elfutils for package size + declare strip_cmd +- strip_cmd=$(command -v eu-strip) ++ strip_cmd="${STRIP}" ++ [ -z "$strip_cmd" ] && strip_cmd=$(command -v eu-strip) + [ -z "$strip_cmd" ] && strip_cmd="strip" + + for p in "$strip_cmd" xargs find; do +-- +2.47.3 + diff --git a/meta-initramfs/recipes-devtools/dracut/dracut/0001-fix-broken-symlink-in-dracut-config-examples.patch b/meta-initramfs/recipes-devtools/dracut/dracut/0001-fix-broken-symlink-in-dracut-config-examples.patch deleted file mode 100644 index 7d0b65a161..0000000000 --- a/meta-initramfs/recipes-devtools/dracut/dracut/0001-fix-broken-symlink-in-dracut-config-examples.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 8871c593973d9abfef45408575e5da887830f42e Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Thu, 22 May 2025 18:07:27 +0800 -Subject: [PATCH] fix broken symlink in dracut config examples - -Due to commit [1], it installs dracut config examples under /usr. -But while enable_test=no, the symlink of test in dracut config is broken -... -root@qemux86-64:~# ls /usr/lib/dracut/dracut.conf.d/test* -ahl -lrwxrwxrwx 1 root root 27 Apr 5 2011 /usr/lib/dracut/dracut.conf.d/test -> ../test/dracut.conf.d/test/ -lrwxrwxrwx 1 root root 36 Apr 5 2011 /usr/lib/dracut/dracut.conf.d/test-makeroot -> ../test/dracut.conf.d/test-makeroot/ -lrwxrwxrwx 1 root root 31 Apr 5 2011 /usr/lib/dracut/dracut.conf.d/test-root -> ../test/dracut.conf.d/test-root -root@qemux86-64:~# realpath /usr/lib/dracut/dracut.conf.d/test* -realpath: /usr/lib/dracut/dracut.conf.d/test: No such file or directory -realpath: /usr/lib/dracut/dracut.conf.d/test-makeroot: No such file or directory -realpath: /usr/lib/dracut/dracut.conf.d/test-root: No such file or directory -... - -This commit cleans up test symlink if enable_test=no - -[1] https://github.com/dracut-ng/dracut-ng/commit/0d369e3e30935dffe48dfff1e90463868e7f804a - -Upstream-Status: Submitted [https://github.com/dracut-ng/dracut-ng/pull/1344] - -Signed-off-by: Hongxu Jia ---- - Makefile | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Makefile b/Makefile -index d33aebbc..151d9f79 100644 ---- a/Makefile -+++ b/Makefile -@@ -180,6 +180,7 @@ ifneq ($(enable_test),no) - cp -arx test $(DESTDIR)$(pkglibdir) - else - rm -rf $(DESTDIR)$(pkglibdir)/modules.d/80test* -+ rm -rf $(DESTDIR)$(pkglibdir)/dracut.conf.d/test* - endif - ifneq ($(enable_documentation),no) - for i in $(man1pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man1/$${i##*/}; done --- -2.34.1 - diff --git a/meta-initramfs/recipes-devtools/dracut/dracut/0002-fix-broken-symlink-in-dracut-config-examples.patch b/meta-initramfs/recipes-devtools/dracut/dracut/0002-fix-broken-symlink-in-dracut-config-examples.patch new file mode 100644 index 0000000000..e2c202a079 --- /dev/null +++ b/meta-initramfs/recipes-devtools/dracut/dracut/0002-fix-broken-symlink-in-dracut-config-examples.patch @@ -0,0 +1,44 @@ +From e01991f1d55d4d1327793790bad3724b89952704 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 22 May 2025 18:07:27 +0800 +Subject: [PATCH 2/2] fix broken symlink in dracut config examples + +Due to commit [1], it installs dracut config examples under /usr. +But while enable_test=no, the symlink of test in dracut config is broken +... +root@qemux86-64:~# ls /usr/lib/dracut/dracut.conf.d/test* -ahl +lrwxrwxrwx 1 root root 27 Apr 5 2011 /usr/lib/dracut/dracut.conf.d/test -> ../test/dracut.conf.d/test/ +lrwxrwxrwx 1 root root 36 Apr 5 2011 /usr/lib/dracut/dracut.conf.d/test-makeroot -> ../test/dracut.conf.d/test-makeroot/ +lrwxrwxrwx 1 root root 31 Apr 5 2011 /usr/lib/dracut/dracut.conf.d/test-root -> ../test/dracut.conf.d/test-root +root@qemux86-64:~# realpath /usr/lib/dracut/dracut.conf.d/test* +realpath: /usr/lib/dracut/dracut.conf.d/test: No such file or directory +realpath: /usr/lib/dracut/dracut.conf.d/test-makeroot: No such file or directory +realpath: /usr/lib/dracut/dracut.conf.d/test-root: No such file or directory +... + +This commit cleans up test symlink if enable_test=no + +[1] https://github.com/dracut-ng/dracut-ng/commit/0d369e3e30935dffe48dfff1e90463868e7f804a + +Upstream-Status: Submitted [https://github.com/dracut-ng/dracut-ng/pull/1344] + +Signed-off-by: Hongxu Jia +--- + Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile b/Makefile +index 3a40594b..df7956ab 100644 +--- a/Makefile ++++ b/Makefile +@@ -218,6 +218,7 @@ ifeq ($(enable_test),yes) + done + else + rm -rf $(DESTDIR)$(pkglibdir)/modules.d/70test* ++ rm -rf $(DESTDIR)$(pkglibdir)/dracut.conf.d/test* + endif + ifneq ($(enable_documentation),no) + for i in $(man1pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man1/$${i##*/}; done +-- +2.47.3 + diff --git a/meta-initramfs/recipes-devtools/dracut/dracut_106.bb b/meta-initramfs/recipes-devtools/dracut/dracut_106.bb deleted file mode 100644 index d59b357dc1..0000000000 --- a/meta-initramfs/recipes-devtools/dracut/dracut_106.bb +++ /dev/null @@ -1,73 +0,0 @@ -SUMMARY = "Initramfs generator using udev" -HOMEPAGE = "https://dracut.wiki.kernel.org/index.php/Main_Page" -DESCRIPTION = "Dracut is an event driven initramfs infrastructure. dracut (the tool) is used to create an initramfs image by copying tools and files from an installed system and combining it with the dracut framework, usually found in /usr/lib/dracut/modules.d." - -LICENSE = "GPL-2.0-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -PE = "1" - -SRCREV = "956c08774074ddc45b2f975e13d5c13d1fc36eff" -SRC_URI = "git://github.com/dracut-ng/dracut-ng.git;protocol=http;branch=main \ - file://0001-feat-dracut-install-split-ldd-command-arguments-for-.patch \ - file://0001-fix-broken-symlink-in-dracut-config-examples.patch \ - " - -DEPENDS += "kmod" -DEPENDS:append:libc-musl = " fts" - -inherit bash-completion pkgconfig - - -EXTRA_OECONF = "--prefix=${prefix} \ - --libdir=${nonarch_libdir} \ - --datadir=${datadir} \ - --sysconfdir=${sysconfdir} \ - --sbindir=${sbindir} \ - --bindir=${bindir} \ - --includedir=${includedir} \ - --localstatedir=${localstatedir} \ - --disable-documentation \ - " - -# RDEPEND on systemd optionally -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" -PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,,systemd" - -EXTRA_OEMAKE += 'libdir=${nonarch_libdir} LDLIBS="${LDLIBS}" enable_test=no DRACUT_FULL_VERSION=${PV}' - -CFLAGS:append = " -fPIC" -LDLIBS:append:libc-musl = " -lfts" - -do_configure() { - ./configure ${EXTRA_OECONF} -} - -do_install() { - oe_runmake install DESTDIR=${D} - # Its Makefile uses cp -arx to install modules.d, so fix the owner - # to root:root - chown -R root:root ${D}/${nonarch_libdir}/dracut/modules.d \ - ${D}/${nonarch_libdir}/dracut/dracut.conf.d - - if ! ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - rm -rf ${D}${nonarch_libdir}/systemd - fi -} - -FILES:${PN} += "${nonarch_libdir}/kernel \ - ${nonarch_libdir}/dracut \ - ${systemd_unitdir} \ - " -FILES:${PN}-dbg += "${nonarch_libdir}/dracut/.debug" - -CONFFILES:${PN} += "${sysconfdir}/dracut.conf" - -RDEPENDS:${PN} = "findutils cpio util-linux-blkid util-linux-getopt util-linux bash ldd" - -# This could be optimized a bit, but let's avoid non-booting systems :) -RRECOMMENDS:${PN} = "kernel-modules \ - coreutils \ - " - -CVE_STATUS[CVE-2010-4176] = "not-applicable-platform: Applies only to Fedora" diff --git a/meta-initramfs/recipes-devtools/dracut/dracut_108.bb b/meta-initramfs/recipes-devtools/dracut/dracut_108.bb new file mode 100644 index 0000000000..5c95abbf29 --- /dev/null +++ b/meta-initramfs/recipes-devtools/dracut/dracut_108.bb @@ -0,0 +1,104 @@ +SUMMARY = "Initramfs generator using udev" +HOMEPAGE = "https://dracut.wiki.kernel.org/index.php/Main_Page" +DESCRIPTION = "Dracut is an event driven initramfs infrastructure. dracut (the tool) is used to create an initramfs image by copying tools and files from an installed system and combining it with the dracut framework, usually found in /usr/lib/dracut/modules.d." + +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +PE = "1" + +PV = "108" +SRCREV = "97c5568ec42abd5e6035f0cfa9d319ae6ae4e50a" +SRC_URI = "git://github.com/dracut-ng/dracut-ng.git;protocol=http;branch=main \ + file://0001-feat-dracut.sh-try-STRIP-for-strip_cmd-first.patch \ + file://0002-fix-broken-symlink-in-dracut-config-examples.patch \ + " + +DEPENDS += "kmod" +DEPENDS:append:libc-musl = " fts" + +inherit bash-completion pkgconfig + +EXTRA_OECONF = "--prefix=${prefix} \ + --libdir=${nonarch_libdir} \ + --datadir=${datadir} \ + --sysconfdir=${sysconfdir} \ + --sbindir=${sbindir} \ + --bindir=${bindir} \ + --includedir=${includedir} \ + --localstatedir=${localstatedir} \ + --disable-documentation \ + " + +# RDEPEND on systemd optionally +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,,systemd" + +EXTRA_OEMAKE += 'libdir=${nonarch_libdir} LDLIBS="${LDLIBS}" enable_test=no DRACUT_FULL_VERSION=${PV}' + +CFLAGS:append = " -fPIC" +LDLIBS:append:libc-musl = " -lfts" + +do_configure() { + ./configure ${EXTRA_OECONF} +} + +do_install() { + oe_runmake install DESTDIR=${D} + # Its Makefile uses cp -arx to install modules.d, so fix the owner + # to root:root + chown -R root:root ${D}/${nonarch_libdir}/dracut/modules.d \ + ${D}/${nonarch_libdir}/dracut/dracut.conf.d + + if ! ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + rm -rf ${D}${nonarch_libdir}/systemd + fi +} + +do_install:append:class-target () { + # Generate and install a config file listing where the DISTRO puts things, dracut + # is not always savvy enough to figure it out by itself + # Since this primarily fixes systemd issues, only install it when using systemd. + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + cat << EOF > ${B}/${DISTRO}.conf +stdloglvl=3 +sysloglvl=5 +sysctlconfdir=${sysconfdir}/sysctl.d +systemdutildir=${systemd_unitdir} +systemdutilconfdir=${sysconfdir}/systemd +systemdcatalog=${systemd_unitdir}catalog +systemdntpunits=${systemd_unitdir}ntp-units.d +systemdntpunitsconfdir=${sysconfdir}/systemd/ntp-units.d +systemdportable=${systemd_unitdir}/portable +systemdportableconfdir=${sysconfdir}/systemd/portable +systemdsystemunitdir=${systemd_system_unitdir} +systemdsystemconfdir=${sysconfdir}/systemd/system +systemduser=${systemd_user_unitdir} +systemduserconfdir=${sysconfdir}/systemd/user +EOF + install -m 0644 ${B}/${DISTRO}.conf ${D}${libdir}/dracut/dracut.conf.d/ + fi +} + + +FILES:${PN} += "${nonarch_libdir}/kernel \ + ${nonarch_libdir}/dracut \ + ${systemd_unitdir} \ + " +FILES:${PN}-dbg += "${nonarch_libdir}/dracut/.debug" + +CONFFILES:${PN} += "${sysconfdir}/dracut.conf" + +# The native variant uses a non-ldd based method of getting library +# dependencies, so ldd is only needed on the target +RDEPENDS:${PN} = "findutils cpio util-linux-blkid util-linux-getopt util-linux bash" +RDEPENDS:${PN}:append:class-target = " ldd" + +# This could be optimized a bit, but let's avoid non-booting systems :) +RRECOMMENDS:${PN}:class-target = "kernel-modules \ + coreutils \ + " + +BBCLASSEXTEND = "native nativesdk" + +CVE_STATUS[CVE-2010-4176] = "not-applicable-platform: Applies only to Fedora" -- cgit v1.2.3-54-g00ecf