* [Buildroot] [PATCH] package/dracut: fix dracut_wrapper
@ 2024-02-25 22:57 Romain Naour
2024-03-01 18:23 ` Peter Korsgaard
2024-03-18 13:30 ` Peter Korsgaard
0 siblings, 2 replies; 3+ messages in thread
From: Romain Naour @ 2024-02-25 22:57 UTC (permalink / raw)
To: buildroot; +Cc: Romain Naour, Thierry Bultel
As reported by Thierry Bultel [1], dracut doesn't work since the
version bump to version 059.
Further investigation by Andreas Naumann [2] reported that the issue
come from this commit d010fa0 refactor(dracut-install): fork() instead
of popen(), sanitise line reading [3].
The issue come from our dracut_wrapper and how DRACUT_LDD is defined.
Indeed dracut expect DRACUT_LDD=ldd or a single binary (without
arguments) but we are using "prelink-rtld --root='${sysroot}'".
With the change introduced by [3], our DRACUT_LDD is used
directly by execlp() leading to an error:
execlp(ldd, ldd, fullsrcpath, (char *)NULL);
Use mktemp to generate a temporary dracut-ldd script using
prelink-rtld --root='${sysroot}' ${1}
execute dracut.real in a subshell to cleanup the temporary file
at the end of the dracut wrapper script.
Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243423 [tests.fs.test_cpio.TestCpioDracutGlibcMergedUsr]
https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243434 [tests.fs.test_cpio.TestCpioDracutMuslMergedUsr]
https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243567 [tests.fs.test_cpio.TestCpioDracutUclibcMergedUsr]
https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243559 [tests.fs.test_cpio.TestCpioDracutGlibc]
https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243504 [tests.fs.test_cpio.TestCpioDracutUclibc]
https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243498 [tests.fs.test_cpio.TestCpioDracutMusl]
[1] http://lists.busybox.net/pipermail/buildroot/2024-February/684145.html
[2] http://lists.busybox.net/pipermail/buildroot/2024-February/684503.html
[3] https://github.com/dracutdevs/dracut/commit/d010fa0d7f8ef42ad31729d027d2e4be6dd6e588
Fixes: 145f01ded5 ("package/dracut: bump to version 059")
Reported-by: Thierry Bultel <thierry.bultel@linatsea.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
---
package/dracut/dracut_wrapper | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/package/dracut/dracut_wrapper b/package/dracut/dracut_wrapper
index 0464db17fe..889322d1c6 100644
--- a/package/dracut/dracut_wrapper
+++ b/package/dracut/dracut_wrapper
@@ -31,8 +31,18 @@ if [ -z "${sysroot}" ]; then
fi
topdir="$(dirname "$(realpath "$(dirname "${0}")")")"
-export DRACUT_LDD="${topdir}/sbin/prelink-rtld --root='${sysroot}'"
+DRACUT_LDD="$(mktemp /tmp/dracut-ldd.XXXXXX)"
+cat >"${DRACUT_LDD}" <<EOL
+#!/bin/bash
+${topdir}/sbin/prelink-rtld --root='${sysroot}' \${1}
+EOL
+chmod +x ${DRACUT_LDD}
+export DRACUT_LDD
export DRACUT_INSTALL="${topdir}/lib/dracut/dracut-install"
export DRACUT_LDCONFIG=/bin/true
export dracutbasedir="${topdir}/lib/dracut"
-exec "${topdir}/bin/dracut.real" "${@}"
+(exec "${topdir}/bin/dracut.real" "${@}")
+
+if [ -n "${DRACUT_LDD}" ]; then
+ rm -f "${DRACUT_LDD}"
+fi
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH] package/dracut: fix dracut_wrapper
2024-02-25 22:57 [Buildroot] [PATCH] package/dracut: fix dracut_wrapper Romain Naour
@ 2024-03-01 18:23 ` Peter Korsgaard
2024-03-18 13:30 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2024-03-01 18:23 UTC (permalink / raw)
To: Romain Naour; +Cc: Thierry Bultel, buildroot
>>>>> "Romain" == Romain Naour <romain.naour@smile.fr> writes:
> As reported by Thierry Bultel [1], dracut doesn't work since the
> version bump to version 059.
> Further investigation by Andreas Naumann [2] reported that the issue
> come from this commit d010fa0 refactor(dracut-install): fork() instead
> of popen(), sanitise line reading [3].
> The issue come from our dracut_wrapper and how DRACUT_LDD is defined.
> Indeed dracut expect DRACUT_LDD=ldd or a single binary (without
> arguments) but we are using "prelink-rtld --root='${sysroot}'".
> With the change introduced by [3], our DRACUT_LDD is used
> directly by execlp() leading to an error:
> execlp(ldd, ldd, fullsrcpath, (char *)NULL);
> Use mktemp to generate a temporary dracut-ldd script using
> prelink-rtld --root='${sysroot}' ${1}
> execute dracut.real in a subshell to cleanup the temporary file
> at the end of the dracut wrapper script.
> Fixes:
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243423 [tests.fs.test_cpio.TestCpioDracutGlibcMergedUsr]
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243434 [tests.fs.test_cpio.TestCpioDracutMuslMergedUsr]
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243567 [tests.fs.test_cpio.TestCpioDracutUclibcMergedUsr]
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243559 [tests.fs.test_cpio.TestCpioDracutGlibc]
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243504 [tests.fs.test_cpio.TestCpioDracutUclibc]
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243498 [tests.fs.test_cpio.TestCpioDracutMusl]
> [1] http://lists.busybox.net/pipermail/buildroot/2024-February/684145.html
> [2] http://lists.busybox.net/pipermail/buildroot/2024-February/684503.html
> [3] https://github.com/dracutdevs/dracut/commit/d010fa0d7f8ef42ad31729d027d2e4be6dd6e588
> Fixes: 145f01ded5 ("package/dracut: bump to version 059")
> Reported-by: Thierry Bultel <thierry.bultel@linatsea.fr>
> Signed-off-by: Romain Naour <romain.naour@smile.fr>
> ---
> package/dracut/dracut_wrapper | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
> diff --git a/package/dracut/dracut_wrapper b/package/dracut/dracut_wrapper
> index 0464db17fe..889322d1c6 100644
> --- a/package/dracut/dracut_wrapper
> +++ b/package/dracut/dracut_wrapper
> @@ -31,8 +31,18 @@ if [ -z "${sysroot}" ]; then
> fi
> topdir="$(dirname "$(realpath "$(dirname "${0}")")")"
> -export DRACUT_LDD="${topdir}/sbin/prelink-rtld --root='${sysroot}'"
> +DRACUT_LDD="$(mktemp /tmp/dracut-ldd.XXXXXX)"
> +cat >"${DRACUT_LDD}" <<EOL
> +#!/bin/bash
> +${topdir}/sbin/prelink-rtld --root='${sysroot}' \${1}
> +EOL
> +chmod +x ${DRACUT_LDD}
Here shellcheck complains:
In package/dracut/dracut_wrapper line 39:
chmod +x ${DRACUT_LDD}
^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
So I've quoted it and committed, thanks.
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH] package/dracut: fix dracut_wrapper
2024-02-25 22:57 [Buildroot] [PATCH] package/dracut: fix dracut_wrapper Romain Naour
2024-03-01 18:23 ` Peter Korsgaard
@ 2024-03-18 13:30 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2024-03-18 13:30 UTC (permalink / raw)
To: Romain Naour; +Cc: Thierry Bultel, buildroot
>>>>> "Romain" == Romain Naour <romain.naour@smile.fr> writes:
> As reported by Thierry Bultel [1], dracut doesn't work since the
> version bump to version 059.
> Further investigation by Andreas Naumann [2] reported that the issue
> come from this commit d010fa0 refactor(dracut-install): fork() instead
> of popen(), sanitise line reading [3].
> The issue come from our dracut_wrapper and how DRACUT_LDD is defined.
> Indeed dracut expect DRACUT_LDD=ldd or a single binary (without
> arguments) but we are using "prelink-rtld --root='${sysroot}'".
> With the change introduced by [3], our DRACUT_LDD is used
> directly by execlp() leading to an error:
> execlp(ldd, ldd, fullsrcpath, (char *)NULL);
> Use mktemp to generate a temporary dracut-ldd script using
> prelink-rtld --root='${sysroot}' ${1}
> execute dracut.real in a subshell to cleanup the temporary file
> at the end of the dracut wrapper script.
> Fixes:
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243423 [tests.fs.test_cpio.TestCpioDracutGlibcMergedUsr]
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243434 [tests.fs.test_cpio.TestCpioDracutMuslMergedUsr]
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243567 [tests.fs.test_cpio.TestCpioDracutUclibcMergedUsr]
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243559 [tests.fs.test_cpio.TestCpioDracutGlibc]
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243504 [tests.fs.test_cpio.TestCpioDracutUclibc]
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6224243498 [tests.fs.test_cpio.TestCpioDracutMusl]
> [1] http://lists.busybox.net/pipermail/buildroot/2024-February/684145.html
> [2] http://lists.busybox.net/pipermail/buildroot/2024-February/684503.html
> [3] https://github.com/dracutdevs/dracut/commit/d010fa0d7f8ef42ad31729d027d2e4be6dd6e588
> Fixes: 145f01ded5 ("package/dracut: bump to version 059")
> Reported-by: Thierry Bultel <thierry.bultel@linatsea.fr>
> Signed-off-by: Romain Naour <romain.naour@smile.fr>
Committed to 2023.11.x, thanks.
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-03-18 13:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-25 22:57 [Buildroot] [PATCH] package/dracut: fix dracut_wrapper Romain Naour
2024-03-01 18:23 ` Peter Korsgaard
2024-03-18 13:30 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox