summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Ammerlaan <andrewammerlaan@gentoo.org>2024-01-15 10:43:06 +0100
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2024-01-15 10:46:26 +0100
commit65715009f5bb805b0c8e029a08c953084be24151 (patch)
tree071f8dc7847004122eb734dfcfe8b557d34715c2 /sys-kernel/dracut
parentlicenses: Reformat BSD-2-with-patent (diff)
downloadgentoo-65715009f5bb805b0c8e029a08c953084be24151.tar.gz
gentoo-65715009f5bb805b0c8e029a08c953084be24151.tar.bz2
gentoo-65715009f5bb805b0c8e029a08c953084be24151.zip
sys-kernel/dracut: add 060_pre20240104
Add patch to explicitly support grub layout in 50-dracut.install Ensures that the generated initrd is installed in the "new" way via the staging area in the grub layout. This prevents accidentally creating an UKI named initrd, and also ensures that BOOT_ROOT and KERNEL_INSTALL_INITRD_GENERATOR are respected when the layout is set to grub. Downstream only since the grub layout for using grub with systemd's kernel-install is not supported by systemd upstream and therefore this patch is unlikely to be accepted by dracut upstream. Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Diffstat (limited to 'sys-kernel/dracut')
-rw-r--r--sys-kernel/dracut/Manifest1
-rw-r--r--sys-kernel/dracut/dracut-060_pre20240104.ebuild156
-rw-r--r--sys-kernel/dracut/files/dracut-060-grub-layout.patch22
3 files changed, 179 insertions, 0 deletions
diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest
index 42415227bfcb..53fa66f5619a 100644
--- a/sys-kernel/dracut/Manifest
+++ b/sys-kernel/dracut/Manifest
@@ -1,3 +1,4 @@
DIST dracut-059.tar.gz 486487 BLAKE2B 86bbe18875cd3507e187b724cab212dc82e1daca7cedf79aeef13c34601adfff72bf2c0ba4c652e715b43c9a16f7be6a4a2b29dc75bef014640e1ec07c8d455b SHA512 196bc8bf18703c72bffb51a7e0493719c58173ad2da7d121eb42f9a8de47e953af36d109214dc4a10b2dc2d3bd19e844f7f51c2bdec087e064ea11f75124032d
DIST dracut-059_p20231027.tar.gz 491099 BLAKE2B 02c5de4577bc5fc87fd11b7b9760b0f1a4a83ed7ef1fc2de22ea3f9588e9b03b347c1be4f26965d26ab8b88736b0da70e01ecb4a50c2951d1ec4009222aaa97a SHA512 da26c798f8c3856f7b9488278f26f1f392e6f6e1863bd6bb590f940854cde6633a45cf60acf52a2a184a1a47250a23e6ee53cb3f5fa759eb0146a4c0d172c07e
DIST dracut-060_pre20231030.tar.gz 498954 BLAKE2B ce47f06e1304f732cbad66046c70cbcb03d33d69b9c3e87a4e2e2d30fa837b3b36949462cec9b06125e824ad82db45bd7516c22a1c84ec6884790b37e9c65ab1 SHA512 0cd2fefcd624758063c77836989260a3d5b0d533004c2395124c8200c31602f5d7d0b8c9491de37ce4afb2c5009b2cf944ddd3bb9e0e11120d84176cb1e7423c
+DIST dracut-060_pre20240104.tar.gz 499965 BLAKE2B 935e0e5da348426d69c6dab6b91078f126cadd9ffc6a32378e79cd93b1dbadff35899efc3786fc12bf5a6741843d3637b0c98cc71fe4a96a8caf053ae887bac3 SHA512 f7818265f082e9c05ebb81a91b67fb9b1d3bf8b2433b7e6ea9be6bee43d28cd1ee48577648e1d9b3729c17608b028d294c13bf5d4db4cc5a18e3b007eb2cd67e
diff --git a/sys-kernel/dracut/dracut-060_pre20240104.ebuild b/sys-kernel/dracut/dracut-060_pre20240104.ebuild
new file mode 100644
index 000000000000..2cb041b55c0f
--- /dev/null
+++ b/sys-kernel/dracut/dracut-060_pre20240104.ebuild
@@ -0,0 +1,156 @@
+# 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="4980bad34775da715a2639b736cba5e65a8a2604"
+ 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-grub-layout.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
+}
diff --git a/sys-kernel/dracut/files/dracut-060-grub-layout.patch b/sys-kernel/dracut/files/dracut-060-grub-layout.patch
new file mode 100644
index 000000000000..5d8e9a9fcf9d
--- /dev/null
+++ b/sys-kernel/dracut/files/dracut-060-grub-layout.patch
@@ -0,0 +1,22 @@
+Ensures that the generated initrd is installed in the "new" way via the
+staging area in the grub layout. This prevents accidentally creating
+an UKI named initrd, and also ensures that BOOT_ROOT and
+KERNEL_INSTALL_INITRD_GENERATOR are respected when the layout is set to grub.
+
+Downstream only since the grub layout for using grub with systemd's
+kernel-install is not supported by systemd upstream and therefore this
+patch is unlikely to be accepted by dracut upstream.
+
+diff --git a/install.d/50-dracut.install b/install.d/50-dracut.install
+index 441414a..cfd4fe7 100755
+--- a/install.d/50-dracut.install
++++ b/install.d/50-dracut.install
+@@ -30,7 +30,7 @@ if [[ $KERNEL_INSTALL_LAYOUT == "uki" && -n $KERNEL_INSTALL_STAGING_AREA ]]; the
+ else
+ exit 0
+ fi
+-elif [[ $KERNEL_INSTALL_LAYOUT == "bls" && -n $KERNEL_INSTALL_STAGING_AREA ]]; then
++elif [[ $KERNEL_INSTALL_LAYOUT == "bls" || $KERNEL_INSTALL_LAYOUT == "grub" && -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"