commit: d556d350c796583cb941d2152caec5f05a5ac45d
Author: Nowa Ammerlaan <nowa <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 4 18:40:40 2025 +0000
Commit: Nowa Ammerlaan <nowa <AT> gentoo <DOT> org>
CommitDate: Mon Aug 4 18:41:02 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d556d350
sys-kernel/dracut: add 108
Signed-off-by: Nowa Ammerlaan <nowa <AT> gentoo.org>
sys-kernel/dracut/Manifest | 1 +
.../{dracut-9999.ebuild => dracut-108.ebuild} | 16 +++-
sys-kernel/dracut/dracut-9999.ebuild | 9 ++-
.../files/dracut-108-acct-user-group-gentoo.patch | 13 ++++
.../dracut-108-respect-objcopy-and-objdump.patch | 89 ++++++++++++++++++++++
5 files changed, 125 insertions(+), 3 deletions(-)
diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest
index 41f1fa126376..6443a88d1a1a 100644
--- a/sys-kernel/dracut/Manifest
+++ b/sys-kernel/dracut/Manifest
@@ -2,3 +2,4 @@ DIST dracut-060_pre20240104.tar.gz 499965 BLAKE2B
935e0e5da348426d69c6dab6b91078
DIST dracut-103.tar.gz 567713 BLAKE2B
7781c0b7fc83a2c0c461f6398687e053226b489fb5405b3132b30d8e7a4f3cea2bb73aa0fe6e4c4b27187d6270ba623f403916ec38025a912930ae347a7e25ce
SHA512
ba0dbefbcbecb09c44ce240664bc4f4ee25dfb8be7bc060028ae3b1ccf7d70410491c105e64fcef3d6f44d2794cb6162bcea9404125906be46bf3dff098e0277
DIST dracut-106.tar.gz 527743 BLAKE2B
837621da329500b88b0c81a724990702a9f4e816a4818c26622b2bc5e3885c908f0bbba682a262f967d9a08a912cfd63a33270143560a30e3d067dc4217c5262
SHA512
ab17f9440129e2db7c2902115459309132ce7f7b29bbb3172002b7a8ea8ab54799d62d89fbf3f84581a5c14196f6754d33669b583b9d758ab4686a3443a3c4ad
DIST dracut-107.tar.gz 536435 BLAKE2B
8ff85073853f874b31b659b73abfafe27bb0da59c8e77039bd1739d266dffe26616f6c96eceb2cb36319801d0fb3df53ea4153bf426f081e7e5b73c11522018b
SHA512
3f8e79fbfd40c0d384e856cbabe9257c5cbafbb4a3fe4b56da27832c36844dbbf9c59f12155d165d9343bc7341eda2b90c215148eb46ae873c219fbc93992944
+DIST dracut-108.tar.gz 552724 BLAKE2B
fa5efd4039be8d2d30564a0768d2dec8c3d72b3721391d3a02bde8445cd7a5766d4b119594ebbca86dbd59bd71b64353febaaa7e2257f02d0075333dc29e9047
SHA512
ed06844b65003c1f75373309dbdc10a3036958f413b05b608510142fa78bb34dd9fb1e622242b02b2e9e4063bfa916fd755f5131a77fb3249f77d3f08eca2283
diff --git a/sys-kernel/dracut/dracut-9999.ebuild
b/sys-kernel/dracut/dracut-108.ebuild
similarity index 94%
copy from sys-kernel/dracut/dracut-9999.ebuild
copy to sys-kernel/dracut/dracut-108.ebuild
index 624115e9cc84..db530c8eb129 100644
--- a/sys-kernel/dracut/dracut-9999.ebuild
+++ b/sys-kernel/dracut/dracut-108.ebuild
@@ -54,7 +54,10 @@ DEPEND="
"
BDEPEND="
- app-text/asciidoc
+ || (
+ dev-ruby/asciidoctor
+ app-text/asciidoc
+ )
app-text/docbook-xml-dtd:4.5
>=app-text/docbook-xsl-stylesheets-1.75.2
>=dev-libs/libxslt-1.1.26
@@ -99,7 +102,9 @@ QA_MULTILIB_PATHS="usr/lib/dracut/.*"
PATCHES=(
"${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
# Gentoo specific acct-user and acct-group conf adjustments
- "${FILESDIR}"/${PN}-106-acct-user-group-gentoo.patch
+ "${FILESDIR}"/${PN}-108-acct-user-group-gentoo.patch
+ # https://github.com/dracut-ng/dracut-ng/pull/1447
+ "${FILESDIR}"/${PN}-108-respect-objcopy-and-objdump.patch
)
pkg_setup() {
@@ -115,6 +120,10 @@ src_configure() {
--disable-dracut-cpio
)
+ if ! has_version dev-ruby/asciidoctor; then
+ myconf+=( --disable-asciidoctor )
+ fi
+
# this emulates what the build system would be doing without us
append-cflags -D_FILE_OFFSET_BITS=64
@@ -165,6 +174,9 @@ src_install() {
exeinto /usr/lib/dracut
doexe "src/dracut-cpio/$(cargo_target_dir)/dracut-cpio"
fi
+
+ # Use our own from sys-kernel/installkernel[dracut]
+ rm -r "${ED}/usr/lib/kernel" || die
}
pkg_preinst() {
diff --git a/sys-kernel/dracut/dracut-9999.ebuild
b/sys-kernel/dracut/dracut-9999.ebuild
index 624115e9cc84..95c80b5dac16 100644
--- a/sys-kernel/dracut/dracut-9999.ebuild
+++ b/sys-kernel/dracut/dracut-9999.ebuild
@@ -54,7 +54,10 @@ DEPEND="
"
BDEPEND="
- app-text/asciidoc
+ || (
+ dev-ruby/asciidoctor
+ app-text/asciidoc
+ )
app-text/docbook-xml-dtd:4.5
>=app-text/docbook-xsl-stylesheets-1.75.2
>=dev-libs/libxslt-1.1.26
@@ -115,6 +118,10 @@ src_configure() {
--disable-dracut-cpio
)
+ if ! has_version dev-ruby/asciidoctor; then
+ myconf+=( --disable-asciidoctor )
+ fi
+
# this emulates what the build system would be doing without us
append-cflags -D_FILE_OFFSET_BITS=64
diff --git a/sys-kernel/dracut/files/dracut-108-acct-user-group-gentoo.patch
b/sys-kernel/dracut/files/dracut-108-acct-user-group-gentoo.patch
new file mode 100644
index 000000000000..52c15205c630
--- /dev/null
+++ b/sys-kernel/dracut/files/dracut-108-acct-user-group-gentoo.patch
@@ -0,0 +1,13 @@
+diff --git a/modules.d/73tpm2-tss/module-setup.sh
b/modules.d/73tpm2-tss/module-setup.sh
+index 4441f5528..4b5654d56 100755
+--- a/modules.d/73tpm2-tss/module-setup.sh
++++ b/modules.d/73tpm2-tss/module-setup.sh
+@@ -30,7 +30,7 @@ installkernel() {
+
+ # Install the required file(s) and directories for the module in the
initramfs.
+ install() {
+- inst_sysusers tpm2-tss.conf
++ inst_sysusers tss.conf
+
+ inst_multiple -o \
+ "$tmpfilesdir"/tpm2-tss-fapi.conf \
diff --git
a/sys-kernel/dracut/files/dracut-108-respect-objcopy-and-objdump.patch
b/sys-kernel/dracut/files/dracut-108-respect-objcopy-and-objdump.patch
new file mode 100644
index 000000000000..5ab73d1a8e88
--- /dev/null
+++ b/sys-kernel/dracut/files/dracut-108-respect-objcopy-and-objdump.patch
@@ -0,0 +1,89 @@
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index 84a34fafd..617ccf91c 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -1042,7 +1042,7 @@ get_dev_module() {
+ pe_file_format() {
+ if [[ $# -eq 1 ]]; then
+ local magic
+- magic=$(objdump -p "$1" \
++ magic=$("${OBJDUMP:-objdump}" -p "$1" \
+ | awk '{if ($1 == "Magic"){print $2}}')
+ # 010b (PE32), 020b (PE32+)
+ [[ $magic == "020b" || $magic == "010b" ]] && return 0
+@@ -1055,7 +1055,7 @@ pe_get_header_data() {
+ local data_header
+ [[ $# -ne "2" ]] && return 1
+ [[ $(pe_file_format "$1") -eq 1 ]] && return 1
+- data_header=$(objdump -p "$1" \
++ data_header=$("${OBJDUMP:-objdump}" -p "$1" \
+ | awk -v data="$2" '{if ($1 == data){print $2}}')
+ echo "$data_header"
+ }
+diff --git a/dracut.sh b/dracut.sh
+index 45373efb7..b53d72924 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -1649,7 +1649,7 @@ if [[ ! $print_cmdline ]]; then
+ fi
+
+ if [[ $uefi == yes ]]; then
+- if ! command -v objcopy &> /dev/null; then
++ if ! command -v "${OBJCOPY:-objcopy}" &> /dev/null; then
+ dfatal "Need 'objcopy' to create a UEFI executable"
+ exit 1
+ fi
+@@ -2638,7 +2638,7 @@ clean_sbat_string() {
+ get_sbat_string() {
+ local inp=$1
+ local out=$uefi_outdir/$2
+- objcopy -O binary --only-section=.sbat "$inp" "$out"
++ "${OBJCOPY:-objcopy}" -O binary --only-section=.sbat "$inp" "$out"
+ clean_sbat_string "$out"
+ }
+
+@@ -2656,7 +2656,7 @@ if [[ $uefi == yes ]]; then
+ fi
+ fi
+
+- offs=$(($(objdump -h "$uefi_stub" 2> /dev/null | awk 'NF==7 {size=$3;
++ offs=$(($("${OBJDUMP:-objdump}" -h "$uefi_stub" 2> /dev/null | awk 'NF==7
{size=$3;
+ offset=$4} END {print "16#"size" + 16#"offset}')))
+ if [[ $offs -eq 0 ]]; then
+ dfatal "Failed to get the size of $uefi_stub to create UEFI image
file"
+@@ -2719,7 +2719,7 @@ if [[ $uefi == yes ]]; then
+
+ tmp_uefi_stub=$uefi_outdir/elf.stub
+ cp "$uefi_stub" "$tmp_uefi_stub"
+- objcopy --remove-section .sbat "$tmp_uefi_stub" &> /dev/null
++ "${OBJCOPY:-objcopy}" --remove-section .sbat "$tmp_uefi_stub" &> /dev/null
+
+ if command -v ukify &> /dev/null; then
+ dinfo "*** Using ukify to create UKI ***"
+@@ -2749,7 +2749,7 @@ if [[ $uefi == yes ]]; then
+ exit 1
+ fi
+ else
+- if objcopy \
++ if "${OBJCOPY:-objcopy}" \
+ ${SOURCE_DATE_EPOCH:+--enable-deterministic-archives
--preserve-dates} \
+ ${uefi_osrelease:+--add-section .osrel="$uefi_osrelease"
--change-section-vma .osrel=$(printf 0x%x "$uefi_osrelease_offs")} \
+ ${uefi_cmdline:+--add-section .cmdline="$uefi_cmdline"
--change-section-vma .cmdline=$(printf 0x%x "$uefi_cmdline_offs")} \
+diff --git a/lsinitrd.sh b/lsinitrd.sh
+index 86b2c5a67..fd0633dfa 100755
+--- a/lsinitrd.sh
++++ b/lsinitrd.sh
+@@ -358,11 +358,11 @@ unpack_files() {
+
+ read -r -N 2 bin < "$image"
+ if [ "$bin" = "MZ" ]; then
+- command -v objcopy > /dev/null || {
++ command -v "${OBJCOPY:-objcopy}" > /dev/null || {
+ echo "Need 'objcopy' to unpack an UEFI executable."
+ exit 1
+ }
+- objcopy \
++ "${OBJCOPY:-objcopy}" \
+ --dump-section .linux="$TMPDIR/vmlinuz" \
+ --dump-section .initrd="$TMPDIR/initrd.img" \
+ --dump-section .cmdline="$TMPDIR/cmdline.txt" \