From 2d3920dd8999b3c492c6ba849bd85645708192b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20F=C3=B6rster?= Date: Wed, 6 Nov 2024 15:35:00 +0100 Subject: [PATCH] [sys-kernel/dracut] sync --- sys-kernel/dracut/Manifest | 2 +- ...dracut-103-r4.ebuild => dracut-105.ebuild} | 64 +++++++++++++++---- sys-kernel/dracut/dracut-9999.ebuild | 59 ++++++++++++++--- ...dracut-103-always-install-libsystemd.patch | 21 ------ .../dracut-103-systemd-udev-256-kmod.patch | 41 ------------ ...acut-105-ensure-abs-args-for-objcopy.patch | 48 ++++++++++++++ 6 files changed, 148 insertions(+), 87 deletions(-) rename sys-kernel/dracut/{dracut-103-r4.ebuild => dracut-105.ebuild} (72%) delete mode 100644 sys-kernel/dracut/files/dracut-103-always-install-libsystemd.patch delete mode 100644 sys-kernel/dracut/files/dracut-103-systemd-udev-256-kmod.patch create mode 100644 sys-kernel/dracut/files/dracut-105-ensure-abs-args-for-objcopy.patch diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest index ac759a1..1cf2f33 100644 --- a/sys-kernel/dracut/Manifest +++ b/sys-kernel/dracut/Manifest @@ -1 +1 @@ -DIST dracut-103.tar.gz 567713 BLAKE2B 7781c0b7fc83a2c0c461f6398687e053226b489fb5405b3132b30d8e7a4f3cea2bb73aa0fe6e4c4b27187d6270ba623f403916ec38025a912930ae347a7e25ce SHA512 ba0dbefbcbecb09c44ce240664bc4f4ee25dfb8be7bc060028ae3b1ccf7d70410491c105e64fcef3d6f44d2794cb6162bcea9404125906be46bf3dff098e0277 +DIST dracut-105.tar.gz 575857 BLAKE2B 93463e3d1649e6e68accbb4f2480af471e851a54185771cec01e8b7112f5c4158901747bdc1180e08e270d3b3b21afb4d510dae09ca6ef00e309300bede188d1 SHA512 1608fb31d6a53905ea25a279586573db5fc7e084b4f6ff06e52065cbcb4ff503c2d51c0a282345844228232b1b590382b482a224183e0c4ee16c9c9e6932b275 diff --git a/sys-kernel/dracut/dracut-103-r4.ebuild b/sys-kernel/dracut/dracut-105.ebuild similarity index 72% rename from sys-kernel/dracut/dracut-103-r4.ebuild rename to sys-kernel/dracut/dracut-105.ebuild index 33c26ad..e46c080 100644 --- a/sys-kernel/dracut/dracut-103-r4.ebuild +++ b/sys-kernel/dracut/dracut-105.ebuild @@ -5,7 +5,7 @@ EAPI=8 CARGO_OPTIONAL=1 -inherit bash-completion-r1 cargo edo optfeature systemd toolchain-funcs +inherit flag-o-matic bash-completion-r1 cargo edo optfeature systemd toolchain-funcs if [[ ${PV} == 9999 ]] ; then inherit git-r3 @@ -24,8 +24,8 @@ HOMEPAGE="https://github.com/dracut-ng/dracut-ng/wiki" LICENSE="GPL-2" SLOT="0" IUSE="dracut-cpio selinux test" - -RESTRICT="!test? ( test )" +RESTRICT="test" +PROPERTIES="test? ( test_privileged test_network )" RDEPEND=" >=app-shells/bash-4.0:0 @@ -61,7 +61,38 @@ BDEPEND=" >=app-text/docbook-xsl-stylesheets-1.75.2 >=dev-libs/libxslt-1.1.26 virtual/pkgconfig - dracut-cpio? ( virtual/rust ) + test? ( + net-nds/rpcbind + net-fs/nfs-utils + sys-block/open-iscsi + sys-fs/btrfs-progs + sys-fs/dmraid + sys-fs/lvm2[lvm,thin] + sys-fs/mdadm + sys-fs/multipath-tools + alpha? ( app-emulation/qemu[qemu_softmmu_targets_alpha] ) + amd64? ( app-emulation/qemu[qemu_softmmu_targets_x86_64] ) + arm? ( app-emulation/qemu[qemu_softmmu_targets_arm] ) + arm64? ( app-emulation/qemu[qemu_softmmu_targets_aarch64] ) + hppa? ( app-emulation/qemu[qemu_softmmu_targets_hppa] ) + loong? ( app-emulation/qemu[qemu_softmmu_targets_loongarch64] ) + mips? ( || ( + app-emulation/qemu[qemu_softmmu_targets_mips] + app-emulation/qemu[qemu_softmmu_targets_mips64] + app-emulation/qemu[qemu_softmmu_targets_mips64el] + ) ) + ppc? ( app-emulation/qemu[qemu_softmmu_targets_ppc] ) + ppc64? ( app-emulation/qemu[qemu_softmmu_targets_ppc64] ) + riscv? ( || ( + app-emulation/qemu[qemu_softmmu_targets_riscv32] + app-emulation/qemu[qemu_softmmu_targets_riscv64] + ) ) + sparc? ( || ( + app-emulation/qemu[qemu_softmmu_targets_sparc] + app-emulation/qemu[qemu_softmmu_targets_sparc64] + ) ) + x86? ( app-emulation/qemu[qemu_softmmu_targets_i386] ) + ) " QA_MULTILIB_PATHS="usr/lib/dracut/.*" @@ -70,10 +101,8 @@ PATCHES=( "${FILESDIR}"/gentoo-ldconfig-paths-r1.patch # Gentoo specific acct-user and acct-group conf adjustments "${FILESDIR}"/${PN}-103-acct-user-group-gentoo.patch - # https://github.com/dracut-ng/dracut-ng/pull/507 - "${FILESDIR}"/${PN}-103-systemd-udev-256-kmod.patch - # libsystemd-core is sometimes missing - "${FILESDIR}"/${PN}-103-always-install-libsystemd.patch + # https://github.com/dracut-ng/dracut-ng/pull/834 + "${FILESDIR}"/${PN}-105-ensure-abs-args-for-objcopy.patch ) src_configure() { @@ -94,14 +123,21 @@ src_configure() { } src_test() { - if [[ ${EUID} != 0 ]]; then - # Tests need root privileges, bug #298014 - ewarn "Skipping tests: Not running as root." - elif [[ ! -w /dev/kvm ]]; then - ewarn "Skipping tests: Unable to access /dev/kvm." + addwrite /dev/kvm + # Translate ARCH so run-qemu can find the correct qemu-system-ARCH + local qemu_arch + if use amd64; then + qemu_arch=x86_64 + elif use arm64; then + qemu_arch=aarch64 + elif use loong; then + qemu_arch=loongarch64 + elif use x86; then + qemu_arch=i386 else - emake -C test check + qemu_arch=$(tc-arch) fi + ARCH=${qemu_arch} emake -C test check } src_install() { diff --git a/sys-kernel/dracut/dracut-9999.ebuild b/sys-kernel/dracut/dracut-9999.ebuild index cfa03b5..e77fe7e 100644 --- a/sys-kernel/dracut/dracut-9999.ebuild +++ b/sys-kernel/dracut/dracut-9999.ebuild @@ -5,7 +5,7 @@ EAPI=8 CARGO_OPTIONAL=1 -inherit bash-completion-r1 cargo edo optfeature systemd toolchain-funcs +inherit flag-o-matic bash-completion-r1 cargo edo optfeature systemd toolchain-funcs if [[ ${PV} == 9999 ]] ; then inherit git-r3 @@ -15,6 +15,7 @@ else KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" fi SRC_URI="https://github.com/dracut-ng/dracut-ng/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-ng-${PV}" fi DESCRIPTION="Generic initramfs generation tool" @@ -23,8 +24,8 @@ HOMEPAGE="https://github.com/dracut-ng/dracut-ng/wiki" LICENSE="GPL-2" SLOT="0" IUSE="dracut-cpio selinux test" - -RESTRICT="!test? ( test )" +RESTRICT="test" +PROPERTIES="test? ( test_privileged test_network )" RDEPEND=" >=app-shells/bash-4.0:0 @@ -60,7 +61,38 @@ BDEPEND=" >=app-text/docbook-xsl-stylesheets-1.75.2 >=dev-libs/libxslt-1.1.26 virtual/pkgconfig - dracut-cpio? ( virtual/rust ) + test? ( + net-nds/rpcbind + net-fs/nfs-utils + sys-block/open-iscsi + sys-fs/btrfs-progs + sys-fs/dmraid + sys-fs/lvm2[lvm,thin] + sys-fs/mdadm + sys-fs/multipath-tools + alpha? ( app-emulation/qemu[qemu_softmmu_targets_alpha] ) + amd64? ( app-emulation/qemu[qemu_softmmu_targets_x86_64] ) + arm? ( app-emulation/qemu[qemu_softmmu_targets_arm] ) + arm64? ( app-emulation/qemu[qemu_softmmu_targets_aarch64] ) + hppa? ( app-emulation/qemu[qemu_softmmu_targets_hppa] ) + loong? ( app-emulation/qemu[qemu_softmmu_targets_loongarch64] ) + mips? ( || ( + app-emulation/qemu[qemu_softmmu_targets_mips] + app-emulation/qemu[qemu_softmmu_targets_mips64] + app-emulation/qemu[qemu_softmmu_targets_mips64el] + ) ) + ppc? ( app-emulation/qemu[qemu_softmmu_targets_ppc] ) + ppc64? ( app-emulation/qemu[qemu_softmmu_targets_ppc64] ) + riscv? ( || ( + app-emulation/qemu[qemu_softmmu_targets_riscv32] + app-emulation/qemu[qemu_softmmu_targets_riscv64] + ) ) + sparc? ( || ( + app-emulation/qemu[qemu_softmmu_targets_sparc] + app-emulation/qemu[qemu_softmmu_targets_sparc64] + ) ) + x86? ( app-emulation/qemu[qemu_softmmu_targets_i386] ) + ) " QA_MULTILIB_PATHS="usr/lib/dracut/.*" @@ -89,14 +121,21 @@ src_configure() { } src_test() { - if [[ ${EUID} != 0 ]]; then - # Tests need root privileges, bug #298014 - ewarn "Skipping tests: Not running as root." - elif [[ ! -w /dev/kvm ]]; then - ewarn "Skipping tests: Unable to access /dev/kvm." + addwrite /dev/kvm + # Translate ARCH so run-qemu can find the correct qemu-system-ARCH + local qemu_arch + if use amd64; then + qemu_arch=x86_64 + elif use arm64; then + qemu_arch=aarch64 + elif use loong; then + qemu_arch=loongarch64 + elif use x86; then + qemu_arch=i386 else - emake -C test check + qemu_arch=$(tc-arch) fi + ARCH=${qemu_arch} emake -C test check } src_install() { diff --git a/sys-kernel/dracut/files/dracut-103-always-install-libsystemd.patch b/sys-kernel/dracut/files/dracut-103-always-install-libsystemd.patch deleted file mode 100644 index f2533e1..0000000 --- a/sys-kernel/dracut/files/dracut-103-always-install-libsystemd.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 921792f201e954de461d3b551e01b5369d666db8 Mon Sep 17 00:00:00 2001 -From: Antonio Alvarez Feijoo -Date: Tue, 10 Sep 2024 15:51:46 +0200 -Subject: [PATCH] feat(systemd): always install libsystemd libraries - ---- - modules.d/00systemd/module-setup.sh | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh -index 498cd7edd..fb8a8200b 100755 ---- a/modules.d/00systemd/module-setup.sh -+++ b/modules.d/00systemd/module-setup.sh -@@ -156,5 +156,6 @@ EOF - _arch=${DRACUT_ARCH:-$(uname -m)} - inst_libdir_file \ - {"tls/$_arch/",tls/,"$_arch/",}"libgcrypt.so*" \ -- {"tls/$_arch/",tls/,"$_arch/",}"libnss_*" -+ {"tls/$_arch/",tls/,"$_arch/",}"libnss_*" \ -+ {"tls/$_arch/",tls/,"$_arch/",}"systemd/libsystemd*.so" - } diff --git a/sys-kernel/dracut/files/dracut-103-systemd-udev-256-kmod.patch b/sys-kernel/dracut/files/dracut-103-systemd-udev-256-kmod.patch deleted file mode 100644 index 7a1fc1c..0000000 --- a/sys-kernel/dracut/files/dracut-103-systemd-udev-256-kmod.patch +++ /dev/null @@ -1,41 +0,0 @@ -From e16195f28669264227c169d45107ea95b83d8f48 Mon Sep 17 00:00:00 2001 -From: Alexander Tsoy -Date: Tue, 16 Jul 2024 08:48:54 +0300 -Subject: [PATCH] fix(systemd): move installation of libkmod to udev-rules - module - -libkmod library should be installed even if systemd module is -omitted, so move its installation to udev-rules module. ---- - modules.d/00systemd/module-setup.sh | 1 - - modules.d/95udev-rules/module-setup.sh | 6 +++++- - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh -index ce7bb520c..e4fb9a586 100755 ---- a/modules.d/00systemd/module-setup.sh -+++ b/modules.d/00systemd/module-setup.sh -@@ -171,6 +171,5 @@ EOF - _arch=${DRACUT_ARCH:-$(uname -m)} - inst_libdir_file \ - {"tls/$_arch/",tls/,"$_arch/",}"libgcrypt.so*" \ -- {"tls/$_arch/",tls/,"$_arch/",}"libkmod.so*" \ - {"tls/$_arch/",tls/,"$_arch/",}"libnss_*" - } -diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh -index d82ed5eb9..6078751f6 100755 ---- a/modules.d/95udev-rules/module-setup.sh -+++ b/modules.d/95udev-rules/module-setup.sh -@@ -93,7 +93,11 @@ install() { - "${udevdir}"/usb_id \ - "${udevdir}"/v4l_id - -- inst_libdir_file "libnss_files*" -+ # Install required libraries. -+ _arch=${DRACUT_ARCH:-$(uname -m)} -+ inst_libdir_file \ -+ {"tls/$_arch/",tls/,"$_arch/",}"libkmod.so*" \ -+ {"tls/$_arch/",tls/,"$_arch/",}"libnss_files*" - - # Install the hosts local user configurations if enabled. - if [[ $hostonly ]]; then diff --git a/sys-kernel/dracut/files/dracut-105-ensure-abs-args-for-objcopy.patch b/sys-kernel/dracut/files/dracut-105-ensure-abs-args-for-objcopy.patch new file mode 100644 index 0000000..aefd8be --- /dev/null +++ b/sys-kernel/dracut/files/dracut-105-ensure-abs-args-for-objcopy.patch @@ -0,0 +1,48 @@ +From 1579bb0c77d9e1e4599623a165c54a0dccdaf875 Mon Sep 17 00:00:00 2001 +From: Andrew Ammerlaan +Date: Thu, 31 Oct 2024 11:28:37 +0100 +Subject: [PATCH] fix(dracut.sh): ensure abs path for objcopy args + +Closes: https://github.com/dracut-ng/dracut-ng/issues/833 +Signed-off-by: Andrew Ammerlaan +--- + dracut.sh | 19 ++++++++++++++++--- + 1 file changed, 16 insertions(+), 3 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index 90927136e..8b666a1ac 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -35,6 +35,19 @@ readonly dracut_cmd=$(readlink -f "$0") + + set -o pipefail + ++# below we sometimes cd, which causes problems if we're building an UKI ++# and relative paths are passed on to us. Store the pwd before we do anything. ++pwd=$(pwd) ++path_rel_to_abs() { ++ for var in "$@"; do ++ if [[ $var == /* ]]; then ++ echo "$var" ++ else ++ echo "$pwd/$var" ++ fi ++ done ++} ++ + usage() { + [[ $sysroot_l ]] && dracutsysrootdir="$sysroot_l" + [[ $dracutbasedir ]] || dracutbasedir="$dracutsysrootdir"/usr/lib/dracut +@@ -1095,9 +1108,9 @@ drivers_dir="${drivers_dir%"${drivers_dir##*[!/]}"}" + [[ $reproducible_l ]] && reproducible="$reproducible_l" + [[ $loginstall_l ]] && loginstall="$loginstall_l" + [[ $uefi_l ]] && uefi=$uefi_l +-[[ $uefi_stub_l ]] && uefi_stub="$uefi_stub_l" +-[[ $uefi_splash_image_l ]] && uefi_splash_image="$uefi_splash_image_l" +-[[ $kernel_image_l ]] && kernel_image="$kernel_image_l" ++[[ $uefi_stub_l ]] && uefi_stub=$(path_rel_to_abs "$uefi_stub_l") ++[[ $uefi_splash_image_l ]] && uefi_splash_image=$(path_rel_to_abs "$uefi_splash_image_l") ++[[ $kernel_image_l ]] && kernel_image=$(path_rel_to_abs "$kernel_image_l") + [[ $sbat_l ]] && sbat="$sbat_l" + [[ $machine_id_l ]] && machine_id="$machine_id_l" +