sys-kernel/dracut: remove unneeded files

Signed-off-by: Adrian Vladu <avladu@cloudbasesolutions.com>
This commit is contained in:
Adrian Vladu 2024-02-15 15:02:57 +00:00
parent 1717ec951e
commit fd7c09fe08
10 changed files with 0 additions and 776 deletions

View File

@ -1,3 +1 @@
DIST dracut-059.tar.gz 486487 BLAKE2B 86bbe18875cd3507e187b724cab212dc82e1daca7cedf79aeef13c34601adfff72bf2c0ba4c652e715b43c9a16f7be6a4a2b29dc75bef014640e1ec07c8d455b SHA512 196bc8bf18703c72bffb51a7e0493719c58173ad2da7d121eb42f9a8de47e953af36d109214dc4a10b2dc2d3bd19e844f7f51c2bdec087e064ea11f75124032d
DIST dracut-060_pre20231030.tar.gz 498954 BLAKE2B ce47f06e1304f732cbad66046c70cbcb03d33d69b9c3e87a4e2e2d30fa837b3b36949462cec9b06125e824ad82db45bd7516c22a1c84ec6884790b37e9c65ab1 SHA512 0cd2fefcd624758063c77836989260a3d5b0d533004c2395124c8200c31602f5d7d0b8c9491de37ce4afb2c5009b2cf944ddd3bb9e0e11120d84176cb1e7423c
DIST dracut-060_pre20240104.tar.gz 499965 BLAKE2B 935e0e5da348426d69c6dab6b91078f126cadd9ffc6a32378e79cd93b1dbadff35899efc3786fc12bf5a6741843d3637b0c98cc71fe4a96a8caf053ae887bac3 SHA512 f7818265f082e9c05ebb81a91b67fb9b1d3bf8b2433b7e6ea9be6bee43d28cd1ee48577648e1d9b3729c17608b028d294c13bf5d4db4cc5a18e3b007eb2cd67e

View File

@ -1,164 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit bash-completion-r1 optfeature systemd toolchain-funcs
if [[ ${PV} == 9999 ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/dracutdevs/dracut"
else
if [[ "${PV}" != *_rc* ]]; then
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
fi
SRC_URI="https://github.com/dracutdevs/dracut/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
fi
DESCRIPTION="Generic initramfs generation tool"
HOMEPAGE="https://github.com/dracutdevs/dracut/wiki"
LICENSE="GPL-2"
SLOT="0"
IUSE="selinux test"
RESTRICT="!test? ( test )"
RDEPEND="
app-alternatives/cpio
>=app-shells/bash-4.0:0
sys-apps/coreutils[xattr(-)]
>=sys-apps/kmod-23[tools]
|| (
>=sys-apps/sysvinit-2.87-r3
sys-apps/openrc[sysv-utils(-),selinux?]
sys-apps/systemd[sysv-utils]
sys-apps/s6-linux-init[sysv-utils(-)]
)
>=sys-apps/util-linux-2.21
virtual/pkgconfig
virtual/udev
elibc_musl? ( sys-libs/fts-standalone )
selinux? (
sec-policy/selinux-dracut
sys-libs/libselinux
sys-libs/libsepol
)
"
DEPEND="
>=sys-apps/kmod-23
elibc_musl? ( sys-libs/fts-standalone )
"
BDEPEND="
app-text/asciidoc
app-text/docbook-xml-dtd:4.5
>=app-text/docbook-xsl-stylesheets-1.75.2
>=dev-libs/libxslt-1.1.26
virtual/pkgconfig
"
QA_MULTILIB_PATHS="usr/lib/dracut/.*"
PATCHES=(
"${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
"${FILESDIR}"/gentoo-network-r1.patch
"${FILESDIR}"/059-kernel-install-uki.patch
"${FILESDIR}"/059-uefi-split-usr.patch
"${FILESDIR}"/059-uki-systemd-254.patch
"${FILESDIR}"/059-gawk.patch
"${FILESDIR}"/dracut-059-dmsquash-live.patch
"${FILESDIR}"/059-systemd-pcrphase.patch
"${FILESDIR}"/059-systemd-executor.patch
"${FILESDIR}"/dracut-059-install-new-systemd-hibernate-resume.service.patch
)
src_configure() {
local myconf=(
--prefix="${EPREFIX}/usr"
--sysconfdir="${EPREFIX}/etc"
--bashcompletiondir="$(get_bashcompdir)"
--systemdsystemunitdir="$(systemd_get_systemunitdir)"
)
tc-export CC PKG_CONFIG
echo ./configure "${myconf[@]}"
./configure "${myconf[@]}" || die
if [[ ${PV} != 9999 && ! -f dracut-version.sh ]] ; then
# Source tarball from github doesn't include this file
echo "DRACUT_VERSION=${PV}" > dracut-version.sh || die
fi
}
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."
else
emake -C test check
fi
}
src_install() {
local DOCS=(
AUTHORS
NEWS.md
README.md
docs/README.cross
docs/README.generic
docs/README.kernel
docs/SECURITY.md
)
default
docinto html
dodoc dracut.html
}
pkg_postinst() {
optfeature "Networking support" net-misc/networkmanager
optfeature "Legacy networking support" net-misc/curl "net-misc/dhcp[client]" \
sys-apps/iproute2 "net-misc/iputils[arping]"
optfeature "Scan for Btrfs on block devices" sys-fs/btrfs-progs
optfeature "Load kernel modules and drop this privilege for real init" \
sys-libs/libcap
optfeature "Support CIFS" net-fs/cifs-utils
optfeature "Decrypt devices encrypted with cryptsetup/LUKS" \
"sys-fs/cryptsetup[-static-libs]"
optfeature "Support for GPG-encrypted keys for crypt module" \
app-crypt/gnupg
optfeature \
"Allows use of dash instead of default bash (on your own risk)" \
app-shells/dash
optfeature \
"Allows use of busybox instead of default bash (on your own risk)" \
sys-apps/busybox
optfeature "Support iSCSI" sys-block/open-iscsi
optfeature "Support Logical Volume Manager" sys-fs/lvm2[lvm]
optfeature "Support MD devices, also known as software RAID devices" \
sys-fs/mdadm sys-fs/dmraid
optfeature "Support Device Mapper multipathing" sys-fs/multipath-tools
optfeature "Plymouth boot splash" '>=sys-boot/plymouth-0.8.5-r5'
optfeature "Support network block devices" sys-block/nbd
optfeature "Support NFS" net-fs/nfs-utils net-nds/rpcbind
optfeature \
"Install ssh and scp along with config files and specified keys" \
virtual/openssh
optfeature "Enable logging with rsyslog" app-admin/rsyslog
optfeature "Support Squashfs" sys-fs/squashfs-tools
optfeature "Support TPM 2.0 TSS" app-crypt/tpm2-tools
optfeature "Support Bluetooth (experimental)" net-wireless/bluez
optfeature "Support BIOS-given device names" sys-apps/biosdevname
optfeature "Support network NVMe" sys-apps/nvme-cli
optfeature \
"Enable rngd service to help generating entropy early during boot" \
sys-apps/rng-tools
optfeature "automatically generating an initramfs on each kernel installation" \
"sys-kernel/installkernel[dracut]"
}

View File

@ -1,157 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit bash-completion-r1 edo optfeature systemd toolchain-funcs
if [[ ${PV} == 9999 ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/dracutdevs/dracut"
else
if [[ ${PV} == *_p* ]] ; then
EGIT_COMMIT="856e7acdb1462803c2517c8d64afb2e34c73c735"
SRC_URI="https://github.com/dracutdevs/dracut/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}"/${PN}-${EGIT_COMMIT}
else
SRC_URI="https://github.com/dracutdevs/dracut/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
fi
fi
DESCRIPTION="Generic initramfs generation tool"
HOMEPAGE="https://github.com/dracutdevs/dracut/wiki"
LICENSE="GPL-2"
SLOT="0"
if [[ "${PV}" != *_rc* ]]; then
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
IUSE="selinux test"
RESTRICT="!test? ( test )"
RDEPEND="
app-alternatives/cpio
>=app-shells/bash-4.0:0
sys-apps/coreutils[xattr(-)]
>=sys-apps/kmod-23[tools]
|| (
>=sys-apps/sysvinit-2.87-r3
sys-apps/openrc[sysv-utils(-),selinux?]
sys-apps/systemd[sysv-utils]
sys-apps/s6-linux-init[sysv-utils(-)]
)
>=sys-apps/util-linux-2.21
virtual/pkgconfig
virtual/udev
elibc_musl? ( sys-libs/fts-standalone )
selinux? (
sec-policy/selinux-dracut
sys-libs/libselinux
sys-libs/libsepol
)
"
DEPEND="
>=sys-apps/kmod-23
elibc_musl? ( sys-libs/fts-standalone )
"
BDEPEND="
app-text/asciidoc
app-text/docbook-xml-dtd:4.5
>=app-text/docbook-xsl-stylesheets-1.75.2
>=dev-libs/libxslt-1.1.26
virtual/pkgconfig
"
QA_MULTILIB_PATHS="usr/lib/dracut/.*"
PATCHES=(
"${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
"${FILESDIR}"/dracut-060-fix-resume-hostonly.patch
"${FILESDIR}"/dracut-060-systemd-255.patch
"${FILESDIR}"/dracut-059-install-new-systemd-hibernate-resume.service.patch
)
src_configure() {
local myconf=(
--prefix="${EPREFIX}/usr"
--sysconfdir="${EPREFIX}/etc"
--bashcompletiondir="$(get_bashcompdir)"
--systemdsystemunitdir="$(systemd_get_systemunitdir)"
)
tc-export CC PKG_CONFIG
edo ./configure "${myconf[@]}"
}
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."
else
emake -C test check
fi
}
src_install() {
local DOCS=(
AUTHORS
NEWS.md
README.md
docs/README.cross
docs/README.generic
docs/README.kernel
docs/SECURITY.md
)
default
docinto html
dodoc dracut.html
}
pkg_postinst() {
optfeature "Networking support" net-misc/networkmanager
optfeature "Legacy networking support" net-misc/curl "net-misc/dhcp[client]" \
sys-apps/iproute2 "net-misc/iputils[arping]"
optfeature "Scan for Btrfs on block devices" sys-fs/btrfs-progs
optfeature "Load kernel modules and drop this privilege for real init" \
sys-libs/libcap
optfeature "Support CIFS" net-fs/cifs-utils
optfeature "Decrypt devices encrypted with cryptsetup/LUKS" \
"sys-fs/cryptsetup[-static-libs]"
optfeature "Support for GPG-encrypted keys for crypt module" \
app-crypt/gnupg
optfeature \
"Allows use of dash instead of default bash (on your own risk)" \
app-shells/dash
optfeature \
"Allows use of busybox instead of default bash (on your own risk)" \
sys-apps/busybox
optfeature "Support iSCSI" sys-block/open-iscsi
optfeature "Support Logical Volume Manager" sys-fs/lvm2[lvm]
optfeature "Support MD devices, also known as software RAID devices" \
sys-fs/mdadm sys-fs/dmraid
optfeature "Support Device Mapper multipathing" sys-fs/multipath-tools
optfeature "Plymouth boot splash" '>=sys-boot/plymouth-0.8.5-r5'
optfeature "Support network block devices" sys-block/nbd
optfeature "Support NFS" net-fs/nfs-utils net-nds/rpcbind
optfeature \
"Install ssh and scp along with config files and specified keys" \
virtual/openssh
optfeature "Enable logging with rsyslog" app-admin/rsyslog
optfeature "Support Squashfs" sys-fs/squashfs-tools
optfeature "Support TPM 2.0 TSS" app-crypt/tpm2-tools
optfeature "Support Bluetooth (experimental)" net-wireless/bluez
optfeature "Support BIOS-given device names" sys-apps/biosdevname
optfeature "Support network NVMe" sys-apps/nvme-cli app-misc/jq
optfeature \
"Enable rngd service to help generating entropy early during boot" \
sys-apps/rng-tools
optfeature "automatically generating an initramfs on each kernel installation" \
"sys-kernel/installkernel[dracut]"
}

View File

@ -1,35 +0,0 @@
https://github.com/dracutdevs/dracut/pull/2436
From 77214c229dadd1441f0d6243221ceed0708cbfcf Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Thu, 20 Jul 2023 04:36:01 +0100
Subject: [PATCH] fix(dracut.sh): use gawk for strtonum
strtonum is a gawkism and is not available in all awks, e.g. mawk. Use gawk
to avoid failure.
Fixes: f32e95bcadbc5158843530407adc1e7b700561b1
Signed-off-by: Sam James <sam@gentoo.org>
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -1047,7 +1047,7 @@ pe_file_format() {
if [[ $# -eq 1 ]]; then
local magic
magic=$(objdump -p "$1" \
- | awk '{if ($1 == "Magic"){print strtonum("0x"$2)}}')
+ | gawk '{if ($1 == "Magic"){print strtonum("0x"$2)}}')
magic=$(printf "0x%x" "$magic")
# 0x10b (PE32), 0x20b (PE32+)
[[ $magic == 0x20b || $magic == 0x10b ]] && return 0
--- a/dracut.sh
+++ b/dracut.sh
@@ -2467,7 +2467,7 @@ if [[ $uefi == yes ]]; then
fi
fi
- offs=$(objdump -h "$uefi_stub" 2> /dev/null | awk 'NF==7 {size=strtonum("0x"$3);\
+ offs=$(objdump -h "$uefi_stub" 2> /dev/null | gawk 'NF==7 {size=strtonum("0x"$3);\
offset=strtonum("0x"$4)} END {print size + offset}')
if [[ $offs -eq 0 ]]; then
dfatal "Failed to get the size of $uefi_stub to create UEFI image file"

View File

@ -1,150 +0,0 @@
Combination of:
- https://github.com/dracutdevs/dracut/pull/2405
- https://github.com/dracutdevs/dracut/pull/2495
- https://github.com/dracutdevs/dracut/pull/2521
Fixes installing manually configured kernel in uki layout and
allows dropping workaround from dist-kernel-utils.eclass
Provides compatibility with systemd-254's ukify plugin
--- a/dracut.sh
+++ b/dracut.sh
@@ -2594,6 +2594,9 @@ freeze_ok_for_fstype() {
zfs)
return 1
;;
+ tmpfs)
+ return 1
+ ;;
btrfs)
freeze_ok_for_btrfs "$outfile"
;;
--- a/install.d/50-dracut.install 2023-09-21 10:19:00.843827541 +0200
+++ b/install.d/50-dracut.install 2023-07-20 16:53:51.000000000 +0200
@@ -11,27 +11,69 @@
exit 0
fi
-if [[ -d "$BOOT_DIR_ABS" ]]; then
- INITRD="initrd"
+# Do not attempt to create initramfs if the supplied image is already a UKI
+if [[ "$KERNEL_INSTALL_IMAGE_TYPE" = "uki" ]]; then
+ exit 0
+fi
+
+# Mismatching the install layout and the --uefi/--no-uefi opts just creates a mess.
+if [[ $KERNEL_INSTALL_LAYOUT == "uki" && -n $KERNEL_INSTALL_STAGING_AREA ]]; then
+ BOOT_DIR_ABS="$KERNEL_INSTALL_STAGING_AREA"
+ if [[ -z $KERNEL_INSTALL_UKI_GENERATOR || $KERNEL_INSTALL_UKI_GENERATOR == "dracut" ]]; then
+ # No uki generator preference set or we have been chosen
+ IMAGE="uki.efi"
+ UEFI_OPTS="--uefi"
+ elif [[ -z $KERNEL_INSTALL_INITRD_GENERATOR || $KERNEL_INSTALL_INITRD_GENERATOR == "dracut" ]]; then
+ # We aren't the uki generator, but we have been requested to make the initrd
+ IMAGE="initrd"
+ UEFI_OPTS="--no-uefi"
+ else
+ exit 0
+ fi
+elif [[ $KERNEL_INSTALL_LAYOUT == "bls" && -n $KERNEL_INSTALL_STAGING_AREA ]]; then
+ BOOT_DIR_ABS="$KERNEL_INSTALL_STAGING_AREA"
+ if [[ -z $KERNEL_INSTALL_INITRD_GENERATOR || $KERNEL_INSTALL_INITRD_GENERATOR == "dracut" ]]; then
+ IMAGE="initrd"
+ UEFI_OPTS="--no-uefi"
+ else
+ exit 0
+ fi
else
- BOOT_DIR_ABS="/boot"
- INITRD="initramfs-${KERNEL_VERSION}.img"
+ # No layout information, use users --uefi/--no-uefi preference
+ UEFI_OPTS=""
+ if [[ -d $BOOT_DIR_ABS ]]; then
+ IMAGE="initrd"
+ else
+ BOOT_DIR_ABS="/boot"
+ IMAGE="initramfs-${KERNEL_VERSION}.img"
+ fi
fi
ret=0
+
case "$COMMAND" in
add)
- INITRD_IMAGE_PREGENERATED=${KERNEL_IMAGE%/*}/initrd
- if [[ -f ${INITRD_IMAGE_PREGENERATED} ]]; then
- # we found an initrd at the same place as the kernel
+ if [[ $IMAGE == "uki.efi" ]]; then
+ IMAGE_PREGENERATED=${KERNEL_IMAGE%/*}/uki.efi
+ else
+ IMAGE_PREGENERATED=${KERNEL_IMAGE%/*}/initrd
+ fi
+ if [[ -f ${IMAGE_PREGENERATED} ]]; then
+ # we found an initrd or uki.efi at the same place as the kernel
# use this and don't generate a new one
- cp --reflink=auto "$INITRD_IMAGE_PREGENERATED" "$BOOT_DIR_ABS/$INITRD" \
- && chown root:root "$BOOT_DIR_ABS/$INITRD" \
- && chmod 0600 "$BOOT_DIR_ABS/$INITRD" \
+ [[ $KERNEL_INSTALL_VERBOSE == 1 ]] && echo \
+ "There is an ${IMAGE} image at the same place as the kernel, skipping generating a new one"
+ cp --reflink=auto "$IMAGE_PREGENERATED" "$BOOT_DIR_ABS/$IMAGE" \
+ && chown root:root "$BOOT_DIR_ABS/$IMAGE" \
+ && chmod 0600 "$BOOT_DIR_ABS/$IMAGE" \
&& exit 0
fi
- if [[ -f /etc/kernel/cmdline ]]; then
+ if [ -n "$KERNEL_INSTALL_CONF_ROOT" ]; then
+ if [ -f "$KERNEL_INSTALL_CONF_ROOT/cmdline" ]; then
+ read -r -d '' -a BOOT_OPTIONS < "$KERNEL_INSTALL_CONF_ROOT/cmdline"
+ fi
+ elif [[ -f /etc/kernel/cmdline ]]; then
read -r -d '' -a BOOT_OPTIONS < /etc/kernel/cmdline
elif [[ -f /usr/lib/kernel/cmdline ]]; then
read -r -d '' -a BOOT_OPTIONS < /usr/lib/kernel/cmdline
@@ -40,14 +82,14 @@
read -r -d '' -a line < /proc/cmdline
for i in "${line[@]}"; do
- [[ "${i#initrd=*}" != "$i" ]] && continue
+ [[ ${i#initrd=*} != "$i" ]] && continue
BOOT_OPTIONS+=("$i")
done
fi
unset noimageifnotneeded
- for ((i=0; i < "${#BOOT_OPTIONS[@]}"; i++)); do
+ for ((i = 0; i < "${#BOOT_OPTIONS[@]}"; i++)); do
# shellcheck disable=SC1001
if [[ ${BOOT_OPTIONS[$i]} == root\=PARTUUID\=* ]]; then
noimageifnotneeded="yes"
@@ -55,16 +97,21 @@
fi
done
+ # shellcheck disable=SC2046
dracut -f \
${noimageifnotneeded:+--noimageifnotneeded} \
- $([[ "$KERNEL_INSTALL_VERBOSE" == 1 ]] && echo --verbose) \
- "$BOOT_DIR_ABS/$INITRD" \
- "$KERNEL_VERSION"
+ $([[ $KERNEL_INSTALL_VERBOSE == 1 ]] && echo --verbose) \
+ $([[ -n $KERNEL_IMAGE ]] && echo --kernel-image "$KERNEL_IMAGE") \
+ "$UEFI_OPTS" \
+ --kver "$KERNEL_VERSION" \
+ "$BOOT_DIR_ABS/$IMAGE"
ret=$?
- ;;
+ ;;
+
remove)
- rm -f -- "$BOOT_DIR_ABS/$INITRD"
+ rm -f -- "$BOOT_DIR_ABS/$IMAGE"
ret=$?
- ;;
+ ;;
esac
+
exit $ret

View File

@ -1,31 +0,0 @@
From bee1c4824a8cd47ce6c01892a548bdc07b1fa678 Mon Sep 17 00:00:00 2001
From: Frantisek Sumsal <frantisek@sumsal.cz>
Date: Sat, 14 Oct 2023 23:45:57 +0200
Subject: [PATCH] feat(systemd): install systemd-executor
In [0] systemd gained a new binary - systemd-executor - that's used to
spawn processes forked off systemd. Let's copy it into the initrd if
it's available.
[0] https://github.com/systemd/systemd/pull/27890
Signed-off-by: Brian Harring <ferringb@gmail.com>
---
modules.d/00systemd/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
index 554c25a08..9a13a1dbb 100755
--- a/modules.d/00systemd/module-setup.sh
+++ b/modules.d/00systemd/module-setup.sh
@@ -34,6 +34,7 @@ install() {
"$systemdutildir"/systemd \
"$systemdutildir"/systemd-coredump \
"$systemdutildir"/systemd-cgroups-agent \
+ "$systemdutildir"/systemd-executor \
"$systemdutildir"/systemd-shutdown \
"$systemdutildir"/systemd-reply-password \
"$systemdutildir"/systemd-fsck \
--
2.41.0

View File

@ -1,48 +0,0 @@
https://github.com/dracutdevs/dracut/pull/2365
From 3462e0ac6f3562a5247bbeda2dc41eaf4e4ebf5e Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Fri, 26 May 2023 15:56:45 -0400
Subject: [PATCH] Fix path to UEFI stub on split-usr systems
systemd always installs the UEFI stub in ${prefix}/lib/systemd/boot/efi.
On split-usr systems, systemdutildir is ${rootprefix}/lib/systemd, which
makes dracut look in the wrong place.
Instead, grab 'prefix' from systemd.pc and store it in 'systemd_prefix'.
Bug: https://bugs.gentoo.org/765208
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
dracut.sh | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index bbb34697..52a83061 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1389,6 +1389,11 @@ esac
abs_outfile=$(readlink -f "$outfile") && outfile="$abs_outfile"
+[[ -n $systemd_prefix ]] \
+ || systemd_prefix=$(pkg-config systemd --variable=prefix 2> /dev/null)
+
+[[ -n $systemd_prefix ]] || systemd_prefix=/usr
+
[[ -d $dracutsysrootdir$systemdutildir ]] \
|| systemdutildir=$(pkg-config systemd --variable=systemdutildir 2> /dev/null)
@@ -1467,7 +1472,7 @@ if [[ ! $print_cmdline ]]; then
esac
if ! [[ -s $uefi_stub ]]; then
- uefi_stub="$dracutsysrootdir${systemdutildir}/boot/efi/linux${EFI_MACHINE_TYPE_NAME}.efi.stub"
+ uefi_stub="$dracutsysrootdir${systemd_prefix}/lib/systemd/boot/efi/linux${EFI_MACHINE_TYPE_NAME}.efi.stub"
fi
if ! [[ -s $uefi_stub ]]; then
--
2.40.1

View File

@ -1,134 +0,0 @@
https://github.com/dracutdevs/dracut/issues/2431
https://github.com/dracutdevs/dracut/commit/f32e95bcadbc5158843530407adc1e7b700561b1
From f32e95bcadbc5158843530407adc1e7b700561b1 Mon Sep 17 00:00:00 2001
From: Valentin Lefebvre <valentin.lefebvre@suse.com>
Date: Mon, 13 Mar 2023 12:06:13 +0100
Subject: [PATCH] fix(dracut.sh): use dynamically uefi's sections offset
* Uefi section are creating by `objcopy` with hardcoded sections
offset. This commit allow to have the correct offset between
each part of the efi file, needed to create an UKI. Offsets
are simply calculated so no sections overlap, as recommended
in https://wiki.archlinux.org/title/Unified_kernel_image#Manually
Moreover, efi stub file's header is parsed to apply the correct
offsets according the section alignment factor.
* Remove EFI_SECTION_VMA_INITRD, no need anymore as initrd
section offset dynamically calculated
Fixes dracutdevs#2275
Signed-off-by: Valentin Lefebvre <valentin.lefebvre@suse.com>
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -1023,3 +1023,26 @@ get_dev_module() {
fi
echo "$dev_drivers"
}
+
+# Check if file is in PE format
+pe_file_format() {
+ if [[ $# -eq 1 ]]; then
+ local magic
+ magic=$(objdump -p "$1" \
+ | awk '{if ($1 == "Magic"){print strtonum("0x"$2)}}')
+ magic=$(printf "0x%x" "$magic")
+ # 0x10b (PE32), 0x20b (PE32+)
+ [[ $magic == 0x20b || $magic == 0x10b ]] && return 0
+ fi
+ return 1
+}
+
+# Get the sectionAlignment data from the PE header
+pe_get_section_align() {
+ local align_hex
+ [[ $# -ne "1" ]] && return 1
+ [[ $(pe_file_format "$1") -eq 1 ]] && return 1
+ align_hex=$(objdump -p "$1" \
+ | awk '{if ($1 == "SectionAlignment"){print $2}}')
+ echo "$((16#$align_hex))"
+}
--- a/dracut.sh
+++ b/dracut.sh
@@ -1506,7 +1506,6 @@ if [[ ! $print_cmdline ]]; then
exit 1
fi
unset EFI_MACHINE_TYPE_NAME
- EFI_SECTION_VMA_INITRD=0x3000000
case "${DRACUT_ARCH:-$(uname -m)}" in
x86_64)
EFI_MACHINE_TYPE_NAME=x64
@@ -1516,8 +1515,6 @@ if [[ ! $print_cmdline ]]; then
;;
aarch64)
EFI_MACHINE_TYPE_NAME=aa64
- # aarch64 kernels are uncompressed and thus larger, so we need a bigger gap between vma sections
- EFI_SECTION_VMA_INITRD=0x4000000
;;
*)
dfatal "Architecture '${DRACUT_ARCH:-$(uname -m)}' not supported to create a UEFI executable"
@@ -2467,29 +2464,57 @@ if [[ $uefi == yes ]]; then
fi
fi
+ offs=$(objdump -h "$uefi_stub" 2> /dev/null | awk 'NF==7 {size=strtonum("0x"$3);\
+ offset=strtonum("0x"$4)} END {print size + offset}')
+ if [[ $offs -eq 0 ]]; then
+ dfatal "Failed to get the size of $uefi_stub to create UEFI image file"
+ exit 1
+ fi
+ align=$(pe_get_section_align "$uefi_stub")
+ if [[ $? -eq 1 ]]; then
+ dfatal "Failed to get the sectionAlignment of the stub PE header to create the UEFI image file"
+ exit 1
+ fi
+ offs=$((offs + "$align" - offs % "$align"))
+ [[ -s $dracutsysrootdir/usr/lib/os-release ]] && uefi_osrelease="$dracutsysrootdir/usr/lib/os-release"
+ [[ -s $dracutsysrootdir/etc/os-release ]] && uefi_osrelease="$dracutsysrootdir/etc/os-release"
+ [[ -s $uefi_osrelease ]] \
+ && uefi_osrelease_offs=${offs} \
+ && offs=$((offs + $(stat -Lc%s "$uefi_osrelease"))) \
+ && offs=$((offs + "$align" - offs % "$align"))
+
if [[ $kernel_cmdline ]] || [[ $hostonly_cmdline == yes && -e "${uefi_outdir}/cmdline.txt" ]]; then
echo -ne "\x00" >> "$uefi_outdir/cmdline.txt"
dinfo "Using UEFI kernel cmdline:"
dinfo "$(tr -d '\000' < "$uefi_outdir/cmdline.txt")"
uefi_cmdline="${uefi_outdir}/cmdline.txt"
+ uefi_cmdline_offs=${offs}
+ offs=$((offs + $(stat -Lc%s "$uefi_cmdline")))
+ offs=$((offs + "$align" - offs % "$align"))
else
unset uefi_cmdline
fi
- [[ -s $dracutsysrootdir/usr/lib/os-release ]] && uefi_osrelease="$dracutsysrootdir/usr/lib/os-release"
- [[ -s $dracutsysrootdir/etc/os-release ]] && uefi_osrelease="$dracutsysrootdir/etc/os-release"
if [[ -s ${dracutsysrootdir}${uefi_splash_image} ]]; then
uefi_splash_image="${dracutsysrootdir}${uefi_splash_image}"
+ uefi_splash_offs=${offs}
+ offs=$((offs + $(stat -Lc%s "$uefi_splash_image")))
+ offs=$((offs + "$align" - offs % "$align"))
else
unset uefi_splash_image
fi
+ uefi_linux_offs="${offs}"
+ offs=$((offs + $(stat -Lc%s "$kernel_image")))
+ offs=$((offs + "$align" - offs % "$align"))
+ uefi_initrd_offs="${offs}"
+
if objcopy \
- ${uefi_osrelease:+--add-section .osrel="$uefi_osrelease" --change-section-vma .osrel=0x20000} \
- ${uefi_cmdline:+--add-section .cmdline="$uefi_cmdline" --change-section-vma .cmdline=0x30000} \
- ${uefi_splash_image:+--add-section .splash="$uefi_splash_image" --change-section-vma .splash=0x40000} \
- --add-section .linux="$kernel_image" --change-section-vma .linux=0x2000000 \
- --add-section .initrd="${DRACUT_TMPDIR}/initramfs.img" --change-section-vma .initrd="${EFI_SECTION_VMA_INITRD}" \
+ ${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")} \
+ ${uefi_splash_image:+--add-section .splash="$uefi_splash_image" --change-section-vma .splash=$(printf 0x%x "$uefi_splash_offs")} \
+ --add-section .linux="$kernel_image" --change-section-vma .linux="$(printf 0x%x "$uefi_linux_offs")" \
+ --add-section .initrd="${DRACUT_TMPDIR}/initramfs.img" --change-section-vma .initrd="$(printf 0x%x "$uefi_initrd_offs")" \
"$uefi_stub" "${uefi_outdir}/linux.efi"; then
if [[ -n ${uefi_secureboot_key} && -n ${uefi_secureboot_cert} ]]; then
if sbsign \

View File

@ -1,26 +0,0 @@
From 19e4839ab70a691f95a0284aa0152a247eb5c63d Mon Sep 17 00:00:00 2001
From: Laszlo Gombos <laszlo.gombos@gmail.com>
Date: Fri, 24 Feb 2023 01:57:19 +0000
Subject: [PATCH] fix(dmsquash-live): restore compatibility with earlier
releases
Follow-up to 40dd5c90e0efcb9ebaa9abb42a38c7316e9706bd .
---
modules.d/90dmsquash-live/dmsquash-live-root.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
index 62d1b5e7cd..a98e258c26 100755
--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
+++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
@@ -403,6 +403,10 @@ fi
ROOTFLAGS="$(getarg rootflags)"
+if [ "$overlayfs" = required ]; then
+ echo "rd.live.overlay.overlayfs=1" > /etc/cmdline.d/dmsquash-need-overlay.conf
+fi
+
if [ -n "$overlayfs" ]; then
if [ -n "$FSIMG" ]; then
mkdir -m 0755 -p /run/rootfsbase

View File

@ -1,29 +0,0 @@
From 5443396f3cb591f2589888b25e07f21f03989057 Mon Sep 17 00:00:00 2001
From: Laszlo Gombos <laszlo.gombos@gmail.com>
Date: Sat, 24 Dec 2022 01:48:04 +0000
Subject: [PATCH] When no systemd then only network-legacy is supported
Bug: https://github.com/dracutdevs/dracut/issues/1756
---
modules.d/40network/module-setup.sh | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
index 1ab13ef..da49947 100755
--- a/modules.d/40network/module-setup.sh
+++ b/modules.d/40network/module-setup.sh
@@ -16,6 +16,11 @@ depends() {
fi
done
+ # When systemd is not available only network-legacy is supported
+ if [ -z "$network_handler" ] && ! find_binary systemctl > /dev/null; then
+ network_handler="network-legacy"
+ fi
+
if [ -z "$network_handler" ]; then
if [[ -e $dracutsysrootdir$systemdsystemunitdir/wicked.service ]]; then
network_handler="network-wicked"
--
2.34.1