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" \

Reply via email to