From e3fc979b653de406eab020eb9f5c814ba64b30dd Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Tue, 23 Sep 2025 10:25:47 +0200 Subject: [PATCH] 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 --- ...all-split-ldd-command-arguments-for-.patch | 91 ------------------- ...cut.sh-try-STRIP-for-strip_cmd-first.patch | 33 +++++++ ...n-symlink-in-dracut-config-examples.patch} | 14 +-- .../dracut/{dracut_106.bb => dracut_108.bb} | 47 ++++++++-- 4 files changed, 79 insertions(+), 106 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 rename meta-initramfs/recipes-devtools/dracut/dracut/{0001-fix-broken-symlink-in-dracut-config-examples.patch => 0002-fix-broken-symlink-in-dracut-config-examples.patch} (83%) rename meta-initramfs/recipes-devtools/dracut/{dracut_106.bb => dracut_108.bb} (59%) 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/0002-fix-broken-symlink-in-dracut-config-examples.patch similarity index 83% rename from meta-initramfs/recipes-devtools/dracut/dracut/0001-fix-broken-symlink-in-dracut-config-examples.patch rename to meta-initramfs/recipes-devtools/dracut/dracut/0002-fix-broken-symlink-in-dracut-config-examples.patch index 7d0b65a161..e2c202a079 100644 --- a/meta-initramfs/recipes-devtools/dracut/dracut/0001-fix-broken-symlink-in-dracut-config-examples.patch +++ b/meta-initramfs/recipes-devtools/dracut/dracut/0002-fix-broken-symlink-in-dracut-config-examples.patch @@ -1,7 +1,7 @@ -From 8871c593973d9abfef45408575e5da887830f42e Mon Sep 17 00:00:00 2001 +From e01991f1d55d4d1327793790bad3724b89952704 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 +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 @@ -28,17 +28,17 @@ Signed-off-by: Hongxu Jia 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile -index d33aebbc..151d9f79 100644 +index 3a40594b..df7956ab 100644 --- a/Makefile +++ b/Makefile -@@ -180,6 +180,7 @@ ifneq ($(enable_test),no) - cp -arx test $(DESTDIR)$(pkglibdir) +@@ -218,6 +218,7 @@ ifeq ($(enable_test),yes) + done else - rm -rf $(DESTDIR)$(pkglibdir)/modules.d/80test* + 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.34.1 +2.47.3 diff --git a/meta-initramfs/recipes-devtools/dracut/dracut_106.bb b/meta-initramfs/recipes-devtools/dracut/dracut_108.bb similarity index 59% rename from meta-initramfs/recipes-devtools/dracut/dracut_106.bb rename to meta-initramfs/recipes-devtools/dracut/dracut_108.bb index d59b357dc1..5c95abbf29 100644 --- a/meta-initramfs/recipes-devtools/dracut/dracut_106.bb +++ b/meta-initramfs/recipes-devtools/dracut/dracut_108.bb @@ -7,10 +7,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" PE = "1" -SRCREV = "956c08774074ddc45b2f975e13d5c13d1fc36eff" +PV = "108" +SRCREV = "97c5568ec42abd5e6035f0cfa9d319ae6ae4e50a" 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 \ + file://0001-feat-dracut.sh-try-STRIP-for-strip_cmd-first.patch \ + file://0002-fix-broken-symlink-in-dracut-config-examples.patch \ " DEPENDS += "kmod" @@ -18,7 +19,6 @@ DEPENDS:append:libc-musl = " fts" inherit bash-completion pkgconfig - EXTRA_OECONF = "--prefix=${prefix} \ --libdir=${nonarch_libdir} \ --datadir=${datadir} \ @@ -55,6 +55,32 @@ do_install() { 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} \ @@ -63,11 +89,16 @@ 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" +# 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} = "kernel-modules \ - coreutils \ - " +RRECOMMENDS:${PN}:class-target = "kernel-modules \ + coreutils \ + " + +BBCLASSEXTEND = "native nativesdk" CVE_STATUS[CVE-2010-4176] = "not-applicable-platform: Applies only to Fedora"