[sys-kernel/dracut] sync

This commit is contained in:
Robert Förster 2024-11-06 15:35:00 +01:00
parent 403c700a49
commit 2d3920dd89
6 changed files with 148 additions and 87 deletions

View File

@ -1 +1 @@
DIST dracut-103.tar.gz 567713 BLAKE2B 7781c0b7fc83a2c0c461f6398687e053226b489fb5405b3132b30d8e7a4f3cea2bb73aa0fe6e4c4b27187d6270ba623f403916ec38025a912930ae347a7e25ce SHA512 ba0dbefbcbecb09c44ce240664bc4f4ee25dfb8be7bc060028ae3b1ccf7d70410491c105e64fcef3d6f44d2794cb6162bcea9404125906be46bf3dff098e0277
DIST dracut-105.tar.gz 575857 BLAKE2B 93463e3d1649e6e68accbb4f2480af471e851a54185771cec01e8b7112f5c4158901747bdc1180e08e270d3b3b21afb4d510dae09ca6ef00e309300bede188d1 SHA512 1608fb31d6a53905ea25a279586573db5fc7e084b4f6ff06e52065cbcb4ff503c2d51c0a282345844228232b1b590382b482a224183e0c4ee16c9c9e6932b275

View File

@ -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() {

View File

@ -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() {

View File

@ -1,21 +0,0 @@
From 921792f201e954de461d3b551e01b5369d666db8 Mon Sep 17 00:00:00 2001
From: Antonio Alvarez Feijoo <antonio.feijoo@suse.com>
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"
}

View File

@ -1,41 +0,0 @@
From e16195f28669264227c169d45107ea95b83d8f48 Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
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

View File

@ -0,0 +1,48 @@
From 1579bb0c77d9e1e4599623a165c54a0dccdaf875 Mon Sep 17 00:00:00 2001
From: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
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 <andrewammerlaan@gentoo.org>
---
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"