summaryrefslogtreecommitdiff
path: root/sys-kernel/dracut
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/dracut')
-rw-r--r--sys-kernel/dracut/Manifest2
-rw-r--r--sys-kernel/dracut/dracut-050-r1.ebuild166
-rw-r--r--sys-kernel/dracut/files/050-busybox-module-fix.patch102
3 files changed, 270 insertions, 0 deletions
diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest
index c9fbf6d2ecd4..e3034aa88faf 100644
--- a/sys-kernel/dracut/Manifest
+++ b/sys-kernel/dracut/Manifest
@@ -15,6 +15,7 @@ AUX 049-remove-bashism-in-various-boot-scripts.patch 3423 BLAKE2B a2a5946b53eee6
AUX 049-rngd-new-module-running-early-during-boot-to-help-ge.patch 3009 BLAKE2B 4a259a7f742574e02322bbd78337657daea8fe5c19e63331867c1e4b48bf68890860c1b91e420fa3b13412cad7eee64dcc69cb52ad93d28320cbf988726f22ed SHA512 8652310eaa1294f819e3d1c6dc9b2ae332652586462b044088167eb3a7af9d1303c2a667b75045d9b04deb4a9e1cdfd55aec85cf5f66b36412bfbe3b67bbaae5
AUX 050-Makefile-fix-VERSION-again.patch 1057 BLAKE2B 8373a43030c02bc0273aacb3f0f286d4f98812039c459ec16607e3e5b9bd83c367420c6b67d7cc8d2f6d9469bca2e5e5770f20390348e50abdbec7f12c4f36a3 SHA512 89e5ae4cf88d65ec5f31384c334b46f8e6e74a31e0225a62523524f87f35ead8cae221d3a0f8e5f837a1e22b51833db75b2d3f3b07fa3ac4ded5dac9012a8027
AUX 050-Makefile-merge-main-version-and-git-version-earlier.patch 3071 BLAKE2B 0d20b6ca7bb92aca21b3afaaee6fffb94c23de806ebe46383074979e0afedc893aec478122391d7c6015882b7882dd3f6e4124fa1f6fa1dc0bb48beae50d4d9d SHA512 ad9219c66b0a921b2fcb9dc325d1afd4c17d447228ee3b95b7a7e799acdc9d48d1d963842643d6ee6e90f8891d5c924c707331041cde53701261cb670adbcd33
+AUX 050-busybox-module-fix.patch 3468 BLAKE2B a5292669c358f46ededf184e654213298e1e2a193e27b90cdb3913149cae40c2bfb70a8a211515ea7d3109fe87676ad71f93166dce793b7033ecfc05691e822c SHA512 a85d8f157d466e642c53436276777e6caf42aa3280cfa2d635c1541919484c50cccc232802131ce6776b1059151bdcfabdd3e4f69d697012d2e4d24a4793794b
AUX 050-dracut.sh-don-t-call-fsfreeze-on-subvol-of-root-file.patch 2779 BLAKE2B edb10ef79fd22863aef5184ca0d7abc88602cf3e8a3cfd198047e0970d10e9aa56e1222dc44a089afb3a0f15caa87e4e3233b32980b5fd56e9975196350000f4 SHA512 a31cfceb9ab53e53ce3f69ed6388bf7cfcf40ad7b036197194f34cd973a74e28ac8bfb7bf7d79068b48fc8c5feaf26540948b8008c1fdab997587bf4b31f8b71
AUX 050-gentoo-ldconfig-paths.patch 1420 BLAKE2B 3ff093e1d244288585c369f0e3c1bc346abe1ee2ce8ee399098559765fa4e3a96611269de5f4edebe435e5a71fa1bb99eb650fcb221fad188e019837261645f4 SHA512 aa99bb08dbc8e38ee1794b7d77e5e6656afa7f6c67684d1b3fb6368861630ea7c7711d84cc48c2c5cf3b1fd98aa2673f816e4f5ebf651b63a07ded93b00d371a
DIST dracut-048.tar.xz 308484 BLAKE2B b19c8122034a8b40cbc9d09245730900b59691c336f1d231e768786ad64068e0a8daf57ae9a4182ab50d9e1c683c9b7dcac354eb26d8a60f061db78121bc11c7 SHA512 97fcfd5d314ef40687c245d95d2f1d0f3f9ff0472e66b6e6324bf9bd6b98186104f9d71fd9af344126d6ea9fa47b744d52831a374225633225f6f17fb15c04e0
@@ -22,6 +23,7 @@ DIST dracut-049.tar.gz 376857 BLAKE2B e50084164e26aae6de812345cc76782435ec84951b
DIST dracut-050.tar.xz 333592 BLAKE2B cb0bfa5a8e7547260b8a80a3606eb284182c062926269c85b09e07d26ad177df0eeaa64b17005bff9290611f1c83fc8cd8e2216cfe14b5e66ec7f659d4c2fa7b SHA512 eba046cf1c8013369a398e585e0bff233daa8595d469ce9acc8bbc6a32d55c6a5429d4219db19abbf6001104be05b357f0961f9e66b7f926039a5d3ee7c2b850
EBUILD dracut-048-r1.ebuild 4554 BLAKE2B 54bd6d89cc5085dfe7d6fa510651fdefb04e25b9ac05627646e9374d8ed6c0f2db184d1e9d948cbcd7ccca5c34f84c5a71de41c6af1d6b1962992ef04b369f45 SHA512 37cd893b1832e8c1fe2b54491372277978f68f3e21b763c9b8d70ba2507733d779fd40d748f08cb35015e0ef235dd8d3077202c9e8e286d6741da783d28c2e7c
EBUILD dracut-049-r3.ebuild 5702 BLAKE2B 2fbeb9e53586918a0b08d8c2a2c49971e822d7e81e7de0d2ff0988fd579dd45fadcc7e2af83502f7b6c07c7cfe3d05f97b92a1ea3dfd0dedaa843512c71e1ab3 SHA512 845b57da9622b554a8201f339b14718f86812e7e38a8d574df06a8ffc7c90dc1d521a33ef372e7c3119900c58e1db2602f70800cef8868a14aca4408b80f98bc
+EBUILD dracut-050-r1.ebuild 4961 BLAKE2B 32cb56f32adcedc50eb40d7180f2694d8c38d324f4f80e8e8b4354cec1b788eda48ecb0a5f26ba0e1a0f3433a9cab98e14eb85d0c4a5f47d182906c8193b9a6d SHA512 f67020302c3749a50b997391e096b1d50e19fdee4fa8356f27ba065d89d03e2c8da927cd76b304e7e7a424b056efa270de4a25cc2ad332e301eb26c4a825a0aa
EBUILD dracut-050.ebuild 4917 BLAKE2B 663b729efc3876fc84b172b78893eb196e74ab8333c597de73ec8ab508a6227b1da928c96bcfd0450ffe09923f0f6e5263b6210279f6b1344e8e16d166e77695 SHA512 ccc4c12698444667c87b78e2b202bca9aec59f67e71a1360e8a202a5dca55ff9901aa963337e78f8e639e80412a065b203c13444c2089ee007a5f8c8a75c3114
EBUILD dracut-9999.ebuild 4710 BLAKE2B e41d6ccd4d446f5a79dffbb874f26e1bd316b358de09d79a4893d72da7f237ddf9b62a267b2b35844f0ac8391597072ce739899d1aed1b04164e23df95688e55 SHA512 72a8360ab329bfb29100a8ea2cb9cc57d30594c0f8b7f5ea0e7ac310277be61f215fa378edadf5c8b77d55c51357893d8be409c6dd09024bf3d6ee6031a6879d
MISC metadata.xml 725 BLAKE2B 475d51f4e2bebf318ef94ea1fec40a34bcf04b4f0c69e051c8840e0965a92fd9861c5aa8acfb2ccb5a4cf354665ab3efc6adfdf7d0191325c1f798ea5e49594e SHA512 b708d0eb6a792d5ba3495f321af5e10672af3354f1f42c60b175b7fb48ae836e24db7768511c44cbb0a949c1cca75948890d3b32904bbe47e50d9c43d71787fb
diff --git a/sys-kernel/dracut/dracut-050-r1.ebuild b/sys-kernel/dracut/dracut-050-r1.ebuild
new file mode 100644
index 000000000000..3b43c5fefe64
--- /dev/null
+++ b/sys-kernel/dracut/dracut-050-r1.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit bash-completion-r1 eutils linux-info systemd toolchain-funcs
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/dracutdevs/dracut"
+else
+ [[ "${PV}" = *_rc* ]] || \
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/utils/boot/${PN}/${P}.tar.xz"
+fi
+
+DESCRIPTION="Generic initramfs generation tool"
+HOMEPAGE="https://dracut.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="selinux"
+
+# Tests need root privileges, bug #298014
+RESTRICT="test"
+
+RDEPEND="
+ app-arch/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/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
+"
+
+DOCS=( AUTHORS HACKING NEWS README.md README.generic README.kernel README.modules
+ README.testsuite TODO )
+
+QA_MULTILIB_PATHS="usr/lib/dracut/.*"
+
+PATCHES=(
+ "${FILESDIR}"/050-Makefile-merge-main-version-and-git-version-earlier.patch
+ "${FILESDIR}"/050-dracut.sh-don-t-call-fsfreeze-on-subvol-of-root-file.patch
+ "${FILESDIR}"/050-Makefile-fix-VERSION-again.patch
+ "${FILESDIR}"/050-busybox-module-fix.patch
+ "${FILESDIR}"/050-gentoo-ldconfig-paths.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_install() {
+ default
+
+ insinto /etc/logrotate.d
+ newins dracut.logrotate dracut
+
+ docinto html
+ dodoc dracut.html
+}
+
+pkg_postinst() {
+ if linux-info_get_any_version && linux_config_exists; then
+ ewarn ""
+ ewarn "If the following test report contains a missing kernel"
+ ewarn "configuration option, you should reconfigure and rebuild your"
+ ewarn "kernel before booting image generated with this Dracut version."
+ ewarn ""
+
+ local CONFIG_CHECK="~BLK_DEV_INITRD ~DEVTMPFS"
+
+ # Kernel configuration options descriptions:
+ local ERROR_DEVTMPFS='CONFIG_DEVTMPFS: "Maintain a devtmpfs filesystem to mount at /dev" '
+ ERROR_DEVTMPFS+='is missing and REQUIRED'
+ local ERROR_BLK_DEV_INITRD='CONFIG_BLK_DEV_INITRD: "Initial RAM filesystem and RAM disk '
+ ERROR_BLK_DEV_INITRD+='(initramfs/initrd) support" is missing and REQUIRED'
+
+ check_extra_config
+ echo
+ else
+ ewarn ""
+ ewarn "Your kernel configuration couldn't be checked."
+ ewarn "Please check manually if following options are enabled:"
+ ewarn ""
+ ewarn " CONFIG_BLK_DEV_INITRD"
+ ewarn " CONFIG_DEVTMPFS"
+ ewarn ""
+ fi
+
+ elog "To get additional features, a number of optional runtime"
+ elog "dependencies may be installed:"
+ elog ""
+ 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 \
+ "Measure performance of the boot process for later visualisation" \
+ app-benchmarks/bootchart2 app-admin/killproc sys-process/acct
+ 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 "Support iSCSI" sys-block/open-iscsi
+ optfeature "Support Logical Volume Manager" sys-fs/lvm2
+ optfeature "Support MD devices, also known as software RAID devices" \
+ sys-fs/mdadm
+ 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" \
+ net-misc/openssh
+ optfeature "Enable logging with rsyslog" app-admin/rsyslog
+ optfeature \
+ "Enable rngd service to help generating entropy early during boot" \
+ sys-apps/rng-tools
+}
diff --git a/sys-kernel/dracut/files/050-busybox-module-fix.patch b/sys-kernel/dracut/files/050-busybox-module-fix.patch
new file mode 100644
index 000000000000..faaf026e536a
--- /dev/null
+++ b/sys-kernel/dracut/files/050-busybox-module-fix.patch
@@ -0,0 +1,102 @@
+From f769154bccf22d2b5caf5e4888f88bf7edde2662 Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Mon, 25 May 2020 19:02:05 +0300
+Subject: [PATCH 1/2] dracut-functions: fix find_binary() to return full path
+
+Fixes: a01204202b30 (Allow running on a cross-compiled rootfs)
+---
+ dracut-functions.sh | 21 +++++++++++++--------
+ 1 file changed, 13 insertions(+), 8 deletions(-)
+
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index 3cb9c7af..b5c28248 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -41,31 +41,36 @@ str_ends() { [ "${1%*"$2"}" != "$1" ]; }
+ # search in the usual places to find the binary.
+ find_binary() {
+ local _delim
++ local _path
+ local l
+ local p
+ [[ -z ${1##/*} ]] || _delim="/"
+
+ if [[ "$1" == *.so* ]]; then
+ for l in libdirs ; do
+- if { $DRACUT_LDD "$dracutsysrootdir$l$_delim$1" &>/dev/null; }; then
+- printf "%s\n" "$1"
++ _path="${l}${_delim}${1}"
++ if { $DRACUT_LDD "${dracutsysrootdir}${_path}" &>/dev/null; }; then
++ printf "%s\n" "${_path}"
+ return 0
+ fi
+ done
+- if { $DRACUT_LDD "$dracutsysrootdir$_delim$1" &>/dev/null; }; then
+- printf "%s\n" "$1"
++ _path="${_delim}${1}"
++ if { $DRACUT_LDD "${dracutsysrootdir}${_path}" &>/dev/null; }; then
++ printf "%s\n" "${_path}"
+ return 0
+ fi
+ fi
+ if [[ "$1" == */* ]]; then
+- if [[ -L $dracutsysrootdir$_delim$1 ]] || [[ -x $dracutsysrootdir$_delim$1 ]]; then
+- printf "%s\n" "$1"
++ _path="${_delim}${1}"
++ if [[ -L ${dracutsysrootdir}${_path} ]] || [[ -x ${dracutsysrootdir}${_path} ]]; then
++ printf "%s\n" "${_path}"
+ return 0
+ fi
+ fi
+ for p in $DRACUT_PATH ; do
+- if [[ -L $dracutsysrootdir$p$_delim$1 ]] || [[ -x $dracutsysrootdir$p$_delim$1 ]]; then
+- printf "%s\n" "$1"
++ _path="${p}${_delim}${1}"
++ if [[ -L ${dracutsysrootdir}${_path} ]] || [[ -x ${dracutsysrootdir}${_path} ]]; then
++ printf "%s\n" "${_path}"
+ return 0
+ fi
+ done
+--
+2.26.2
+
+From 50cc23ba32b0fda63eff7623b529dbeb4e6a38c6 Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Mon, 25 May 2020 17:49:20 +0300
+Subject: [PATCH 2/2] busybox: simplify listing of supported utilities
+
+'--list' option is supported since busybox-1.20.0, which was released
+in 2010.
+---
+ modules.d/05busybox/module-setup.sh | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/modules.d/05busybox/module-setup.sh b/modules.d/05busybox/module-setup.sh
+index ecbd6a13..5d88c5d1 100755
+--- a/modules.d/05busybox/module-setup.sh
++++ b/modules.d/05busybox/module-setup.sh
+@@ -14,15 +14,16 @@ depends() {
+
+ # called by dracut
+ install() {
+- local _i _progs _path _busybox
++ local _i _path _busybox
++ local _progs=()
+ _busybox=$(type -P busybox)
+ inst $_busybox /usr/bin/busybox
+- for _i in $($_busybox | sed -ne '1,/Currently/!{s/,//g; s/busybox//g; p}')
+- do
+- _progs="$_progs $_i"
++ for _i in $($_busybox --list); do
++ [[ ${_i} == busybox ]] && continue
++ _progs+=("${_i}")
+ done
+
+- for _i in $_progs; do
++ for _i in "${_progs[@]}"; do
+ _path=$(find_binary "$_i")
+ [ -z "$_path" ] && continue
+ ln_r /usr/bin/busybox $_path
+--
+2.26.2
+