* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2015-08-16 10:04 Amadeusz Żołnowski
0 siblings, 0 replies; 21+ messages in thread
From: Amadeusz Żołnowski @ 2015-08-16 10:04 UTC (permalink / raw
To: gentoo-commits
commit: 8c578d67d48c971ba1cc438e610b5158eb247d76
Author: Amadeusz Żołnowski <aidecoe <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 16 09:58:26 2015 +0000
Commit: Amadeusz Żołnowski <aidecoe <AT> gentoo <DOT> org>
CommitDate: Sun Aug 16 09:58:51 2015 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c578d67
sys-kernel/dracut: Add patches removing non-portable use of `echo -n`
Gentoo-Bug: 554750
Package-Manager: portage-2.2.20.1
sys-kernel/dracut/dracut-043-r1.ebuild | 2 +
...02-Replace-echo-n-with-printf-in-code-wit.patch | 275 +++++++++++++++++++++
...03-syncheck-Look-for-echo-n-usage-in-modu.patch | 26 ++
3 files changed, 303 insertions(+)
diff --git a/sys-kernel/dracut/dracut-043-r1.ebuild b/sys-kernel/dracut/dracut-043-r1.ebuild
index 6c16464..b713bea 100644
--- a/sys-kernel/dracut/dracut-043-r1.ebuild
+++ b/sys-kernel/dracut/dracut-043-r1.ebuild
@@ -50,6 +50,8 @@ DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules
MY_LIBDIR=/usr/lib
PATCHES=(
"${FILESDIR}/${PV}-0001-Revert-lvm-Don-t-activate-LVs-with-act.patch"
+ "${FILESDIR}/${PV}-0002-Replace-echo-n-with-printf-in-code-wit.patch"
+ "${FILESDIR}/${PV}-0003-syncheck-Look-for-echo-n-usage-in-modu.patch"
)
QA_MULTILIB_PATHS="
usr/lib/dracut/dracut-install
diff --git a/sys-kernel/dracut/files/043-0002-Replace-echo-n-with-printf-in-code-wit.patch b/sys-kernel/dracut/files/043-0002-Replace-echo-n-with-printf-in-code-wit.patch
new file mode 100644
index 0000000..7f0e627
--- /dev/null
+++ b/sys-kernel/dracut/files/043-0002-Replace-echo-n-with-printf-in-code-wit.patch
@@ -0,0 +1,275 @@
+From 15f330fe1afe9ac8870461faad55b7d63e791aca Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Tue, 14 Jul 2015 22:22:14 -0400
+Subject: [PATCH 2/3] Replace echo -n with printf in code with a /bin/sh
+ shebang
+
+POSIX does not mandate that echo support the -n parameter.
+printf has more well-defined behavior.
+---
+ modules.d/04watchdog/watchdog-stop.sh | 2 +-
+ modules.d/40network/net-lib.sh | 2 +-
+ modules.d/45ifcfg/write-ifcfg.sh | 2 +-
+ modules.d/90lvm/lvm_scan.sh | 4 ++--
+ modules.d/95fcoe/fcoe-up.sh | 2 +-
+ modules.d/98usrmount/mount-usr.sh | 2 +-
+ modules.d/99base/dracut-lib.sh | 6 +++---
+ modules.d/99base/init.sh | 2 +-
+ test/TEST-10-RAID/create-root.sh | 2 +-
+ test/TEST-10-RAID/cryptroot-ask.sh | 2 +-
+ test/TEST-12-RAID-DEG/create-root.sh | 2 +-
+ test/TEST-12-RAID-DEG/cryptroot-ask.sh | 2 +-
+ test/TEST-13-ENC-RAID-LVM/create-root.sh | 2 +-
+ test/TEST-13-ENC-RAID-LVM/cryptroot-ask.sh | 2 +-
+ test/TEST-14-IMSM/cryptroot-ask.sh | 2 +-
+ test/TEST-20-NFS/client-init.sh | 2 +-
+ test/TEST-40-NBD/create-root.sh | 2 +-
+ test/TEST-40-NBD/cryptroot-ask.sh | 2 +-
+ 18 files changed, 21 insertions(+), 21 deletions(-)
+
+diff --git a/modules.d/04watchdog/watchdog-stop.sh b/modules.d/04watchdog/watchdog-stop.sh
+index 91d45d6..921f969 100755
+--- a/modules.d/04watchdog/watchdog-stop.sh
++++ b/modules.d/04watchdog/watchdog-stop.sh
+@@ -1,2 +1,2 @@
+ #!/bin/sh
+-[ -c /dev/watchdog ] && echo -n 'V' > /dev/watchdog
++[ -c /dev/watchdog ] && printf 'V' > /dev/watchdog
+diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
+index a09cdaf..6c739e8 100755
+--- a/modules.d/40network/net-lib.sh
++++ b/modules.d/40network/net-lib.sh
+@@ -189,7 +189,7 @@ set_ifname() {
+ fix_bootif() {
+ local macaddr=${1}
+ local IFS='-'
+- macaddr=$(for i in ${macaddr} ; do echo -n $i:; done)
++ macaddr=$(printf '%s:' ${macaddr})
+ macaddr=${macaddr%:}
+ # strip hardware type field from pxelinux
+ [ -n "${macaddr%??:??:??:??:??:??}" ] && macaddr=${macaddr#??:}
+diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
+index fa7db27..251d684 100755
+--- a/modules.d/45ifcfg/write-ifcfg.sh
++++ b/modules.d/45ifcfg/write-ifcfg.sh
+@@ -48,7 +48,7 @@ print_s390() {
+ for i in /sys/class/net/$_netif/device/cdev[0-9]*; do
+ [ -e $i ] || continue
+ channel=$(readlink -f $i)
+- echo -n "${channel##*/},"
++ printf '%s' "${channel##*/},"
+ done
+ })
+ [ -n "$SUBCHANNELS" ] || return 1
+diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh
+index 7495644..ead28aa 100755
+--- a/modules.d/90lvm/lvm_scan.sh
++++ b/modules.d/90lvm/lvm_scan.sh
+@@ -15,14 +15,14 @@ SNAPSIZE=$(getargs rd.lvm.snapsize -d rd_LVM_SNAPSIZE=)
+ lvmdevs=$(
+ for f in /tmp/.lvm_scan-*; do
+ [ -e "$f" ] || continue
+- echo -n "${f##/tmp/.lvm_scan-} "
++ printf '%s' "${f##/tmp/.lvm_scan-} "
+ done
+ )
+
+ if [ ! -e /etc/lvm/lvm.conf ]; then
+ {
+ echo 'devices {';
+- echo -n ' filter = [ '
++ printf ' filter = [ '
+ for dev in $lvmdevs; do
+ printf '"a|^/dev/%s$|", ' $dev;
+ done;
+diff --git a/modules.d/95fcoe/fcoe-up.sh b/modules.d/95fcoe/fcoe-up.sh
+index 43a0ad5..950e4b6 100755
+--- a/modules.d/95fcoe/fcoe-up.sh
++++ b/modules.d/95fcoe/fcoe-up.sh
+@@ -64,7 +64,7 @@ elif [ "$netdriver" = "bnx2x" ]; then
+ sleep 3
+ fipvlan "$netif" -c -s
+ else
+- echo -n "$netif" > /sys/module/fcoe/parameters/create
++ printf '%s' "$netif" > /sys/module/fcoe/parameters/create
+ fi
+
+ need_shutdown
+diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh
+index c29610f..d1a629c 100755
+--- a/modules.d/98usrmount/mount-usr.sh
++++ b/modules.d/98usrmount/mount-usr.sh
+@@ -12,7 +12,7 @@ filtersubvol() {
+ while [ $# -gt 0 ]; do
+ case $1 in
+ subvol\=*) :;;
+- *) echo -n "${1}," ;;
++ *) printf '%s' "${1}," ;;
+ esac
+ shift
+ done
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index 08110cc..7a3c58c 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -298,7 +298,7 @@ _dogetargs() {
+ fi
+ done
+ if [ -n "$_found" ]; then
+- [ $# -gt 0 ] && echo -n "$@"
++ [ $# -gt 0 ] && printf '%s' "$*"
+ return 0
+ fi
+ return 1;
+@@ -329,9 +329,9 @@ getargs() {
+ done
+ if [ -n "$_gfound" ]; then
+ if [ $# -gt 0 ]; then
+- echo -n "$@"
++ printf '%s' "$*"
+ else
+- echo -n 1
++ printf 1
+ fi
+ debug_on
+ return 0
+diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
+index f96dbb5..a59e8ea 100755
+--- a/modules.d/99base/init.sh
++++ b/modules.d/99base/init.sh
+@@ -253,7 +253,7 @@ while :; do
+ done
+
+ {
+- echo -n "Mounted root filesystem "
++ printf "Mounted root filesystem "
+ while read dev mp rest || [ -n "$dev" ]; do [ "$mp" = "$NEWROOT" ] && echo $dev; done < /proc/mounts
+ } | vinfo
+
+diff --git a/test/TEST-10-RAID/create-root.sh b/test/TEST-10-RAID/create-root.sh
+index a7e56a5..7b5f2a7 100755
+--- a/test/TEST-10-RAID/create-root.sh
++++ b/test/TEST-10-RAID/create-root.sh
+@@ -18,7 +18,7 @@ mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 /dev/sda2 /d
+ # randomly.
+ mdadm -W /dev/md0
+ set -e
+-echo -n test >keyfile
++printf test >keyfile
+ cryptsetup -q luksFormat /dev/md0 /keyfile
+ echo "The passphrase is test"
+ cryptsetup luksOpen /dev/md0 dracut_crypt_test </keyfile
+diff --git a/test/TEST-10-RAID/cryptroot-ask.sh b/test/TEST-10-RAID/cryptroot-ask.sh
+index 407d067..c39eff6 100755
+--- a/test/TEST-10-RAID/cryptroot-ask.sh
++++ b/test/TEST-10-RAID/cryptroot-ask.sh
+@@ -1,5 +1,5 @@
+ #!/bin/sh
+
+ [ -b "/dev/mapper/$2" ] && exit 0
+-echo -n test >/keyfile
++printf test >/keyfile
+ /sbin/cryptsetup luksOpen "$1" "$2" </keyfile
+diff --git a/test/TEST-12-RAID-DEG/create-root.sh b/test/TEST-12-RAID-DEG/create-root.sh
+index 7b9a171..3299aa6 100755
+--- a/test/TEST-12-RAID-DEG/create-root.sh
++++ b/test/TEST-12-RAID-DEG/create-root.sh
+@@ -20,7 +20,7 @@ mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 /dev/sdb /de
+ # wait for the array to finish initailizing, otherwise this sometimes fails
+ # randomly.
+ mdadm -W /dev/md0
+-echo -n test >keyfile
++printf test >keyfile
+ cryptsetup -q luksFormat /dev/md0 /keyfile
+ echo "The passphrase is test"
+ set -e
+diff --git a/test/TEST-12-RAID-DEG/cryptroot-ask.sh b/test/TEST-12-RAID-DEG/cryptroot-ask.sh
+index db27c5b..78ed7f5 100755
+--- a/test/TEST-12-RAID-DEG/cryptroot-ask.sh
++++ b/test/TEST-12-RAID-DEG/cryptroot-ask.sh
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+
+ [ -b /dev/mapper/$2 ] && exit 0
+-echo -n test >/keyfile
++printf test >/keyfile
+ /sbin/cryptsetup luksOpen $1 $2 </keyfile
+
+diff --git a/test/TEST-13-ENC-RAID-LVM/create-root.sh b/test/TEST-13-ENC-RAID-LVM/create-root.sh
+index e74fe7f..72bc765 100755
+--- a/test/TEST-13-ENC-RAID-LVM/create-root.sh
++++ b/test/TEST-13-ENC-RAID-LVM/create-root.sh
+@@ -14,7 +14,7 @@ sfdisk /dev/sda <<EOF
+ ,25M
+ EOF
+ udevadm settle
+-echo -n test >keyfile
++printf test >keyfile
+ cryptsetup -q luksFormat /dev/sda2 /keyfile
+ cryptsetup -q luksFormat /dev/sda3 /keyfile
+ cryptsetup -q luksFormat /dev/sda4 /keyfile
+diff --git a/test/TEST-13-ENC-RAID-LVM/cryptroot-ask.sh b/test/TEST-13-ENC-RAID-LVM/cryptroot-ask.sh
+index db27c5b..78ed7f5 100755
+--- a/test/TEST-13-ENC-RAID-LVM/cryptroot-ask.sh
++++ b/test/TEST-13-ENC-RAID-LVM/cryptroot-ask.sh
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+
+ [ -b /dev/mapper/$2 ] && exit 0
+-echo -n test >/keyfile
++printf test >/keyfile
+ /sbin/cryptsetup luksOpen $1 $2 </keyfile
+
+diff --git a/test/TEST-14-IMSM/cryptroot-ask.sh b/test/TEST-14-IMSM/cryptroot-ask.sh
+index db27c5b..78ed7f5 100755
+--- a/test/TEST-14-IMSM/cryptroot-ask.sh
++++ b/test/TEST-14-IMSM/cryptroot-ask.sh
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+
+ [ -b /dev/mapper/$2 ] && exit 0
+-echo -n test >/keyfile
++printf test >/keyfile
+ /sbin/cryptsetup luksOpen $1 $2 </keyfile
+
+diff --git a/test/TEST-20-NFS/client-init.sh b/test/TEST-20-NFS/client-init.sh
+index 2311981..a443289 100755
+--- a/test/TEST-20-NFS/client-init.sh
++++ b/test/TEST-20-NFS/client-init.sh
+@@ -8,7 +8,7 @@ strstr() { [ "${1##*"$2"*}" != "$1" ]; }
+
+ stty sane
+ if strstr "$CMDLINE" "rd.shell"; then
+- [ -c /dev/watchdog ] && echo -n 'V' > /dev/watchdog
++ [ -c /dev/watchdog ] && printf 'V' > /dev/watchdog
+ strstr "$(setsid --help)" "control" && CTTY="-c"
+ setsid $CTTY sh -i
+ fi
+diff --git a/test/TEST-40-NBD/create-root.sh b/test/TEST-40-NBD/create-root.sh
+index 391279e..20d0eff 100755
+--- a/test/TEST-40-NBD/create-root.sh
++++ b/test/TEST-40-NBD/create-root.sh
+@@ -5,7 +5,7 @@ for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
+ done
+ rm -f -- /etc/lvm/lvm.conf
+ udevadm control --reload
+-echo -n test >keyfile
++printf test >keyfile
+ cryptsetup -q luksFormat /dev/sdb /keyfile
+ echo "The passphrase is test"
+ cryptsetup luksOpen /dev/sdb dracut_crypt_test </keyfile && \
+diff --git a/test/TEST-40-NBD/cryptroot-ask.sh b/test/TEST-40-NBD/cryptroot-ask.sh
+index db27c5b..78ed7f5 100755
+--- a/test/TEST-40-NBD/cryptroot-ask.sh
++++ b/test/TEST-40-NBD/cryptroot-ask.sh
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+
+ [ -b /dev/mapper/$2 ] && exit 0
+-echo -n test >/keyfile
++printf test >/keyfile
+ /sbin/cryptsetup luksOpen $1 $2 </keyfile
+
+--
+2.5.0
+
diff --git a/sys-kernel/dracut/files/043-0003-syncheck-Look-for-echo-n-usage-in-modu.patch b/sys-kernel/dracut/files/043-0003-syncheck-Look-for-echo-n-usage-in-modu.patch
new file mode 100644
index 0000000..8be8833
--- /dev/null
+++ b/sys-kernel/dracut/files/043-0003-syncheck-Look-for-echo-n-usage-in-modu.patch
@@ -0,0 +1,26 @@
+From 4e17745f9786bfe21d5419c2e0eeff8c5667e747 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Tue, 14 Jul 2015 11:12:16 -0400
+Subject: [PATCH 3/3] syncheck: Look for 'echo -n' usage in modules
+
+---
+ Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 0af5d0f..16c6d2a 100644
+--- a/Makefile
++++ b/Makefile
+@@ -211,7 +211,8 @@ syncheck:
+ [ "$${i##*/}" = "module-setup.sh" ] && continue; \
+ read line < "$$i"; [ "$${line#*bash*}" != "$$line" ] && continue; \
+ [ $$V ] && echo "posix syntax check: $$i"; bash --posix -n "$$i" ; ret=$$(($$ret+$$?)); \
+- [ $$V ] && echo "checking for [[: $$i"; if grep -Fq '[[ ' "$$i" ; then ret=$$(($$ret+1)); echo "$$i contains [["; fi \
++ [ $$V ] && echo "checking for [[: $$i"; if grep -Fq '[[ ' "$$i" ; then ret=$$(($$ret+1)); echo "$$i contains [["; fi; \
++ [ $$V ] && echo "checking for echo -n: $$i"; if grep -Fq 'echo -n ' "$$i" ; then ret=$$(($$ret+1)); echo "$$i contains echo -n"; fi \
+ done;exit $$ret
+ @ret=0;for i in *.sh mkinitrd-dracut.sh modules.d/*/*.sh \
+ modules.d/*/module-setup.sh; do \
+--
+2.5.0
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2016-11-04 18:39 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2016-11-04 18:39 UTC (permalink / raw
To: gentoo-commits
commit: 9c93a9970c02f14ba821fae6850868f83e75579a
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 4 18:37:27 2016 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Nov 4 18:39:54 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c93a997
sys-kernel/dracut: apply a few patches
Bug: https://bugs.gentoo.org/544438#c5
Bug: https://bugs.gentoo.org/586254
Bug: https://github.com/dracutdevs/dracut/pull/169
Package-Manager: portage-2.3.2_p4
sys-kernel/dracut/dracut-044-r1.ebuild | 263 +++++++++++++++++++++
...-lib.sh-dev_unit_name-guard-against-dev-b.patch | 32 +++
...temd-initrd-add-initrd-root-device.target.patch | 24 ++
...03-50-dracut.install-use-bin-bash-shebang.patch | 23 ++
4 files changed, 342 insertions(+)
diff --git a/sys-kernel/dracut/dracut-044-r1.ebuild b/sys-kernel/dracut/dracut-044-r1.ebuild
new file mode 100644
index 00000000..c873fd6
--- /dev/null
+++ b/sys-kernel/dracut/dracut-044-r1.ebuild
@@ -0,0 +1,263 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit bash-completion-r1 eutils linux-info multilib systemd
+
+DESCRIPTION="Generic initramfs generation tool"
+HOMEPAGE="https://dracut.wiki.kernel.org"
+SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.xz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="debug selinux systemd"
+
+RESTRICT="test"
+
+CDEPEND="virtual/udev
+ systemd? ( >=sys-apps/systemd-199 )
+ "
+RDEPEND="${CDEPEND}
+ app-arch/cpio
+ >=app-shells/bash-4.0
+ >sys-apps/kmod-5[tools]
+ || (
+ >=sys-apps/sysvinit-2.87-r3
+ sys-apps/systemd[sysv-utils]
+ sys-apps/systemd-sysv-utils
+ )
+ >=sys-apps/util-linux-2.21
+
+ debug? ( dev-util/strace )
+ selinux? (
+ sys-libs/libselinux
+ sys-libs/libsepol
+ sec-policy/selinux-dracut
+ )
+ "
+DEPEND="${CDEPEND}
+ app-text/asciidoc
+ >=dev-libs/libxslt-1.1.26
+ app-text/docbook-xml-dtd:4.5
+ >=app-text/docbook-xsl-stylesheets-1.75.2
+ virtual/pkgconfig
+ "
+
+DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules
+ README.testsuite TODO )
+MY_LIBDIR=/usr/lib
+QA_MULTILIB_PATHS="
+ usr/lib/dracut/dracut-install
+ usr/lib/dracut/skipcpio
+ "
+
+PATCHES=(
+ "${FILESDIR}"/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch
+ "${FILESDIR}"/044-0002-systemd-initrd-add-initrd-root-device.target.patch
+ "${FILESDIR}"/044-0003-50-dracut.install-use-bin-bash-shebang.patch
+)
+
+#
+# Helper functions
+#
+
+# Removes module from modules.d.
+# $1 = module name
+# Module name can be specified without number prefix.
+rm_module() {
+ local force m
+ [[ $1 = -f ]] && force=-f
+
+ for m in $@; do
+ if [[ $m =~ ^[0-9][0-9][^\ ]*$ ]]; then
+ rm ${force} --interactive=never -r "${modules_dir}"/$m
+ else
+ rm ${force} --interactive=never -r "${modules_dir}"/[0-9][0-9]$m
+ fi
+ done
+}
+
+src_prepare() {
+ local libdirs="/$(get_libdir) /usr/$(get_libdir)"
+ if [[ ${SYMLINK_LIB} = yes ]]; then
+ # Preserve lib -> lib64 symlinks in initramfs
+ [[ $libdirs =~ /lib\ ]] || libdirs+=" /lib /usr/lib"
+ fi
+ einfo "Setting libdirs to \"${libdirs}\" ..."
+ sed -e "3alibdirs=\"${libdirs}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+
+ local udevdir="$("$(tc-getPKG_CONFIG)" udev --variable=udevdir)"
+ einfo "Setting udevdir to ${udevdir}..."
+ sed -r -e "s|^(udevdir=).*$|\1${udevdir}|" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+
+ if use systemd; then
+ local systemdutildir="$(systemd_get_utildir)"
+ local systemdsystemunitdir="$(systemd_get_unitdir)"
+ local systemdsystemconfdir="$("$(tc-getPKG_CONFIG)" systemd \
+ --variable=systemdsystemconfdir)"
+ [[ ${systemdsystemconfdir} ]] \
+ || systemdsystemconfdir=/etc/systemd/system
+ einfo "Setting systemdutildir to ${systemdutildir} and ..."
+ sed -e "5asystemdutildir=\"${systemdutildir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ einfo "Setting systemdsystemunitdir to ${systemdsystemunitdir} and..."
+ sed -e "6asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ einfo "Setting systemdsystemconfdir to ${systemdsystemconfdir}..."
+ sed -e "7asystemdsystemconfdir=\"${systemdsystemconfdir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ else
+ local systemdutildir="/lib/systemd"
+ einfo "Setting systemdutildir for standalone udev to" \
+ "${systemdutildir}..."
+ sed -e "5asystemdutildir=\"${systemdutildir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ fi
+
+ epatch "${PATCHES[@]}"
+
+ epatch_user
+}
+
+src_configure() {
+ local myconf=(
+ --libdir="${MY_LIBDIR}"
+ --bashcompletiondir="$(get_bashcompdir)"
+ )
+
+ if use systemd; then
+ myconf+=( --systemdsystemunitdir="$(systemd_get_unitdir)" )
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ tc-export CC
+ emake doc install/dracut-install skipcpio/skipcpio
+}
+
+src_install() {
+ default
+
+ local my_libdir="${MY_LIBDIR}"
+ local dracutlibdir="${my_libdir#/}/dracut"
+
+ echo "DRACUT_VERSION=$PVR" > "${D%/}/${dracutlibdir}/dracut-version.sh"
+
+ insinto "${dracutlibdir}/dracut.conf.d/"
+ newins dracut.conf.d/gentoo.conf.example gentoo.conf
+
+ insinto /etc/logrotate.d
+ newins dracut.logrotate dracut
+
+ dodir /var/lib/dracut/overlay
+
+ dohtml dracut.html
+
+ if ! use systemd; then
+ # Scripts in kernel/install.d are systemd-specific
+ rm -r "${D%/}/${my_libdir}/kernel" || die
+ fi
+
+ #
+ # Modules
+ #
+ local module
+ modules_dir="${D%/}/${dracutlibdir}/modules.d"
+
+ use debug || rm_module 95debug
+ use selinux || rm_module 98selinux
+
+ if use systemd; then
+ # With systemd following modules do not make sense
+ rm_module 96securityfs 97masterkey 98integrity
+ else
+ rm_module 00systemd 98dracut-systemd
+ # Without systemd following modules do not make sense
+ rm_module 00systemd-bootchart 01systemd-initrd 02systemd-networkd
+ fi
+
+ # Remove modules which won't work for sure
+ rm_module 95fcoe # no tools
+ # fips module depends on masked app-crypt/hmaccalc
+ rm_module 01fips 02fips-aesni
+}
+
+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 desc_DEVTMPFS="Maintain a devtmpfs filesystem to mount at /dev"
+ local desc_BLK_DEV_INITRD="Initial RAM filesystem and RAM disk "\
+"(initramfs/initrd) support"
+
+ local opt desc
+
+ # Generate ERROR_* variables for check_extra_config.
+ for opt in ${CONFIG_CHECK}; do
+ opt=${opt#\~}
+ desc=desc_${opt}
+ eval "local ERROR_${opt}='CONFIG_${opt}: \"${!desc}\"" \
+ "is missing and REQUIRED'"
+ done
+
+ check_extra_config
+ echo
+ else
+ ewarn ""
+ ewarn "Your kernel configuration couldn't be checked. Do you have"
+ ewarn "/usr/src/linux/.config file there? Please check manually if"
+ ewarn "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/curl "net-misc/dhcp[client]" \
+ sys-apps/iproute2
+ 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 "Framebuffer splash (media-gfx/splashutils)" \
+ media-gfx/splashutils
+ 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 syslog-ng or rsyslog" app-admin/syslog-ng \
+ app-admin/rsyslog
+}
diff --git a/sys-kernel/dracut/files/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch b/sys-kernel/dracut/files/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch
new file mode 100644
index 00000000..fd6f118
--- /dev/null
+++ b/sys-kernel/dracut/files/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch
@@ -0,0 +1,32 @@
+From c41df7e1db1adc51399ab2c22f251b15eb2065b1 Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Tue, 5 Jan 2016 22:11:57 +0300
+Subject: [PATCH] base/dracut-lib.sh:dev_unit_name() guard against $dev
+ beginning with "-"
+
+crypt/parse-crypt.sh generate initqueue job which always call
+dev_unit_name() with an argument beginning with "-". This results
+in the following error:
+
+dracut-initqueue[307]: + systemd-escape -p -cfb4aa43-2f02-4c6b-a313-60ea99288087
+dracut-initqueue[307]: systemd-escape: invalid option -- 'c'
+---
+ modules.d/99base/dracut-lib.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index ad03394..0a0b1b9 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -874,7 +874,7 @@ dev_unit_name()
+ local dev="$1"
+
+ if command -v systemd-escape >/dev/null; then
+- systemd-escape -p "$dev"
++ systemd-escape -p -- "$dev"
+ return
+ fi
+
+--
+2.10.2
+
diff --git a/sys-kernel/dracut/files/044-0002-systemd-initrd-add-initrd-root-device.target.patch b/sys-kernel/dracut/files/044-0002-systemd-initrd-add-initrd-root-device.target.patch
new file mode 100644
index 00000000..21cb679
--- /dev/null
+++ b/sys-kernel/dracut/files/044-0002-systemd-initrd-add-initrd-root-device.target.patch
@@ -0,0 +1,24 @@
+From d4efc0aeeecc470d9a267b7f3c130f472488905c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@redhat.com>
+Date: Wed, 25 May 2016 15:06:29 +0200
+Subject: [PATCH] systemd-initrd: add initrd-root-device.target
+
+---
+ modules.d/01systemd-initrd/module-setup.sh | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules.d/01systemd-initrd/module-setup.sh b/modules.d/01systemd-initrd/module-setup.sh
+index fb6a9ea..c1ccd2a 100755
+--- a/modules.d/01systemd-initrd/module-setup.sh
++++ b/modules.d/01systemd-initrd/module-setup.sh
+@@ -28,6 +28,7 @@ install() {
+ inst_multiple -o \
+ $systemdsystemunitdir/initrd.target \
+ $systemdsystemunitdir/initrd-fs.target \
++ $systemdsystemunitdir/initrd-root-device.target \
+ $systemdsystemunitdir/initrd-root-fs.target \
+ $systemdsystemunitdir/initrd-switch-root.target \
+ $systemdsystemunitdir/initrd-switch-root.service \
+--
+2.10.2
+
diff --git a/sys-kernel/dracut/files/044-0003-50-dracut.install-use-bin-bash-shebang.patch b/sys-kernel/dracut/files/044-0003-50-dracut.install-use-bin-bash-shebang.patch
new file mode 100644
index 00000000..85ebc7e
--- /dev/null
+++ b/sys-kernel/dracut/files/044-0003-50-dracut.install-use-bin-bash-shebang.patch
@@ -0,0 +1,23 @@
+From 69395a528aed99ec04b16c14ebacf4c2e10afd26 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Fri, 4 Nov 2016 13:09:28 -0400
+Subject: [PATCH] 50-dracut.install: use /bin/bash shebang
+
+This script utilizes several bash-specific constructs.
+---
+ 50-dracut.install | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/50-dracut.install b/50-dracut.install
+index 7d081d5..54c71d4 100755
+--- a/50-dracut.install
++++ b/50-dracut.install
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+
+ COMMAND="$1"
+ KERNEL_VERSION="$2"
+--
+2.10.2
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2017-02-09 18:47 Patrick McLean
0 siblings, 0 replies; 21+ messages in thread
From: Patrick McLean @ 2017-02-09 18:47 UTC (permalink / raw
To: gentoo-commits
commit: 8a7aca3ac5f9df6d2782e53a7ead3620ab56f9b0
Author: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 9 18:41:50 2017 +0000
Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Feb 9 18:47:26 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8a7aca3a
sys-kernel/dracut: Revision bump, add patches for bash-4.4
Gentoo-Bug: 594834
Package-Manager: Portage-2.3.3, Repoman-2.3.1
sys-kernel/dracut/dracut-044-r2.ebuild | 263 +++++++++++++++++++++
sys-kernel/dracut/files/dracut-044-bash-4.4.patch | 80 +++++++
.../dracut-044-preserve-xattrs-when-copying.patch | 51 ++++
3 files changed, 394 insertions(+)
diff --git a/sys-kernel/dracut/dracut-044-r2.ebuild b/sys-kernel/dracut/dracut-044-r2.ebuild
new file mode 100644
index 0000000000..394da6ea72
--- /dev/null
+++ b/sys-kernel/dracut/dracut-044-r2.ebuild
@@ -0,0 +1,263 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit bash-completion-r1 linux-info toolchain-funcs systemd
+
+DESCRIPTION="Generic initramfs generation tool"
+HOMEPAGE="https://dracut.wiki.kernel.org"
+SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.xz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="debug selinux systemd"
+
+RESTRICT="test"
+
+CDEPEND="virtual/udev
+ systemd? ( >=sys-apps/systemd-199 )
+ "
+RDEPEND="${CDEPEND}
+ app-arch/cpio
+ >=app-shells/bash-4.0
+ >sys-apps/kmod-5[tools]
+ || (
+ >=sys-apps/sysvinit-2.87-r3
+ sys-apps/systemd[sysv-utils]
+ sys-apps/systemd-sysv-utils
+ )
+ >=sys-apps/util-linux-2.21
+
+ debug? ( dev-util/strace )
+ selinux? (
+ sys-libs/libselinux
+ sys-libs/libsepol
+ sec-policy/selinux-dracut
+ )
+ "
+DEPEND="${CDEPEND}
+ app-text/asciidoc
+ >=dev-libs/libxslt-1.1.26
+ app-text/docbook-xml-dtd:4.5
+ >=app-text/docbook-xsl-stylesheets-1.75.2
+ virtual/pkgconfig
+ "
+
+DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules
+ README.testsuite TODO )
+MY_LIBDIR=/usr/lib
+QA_MULTILIB_PATHS="
+ usr/lib/dracut/dracut-install
+ usr/lib/dracut/skipcpio
+ "
+
+PATCHES=(
+ "${FILESDIR}"/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch
+ "${FILESDIR}"/044-0002-systemd-initrd-add-initrd-root-device.target.patch
+ "${FILESDIR}"/044-0003-50-dracut.install-use-bin-bash-shebang.patch
+ "${FILESDIR}"/dracut-044-bash-4.4.patch
+ "${FILESDIR}"/dracut-044-preserve-xattrs-when-copying.patch
+)
+
+#
+# Helper functions
+#
+
+# Removes module from modules.d.
+# $1 = module name
+# Module name can be specified without number prefix.
+rm_module() {
+ local force m
+ [[ $1 = -f ]] && force=-f
+
+ for m in $@; do
+ if [[ $m =~ ^[0-9][0-9][^\ ]*$ ]]; then
+ rm ${force} --interactive=never -r "${modules_dir}"/$m
+ else
+ rm ${force} --interactive=never -r "${modules_dir}"/[0-9][0-9]$m
+ fi
+ done
+}
+
+src_prepare() {
+ local libdirs="/$(get_libdir) /usr/$(get_libdir)"
+ if [[ ${SYMLINK_LIB} = yes ]]; then
+ # Preserve lib -> lib64 symlinks in initramfs
+ [[ $libdirs =~ /lib\ ]] || libdirs+=" /lib /usr/lib"
+ fi
+ einfo "Setting libdirs to \"${libdirs}\" ..."
+ sed -e "3alibdirs=\"${libdirs}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+
+ local udevdir="$("$(tc-getPKG_CONFIG)" udev --variable=udevdir)"
+ einfo "Setting udevdir to ${udevdir}..."
+ sed -r -e "s|^(udevdir=).*$|\1${udevdir}|" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+
+ if use systemd; then
+ local systemdutildir="$(systemd_get_utildir)"
+ local systemdsystemunitdir="$(systemd_get_unitdir)"
+ local systemdsystemconfdir="$("$(tc-getPKG_CONFIG)" systemd \
+ --variable=systemdsystemconfdir)"
+ [[ ${systemdsystemconfdir} ]] \
+ || systemdsystemconfdir=/etc/systemd/system
+ einfo "Setting systemdutildir to ${systemdutildir} and ..."
+ sed -e "5asystemdutildir=\"${systemdutildir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ einfo "Setting systemdsystemunitdir to ${systemdsystemunitdir} and..."
+ sed -e "6asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ einfo "Setting systemdsystemconfdir to ${systemdsystemconfdir}..."
+ sed -e "7asystemdsystemconfdir=\"${systemdsystemconfdir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ else
+ local systemdutildir="/lib/systemd"
+ einfo "Setting systemdutildir for standalone udev to" \
+ "${systemdutildir}..."
+ sed -e "5asystemdutildir=\"${systemdutildir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ fi
+
+ default
+}
+
+src_configure() {
+ local myconf=(
+ --libdir="${MY_LIBDIR}"
+ --bashcompletiondir="$(get_bashcompdir)"
+ )
+
+ if use systemd; then
+ myconf+=( --systemdsystemunitdir="$(systemd_get_unitdir)" )
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ tc-export CC
+ emake doc install/dracut-install skipcpio/skipcpio
+}
+
+src_install() {
+ default
+
+ local my_libdir="${MY_LIBDIR}"
+ local dracutlibdir="${my_libdir#/}/dracut"
+
+ echo "DRACUT_VERSION=$PVR" > "${D%/}/${dracutlibdir}/dracut-version.sh"
+
+ insinto "${dracutlibdir}/dracut.conf.d/"
+ newins dracut.conf.d/gentoo.conf.example gentoo.conf
+
+ insinto /etc/logrotate.d
+ newins dracut.logrotate dracut
+
+ dodir /var/lib/dracut/overlay
+
+ dodoc dracut.html
+
+ if ! use systemd; then
+ # Scripts in kernel/install.d are systemd-specific
+ rm -r "${D%/}/${my_libdir}/kernel" || die
+ fi
+
+ #
+ # Modules
+ #
+ local module
+ modules_dir="${D%/}/${dracutlibdir}/modules.d"
+
+ use debug || rm_module 95debug
+ use selinux || rm_module 98selinux
+
+ if use systemd; then
+ # With systemd following modules do not make sense
+ rm_module 96securityfs 97masterkey 98integrity
+ else
+ rm_module 00systemd 98dracut-systemd
+ # Without systemd following modules do not make sense
+ rm_module 00systemd-bootchart 01systemd-initrd 02systemd-networkd
+ fi
+
+ # Remove modules which won't work for sure
+ rm_module 95fcoe # no tools
+ # fips module depends on masked app-crypt/hmaccalc
+ rm_module 01fips 02fips-aesni
+}
+
+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 desc_DEVTMPFS="Maintain a devtmpfs filesystem to mount at /dev"
+ local desc_BLK_DEV_INITRD="Initial RAM filesystem and RAM disk "\
+"(initramfs/initrd) support"
+
+ local opt desc
+
+ # Generate ERROR_* variables for check_extra_config.
+ for opt in ${CONFIG_CHECK}; do
+ opt=${opt#\~}
+ desc=desc_${opt}
+ eval "local ERROR_${opt}='CONFIG_${opt}: \"${!desc}\"" \
+ "is missing and REQUIRED'"
+ done
+
+ check_extra_config
+ echo
+ else
+ ewarn ""
+ ewarn "Your kernel configuration couldn't be checked. Do you have"
+ ewarn "/usr/src/linux/.config file there? Please check manually if"
+ ewarn "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/curl "net-misc/dhcp[client]" \
+ sys-apps/iproute2
+ 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 "Framebuffer splash (media-gfx/splashutils)" \
+ media-gfx/splashutils
+ 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 syslog-ng or rsyslog" app-admin/syslog-ng \
+ app-admin/rsyslog
+}
diff --git a/sys-kernel/dracut/files/dracut-044-bash-4.4.patch b/sys-kernel/dracut/files/dracut-044-bash-4.4.patch
new file mode 100644
index 0000000000..3144c8e6b7
--- /dev/null
+++ b/sys-kernel/dracut/files/dracut-044-bash-4.4.patch
@@ -0,0 +1,80 @@
+diff -urN dracut-044.orig/modules.d/50drm/module-setup.sh dracut-044/modules.d/50drm/module-setup.sh
+--- dracut-044.orig/modules.d/50drm/module-setup.sh 2015-11-25 16:22:28.000000000 +0300
++++ dracut-044/modules.d/50drm/module-setup.sh 2016-09-28 02:50:08.914967926 +0300
+@@ -24,9 +24,9 @@
+ local _fname _fcont
+ while read _fname || [ -n "$_fname" ]; do
+ case "$_fname" in
+- *.ko) _fcont="$(< $_fname)" ;;
+- *.ko.gz) _fcont="$(gzip -dc $_fname)" ;;
+- *.ko.xz) _fcont="$(xz -dc $_fname)" ;;
++ *.ko) _fcont="$(< $_fname tr -d \\0)" ;;
++ *.ko.gz) _fcont="$(gzip -dc $_fname | tr -d \\0)" ;;
++ *.ko.xz) _fcont="$(xz -dc $_fname | tr -d \\0)" ;;
+ esac
+ [[ $_fcont =~ $_drm_drivers
+ && ! $_fcont =~ iw_handler_get_spy ]] \
+diff -urN dracut-044.orig/modules.d/90kernel-modules/module-setup.sh dracut-044/modules.d/90kernel-modules/module-setup.sh
+--- dracut-044.orig/modules.d/90kernel-modules/module-setup.sh 2015-11-25 16:22:28.000000000 +0300
++++ dracut-044/modules.d/90kernel-modules/module-setup.sh 2016-09-28 02:49:11.725390294 +0300
+@@ -10,9 +10,9 @@
+ function bmf1() {
+ local _f
+ while read _f || [ -n "$_f" ]; do case "$_f" in
+- *.ko) [[ $(< $_f) =~ $_blockfuncs ]] && echo "$_f" ;;
+- *.ko.gz) [[ $(gzip -dc <$_f) =~ $_blockfuncs ]] && echo "$_f" ;;
+- *.ko.xz) [[ $(xz -dc <$_f) =~ $_blockfuncs ]] && echo "$_f" ;;
++ *.ko) [[ $(< $_f tr -d \\0) =~ $_blockfuncs ]] && echo "$_f" ;;
++ *.ko.gz) [[ $(gzip -dc <$_f | tr -d \\0) =~ $_blockfuncs ]] && echo "$_f" ;;
++ *.ko.xz) [[ $(xz -dc <$_f | tr -d \\0) =~ $_blockfuncs ]] && echo "$_f" ;;
+ esac
+ done
+ return 0
+diff -urN dracut-044.orig/modules.d/90kernel-network-modules/module-setup.sh dracut-044/modules.d/90kernel-network-modules/module-setup.sh
+--- dracut-044.orig/modules.d/90kernel-network-modules/module-setup.sh 2015-11-25 16:22:28.000000000 +0300
++++ dracut-044/modules.d/90kernel-network-modules/module-setup.sh 2016-09-28 02:51:08.202422231 +0300
+@@ -26,9 +26,9 @@
+ while read _fname; do
+ [[ $_fname =~ $_unwanted_drivers ]] && continue
+ case "$_fname" in
+- *.ko) _fcont="$(< $_fname)" ;;
+- *.ko.gz) _fcont="$(gzip -dc $_fname)" ;;
+- *.ko.xz) _fcont="$(xz -dc $_fname)" ;;
++ *.ko) _fcont="$(< $_fname tr -d \\0)" ;;
++ *.ko.gz) _fcont="$(gzip -dc $_fname | tr -d \\0)" ;;
++ *.ko.xz) _fcont="$(xz -dc $_fname | tr -d \\0)" ;;
+ esac
+ [[ $_fcont =~ $_net_drivers
+ && ! $_fcont =~ iw_handler_get_spy ]] \
+diff -urN dracut-044.orig/modules.d/90multipath/module-setup.sh dracut-044/modules.d/90multipath/module-setup.sh
+--- dracut-044.orig/modules.d/90multipath/module-setup.sh 2015-11-25 16:22:28.000000000 +0300
++++ dracut-044/modules.d/90multipath/module-setup.sh 2016-09-28 02:49:11.726390235 +0300
+@@ -58,9 +58,9 @@
+ local _f
+ while read _f || [ -n "$_f" ]; do
+ case "$_f" in
+- *.ko) [[ $(< $_f) =~ $_funcs ]] && echo "$_f" ;;
+- *.ko.gz) [[ $(gzip -dc <$_f) =~ $_funcs ]] && echo "$_f" ;;
+- *.ko.xz) [[ $(xz -dc <$_f) =~ $_funcs ]] && echo "$_f" ;;
++ *.ko) [[ $(< $_f tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
++ *.ko.gz) [[ $(gzip -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
++ *.ko.xz) [[ $(xz -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
+ esac
+ done
+ return 0
+diff -urN dracut-044.orig/modules.d/95iscsi/module-setup.sh dracut-044/modules.d/95iscsi/module-setup.sh
+--- dracut-044.orig/modules.d/95iscsi/module-setup.sh 2015-11-25 16:22:28.000000000 +0300
++++ dracut-044/modules.d/95iscsi/module-setup.sh 2016-09-28 02:49:11.726390235 +0300
+@@ -168,9 +168,9 @@
+ local _f
+ while read _f || [ -n "$_f" ]; do
+ case "$_f" in
+- *.ko) [[ $(< $_f) =~ $_funcs ]] && echo "$_f" ;;
+- *.ko.gz) [[ $(gzip -dc <$_f) =~ $_funcs ]] && echo "$_f" ;;
+- *.ko.xz) [[ $(xz -dc <$_f) =~ $_funcs ]] && echo "$_f" ;;
++ *.ko) [[ $(< $_f tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
++ *.ko.gz) [[ $(gzip -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
++ *.ko.xz) [[ $(xz -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
+ esac
+ done
+ return 0
diff --git a/sys-kernel/dracut/files/dracut-044-preserve-xattrs-when-copying.patch b/sys-kernel/dracut/files/dracut-044-preserve-xattrs-when-copying.patch
new file mode 100644
index 0000000000..3146d8485a
--- /dev/null
+++ b/sys-kernel/dracut/files/dracut-044-preserve-xattrs-when-copying.patch
@@ -0,0 +1,51 @@
+From 61c761bc2c35fb244d46fbbde97161f5927071dc Mon Sep 17 00:00:00 2001
+From: Stefan Berger <stefanb@us.ibm.com>
+Date: Tue, 25 Oct 2016 15:09:49 -0400
+Subject: [PATCH] dracut-install: preserve extended attributes when copying
+ files
+
+Preserve extended attributes when copying files using dracut-install.
+
+The copying of extended attributes avoids file execution denials when
+the Linux Integrity Measurement's Appraisal mode is active. In that mode
+executables need their file signatures copied. In particular, this patch
+solves the problem that dependent libaries are not included in the
+initramfs since the copied programs could not be executed due to missing
+signatures. The following audit record shows the type of failure that
+is now prevented:
+
+type=INTEGRITY_DATA msg=audit(1477409025.492:30065): pid=922 uid=0
+ auid=4294967295 ses=4294967295
+ subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
+ op="appraise_data" cause="IMA-signature-required"
+ comm="ld-linux-x86-64"
+ name="/var/tmp/dracut.R6ySa4/initramfs/usr/bin/journalctl"
+ dev="dm-0" ino=37136 res=0
+
+Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
+---
+ install/dracut-install.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/install/dracut-install.c b/install/dracut-install.c
+index fe30bba..c0f1c17 100644
+--- a/install/dracut-install.c
++++ b/install/dracut-install.c
+@@ -294,7 +294,7 @@ static int cp(const char *src, const char *dst)
+ normal_copy:
+ pid = fork();
+ if (pid == 0) {
+- execlp("cp", "cp", "--reflink=auto", "--sparse=auto", "--preserve=mode,timestamps", "-fL", src, dst,
++ execlp("cp", "cp", "--reflink=auto", "--sparse=auto", "--preserve=mode,timestamps,xattr", "-fL", src, dst,
+ NULL);
+ _exit(EXIT_FAILURE);
+ }
+@@ -302,7 +302,7 @@ static int cp(const char *src, const char *dst)
+ while (waitpid(pid, &ret, 0) < 0) {
+ if (errno != EINTR) {
+ ret = -1;
+- log_error("Failed: cp --reflink=auto --sparse=auto --preserve=mode,timestamps -fL %s %s", src,
++ log_error("Failed: cp --reflink=auto --sparse=auto --preserve=mode,timestamps,xattr -fL %s %s", src,
+ dst);
+ break;
+ }
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2017-02-09 18:47 Patrick McLean
0 siblings, 0 replies; 21+ messages in thread
From: Patrick McLean @ 2017-02-09 18:47 UTC (permalink / raw
To: gentoo-commits
commit: 991b1645a9b9f46b55a3eaee3ef7abcbbca2533a
Author: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 9 18:45:28 2017 +0000
Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Feb 9 18:47:28 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=991b1645
sys-kernel/dracut: Remove old versions
Package-Manager: Portage-2.3.3, Repoman-2.3.1
sys-kernel/dracut/Manifest | 3 -
sys-kernel/dracut/dracut-040-r3.ebuild | 254 -------------------
sys-kernel/dracut/dracut-041-r3.ebuild | 262 --------------------
sys-kernel/dracut/dracut-043-r2.ebuild | 261 -------------------
sys-kernel/dracut/dracut-044.ebuild | 253 -------------------
...01-dracut.sh-do-not-bail-out-if-kernel-mo.patch | 42 ----
...02-dracut-functions.sh-support-for-altern.patch | 41 ---
...03-gentoo.conf-let-udevdir-be-handled-by-.patch | 30 ---
...04-Use-the-same-paths-in-dracut.sh-as-tho.patch | 74 ------
...05-Install-dracut-install-into-libexec-di.patch | 81 ------
...006-resume-fix-swap-detection-in-hostonly.patch | 31 ---
...07-dracut.sh-also-mkdir-run-lock-which-is.patch | 25 --
...08-dracut.sh-no-need-to-make-subdirs-in-r.patch | 25 --
...09-lvm-install-thin-utils-for-non-hostonl.patch | 41 ---
.../files/034-0011-lvm-fix-thin-recognition.patch | 40 ---
...012-lvm-always-install-thin-utils-for-lvm.patch | 79 ------
.../files/034-0013-usrmount-always-install.patch | 31 ---
.../034-0014-udev-rules-add-eudev-rules.patch | 29 ---
...01-dracut-functions.sh-support-for-altern.patch | 41 ---
...02-gentoo.conf-let-udevdir-be-handled-by-.patch | 30 ---
...03-Use-the-same-paths-in-dracut.sh-as-tho.patch | 74 ------
...04-Install-dracut-install-into-libexec-di.patch | 81 ------
.../dracut/files/040-0005-NEWS-add-040-entry.patch | 25 --
...06-Don-t-pass-rsyncable-option-to-gzip-Ge.patch | 26 --
...07-Take-into-account-lib64-dirs-when-dete.patch | 44 ----
...01-Use-the-same-paths-in-dracut.sh-as-tho.patch | 74 ------
...02-Install-dracut-install-and-skipcpio-in.patch | 125 ----------
...03-Take-into-account-lib64-dirs-when-dete.patch | 60 -----
.../dracut/files/041-0004-Portability-fixes.patch | 63 -----
...41-0005-base-dracut-lib.sh-remove-bashism.patch | 27 --
...01-Revert-lvm-Don-t-activate-LVs-with-act.patch | 33 ---
...02-Replace-echo-n-with-printf-in-code-wit.patch | 275 ---------------------
...03-syncheck-Look-for-echo-n-usage-in-modu.patch | 26 --
...04-dracut-initramfs-restore-make-mount-er.patch | 28 ---
34 files changed, 2634 deletions(-)
diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest
index 8d50caa9a0..6525882cc1 100644
--- a/sys-kernel/dracut/Manifest
+++ b/sys-kernel/dracut/Manifest
@@ -1,4 +1 @@
-DIST dracut-040.tar.xz 263944 SHA256 b6e743353804b46e350177b9ecb9a8511df7e8c4ff9e0b4f3b4f72bc509c98a3 SHA512 6bc6a714572cc18c4cf9f9c1af4bc787287554ead1e39fbec8a1b8986585cf8c7c7ef476f87fc361f565eb344fe2594d63185ffe02cc5fa7cc3eaa03bcb4b72b WHIRLPOOL d8dbdbf6cb7705a0b7793f82a0323c49b4ac0dc3d61cf0073e3061f34af0b5c92dd21a7dc080f2a8d24d3eef3abc99df91f113675721267352f934f1319c66ba
-DIST dracut-041.tar.xz 268288 SHA256 8ece6c2240bf0e9283e5f717b65dfcd6830b3ef7f8d1c01b60014052f1063251 SHA512 358444588febfc482627eb5423b8a87b588ed3842ae814b9f88d8c5dfec28419f2aea92cd54c11c4949b9968d60d7e05ba9cfea78d26d2dc6f2a943a38b28dac WHIRLPOOL ab538fe1ffeb3d43185c6222a6e65af8c684b292be571e0571fdd69011f654c3093f3a2256f3003d5dbaf07d0a26f83d82055885bae1868738ad15dc74982e72
-DIST dracut-043.tar.xz 272744 SHA256 1484b558ed20330125aa04dcccab84da15c5689e19068285aa011f7177889cd1 SHA512 a36271e1ed4c1205a01bece7652095a8bfd722bcf7239a93baeb21e7e0a60fa86dd6657aa69b594241981056c87c6fe9d372f18ac045785122a9cafe8b0c31eb WHIRLPOOL d1efd59e2c41478e489d4707114b141e8bb0501c54209e364edc2060d3ffac7f2e1afd640b0812a452e7fbe7f9134e5e96436f0f1f2a54613d9468f9dca61a0c
DIST dracut-044.tar.xz 280004 SHA256 84b97c9b0120e9fde06c3b9cf2ede1c4632cccd8e085e980b9ec9c788655af05 SHA512 bc788076e425b223d98cf0e0b15ff57d75d423991d7a67fb564a2857c38d5c3a21d846d2ca4523f9d4b0128bb981d09b5c26031435c5fc5e30f53080bca19b3d WHIRLPOOL 684591df596fa902447e671adfaeeb8cdc469c257f756616e42747835b71be7caaac9c72bd4b1a5ba5728ec4332baaba1d265cddb1c30cbfa65cf4dce0690bc0
diff --git a/sys-kernel/dracut/dracut-040-r3.ebuild b/sys-kernel/dracut/dracut-040-r3.ebuild
deleted file mode 100644
index cc3554d189..0000000000
--- a/sys-kernel/dracut/dracut-040-r3.ebuild
+++ /dev/null
@@ -1,254 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=4
-
-inherit bash-completion-r1 eutils linux-info multilib systemd
-
-DESCRIPTION="Generic initramfs generation tool"
-HOMEPAGE="https://dracut.wiki.kernel.org"
-SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.xz"
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-IUSE="debug selinux systemd"
-
-RESTRICT="test"
-
-CDEPEND="virtual/udev
- systemd? ( >=sys-apps/systemd-199 )
- "
-RDEPEND="${CDEPEND}
- app-arch/cpio
- >=app-shells/bash-4.0
- >sys-apps/kmod-5[tools]
- || ( >=sys-apps/sysvinit-2.87-r3 sys-apps/systemd[sysv-utils] sys-apps/systemd-sysv-utils )
- >=sys-apps/util-linux-2.21
-
- debug? ( dev-util/strace )
- selinux? (
- sys-libs/libselinux
- sys-libs/libsepol
- sec-policy/selinux-dracut
- )
- "
-DEPEND="${CDEPEND}
- app-text/asciidoc
- >=dev-libs/libxslt-1.1.26
- app-text/docbook-xml-dtd:4.5
- >=app-text/docbook-xsl-stylesheets-1.75.2
- virtual/pkgconfig
- "
-
-DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules
- README.testsuite TODO )
-MY_LIBDIR=/usr/lib
-PATCHES=(
- "${FILESDIR}/${PV}-0001-dracut-functions.sh-support-for-altern.patch"
- "${FILESDIR}/${PV}-0002-gentoo.conf-let-udevdir-be-handled-by-.patch"
- "${FILESDIR}/${PV}-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch"
- "${FILESDIR}/${PV}-0005-NEWS-add-040-entry.patch"
- "${FILESDIR}/${PV}-0006-Don-t-pass-rsyncable-option-to-gzip-Ge.patch"
- "${FILESDIR}/${PV}-0007-Take-into-account-lib64-dirs-when-dete.patch"
- )
-QA_MULTILIB_PATHS="
- usr/lib/dracut/dracut-install
- usr/lib/dracut/skipcpio
- "
-
-#
-# Helper functions
-#
-
-# Removes module from modules.d.
-# $1 = module name
-# Module name can be specified without number prefix.
-rm_module() {
- local force m
- [[ $1 = -f ]] && force=-f
-
- for m in $@; do
- if [[ $m =~ ^[0-9][0-9][^\ ]*$ ]]; then
- rm ${force} --interactive=never -r "${modules_dir}"/$m
- else
- rm ${force} --interactive=never -r "${modules_dir}"/[0-9][0-9]$m
- fi
- done
-}
-
-src_prepare() {
- epatch "${PATCHES[@]}"
-
- local libdirs="/$(get_libdir) /usr/$(get_libdir)"
- if [[ ${SYMLINK_LIB} = yes ]]; then
- # Preserve lib -> lib64 symlinks in initramfs
- [[ $libdirs =~ /lib\ ]] || libdirs+=" /lib /usr/lib"
- fi
- einfo "Setting libdirs to \"${libdirs}\" ..."
- sed -e "3alibdirs=\"${libdirs}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
-
- local udevdir="$("$(tc-getPKG_CONFIG)" udev --variable=udevdir)"
- einfo "Setting udevdir to ${udevdir}..."
- sed -r -e "s|^(udevdir=).*$|\1${udevdir}|" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
-
- if use systemd; then
- local systemdutildir="$(systemd_get_utildir)"
- local systemdsystemunitdir="$(systemd_get_unitdir)"
- local systemdsystemconfdir="$("$(tc-getPKG_CONFIG)" systemd \
- --variable=systemdsystemconfdir)"
- [[ ${systemdsystemconfdir} ]] \
- || systemdsystemconfdir=/etc/systemd/system
- einfo "Setting systemdutildir to ${systemdutildir} and ..."
- sed -e "5asystemdutildir=\"${systemdutildir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- einfo "Setting systemdsystemunitdir to ${systemdsystemunitdir} and..."
- sed -e "6asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- einfo "Setting systemdsystemconfdir to ${systemdsystemconfdir}..."
- sed -e "7asystemdsystemconfdir=\"${systemdsystemconfdir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- else
- local systemdutildir="/lib/systemd"
- einfo "Setting systemdutildir for standalone udev to" \
- "${systemdutildir}..."
- sed -e "5asystemdutildir=\"${systemdutildir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- fi
-
- epatch_user
-}
-
-src_configure() {
- local myconf="--libdir=${MY_LIBDIR}"
- myconf+=" --bashcompletiondir=$(get_bashcompdir)"
-
- if use systemd; then
- myconf+=" --systemdsystemunitdir='$(systemd_get_unitdir)'"
- fi
-
- econf ${myconf}
-}
-
-src_compile() {
- tc-export CC
- emake doc install/dracut-install skipcpio/skipcpio
-}
-
-src_install() {
- default
-
- local my_libdir="${MY_LIBDIR}"
- local dracutlibdir="${my_libdir#/}/dracut"
-
- echo "DRACUT_VERSION=$PVR" > "${D%/}/${dracutlibdir}/dracut-version.sh"
-
- insinto "${dracutlibdir}/dracut.conf.d/"
- newins dracut.conf.d/gentoo.conf.example gentoo.conf
-
- insinto /etc/logrotate.d
- newins dracut.logrotate dracut
-
- dodir /var/lib/dracut/overlay
-
- dohtml dracut.html
-
- #
- # Modules
- #
- local module
- modules_dir="${D%/}/${dracutlibdir}/modules.d"
-
- use debug || rm_module 95debug
- use selinux || rm_module 98selinux
-
- if use systemd; then
- # With systemd following modules do not make sense
- rm_module 96securityfs 97masterkey 98integrity
- else
- rm_module 98systemd
- # Without systemd following modules do not make sense
- rm_module 00systemd-bootchart
- fi
-
- # Remove modules which won't work for sure
- rm_module 95fcoe # no tools
- # fips module depends on masked app-crypt/hmaccalc
- rm_module 01fips 02fips-aesni
-}
-
-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 desc_DEVTMPFS="Maintain a devtmpfs filesystem to mount at /dev"
- local desc_BLK_DEV_INITRD="Initial RAM filesystem and RAM disk "\
-"(initramfs/initrd) support"
-
- local opt desc
-
- # Generate ERROR_* variables for check_extra_config.
- for opt in ${CONFIG_CHECK}; do
- opt=${opt#\~}
- desc=desc_${opt}
- eval "local ERROR_${opt}='CONFIG_${opt}: \"${!desc}\"" \
- "is missing and REQUIRED'"
- done
-
- check_extra_config
- echo
- else
- ewarn ""
- ewarn "Your kernel configuration couldn't be checked. Do you have"
- ewarn "/usr/src/linux/.config file there? Please check manually if"
- ewarn "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/curl "net-misc/dhcp[client]" \
- sys-apps/iproute2
- 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 "Framebuffer splash (media-gfx/splashutils)" \
- media-gfx/splashutils
- 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 syslog-ng or rsyslog" app-admin/syslog-ng \
- app-admin/rsyslog
-}
diff --git a/sys-kernel/dracut/dracut-041-r3.ebuild b/sys-kernel/dracut/dracut-041-r3.ebuild
deleted file mode 100644
index 9c8e7d6f94..0000000000
--- a/sys-kernel/dracut/dracut-041-r3.ebuild
+++ /dev/null
@@ -1,262 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=4
-
-inherit bash-completion-r1 eutils linux-info multilib systemd
-
-DESCRIPTION="Generic initramfs generation tool"
-HOMEPAGE="https://dracut.wiki.kernel.org"
-SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.xz"
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-IUSE="debug selinux systemd"
-
-RESTRICT="test"
-
-CDEPEND="virtual/udev
- systemd? ( >=sys-apps/systemd-199 )
- "
-RDEPEND="${CDEPEND}
- app-arch/cpio
- >=app-shells/bash-4.0
- >sys-apps/kmod-5[tools]
- || (
- >=sys-apps/sysvinit-2.87-r3
- sys-apps/systemd[sysv-utils]
- sys-apps/systemd-sysv-utils
- )
- >=sys-apps/util-linux-2.21
-
- debug? ( dev-util/strace )
- selinux? (
- sys-libs/libselinux
- sys-libs/libsepol
- sec-policy/selinux-dracut
- )
- "
-DEPEND="${CDEPEND}
- app-text/asciidoc
- >=dev-libs/libxslt-1.1.26
- app-text/docbook-xml-dtd:4.5
- >=app-text/docbook-xsl-stylesheets-1.75.2
- virtual/pkgconfig
- "
-
-DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules
- README.testsuite TODO )
-MY_LIBDIR=/usr/lib
-PATCHES=(
- "${FILESDIR}/${PV}-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch"
- "${FILESDIR}/${PV}-0002-Install-dracut-install-and-skipcpio-in.patch"
- "${FILESDIR}/${PV}-0003-Take-into-account-lib64-dirs-when-dete.patch"
- "${FILESDIR}/${PV}-0004-Portability-fixes.patch"
- "${FILESDIR}/${PV}-0005-base-dracut-lib.sh-remove-bashism.patch"
- )
-QA_MULTILIB_PATHS="
- usr/lib/dracut/dracut-install
- usr/lib/dracut/skipcpio
- "
-
-#
-# Helper functions
-#
-
-# Removes module from modules.d.
-# $1 = module name
-# Module name can be specified without number prefix.
-rm_module() {
- local force m
- [[ $1 = -f ]] && force=-f
-
- for m in $@; do
- if [[ $m =~ ^[0-9][0-9][^\ ]*$ ]]; then
- rm ${force} --interactive=never -r "${modules_dir}"/$m
- else
- rm ${force} --interactive=never -r "${modules_dir}"/[0-9][0-9]$m
- fi
- done
-}
-
-src_prepare() {
- epatch "${PATCHES[@]}"
-
- local libdirs="/$(get_libdir) /usr/$(get_libdir)"
- if [[ ${SYMLINK_LIB} = yes ]]; then
- # Preserve lib -> lib64 symlinks in initramfs
- [[ $libdirs =~ /lib\ ]] || libdirs+=" /lib /usr/lib"
- fi
- einfo "Setting libdirs to \"${libdirs}\" ..."
- sed -e "3alibdirs=\"${libdirs}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
-
- local udevdir="$("$(tc-getPKG_CONFIG)" udev --variable=udevdir)"
- einfo "Setting udevdir to ${udevdir}..."
- sed -r -e "s|^(udevdir=).*$|\1${udevdir}|" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
-
- if use systemd; then
- local systemdutildir="$(systemd_get_utildir)"
- local systemdsystemunitdir="$(systemd_get_unitdir)"
- local systemdsystemconfdir="$("$(tc-getPKG_CONFIG)" systemd \
- --variable=systemdsystemconfdir)"
- [[ ${systemdsystemconfdir} ]] \
- || systemdsystemconfdir=/etc/systemd/system
- einfo "Setting systemdutildir to ${systemdutildir} and ..."
- sed -e "5asystemdutildir=\"${systemdutildir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- einfo "Setting systemdsystemunitdir to ${systemdsystemunitdir} and..."
- sed -e "6asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- einfo "Setting systemdsystemconfdir to ${systemdsystemconfdir}..."
- sed -e "7asystemdsystemconfdir=\"${systemdsystemconfdir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- else
- local systemdutildir="/lib/systemd"
- einfo "Setting systemdutildir for standalone udev to" \
- "${systemdutildir}..."
- sed -e "5asystemdutildir=\"${systemdutildir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- fi
-
- epatch_user
-}
-
-src_configure() {
- local myconf="--libdir=${MY_LIBDIR}"
- myconf+=" --bashcompletiondir=$(get_bashcompdir)"
-
- if use systemd; then
- myconf+=" --systemdsystemunitdir='$(systemd_get_unitdir)'"
- fi
-
- econf ${myconf}
-}
-
-src_compile() {
- tc-export CC
- emake doc install/dracut-install skipcpio/skipcpio
-}
-
-src_install() {
- default
-
- local my_libdir="${MY_LIBDIR}"
- local dracutlibdir="${my_libdir#/}/dracut"
-
- echo "DRACUT_VERSION=$PVR" > "${D%/}/${dracutlibdir}/dracut-version.sh"
-
- insinto "${dracutlibdir}/dracut.conf.d/"
- newins dracut.conf.d/gentoo.conf.example gentoo.conf
-
- insinto /etc/logrotate.d
- newins dracut.logrotate dracut
-
- dodir /var/lib/dracut/overlay
-
- dohtml dracut.html
-
- if ! use systemd; then
- # Scripts in kernel/install.d are systemd-specific
- rm -r "${D%/}/${my_libdir}/kernel" || die
- fi
-
- #
- # Modules
- #
- local module
- modules_dir="${D%/}/${dracutlibdir}/modules.d"
-
- use debug || rm_module 95debug
- use selinux || rm_module 98selinux
-
- if use systemd; then
- # With systemd following modules do not make sense
- rm_module 96securityfs 97masterkey 98integrity
- else
- rm_module 98systemd
- # Without systemd following modules do not make sense
- rm_module 00systemd-bootchart
- fi
-
- # Remove modules which won't work for sure
- rm_module 95fcoe # no tools
- # fips module depends on masked app-crypt/hmaccalc
- rm_module 01fips 02fips-aesni
-}
-
-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 desc_DEVTMPFS="Maintain a devtmpfs filesystem to mount at /dev"
- local desc_BLK_DEV_INITRD="Initial RAM filesystem and RAM disk "\
-"(initramfs/initrd) support"
-
- local opt desc
-
- # Generate ERROR_* variables for check_extra_config.
- for opt in ${CONFIG_CHECK}; do
- opt=${opt#\~}
- desc=desc_${opt}
- eval "local ERROR_${opt}='CONFIG_${opt}: \"${!desc}\"" \
- "is missing and REQUIRED'"
- done
-
- check_extra_config
- echo
- else
- ewarn ""
- ewarn "Your kernel configuration couldn't be checked. Do you have"
- ewarn "/usr/src/linux/.config file there? Please check manually if"
- ewarn "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/curl "net-misc/dhcp[client]" \
- sys-apps/iproute2
- 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 "Framebuffer splash (media-gfx/splashutils)" \
- media-gfx/splashutils
- 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 syslog-ng or rsyslog" app-admin/syslog-ng \
- app-admin/rsyslog
-}
diff --git a/sys-kernel/dracut/dracut-043-r2.ebuild b/sys-kernel/dracut/dracut-043-r2.ebuild
deleted file mode 100644
index 2a65cf6abd..0000000000
--- a/sys-kernel/dracut/dracut-043-r2.ebuild
+++ /dev/null
@@ -1,261 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=4
-
-inherit bash-completion-r1 eutils linux-info multilib systemd
-
-DESCRIPTION="Generic initramfs generation tool"
-HOMEPAGE="https://dracut.wiki.kernel.org"
-SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.xz"
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-IUSE="debug selinux systemd"
-
-RESTRICT="test"
-
-CDEPEND="virtual/udev
- systemd? ( >=sys-apps/systemd-199 )
- "
-RDEPEND="${CDEPEND}
- app-arch/cpio
- >=app-shells/bash-4.0
- >sys-apps/kmod-5[tools]
- || (
- >=sys-apps/sysvinit-2.87-r3
- sys-apps/systemd[sysv-utils]
- sys-apps/systemd-sysv-utils
- )
- >=sys-apps/util-linux-2.21
-
- debug? ( dev-util/strace )
- selinux? (
- sys-libs/libselinux
- sys-libs/libsepol
- sec-policy/selinux-dracut
- )
- "
-DEPEND="${CDEPEND}
- app-text/asciidoc
- >=dev-libs/libxslt-1.1.26
- app-text/docbook-xml-dtd:4.5
- >=app-text/docbook-xsl-stylesheets-1.75.2
- virtual/pkgconfig
- "
-
-DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules
- README.testsuite TODO )
-MY_LIBDIR=/usr/lib
-PATCHES=(
- "${FILESDIR}/${PV}-0001-Revert-lvm-Don-t-activate-LVs-with-act.patch"
- "${FILESDIR}/${PV}-0002-Replace-echo-n-with-printf-in-code-wit.patch"
- "${FILESDIR}/${PV}-0003-syncheck-Look-for-echo-n-usage-in-modu.patch"
- "${FILESDIR}/${PV}-0004-dracut-initramfs-restore-make-mount-er.patch"
- )
-QA_MULTILIB_PATHS="
- usr/lib/dracut/dracut-install
- usr/lib/dracut/skipcpio
- "
-
-#
-# Helper functions
-#
-
-# Removes module from modules.d.
-# $1 = module name
-# Module name can be specified without number prefix.
-rm_module() {
- local force m
- [[ $1 = -f ]] && force=-f
-
- for m in $@; do
- if [[ $m =~ ^[0-9][0-9][^\ ]*$ ]]; then
- rm ${force} --interactive=never -r "${modules_dir}"/$m
- else
- rm ${force} --interactive=never -r "${modules_dir}"/[0-9][0-9]$m
- fi
- done
-}
-
-src_prepare() {
- epatch "${PATCHES[@]}"
-
- local libdirs="/$(get_libdir) /usr/$(get_libdir)"
- if [[ ${SYMLINK_LIB} = yes ]]; then
- # Preserve lib -> lib64 symlinks in initramfs
- [[ $libdirs =~ /lib\ ]] || libdirs+=" /lib /usr/lib"
- fi
- einfo "Setting libdirs to \"${libdirs}\" ..."
- sed -e "3alibdirs=\"${libdirs}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
-
- local udevdir="$("$(tc-getPKG_CONFIG)" udev --variable=udevdir)"
- einfo "Setting udevdir to ${udevdir}..."
- sed -r -e "s|^(udevdir=).*$|\1${udevdir}|" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
-
- if use systemd; then
- local systemdutildir="$(systemd_get_utildir)"
- local systemdsystemunitdir="$(systemd_get_unitdir)"
- local systemdsystemconfdir="$("$(tc-getPKG_CONFIG)" systemd \
- --variable=systemdsystemconfdir)"
- [[ ${systemdsystemconfdir} ]] \
- || systemdsystemconfdir=/etc/systemd/system
- einfo "Setting systemdutildir to ${systemdutildir} and ..."
- sed -e "5asystemdutildir=\"${systemdutildir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- einfo "Setting systemdsystemunitdir to ${systemdsystemunitdir} and..."
- sed -e "6asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- einfo "Setting systemdsystemconfdir to ${systemdsystemconfdir}..."
- sed -e "7asystemdsystemconfdir=\"${systemdsystemconfdir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- else
- local systemdutildir="/lib/systemd"
- einfo "Setting systemdutildir for standalone udev to" \
- "${systemdutildir}..."
- sed -e "5asystemdutildir=\"${systemdutildir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- fi
-
- epatch_user
-}
-
-src_configure() {
- local myconf="--libdir=${MY_LIBDIR}"
- myconf+=" --bashcompletiondir=$(get_bashcompdir)"
-
- if use systemd; then
- myconf+=" --systemdsystemunitdir='$(systemd_get_unitdir)'"
- fi
-
- econf ${myconf}
-}
-
-src_compile() {
- tc-export CC
- emake doc install/dracut-install skipcpio/skipcpio
-}
-
-src_install() {
- default
-
- local my_libdir="${MY_LIBDIR}"
- local dracutlibdir="${my_libdir#/}/dracut"
-
- echo "DRACUT_VERSION=$PVR" > "${D%/}/${dracutlibdir}/dracut-version.sh"
-
- insinto "${dracutlibdir}/dracut.conf.d/"
- newins dracut.conf.d/gentoo.conf.example gentoo.conf
-
- insinto /etc/logrotate.d
- newins dracut.logrotate dracut
-
- dodir /var/lib/dracut/overlay
-
- dohtml dracut.html
-
- if ! use systemd; then
- # Scripts in kernel/install.d are systemd-specific
- rm -r "${D%/}/${my_libdir}/kernel" || die
- fi
-
- #
- # Modules
- #
- local module
- modules_dir="${D%/}/${dracutlibdir}/modules.d"
-
- use debug || rm_module 95debug
- use selinux || rm_module 98selinux
-
- if use systemd; then
- # With systemd following modules do not make sense
- rm_module 96securityfs 97masterkey 98integrity
- else
- rm_module 00systemd 98dracut-systemd
- # Without systemd following modules do not make sense
- rm_module 00systemd-bootchart 01systemd-initrd 02systemd-networkd
- fi
-
- # Remove modules which won't work for sure
- rm_module 95fcoe # no tools
- # fips module depends on masked app-crypt/hmaccalc
- rm_module 01fips 02fips-aesni
-}
-
-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 desc_DEVTMPFS="Maintain a devtmpfs filesystem to mount at /dev"
- local desc_BLK_DEV_INITRD="Initial RAM filesystem and RAM disk "\
-"(initramfs/initrd) support"
-
- local opt desc
-
- # Generate ERROR_* variables for check_extra_config.
- for opt in ${CONFIG_CHECK}; do
- opt=${opt#\~}
- desc=desc_${opt}
- eval "local ERROR_${opt}='CONFIG_${opt}: \"${!desc}\"" \
- "is missing and REQUIRED'"
- done
-
- check_extra_config
- echo
- else
- ewarn ""
- ewarn "Your kernel configuration couldn't be checked. Do you have"
- ewarn "/usr/src/linux/.config file there? Please check manually if"
- ewarn "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/curl "net-misc/dhcp[client]" \
- sys-apps/iproute2
- 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 "Framebuffer splash (media-gfx/splashutils)" \
- media-gfx/splashutils
- 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 syslog-ng or rsyslog" app-admin/syslog-ng \
- app-admin/rsyslog
-}
diff --git a/sys-kernel/dracut/dracut-044.ebuild b/sys-kernel/dracut/dracut-044.ebuild
deleted file mode 100644
index 8d1e45c63a..0000000000
--- a/sys-kernel/dracut/dracut-044.ebuild
+++ /dev/null
@@ -1,253 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-inherit bash-completion-r1 eutils linux-info multilib systemd
-
-DESCRIPTION="Generic initramfs generation tool"
-HOMEPAGE="https://dracut.wiki.kernel.org"
-SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.xz"
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-IUSE="debug selinux systemd"
-
-RESTRICT="test"
-
-CDEPEND="virtual/udev
- systemd? ( >=sys-apps/systemd-199 )
- "
-RDEPEND="${CDEPEND}
- app-arch/cpio
- >=app-shells/bash-4.0
- >sys-apps/kmod-5[tools]
- || (
- >=sys-apps/sysvinit-2.87-r3
- sys-apps/systemd[sysv-utils]
- sys-apps/systemd-sysv-utils
- )
- >=sys-apps/util-linux-2.21
-
- debug? ( dev-util/strace )
- selinux? (
- sys-libs/libselinux
- sys-libs/libsepol
- sec-policy/selinux-dracut
- )
- "
-DEPEND="${CDEPEND}
- app-text/asciidoc
- >=dev-libs/libxslt-1.1.26
- app-text/docbook-xml-dtd:4.5
- >=app-text/docbook-xsl-stylesheets-1.75.2
- virtual/pkgconfig
- "
-
-DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules
- README.testsuite TODO )
-MY_LIBDIR=/usr/lib
-QA_MULTILIB_PATHS="
- usr/lib/dracut/dracut-install
- usr/lib/dracut/skipcpio
- "
-
-#
-# Helper functions
-#
-
-# Removes module from modules.d.
-# $1 = module name
-# Module name can be specified without number prefix.
-rm_module() {
- local force m
- [[ $1 = -f ]] && force=-f
-
- for m in $@; do
- if [[ $m =~ ^[0-9][0-9][^\ ]*$ ]]; then
- rm ${force} --interactive=never -r "${modules_dir}"/$m
- else
- rm ${force} --interactive=never -r "${modules_dir}"/[0-9][0-9]$m
- fi
- done
-}
-
-src_prepare() {
- local libdirs="/$(get_libdir) /usr/$(get_libdir)"
- if [[ ${SYMLINK_LIB} = yes ]]; then
- # Preserve lib -> lib64 symlinks in initramfs
- [[ $libdirs =~ /lib\ ]] || libdirs+=" /lib /usr/lib"
- fi
- einfo "Setting libdirs to \"${libdirs}\" ..."
- sed -e "3alibdirs=\"${libdirs}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
-
- local udevdir="$("$(tc-getPKG_CONFIG)" udev --variable=udevdir)"
- einfo "Setting udevdir to ${udevdir}..."
- sed -r -e "s|^(udevdir=).*$|\1${udevdir}|" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
-
- if use systemd; then
- local systemdutildir="$(systemd_get_utildir)"
- local systemdsystemunitdir="$(systemd_get_unitdir)"
- local systemdsystemconfdir="$("$(tc-getPKG_CONFIG)" systemd \
- --variable=systemdsystemconfdir)"
- [[ ${systemdsystemconfdir} ]] \
- || systemdsystemconfdir=/etc/systemd/system
- einfo "Setting systemdutildir to ${systemdutildir} and ..."
- sed -e "5asystemdutildir=\"${systemdutildir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- einfo "Setting systemdsystemunitdir to ${systemdsystemunitdir} and..."
- sed -e "6asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- einfo "Setting systemdsystemconfdir to ${systemdsystemconfdir}..."
- sed -e "7asystemdsystemconfdir=\"${systemdsystemconfdir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- else
- local systemdutildir="/lib/systemd"
- einfo "Setting systemdutildir for standalone udev to" \
- "${systemdutildir}..."
- sed -e "5asystemdutildir=\"${systemdutildir}\"" \
- -i "${S}/dracut.conf.d/gentoo.conf.example" || die
- fi
-
- epatch_user
-}
-
-src_configure() {
- local myconf="--libdir=${MY_LIBDIR}"
- myconf+=" --bashcompletiondir=$(get_bashcompdir)"
-
- if use systemd; then
- myconf+=" --systemdsystemunitdir='$(systemd_get_unitdir)'"
- fi
-
- econf ${myconf}
-}
-
-src_compile() {
- tc-export CC
- emake doc install/dracut-install skipcpio/skipcpio
-}
-
-src_install() {
- default
-
- local my_libdir="${MY_LIBDIR}"
- local dracutlibdir="${my_libdir#/}/dracut"
-
- echo "DRACUT_VERSION=$PVR" > "${D%/}/${dracutlibdir}/dracut-version.sh"
-
- insinto "${dracutlibdir}/dracut.conf.d/"
- newins dracut.conf.d/gentoo.conf.example gentoo.conf
-
- insinto /etc/logrotate.d
- newins dracut.logrotate dracut
-
- dodir /var/lib/dracut/overlay
-
- dohtml dracut.html
-
- if ! use systemd; then
- # Scripts in kernel/install.d are systemd-specific
- rm -r "${D%/}/${my_libdir}/kernel" || die
- fi
-
- #
- # Modules
- #
- local module
- modules_dir="${D%/}/${dracutlibdir}/modules.d"
-
- use debug || rm_module 95debug
- use selinux || rm_module 98selinux
-
- if use systemd; then
- # With systemd following modules do not make sense
- rm_module 96securityfs 97masterkey 98integrity
- else
- rm_module 00systemd 98dracut-systemd
- # Without systemd following modules do not make sense
- rm_module 00systemd-bootchart 01systemd-initrd 02systemd-networkd
- fi
-
- # Remove modules which won't work for sure
- rm_module 95fcoe # no tools
- # fips module depends on masked app-crypt/hmaccalc
- rm_module 01fips 02fips-aesni
-}
-
-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 desc_DEVTMPFS="Maintain a devtmpfs filesystem to mount at /dev"
- local desc_BLK_DEV_INITRD="Initial RAM filesystem and RAM disk "\
-"(initramfs/initrd) support"
-
- local opt desc
-
- # Generate ERROR_* variables for check_extra_config.
- for opt in ${CONFIG_CHECK}; do
- opt=${opt#\~}
- desc=desc_${opt}
- eval "local ERROR_${opt}='CONFIG_${opt}: \"${!desc}\"" \
- "is missing and REQUIRED'"
- done
-
- check_extra_config
- echo
- else
- ewarn ""
- ewarn "Your kernel configuration couldn't be checked. Do you have"
- ewarn "/usr/src/linux/.config file there? Please check manually if"
- ewarn "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/curl "net-misc/dhcp[client]" \
- sys-apps/iproute2
- 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 "Framebuffer splash (media-gfx/splashutils)" \
- media-gfx/splashutils
- 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 syslog-ng or rsyslog" app-admin/syslog-ng \
- app-admin/rsyslog
-}
diff --git a/sys-kernel/dracut/files/034-0001-dracut.sh-do-not-bail-out-if-kernel-mo.patch b/sys-kernel/dracut/files/034-0001-dracut.sh-do-not-bail-out-if-kernel-mo.patch
deleted file mode 100644
index 7500ecfdb7..0000000000
--- a/sys-kernel/dracut/files/034-0001-dracut.sh-do-not-bail-out-if-kernel-mo.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 45e5079d4be0ac1a977bc41dcda423fcfa3280fc Mon Sep 17 00:00:00 2001
-From: Harald Hoyer <harald@redhat.com>
-Date: Tue, 8 Oct 2013 15:03:40 +0200
-Subject: [PATCH 1/5] dracut.sh: do not bail out, if kernel modules dir is
- missing
-
-and only print a warning message
----
- dracut.sh | 11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/dracut.sh b/dracut.sh
-index e135dfc..d9533dd 100755
---- a/dracut.sh
-+++ b/dracut.sh
-@@ -496,17 +496,18 @@ if [[ $regenerate_all == "yes" ]]; then
- ((ret+=$?))
- done
- exit $ret
--elif [[ $kernel ]]; then
-- if ! [[ -d /lib/modules/$kernel ]] && [[ $no_kernel != yes ]]; then
-- printf -- "Kernel version $kernel has no modules in /lib/modules/$kernel\n" >&2
-- exit 1
-- fi
- fi
-
- if ! [[ $kernel ]]; then
- kernel=$(uname -r)
- fi
-
-+if [[ $kernel ]]; then
-+ if ! [[ -d /lib/modules/$kernel ]] && [[ $no_kernel != yes ]]; then
-+ printf -- "Kernel version $kernel has no module directory /lib/modules/$kernel\n" >&2
-+ fi
-+fi
-+
- if ! [[ $outfile ]]; then
- [[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id
-
---
-1.8.3.2
-
diff --git a/sys-kernel/dracut/files/034-0002-dracut-functions.sh-support-for-altern.patch b/sys-kernel/dracut/files/034-0002-dracut-functions.sh-support-for-altern.patch
deleted file mode 100644
index acb2db7677..0000000000
--- a/sys-kernel/dracut/files/034-0002-dracut-functions.sh-support-for-altern.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From c5a2f35eb2a90d8787d127b44cb6b5e0536d16ce Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Sun, 6 Jan 2013 13:35:01 +0100
-Subject: [PATCH 2/5] dracut-functions.sh: support for alternative udev dirs -
- udevaltdirs
-
-It is required for Gentoo which moves udev from / to /usr and supports
-both /lib/udev and /usr/lib/udev for compatibility with other packages.
-
-Credits go to Alexander Tsoy <alexander@tsoy.me>.
-
-Conflicts:
- dracut-functions.sh
----
- dracut-functions.sh | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/dracut-functions.sh b/dracut-functions.sh
-index 45e0911..c1cbdeb 100755
---- a/dracut-functions.sh
-+++ b/dracut-functions.sh
-@@ -872,6 +872,16 @@ inst_rules() {
- inst_dir "$_target"
- for _rule in "$@"; do
- if [ "${_rule#/}" = "$_rule" ]; then
-+ for r in ${udevaltdirs}; do
-+ [[ "$r" = "${udevdir}" ]] && continue
-+ if [[ -e $r/rules.d/$_rule ]]; then
-+ _found="$r/rules.d/$_rule"
-+ inst_rule_programs "$_found"
-+ inst_rule_group_owner "$_found"
-+ inst_rule_initqueue "$_found"
-+ inst_simple "$_found" "${udevdir}/rules.d/${_found##*/}"
-+ fi
-+ done
- for r in ${udevdir}/rules.d ${hostonly:+/etc/udev/rules.d}; do
- if [[ -e $r/$_rule ]]; then
- _found="$r/$_rule"
---
-1.8.3.2
-
diff --git a/sys-kernel/dracut/files/034-0003-gentoo.conf-let-udevdir-be-handled-by-.patch b/sys-kernel/dracut/files/034-0003-gentoo.conf-let-udevdir-be-handled-by-.patch
deleted file mode 100644
index e5bee434ef..0000000000
--- a/sys-kernel/dracut/files/034-0003-gentoo.conf-let-udevdir-be-handled-by-.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 29ade4d78b7609877659aa5938b3fba2954ce415 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Sun, 16 Dec 2012 20:02:48 +0100
-Subject: [PATCH 3/5] gentoo.conf: let udevdir= be handled by pkg-config and
- use udevaltdirs
-
-To avoid need of rebuild after udev update/downgrade let udevdir= be set
-dynamically with pkg-config. Use udevaltdirs to search for rules both
-in old and new locations.
----
- dracut.conf.d/gentoo.conf.example | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/dracut.conf.d/gentoo.conf.example b/dracut.conf.d/gentoo.conf.example
-index 26e7314..f9617f0 100644
---- a/dracut.conf.d/gentoo.conf.example
-+++ b/dracut.conf.d/gentoo.conf.example
-@@ -1,7 +1,8 @@
- # /etc/dracut.conf.d/gentoo.conf
- # dracut config file customized for Gentoo Base System release 2
-
--udevdir=/lib/udev
-+udevdir=
-+udevaltdirs="/lib/udev /usr/lib/udev"
- ro_mnt=yes
-
- #
---
-1.8.3.2
-
diff --git a/sys-kernel/dracut/files/034-0004-Use-the-same-paths-in-dracut.sh-as-tho.patch b/sys-kernel/dracut/files/034-0004-Use-the-same-paths-in-dracut.sh-as-tho.patch
deleted file mode 100644
index dec964e5a8..0000000000
--- a/sys-kernel/dracut/files/034-0004-Use-the-same-paths-in-dracut.sh-as-tho.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 6660721bd34b7a25026ffc6a6df4cdfdc8742ed3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Wed, 2 Oct 2013 22:37:09 +0200
-Subject: [PATCH 4/5] Use the same paths in dracut.sh as those set with
- configure script
-
-Makefile alters destination main dracut script and sets dracutbasedir to
-the value of pkglibdir set in configure.
----
- Makefile | 3 +++
- dracut.sh | 9 ++++-----
- 2 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 124a41b..ea504f5 100644
---- a/Makefile
-+++ b/Makefile
-@@ -91,6 +91,9 @@ install: dracut-version.sh
- mkdir -p $(DESTDIR)$(pkglibdir)/modules.d
- mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
- install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
-+ sed -r \
-+ -e "s|^(pkglibdir)=.*|\1=$(pkglibdir)|" \
-+ -i $(DESTDIR)$(bindir)/dracut
- install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
- install -m 0755 mkinitrd-dracut.sh $(DESTDIR)$(bindir)/mkinitrd
- install -m 0755 lsinitrd.sh $(DESTDIR)$(bindir)/lsinitrd
-diff --git a/dracut.sh b/dracut.sh
-index d9533dd..cf18c81 100755
---- a/dracut.sh
-+++ b/dracut.sh
-@@ -26,10 +26,13 @@
- # store for logging
- dracut_args=( "$@" )
-
-+# base dirs
-+pkglibdir=/usr/lib/dracut
-+dracutbasedir="$pkglibdir"
-+
- set -o pipefail
-
- usage() {
-- [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
- if [[ -f $dracutbasedir/dracut-version.sh ]]; then
- . $dracutbasedir/dracut-version.sh
- fi
-@@ -54,7 +57,6 @@ EOF
- }
-
- long_usage() {
-- [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
- if [[ -f $dracutbasedir/dracut-version.sh ]]; then
- . $dracutbasedir/dracut-version.sh
- fi
-@@ -549,8 +551,6 @@ export DRACUT_LOG_LEVEL=warning
- debug=yes
- }
-
--[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
--
- # if we were not passed a config file, try the default one
- if [[ ! -f $conffile ]]; then
- if [[ $allowlocal ]]; then
-@@ -669,7 +669,6 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
- [[ $use_fstab_l ]] && use_fstab=$use_fstab_l
- [[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l
- [[ $lvmconf_l ]] && lvmconf=$lvmconf_l
--[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
- [[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware"
- [[ $tmpdir_l ]] && tmpdir="$tmpdir_l"
- [[ $tmpdir ]] || tmpdir=/var/tmp
---
-1.8.3.2
-
diff --git a/sys-kernel/dracut/files/034-0005-Install-dracut-install-into-libexec-di.patch b/sys-kernel/dracut/files/034-0005-Install-dracut-install-into-libexec-di.patch
deleted file mode 100644
index 6af99197ed..0000000000
--- a/sys-kernel/dracut/files/034-0005-Install-dracut-install-into-libexec-di.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 80dbe6dfbdb2cd3475006e210fe057dceb81ddf2 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Wed, 2 Oct 2013 22:40:43 +0200
-Subject: [PATCH 5/5] Install dracut-install into libexec dir instead of lib
- dir
-
-dracut-install script is the only thing ABI specific atm.
-
-See https://bugs.gentoo.org/show_bug.cgi?id=485218 for details on the
-problem.
----
- Makefile | 4 +++-
- configure | 1 +
- dracut-functions.sh | 4 ++++
- dracut.sh | 1 +
- 4 files changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index ea504f5..e004a79 100644
---- a/Makefile
-+++ b/Makefile
-@@ -92,6 +92,7 @@ install: dracut-version.sh
- mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
- install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
- sed -r \
-+ -e "s|^(libexecdir)=.*|\1=$(libexecdir)|" \
- -e "s|^(pkglibdir)=.*|\1=$(pkglibdir)|" \
- -i $(DESTDIR)$(bindir)/dracut
- install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
-@@ -135,7 +136,8 @@ endif
- done \
- fi
- if [ -f install/dracut-install ]; then \
-- install -m 0755 install/dracut-install $(DESTDIR)$(pkglibdir)/dracut-install; \
-+ mkdir -p $(DESTDIR)$(libexecdir); \
-+ install -m 0755 install/dracut-install $(DESTDIR)$(libexecdir)/dracut-install; \
- fi
- mkdir -p $(DESTDIR)${prefix}/lib/kernel/install.d
- install -m 0755 50-dracut.install $(DESTDIR)${prefix}/lib/kernel/install.d/50-dracut.install
-diff --git a/configure b/configure
-index 19b5e1f..d2ffc2c 100755
---- a/configure
-+++ b/configure
-@@ -61,6 +61,7 @@ sbindir ?= ${sbindir:-${prefix}/sbin}
- mandir ?= ${mandir:-${prefix}/share/man}
- enable_documentation ?= ${enable_documentation:-yes}
- bindir ?= ${bindir:-${prefix}/bin}
-+libexecdir ?= ${libexecdir:-${prefix}/libexec}
- EOF
-
- {
-diff --git a/dracut-functions.sh b/dracut-functions.sh
-index c1cbdeb..72b7f1b 100755
---- a/dracut-functions.sh
-+++ b/dracut-functions.sh
-@@ -694,6 +694,10 @@ if ! [[ $DRACUT_INSTALL ]]; then
- DRACUT_INSTALL=$(find_binary dracut-install)
- fi
-
-+if ! [[ $DRACUT_INSTALL ]] && [[ -x $libexecdir/dracut-install ]]; then
-+ DRACUT_INSTALL=$libexecdir/dracut-install
-+fi
-+
- if ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutbasedir/dracut-install ]]; then
- DRACUT_INSTALL=$dracutbasedir/dracut-install
- fi
-diff --git a/dracut.sh b/dracut.sh
-index cf18c81..e28b929 100755
---- a/dracut.sh
-+++ b/dracut.sh
-@@ -27,6 +27,7 @@
- dracut_args=( "$@" )
-
- # base dirs
-+libexecdir=/usr/libexec
- pkglibdir=/usr/lib/dracut
- dracutbasedir="$pkglibdir"
-
---
-1.8.3.2
-
diff --git a/sys-kernel/dracut/files/034-0006-resume-fix-swap-detection-in-hostonly.patch b/sys-kernel/dracut/files/034-0006-resume-fix-swap-detection-in-hostonly.patch
deleted file mode 100644
index e97780c259..0000000000
--- a/sys-kernel/dracut/files/034-0006-resume-fix-swap-detection-in-hostonly.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 0c89bcc27516803d68444488ede3d513ba982039 Mon Sep 17 00:00:00 2001
-From: Alexander Tsoy <alexander@tsoy.me>
-Date: Wed, 9 Oct 2013 06:39:46 +0400
-Subject: [PATCH 6/6] resume: fix swap detection in hostonly
-
-Check for other possible fs types. This fixes swap detection when using
-TuxOnIce kernel.
-
-Note that parse-resume.sh generate udev rules with support for
-ID_FS_TYPE=suspend, but we do not include it here, because it is
-libvolume_id thing and host_fs_types is populated using blkid.
----
- modules.d/95resume/module-setup.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh
-index 518ebf0..a1ddb46 100755
---- a/modules.d/95resume/module-setup.sh
-+++ b/modules.d/95resume/module-setup.sh
-@@ -6,7 +6,7 @@ check() {
- # No point trying to support resume, if no swap partition exist
- [[ $hostonly ]] || [[ $mount_needs ]] && {
- for fs in "${host_fs_types[@]}"; do
-- [[ $fs = swap ]] && return 0
-+ [[ $fs =~ ^(swap|swsuspend|swsupend)$ ]] && return 0
- done
- return 255
- }
---
-1.8.3.2
-
diff --git a/sys-kernel/dracut/files/034-0007-dracut.sh-also-mkdir-run-lock-which-is.patch b/sys-kernel/dracut/files/034-0007-dracut.sh-also-mkdir-run-lock-which-is.patch
deleted file mode 100644
index 0cf2586ed4..0000000000
--- a/sys-kernel/dracut/files/034-0007-dracut.sh-also-mkdir-run-lock-which-is.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From be723725cd6ea1c41b52c1bff5a569eb8cd0c76d Mon Sep 17 00:00:00 2001
-From: Harald Hoyer <harald@redhat.com>
-Date: Wed, 16 Oct 2013 11:31:54 +0200
-Subject: [PATCH 07/12] dracut.sh: also mkdir /run/lock, which is copied to
-
----
- dracut.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dracut.sh b/dracut.sh
-index e28b929..309aa7d 100755
---- a/dracut.sh
-+++ b/dracut.sh
-@@ -1081,7 +1081,7 @@ if [[ $kernel_only != yes ]]; then
- fi
- done
-
-- for d in dev proc sys sysroot root run run/lock run/initramfs; do
-+ for d in dev proc sys sysroot root run run/log run/lock run/initramfs; do
- if [ -L "/$d" ]; then
- inst_symlink "/$d"
- else
---
-1.8.4.3
-
diff --git a/sys-kernel/dracut/files/034-0008-dracut.sh-no-need-to-make-subdirs-in-r.patch b/sys-kernel/dracut/files/034-0008-dracut.sh-no-need-to-make-subdirs-in-r.patch
deleted file mode 100644
index 380411cc5f..0000000000
--- a/sys-kernel/dracut/files/034-0008-dracut.sh-no-need-to-make-subdirs-in-r.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 34712f015f13221b653a1ed2ee75804f06a22357 Mon Sep 17 00:00:00 2001
-From: Harald Hoyer <harald@redhat.com>
-Date: Wed, 16 Oct 2013 11:39:17 +0200
-Subject: [PATCH 08/12] dracut.sh: no need to make subdirs in run
-
----
- dracut.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dracut.sh b/dracut.sh
-index 309aa7d..4f58eed 100755
---- a/dracut.sh
-+++ b/dracut.sh
-@@ -1081,7 +1081,7 @@ if [[ $kernel_only != yes ]]; then
- fi
- done
-
-- for d in dev proc sys sysroot root run run/log run/lock run/initramfs; do
-+ for d in dev proc sys sysroot root run; do
- if [ -L "/$d" ]; then
- inst_symlink "/$d"
- else
---
-1.8.4.3
-
diff --git a/sys-kernel/dracut/files/034-0009-lvm-install-thin-utils-for-non-hostonl.patch b/sys-kernel/dracut/files/034-0009-lvm-install-thin-utils-for-non-hostonl.patch
deleted file mode 100644
index 8bf0f7c398..0000000000
--- a/sys-kernel/dracut/files/034-0009-lvm-install-thin-utils-for-non-hostonl.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From bd3303000b32cb500b2d769c6852784a807cee47 Mon Sep 17 00:00:00 2001
-From: Harald Hoyer <harald@redhat.com>
-Date: Tue, 8 Oct 2013 10:30:00 +0200
-Subject: [PATCH 09/12] lvm: install thin utils for non-hostonly
-
----
- modules.d/90lvm/module-setup.sh | 18 +++++++++++-------
- 1 file changed, 11 insertions(+), 7 deletions(-)
-
-diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
-index f98ffff..514addc 100755
---- a/modules.d/90lvm/module-setup.sh
-+++ b/modules.d/90lvm/module-setup.sh
-@@ -52,13 +52,17 @@ install() {
-
- inst lvm
-
-- get_host_lvs | while read line; do
-- printf "%s" " rd.lvm.lv=$line"
-- if ! [[ $_needthin ]]; then
-- [[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
-- fi
-- done >> "${initdir}/etc/cmdline.d/90lvm.conf"
-- echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
-+ if [[ $hostonly ]]; then
-+ get_host_lvs | while read line; do
-+ printf "%s" " rd.lvm.lv=$line"
-+ if ! [[ $_needthin ]]; then
-+ [[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
-+ fi
-+ done >> "${initdir}/etc/cmdline.d/90lvm.conf"
-+ echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
-+ else
-+ _needthin=1
-+ fi
-
- inst_rules "$moddir/64-lvm.rules"
-
---
-1.8.4.3
-
diff --git a/sys-kernel/dracut/files/034-0011-lvm-fix-thin-recognition.patch b/sys-kernel/dracut/files/034-0011-lvm-fix-thin-recognition.patch
deleted file mode 100644
index b2dfc77781..0000000000
--- a/sys-kernel/dracut/files/034-0011-lvm-fix-thin-recognition.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From a70dff7f103b27d5b7016e13a64c7710c61dc96e Mon Sep 17 00:00:00 2001
-From: Harald Hoyer <harald@redhat.com>
-Date: Wed, 16 Oct 2013 11:30:08 +0200
-Subject: [PATCH 11/12] lvm: fix thin recognition
-
-The global var setting was happening in a pipe and did not have an
-effect.
-
-Use <<<$() instead.
-
-< <() cannot be used, because dracut is called in chroot's environments,
-where /dev/fd does not point to /proc/self/fd, but bash wants
-/dev/fd/<num> for this construct.
----
- modules.d/90lvm/module-setup.sh | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
-index f8b598d..cbdf4a2 100755
---- a/modules.d/90lvm/module-setup.sh
-+++ b/modules.d/90lvm/module-setup.sh
-@@ -57,12 +57,13 @@ install() {
- inst lvm
-
- if [[ $hostonly ]]; then
-- get_host_lvs | while read line; do
-+ while read line; do
-+ [[ -n "$line" ]] || continue
- printf "%s" " rd.lvm.lv=$line"
- if ! [[ $_needthin ]]; then
- [[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
- fi
-- done >> "${initdir}/etc/cmdline.d/90lvm.conf"
-+ done <<<$(get_host_lvs) >> "${initdir}/etc/cmdline.d/90lvm.conf"
- echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
- else
- _needthin=1
---
-1.8.4.3
-
diff --git a/sys-kernel/dracut/files/034-0012-lvm-always-install-thin-utils-for-lvm.patch b/sys-kernel/dracut/files/034-0012-lvm-always-install-thin-utils-for-lvm.patch
deleted file mode 100644
index 074566b69a..0000000000
--- a/sys-kernel/dracut/files/034-0012-lvm-always-install-thin-utils-for-lvm.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 615071016ecfa223b2744fc17e137de780167115 Mon Sep 17 00:00:00 2001
-From: Harald Hoyer <harald@redhat.com>
-Date: Mon, 21 Oct 2013 09:09:26 +0200
-Subject: [PATCH 12/12] lvm: always install thin utils for lvm
-
----
- modules.d/90lvm/module-setup.sh | 33 +++++++--------------------------
- 1 file changed, 7 insertions(+), 26 deletions(-)
-
-diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
-index cbdf4a2..87374da 100755
---- a/modules.d/90lvm/module-setup.sh
-+++ b/modules.d/90lvm/module-setup.sh
-@@ -24,7 +24,8 @@ depends() {
- return 0
- }
-
--get_host_lvs() {
-+# called by dracut
-+cmdline() {
- local _activated
- declare -A _activated
-
-@@ -37,37 +38,20 @@ get_host_lvs() {
- eval $(dmsetup splitname --nameprefixes --noheadings --rows "$dev" 2>/dev/null)
- [[ ${DM_VG_NAME} ]] && [[ ${DM_LV_NAME} ]] || return 1
- if ! [[ ${_activated[${DM_VG_NAME}/${DM_LV_NAME}]} ]]; then
-- printf "%s\n" "${DM_VG_NAME}/${DM_LV_NAME} "
-+ printf " rd.lvm.lv=%s\n" "${DM_VG_NAME}/${DM_LV_NAME} "
- _activated["${DM_VG_NAME}/${DM_LV_NAME}"]=1
- fi
- done
- }
-
- # called by dracut
--cmdline() {
-- get_host_lvs | while read line; do
-- printf " rd.lvm.lv=$line"
-- done
--}
--
--# called by dracut
- install() {
-- local _i _needthin
-+ local _i
-
- inst lvm
-
-- if [[ $hostonly ]]; then
-- while read line; do
-- [[ -n "$line" ]] || continue
-- printf "%s" " rd.lvm.lv=$line"
-- if ! [[ $_needthin ]]; then
-- [[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
-- fi
-- done <<<$(get_host_lvs) >> "${initdir}/etc/cmdline.d/90lvm.conf"
-- echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
-- else
-- _needthin=1
-- fi
-+ cmdline >> "${initdir}/etc/cmdline.d/90lvm.conf"
-+ echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
-
- inst_rules "$moddir/64-lvm.rules"
-
-@@ -103,9 +87,6 @@ install() {
-
- inst_libdir_file "libdevmapper-event-lvm*.so"
-
-- if [[ $_needthin ]]; then
-- inst_multiple -o thin_dump thin_restore thin_check thin_repair
-- fi
--
-+ inst_multiple -o thin_dump thin_restore thin_check thin_repair
- }
-
---
-1.8.4.3
-
diff --git a/sys-kernel/dracut/files/034-0013-usrmount-always-install.patch b/sys-kernel/dracut/files/034-0013-usrmount-always-install.patch
deleted file mode 100644
index 55fd87c1b0..0000000000
--- a/sys-kernel/dracut/files/034-0013-usrmount-always-install.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From ffbe30d1e1e9fb09136bfc2d29a3cc65292b5690 Mon Sep 17 00:00:00 2001
-From: Alexander Tsoy <alexander@tsoy.me>
-Date: Thu, 21 Nov 2013 20:33:38 +0400
-Subject: [PATCH 13/13] usrmount: always install
-
-/usr should be mounted by initramfs even if /sbin/init lives in /
-
-Conflicts:
- modules.d/98usrmount/module-setup.sh
----
- modules.d/98usrmount/module-setup.sh | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/modules.d/98usrmount/module-setup.sh b/modules.d/98usrmount/module-setup.sh
-index 1af789f..31a6229 100755
---- a/modules.d/98usrmount/module-setup.sh
-+++ b/modules.d/98usrmount/module-setup.sh
-@@ -4,10 +4,7 @@
-
- # called by dracut
- check() {
-- local _init
- [[ $mount_needs ]] && return 1
-- _init=$(readlink -f /sbin/init)
-- [[ "$init" == "${init##/usr}" ]] && return 255
- return 0
- }
-
---
-1.8.4.4
-
diff --git a/sys-kernel/dracut/files/034-0014-udev-rules-add-eudev-rules.patch b/sys-kernel/dracut/files/034-0014-udev-rules-add-eudev-rules.patch
deleted file mode 100644
index 0b3fc39d2f..0000000000
--- a/sys-kernel/dracut/files/034-0014-udev-rules-add-eudev-rules.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 29f735ac0e54421d1518b8d0f730523ebb7e6d5a Mon Sep 17 00:00:00 2001
-From: Alexander Tsoy <alexander@tsoy.me>
-Date: Wed, 25 Dec 2013 14:00:26 +0400
-Subject: [PATCH] udev-rules: add eudev rules
-
-eudev configured with "--enable-modules --disable-libkmod" installs
-80-drivers-modprobe.rules instead of 80-drivers.rules
-
-https://bugs.gentoo.org/show_bug.cgi?id=494188
----
- modules.d/95udev-rules/module-setup.sh | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
-index 88c3da2..ebc4447 100755
---- a/modules.d/95udev-rules/module-setup.sh
-+++ b/modules.d/95udev-rules/module-setup.sh
-@@ -39,6 +39,8 @@ install() {
- prepare_udev_rules 59-persistent-storage.rules 61-persistent-storage.rules
- # debian udev rules
- inst_rules 91-permissions.rules
-+ # eudev rules
-+ inst_rules 80-drivers-modprobe.rules
-
- {
- for i in cdrom tape dialout floppy; do
---
-1.8.3.2
-
diff --git a/sys-kernel/dracut/files/040-0001-dracut-functions.sh-support-for-altern.patch b/sys-kernel/dracut/files/040-0001-dracut-functions.sh-support-for-altern.patch
deleted file mode 100644
index 55b3699818..0000000000
--- a/sys-kernel/dracut/files/040-0001-dracut-functions.sh-support-for-altern.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ed2f8d6145ef12084af882575091a7d44a3e47c1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Sun, 6 Jan 2013 13:35:01 +0100
-Subject: [PATCH 1/4] dracut-functions.sh: support for alternative udev dirs -
- udevaltdirs
-
-It is required for Gentoo which moves udev from / to /usr and supports
-both /lib/udev and /usr/lib/udev for compatibility with other packages.
-
-Credits go to Alexander Tsoy <alexander@tsoy.me>.
-
-Conflicts:
- dracut-functions.sh
----
- dracut-functions.sh | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/dracut-functions.sh b/dracut-functions.sh
-index 1bcc3b4..72afce2 100755
---- a/dracut-functions.sh
-+++ b/dracut-functions.sh
-@@ -943,6 +943,16 @@ inst_rules() {
- inst_dir "$_target"
- for _rule in "$@"; do
- if [ "${_rule#/}" = "$_rule" ]; then
-+ for r in ${udevaltdirs}; do
-+ [[ "$r" = "${udevdir}" ]] && continue
-+ if [[ -e $r/rules.d/$_rule ]]; then
-+ _found="$r/rules.d/$_rule"
-+ inst_rule_programs "$_found"
-+ inst_rule_group_owner "$_found"
-+ inst_rule_initqueue "$_found"
-+ inst_simple "$_found" "${udevdir}/rules.d/${_found##*/}"
-+ fi
-+ done
- for r in ${udevdir}/rules.d ${hostonly:+/etc/udev/rules.d}; do
- if [[ -e $r/$_rule ]]; then
- _found="$r/$_rule"
---
-2.1.3
-
diff --git a/sys-kernel/dracut/files/040-0002-gentoo.conf-let-udevdir-be-handled-by-.patch b/sys-kernel/dracut/files/040-0002-gentoo.conf-let-udevdir-be-handled-by-.patch
deleted file mode 100644
index 52b97692f9..0000000000
--- a/sys-kernel/dracut/files/040-0002-gentoo.conf-let-udevdir-be-handled-by-.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From a562cb9ad84784cb4ba7679a2fc3a269d31a4ca3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Sun, 16 Dec 2012 20:02:48 +0100
-Subject: [PATCH 2/4] gentoo.conf: let udevdir= be handled by pkg-config and
- use udevaltdirs
-
-To avoid need of rebuild after udev update/downgrade let udevdir= be set
-dynamically with pkg-config. Use udevaltdirs to search for rules both
-in old and new locations.
----
- dracut.conf.d/gentoo.conf.example | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/dracut.conf.d/gentoo.conf.example b/dracut.conf.d/gentoo.conf.example
-index 26e7314..f9617f0 100644
---- a/dracut.conf.d/gentoo.conf.example
-+++ b/dracut.conf.d/gentoo.conf.example
-@@ -1,7 +1,8 @@
- # /etc/dracut.conf.d/gentoo.conf
- # dracut config file customized for Gentoo Base System release 2
-
--udevdir=/lib/udev
-+udevdir=
-+udevaltdirs="/lib/udev /usr/lib/udev"
- ro_mnt=yes
-
- #
---
-2.1.3
-
diff --git a/sys-kernel/dracut/files/040-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch b/sys-kernel/dracut/files/040-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch
deleted file mode 100644
index fbfd9ee419..0000000000
--- a/sys-kernel/dracut/files/040-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 5a1de9053d27feeb283253554033e7ad25c9aa31 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Wed, 2 Oct 2013 22:37:09 +0200
-Subject: [PATCH 3/4] Use the same paths in dracut.sh as those set with
- configure script
-
-Makefile alters destination main dracut script and sets dracutbasedir to
-the value of pkglibdir set in configure.
----
- Makefile | 3 +++
- dracut.sh | 9 ++++-----
- 2 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 7127368..a4c35e5 100644
---- a/Makefile
-+++ b/Makefile
-@@ -103,6 +103,9 @@ install: dracut-version.sh
- mkdir -p $(DESTDIR)$(pkglibdir)/modules.d
- mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
- install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
-+ sed -r \
-+ -e "s|^(pkglibdir)=.*|\1=$(pkglibdir)|" \
-+ -i $(DESTDIR)$(bindir)/dracut
- install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
- install -m 0755 mkinitrd-dracut.sh $(DESTDIR)$(bindir)/mkinitrd
- install -m 0755 lsinitrd.sh $(DESTDIR)$(bindir)/lsinitrd
-diff --git a/dracut.sh b/dracut.sh
-index 1c7e208..ea30a7b 100755
---- a/dracut.sh
-+++ b/dracut.sh
-@@ -24,10 +24,13 @@
- # store for logging
- dracut_args=( "$@" )
-
-+# base dirs
-+pkglibdir=/usr/lib/dracut
-+dracutbasedir="$pkglibdir"
-+
- set -o pipefail
-
- usage() {
-- [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
- if [[ -f $dracutbasedir/dracut-version.sh ]]; then
- . $dracutbasedir/dracut-version.sh
- fi
-@@ -52,7 +55,6 @@ EOF
- }
-
- long_usage() {
-- [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
- if [[ -f $dracutbasedir/dracut-version.sh ]]; then
- . $dracutbasedir/dracut-version.sh
- fi
-@@ -656,8 +658,6 @@ export DRACUT_LOG_LEVEL=warning
- debug=yes
- }
-
--[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
--
- # if we were not passed a config file, try the default one
- if [[ ! -f $conffile ]]; then
- if [[ $allowlocal ]]; then
-@@ -798,7 +798,6 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
- [[ $use_fstab_l ]] && use_fstab=$use_fstab_l
- [[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l
- [[ $lvmconf_l ]] && lvmconf=$lvmconf_l
--[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
- [[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware"
- [[ $tmpdir_l ]] && tmpdir="$tmpdir_l"
- [[ $tmpdir ]] || tmpdir=/var/tmp
---
-2.1.3
-
diff --git a/sys-kernel/dracut/files/040-0004-Install-dracut-install-into-libexec-di.patch b/sys-kernel/dracut/files/040-0004-Install-dracut-install-into-libexec-di.patch
deleted file mode 100644
index 2cf27f339c..0000000000
--- a/sys-kernel/dracut/files/040-0004-Install-dracut-install-into-libexec-di.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From ed9375739c3f7e48f6e1c3037c5a589c49d78613 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Wed, 2 Oct 2013 22:40:43 +0200
-Subject: [PATCH 4/4] Install dracut-install into libexec dir instead of lib
- dir
-
-dracut-install script is the only thing ABI specific atm.
-
-See https://bugs.gentoo.org/show_bug.cgi?id=485218 for details on the
-problem.
----
- Makefile | 4 +++-
- configure | 1 +
- dracut-functions.sh | 4 ++++
- dracut.sh | 1 +
- 4 files changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index a4c35e5..af61faf 100644
---- a/Makefile
-+++ b/Makefile
-@@ -104,6 +104,7 @@ install: dracut-version.sh
- mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
- install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
- sed -r \
-+ -e "s|^(libexecdir)=.*|\1=$(libexecdir)|" \
- -e "s|^(pkglibdir)=.*|\1=$(pkglibdir)|" \
- -i $(DESTDIR)$(bindir)/dracut
- install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
-@@ -147,7 +148,8 @@ endif
- done \
- fi
- if [ -f install/dracut-install ]; then \
-- install -m 0755 install/dracut-install $(DESTDIR)$(pkglibdir)/dracut-install; \
-+ mkdir -p $(DESTDIR)$(libexecdir); \
-+ install -m 0755 install/dracut-install $(DESTDIR)$(libexecdir)/dracut-install; \
- fi
- if [ -f skipcpio/skipcpio ]; then \
- install -m 0755 skipcpio/skipcpio $(DESTDIR)$(pkglibdir)/skipcpio; \
-diff --git a/configure b/configure
-index 0bd3d2d..17370de 100755
---- a/configure
-+++ b/configure
-@@ -59,6 +59,7 @@ sbindir ?= ${sbindir:-${prefix}/sbin}
- mandir ?= ${mandir:-${prefix}/share/man}
- enable_documentation ?= ${enable_documentation:-yes}
- bindir ?= ${bindir:-${prefix}/bin}
-+libexecdir ?= ${libexecdir:-${prefix}/libexec}
- EOF
-
- {
-diff --git a/dracut-functions.sh b/dracut-functions.sh
-index 72afce2..1d85315 100755
---- a/dracut-functions.sh
-+++ b/dracut-functions.sh
-@@ -741,6 +741,10 @@ if ! [[ $DRACUT_INSTALL ]]; then
- DRACUT_INSTALL=$(find_binary dracut-install)
- fi
-
-+if ! [[ $DRACUT_INSTALL ]] && [[ -x $libexecdir/dracut-install ]]; then
-+ DRACUT_INSTALL=$libexecdir/dracut-install
-+fi
-+
- if ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutbasedir/dracut-install ]]; then
- DRACUT_INSTALL=$dracutbasedir/dracut-install
- fi
-diff --git a/dracut.sh b/dracut.sh
-index ea30a7b..08f27eb 100755
---- a/dracut.sh
-+++ b/dracut.sh
-@@ -25,6 +25,7 @@
- dracut_args=( "$@" )
-
- # base dirs
-+libexecdir=/usr/libexec
- pkglibdir=/usr/lib/dracut
- dracutbasedir="$pkglibdir"
-
---
-2.1.3
-
diff --git a/sys-kernel/dracut/files/040-0005-NEWS-add-040-entry.patch b/sys-kernel/dracut/files/040-0005-NEWS-add-040-entry.patch
deleted file mode 100644
index eeb4610e41..0000000000
--- a/sys-kernel/dracut/files/040-0005-NEWS-add-040-entry.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 36c91220234af69a96cd95e575b47f0a3ec4c645 Mon Sep 17 00:00:00 2001
-From: Harald Hoyer <harald@redhat.com>
-Date: Fri, 24 Oct 2014 14:41:29 +0200
-Subject: [PATCH 5/5] NEWS: add 040 entry
-
----
- NEWS | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/NEWS b/NEWS
-index 1b79da1..da44068 100644
---- a/NEWS
-+++ b/NEWS
-@@ -1,3 +1,8 @@
-+dracut-040
-+==========
-+- fixed dracut module dependency checks
-+- fixed test suite
-+
- dracut-039
- ==========
- - DRACUT_PATH can now be used to specify the PATH used by dracut
---
-2.1.3
-
diff --git a/sys-kernel/dracut/files/040-0006-Don-t-pass-rsyncable-option-to-gzip-Ge.patch b/sys-kernel/dracut/files/040-0006-Don-t-pass-rsyncable-option-to-gzip-Ge.patch
deleted file mode 100644
index 1ade9bd1e9..0000000000
--- a/sys-kernel/dracut/files/040-0006-Don-t-pass-rsyncable-option-to-gzip-Ge.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From ff57ba111c03957d4a68459efd91322c24223861 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Sat, 1 Nov 2014 22:25:07 +0100
-Subject: [PATCH 6/6] Don't pass --rsyncable option to gzip - Gentoo gzip
- doesn't support it
-
----
- dracut.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dracut.sh b/dracut.sh
-index 08f27eb..17be895 100755
---- a/dracut.sh
-+++ b/dracut.sh
-@@ -822,7 +822,7 @@ case $compress in
- bzip2) compress="bzip2 -9";;
- lzma) compress="lzma -9 -T0";;
- xz) compress="xz --check=crc32 --lzma2=dict=1MiB -T0";;
-- gzip) compress="gzip -n -9 --rsyncable"; command -v pigz > /dev/null 2>&1 && compress="pigz -9 -n -T -R";;
-+ gzip) compress="gzip -n -9"; command -v pigz > /dev/null 2>&1 && compress="pigz -9 -n -T -R";;
- lzo) compress="lzop -9";;
- lz4) compress="lz4 -l -9";;
- esac
---
-2.1.3
-
diff --git a/sys-kernel/dracut/files/040-0007-Take-into-account-lib64-dirs-when-dete.patch b/sys-kernel/dracut/files/040-0007-Take-into-account-lib64-dirs-when-dete.patch
deleted file mode 100644
index 5d10312846..0000000000
--- a/sys-kernel/dracut/files/040-0007-Take-into-account-lib64-dirs-when-dete.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 25efd305dace3275c661e0a7dfbaef42b4cbc6d7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Sun, 11 Jan 2015 15:10:39 +0100
-Subject: [PATCH 7/7] Take into account lib64 dirs when detecting version,
- modules and params
-
----
- lsinitrd.sh | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/lsinitrd.sh b/lsinitrd.sh
-index 4f12c2c..dc1f88f 100755
---- a/lsinitrd.sh
-+++ b/lsinitrd.sh
-@@ -124,7 +124,7 @@ extract_files()
- list_modules()
- {
- echo "dracut modules:"
-- $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/modules.txt' 'usr/lib/dracut/modules.txt' 2>/dev/null
-+ $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib64/dracut/modules.txt' 'lib/dracut/modules.txt' 'usr/lib/dracut/modules.txt' 2>/dev/null
- ((ret+=$?))
- }
-
-@@ -217,7 +217,7 @@ ret=0
- if (( ${#filenames[@]} > 0 )); then
- extract_files
- else
-- version=$($CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/dracut-*' 'usr/lib/dracut/dracut-*' 2>/dev/null)
-+ version=$($CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib64/dracut/dracut-*' 'lib/dracut/dracut-*' 'usr/lib/dracut/dracut-*' 2>/dev/null)
- ((ret+=$?))
- echo "Version: $version"
- echo
-@@ -226,7 +226,7 @@ else
- echo "========================================================================"
- else
- echo -n "Arguments: "
-- $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/build-parameter.txt' 'usr/lib/dracut/build-parameter.txt' 2>/dev/null
-+ $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib64/dracut/build-parameter.txt' 'lib/dracut/build-parameter.txt' 'usr/lib/dracut/build-parameter.txt' 2>/dev/null
- echo
- list_modules
- list_files
---
-2.2.1
-
diff --git a/sys-kernel/dracut/files/041-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch b/sys-kernel/dracut/files/041-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch
deleted file mode 100644
index d16119ccae..0000000000
--- a/sys-kernel/dracut/files/041-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 89334439113c0ea8196ac5e9e188e6a1bbebe267 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Wed, 2 Oct 2013 22:37:09 +0200
-Subject: [PATCH 1/4] Use the same paths in dracut.sh as those set with
- configure script
-
-Makefile alters destination main dracut script and sets dracutbasedir to
-the value of pkglibdir set in configure.
----
- Makefile | 3 +++
- dracut.sh | 9 ++++-----
- 2 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 41ae274..41968b0 100644
---- a/Makefile
-+++ b/Makefile
-@@ -103,6 +103,9 @@ install: dracut-version.sh
- mkdir -p $(DESTDIR)$(pkglibdir)/modules.d
- mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
- install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
-+ sed -r \
-+ -e "s|^(pkglibdir)=.*|\1=$(pkglibdir)|" \
-+ -i $(DESTDIR)$(bindir)/dracut
- install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
- install -m 0755 mkinitrd-dracut.sh $(DESTDIR)$(bindir)/mkinitrd
- install -m 0755 lsinitrd.sh $(DESTDIR)$(bindir)/lsinitrd
-diff --git a/dracut.sh b/dracut.sh
-index 5e2feba..89a711e 100755
---- a/dracut.sh
-+++ b/dracut.sh
-@@ -24,10 +24,13 @@
- # store for logging
- dracut_args=( "$@" )
-
-+# base dirs
-+pkglibdir=/usr/lib/dracut
-+dracutbasedir="$pkglibdir"
-+
- set -o pipefail
-
- usage() {
-- [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
- if [[ -f $dracutbasedir/dracut-version.sh ]]; then
- . $dracutbasedir/dracut-version.sh
- fi
-@@ -52,7 +55,6 @@ EOF
- }
-
- long_usage() {
-- [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
- if [[ -f $dracutbasedir/dracut-version.sh ]]; then
- . $dracutbasedir/dracut-version.sh
- fi
-@@ -666,8 +668,6 @@ export DRACUT_LOG_LEVEL=warning
- debug=yes
- }
-
--[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
--
- # if we were not passed a config file, try the default one
- if [[ ! -f $conffile ]]; then
- if [[ $allowlocal ]]; then
-@@ -808,7 +808,6 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
- [[ $use_fstab_l ]] && use_fstab=$use_fstab_l
- [[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l
- [[ $lvmconf_l ]] && lvmconf=$lvmconf_l
--[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
- [[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware"
- [[ $tmpdir_l ]] && tmpdir="$tmpdir_l"
- [[ $tmpdir ]] || tmpdir=/var/tmp
---
-2.3.3
-
diff --git a/sys-kernel/dracut/files/041-0002-Install-dracut-install-and-skipcpio-in.patch b/sys-kernel/dracut/files/041-0002-Install-dracut-install-and-skipcpio-in.patch
deleted file mode 100644
index 5202ac3740..0000000000
--- a/sys-kernel/dracut/files/041-0002-Install-dracut-install-and-skipcpio-in.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 7d8dadfdb2d59ac60c6a579f602e13ac7c743e39 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Wed, 2 Oct 2013 22:40:43 +0200
-Subject: [PATCH 2/4] Install dracut-install and skipcpio into libexec dir
- instead of lib dir
-
-dracut-install and skipcpio are the only ABI specific things atm.
-
-See https://bugs.gentoo.org/show_bug.cgi?id=485218 for details on the
-problem.
----
- Makefile | 7 +++++--
- configure | 1 +
- dracut-functions.sh | 4 ++++
- dracut-initramfs-restore.sh | 4 ++--
- dracut.sh | 1 +
- lsinitrd.sh | 4 ++--
- 6 files changed, 15 insertions(+), 6 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 41968b0..bb007d1 100644
---- a/Makefile
-+++ b/Makefile
-@@ -104,6 +104,7 @@ install: dracut-version.sh
- mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
- install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
- sed -r \
-+ -e "s|^(libexecdir)=.*|\1=$(libexecdir)|" \
- -e "s|^(pkglibdir)=.*|\1=$(pkglibdir)|" \
- -i $(DESTDIR)$(bindir)/dracut
- install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
-@@ -147,10 +148,12 @@ endif
- done \
- fi
- if [ -f install/dracut-install ]; then \
-- install -m 0755 install/dracut-install $(DESTDIR)$(pkglibdir)/dracut-install; \
-+ mkdir -p $(DESTDIR)$(libexecdir)/dracut; \
-+ install -m 0755 install/dracut-install $(DESTDIR)$(libexecdir)/dracut/dracut-install; \
- fi
- if [ -f skipcpio/skipcpio ]; then \
-- install -m 0755 skipcpio/skipcpio $(DESTDIR)$(pkglibdir)/skipcpio; \
-+ mkdir -p $(DESTDIR)$(libexecdir)/dracut; \
-+ install -m 0755 skipcpio/skipcpio $(DESTDIR)$(libexecdir)/dracut/skipcpio; \
- fi
- mkdir -p $(DESTDIR)${prefix}/lib/kernel/install.d
- install -m 0755 50-dracut.install $(DESTDIR)${prefix}/lib/kernel/install.d/50-dracut.install
-diff --git a/configure b/configure
-index 0bd3d2d..17370de 100755
---- a/configure
-+++ b/configure
-@@ -59,6 +59,7 @@ sbindir ?= ${sbindir:-${prefix}/sbin}
- mandir ?= ${mandir:-${prefix}/share/man}
- enable_documentation ?= ${enable_documentation:-yes}
- bindir ?= ${bindir:-${prefix}/bin}
-+libexecdir ?= ${libexecdir:-${prefix}/libexec}
- EOF
-
- {
-diff --git a/dracut-functions.sh b/dracut-functions.sh
-index 37ddca2..953acd1 100755
---- a/dracut-functions.sh
-+++ b/dracut-functions.sh
-@@ -733,6 +733,10 @@ if ! [[ $DRACUT_INSTALL ]]; then
- DRACUT_INSTALL=$(find_binary dracut-install)
- fi
-
-+if ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutlibexecdir/dracut-install ]]; then
-+ DRACUT_INSTALL=$dracutlibexecdir/dracut-install
-+fi
-+
- if ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutbasedir/dracut-install ]]; then
- DRACUT_INSTALL=$dracutbasedir/dracut-install
- elif ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutbasedir/install/dracut-install ]]; then
-diff --git a/dracut-initramfs-restore.sh b/dracut-initramfs-restore.sh
-index 8b9b80f..8dd358e 100644
---- a/dracut-initramfs-restore.sh
-+++ b/dracut-initramfs-restore.sh
-@@ -8,8 +8,8 @@ set -e
-
- KERNEL_VERSION="$(uname -r)"
-
--[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
--SKIP="$dracutbasedir/skipcpio"
-+[[ $dracutlibexecdir ]] || dracutlibexecdir=/usr/libexec/dracut
-+SKIP="$dracutlibexecdir/skipcpio"
- [[ -x $SKIP ]] || SKIP=cat
-
- [[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id
-diff --git a/dracut.sh b/dracut.sh
-index 89a711e..9cfeef1 100755
---- a/dracut.sh
-+++ b/dracut.sh
-@@ -25,6 +25,7 @@
- dracut_args=( "$@" )
-
- # base dirs
-+dracutlibexecdir=/usr/libexec/dracut
- pkglibdir=/usr/lib/dracut
- dracutbasedir="$pkglibdir"
-
-diff --git a/lsinitrd.sh b/lsinitrd.sh
-index 4f12c2c..2ed6e56 100755
---- a/lsinitrd.sh
-+++ b/lsinitrd.sh
-@@ -33,7 +33,7 @@ usage()
- }
-
-
--[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
-+[[ $dracutlibexecdir ]] || dracutlibexecdir=/usr/libexec/dracut
-
- sorted=0
- modules=0
-@@ -158,7 +158,7 @@ case $bin in
- echo "Early CPIO image"
- list_files
- fi
-- SKIP="$dracutbasedir/skipcpio"
-+ SKIP="$dracutlibexecdir/skipcpio"
- if ! [[ -x $SKIP ]]; then
- echo
- echo "'$SKIP' not found, cannot display remaining contents!" >&2
---
-2.3.3
-
diff --git a/sys-kernel/dracut/files/041-0003-Take-into-account-lib64-dirs-when-dete.patch b/sys-kernel/dracut/files/041-0003-Take-into-account-lib64-dirs-when-dete.patch
deleted file mode 100644
index b355f8445c..0000000000
--- a/sys-kernel/dracut/files/041-0003-Take-into-account-lib64-dirs-when-dete.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From acfd4d98e821dbaa9ae68dde82fb8843fbf5de59 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
-Date: Sun, 11 Jan 2015 15:10:39 +0100
-Subject: [PATCH 3/4] Take into account lib64 dirs when detecting version,
- modules and params
-
----
- lsinitrd.sh | 15 ++++++++++++---
- 1 file changed, 12 insertions(+), 3 deletions(-)
-
-diff --git a/lsinitrd.sh b/lsinitrd.sh
-index 2ed6e56..0355c87 100755
---- a/lsinitrd.sh
-+++ b/lsinitrd.sh
-@@ -108,6 +108,12 @@ if ! [[ -f "$image" ]]; then
- exit 1
- fi
-
-+dracutlibdirs() {
-+ for d in lib64/dracut lib/dracut usr/lib64/dracut usr/lib/dracut; do
-+ echo "$d/$1"
-+ done
-+}
-+
- extract_files()
- {
- (( ${#filenames[@]} == 1 )) && nofileinfo=1
-@@ -124,7 +130,8 @@ extract_files()
- list_modules()
- {
- echo "dracut modules:"
-- $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/modules.txt' 'usr/lib/dracut/modules.txt' 2>/dev/null
-+ $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- \
-+ $(dracutlibdirs modules.txt) 2>/dev/null
- ((ret+=$?))
- }
-
-@@ -217,7 +224,8 @@ ret=0
- if (( ${#filenames[@]} > 0 )); then
- extract_files
- else
-- version=$($CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/dracut-*' 'usr/lib/dracut/dracut-*' 2>/dev/null)
-+ version=$($CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- \
-+ $(dracutlibdirs 'dracut-*') 2>/dev/null)
- ((ret+=$?))
- echo "Version: $version"
- echo
-@@ -226,7 +234,8 @@ else
- echo "========================================================================"
- else
- echo -n "Arguments: "
-- $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/build-parameter.txt' 'usr/lib/dracut/build-parameter.txt' 2>/dev/null
-+ $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- \
-+ $(dracutlibdirs build-parameter.txt) 2>/dev/null
- echo
- list_modules
- list_files
---
-2.3.3
-
diff --git a/sys-kernel/dracut/files/041-0004-Portability-fixes.patch b/sys-kernel/dracut/files/041-0004-Portability-fixes.patch
deleted file mode 100644
index f92cba390e..0000000000
--- a/sys-kernel/dracut/files/041-0004-Portability-fixes.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 82f7e46c8fdb2bb41b7b26916e463add7af70a94 Mon Sep 17 00:00:00 2001
-From: xtraeme <xtraeme@voidlinux.eu>
-Date: Tue, 2 Jun 2015 11:11:21 +0200
-Subject: [PATCH 5/5] Portability fixes:
-
-- Use uid_t not __uid_t.
-- Define _GNU_SOURCE for cpu_set_t and others.
-- Include string.h for strncmp().
-- Detect musl's ldd error message.
----
- install/dracut-install.c | 7 ++++++-
- install/util.h | 3 +++
- 2 files changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/install/dracut-install.c b/install/dracut-install.c
-index 201f181..0ff5c49 100644
---- a/install/dracut-install.c
-+++ b/install/dracut-install.c
-@@ -222,7 +222,7 @@ static int cp(const char *src, const char *dst)
- if (ret == 0) {
- struct timeval tv[2];
- if (fchown(dest_desc, sb.st_uid, sb.st_gid) != 0)
-- if(fchown(dest_desc, (__uid_t) - 1, sb.st_gid) != 0)
-+ if(fchown(dest_desc, (uid_t) - 1, sb.st_gid) != 0)
- log_error("Failed to chown %s: %m", dst);
- tv[0].tv_sec = sb.st_atime;
- tv[0].tv_usec = 0;
-@@ -388,6 +388,11 @@ static int resolve_deps(const char *src)
- break;
- }
-
-+ /* musl ldd */
-+ if (strstr(buf, "Not a valid dynamic program"))
-+ break;
-+
-+ /* glibc */
- if (strstr(buf, "not a dynamic executable"))
- break;
-
-diff --git a/install/util.h b/install/util.h
-index cc7b988..2ad3254 100644
---- a/install/util.h
-+++ b/install/util.h
-@@ -20,6 +20,8 @@
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
- ***/
-
-+#define _GNU_SOURCE
-+
- #include <inttypes.h>
- #include <time.h>
- #include <sys/time.h>
-@@ -27,6 +29,7 @@
- #include <stdbool.h>
- #include <stdlib.h>
- #include <stdio.h>
-+#include <string.h>
- #include <signal.h>
- #include <sched.h>
- #include <limits.h>
---
-2.4.1
-
diff --git a/sys-kernel/dracut/files/041-0005-base-dracut-lib.sh-remove-bashism.patch b/sys-kernel/dracut/files/041-0005-base-dracut-lib.sh-remove-bashism.patch
deleted file mode 100644
index 47bfdc5e09..0000000000
--- a/sys-kernel/dracut/files/041-0005-base-dracut-lib.sh-remove-bashism.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 7ab0852f24a803ea2c9b0d8e1ce45d13cdd25320 Mon Sep 17 00:00:00 2001
-From: Alexander Tsoy <alexander@tsoy.me>
-Date: Tue, 24 Feb 2015 22:28:24 +0300
-Subject: [PATCH 5/5] base/dracut-lib.sh: remove bashism
-
----
- modules.d/99base/dracut-lib.sh | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
-index 5c1504f..c1a22b6 100755
---- a/modules.d/99base/dracut-lib.sh
-+++ b/modules.d/99base/dracut-lib.sh
-@@ -886,7 +886,9 @@ dev_unit_name()
- dev="${dev##/}"
- dev="$(str_replace "$dev" '\' '\x5c')"
- dev="$(str_replace "$dev" '-' '\x2d')"
-- dev=${dev/#\./\\x2e}
-+ if [ "${dev##.}" != "$dev" ]; then
-+ dev="\x2e${dev##.}"
-+ fi
- dev="$(str_replace "$dev" '/' '-')"
-
- printf -- "%s" "$dev"
---
-2.4.1
-
diff --git a/sys-kernel/dracut/files/043-0001-Revert-lvm-Don-t-activate-LVs-with-act.patch b/sys-kernel/dracut/files/043-0001-Revert-lvm-Don-t-activate-LVs-with-act.patch
deleted file mode 100644
index 54d1ef83ab..0000000000
--- a/sys-kernel/dracut/files/043-0001-Revert-lvm-Don-t-activate-LVs-with-act.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7c782700a82e6f8b1cb665075e14eaf9d4f70867 Mon Sep 17 00:00:00 2001
-From: Fabian Deutsch <fabiand@fedoraproject.org>
-Date: Thu, 25 Jun 2015 11:17:59 +0200
-Subject: [PATCH] Revert "lvm: Don't activate LVs with activationskip set"
-
-This reverts commit cfa365a32d47388c8476064b23d7d4684f1e591b.
-
-The logic in commit cfa365a was added to prevent (odl) lvms from
-activating snapshots which should not be activated.
-Newer lvms however do this automatically (not enabling an LV if the
-the 'k' attribute set), thus we can revert the previous commit.
----
- modules.d/90lvm/lvm_scan.sh | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh
-index ce46e14..7495644 100755
---- a/modules.d/90lvm/lvm_scan.sh
-+++ b/modules.d/90lvm/lvm_scan.sh
-@@ -106,10 +106,6 @@ if [ -n "$LVS" ] ; then
- info "Scanning devices $lvmdevs for LVM logical volumes $LVS"
- lvm lvscan --ignorelockingfailure 2>&1 | vinfo
- for LV in $LVS; do
-- if [ "x$(lvm lvs --noheadings --select "lv_attr =~ k" $LV | wc -l)" = "x0" ]; then
-- info "Skipping activation of '$LV' because activationskip is set."
-- continue
-- fi
- if [ -z "$sysinit" ]; then
- lvm lvchange --yes -ay --ignorelockingfailure $nopoll --ignoremonitoring $LV 2>&1 | vinfo
- else
---
-2.4.5
-
diff --git a/sys-kernel/dracut/files/043-0002-Replace-echo-n-with-printf-in-code-wit.patch b/sys-kernel/dracut/files/043-0002-Replace-echo-n-with-printf-in-code-wit.patch
deleted file mode 100644
index 7f0e62732a..0000000000
--- a/sys-kernel/dracut/files/043-0002-Replace-echo-n-with-printf-in-code-wit.patch
+++ /dev/null
@@ -1,275 +0,0 @@
-From 15f330fe1afe9ac8870461faad55b7d63e791aca Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Tue, 14 Jul 2015 22:22:14 -0400
-Subject: [PATCH 2/3] Replace echo -n with printf in code with a /bin/sh
- shebang
-
-POSIX does not mandate that echo support the -n parameter.
-printf has more well-defined behavior.
----
- modules.d/04watchdog/watchdog-stop.sh | 2 +-
- modules.d/40network/net-lib.sh | 2 +-
- modules.d/45ifcfg/write-ifcfg.sh | 2 +-
- modules.d/90lvm/lvm_scan.sh | 4 ++--
- modules.d/95fcoe/fcoe-up.sh | 2 +-
- modules.d/98usrmount/mount-usr.sh | 2 +-
- modules.d/99base/dracut-lib.sh | 6 +++---
- modules.d/99base/init.sh | 2 +-
- test/TEST-10-RAID/create-root.sh | 2 +-
- test/TEST-10-RAID/cryptroot-ask.sh | 2 +-
- test/TEST-12-RAID-DEG/create-root.sh | 2 +-
- test/TEST-12-RAID-DEG/cryptroot-ask.sh | 2 +-
- test/TEST-13-ENC-RAID-LVM/create-root.sh | 2 +-
- test/TEST-13-ENC-RAID-LVM/cryptroot-ask.sh | 2 +-
- test/TEST-14-IMSM/cryptroot-ask.sh | 2 +-
- test/TEST-20-NFS/client-init.sh | 2 +-
- test/TEST-40-NBD/create-root.sh | 2 +-
- test/TEST-40-NBD/cryptroot-ask.sh | 2 +-
- 18 files changed, 21 insertions(+), 21 deletions(-)
-
-diff --git a/modules.d/04watchdog/watchdog-stop.sh b/modules.d/04watchdog/watchdog-stop.sh
-index 91d45d6..921f969 100755
---- a/modules.d/04watchdog/watchdog-stop.sh
-+++ b/modules.d/04watchdog/watchdog-stop.sh
-@@ -1,2 +1,2 @@
- #!/bin/sh
--[ -c /dev/watchdog ] && echo -n 'V' > /dev/watchdog
-+[ -c /dev/watchdog ] && printf 'V' > /dev/watchdog
-diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
-index a09cdaf..6c739e8 100755
---- a/modules.d/40network/net-lib.sh
-+++ b/modules.d/40network/net-lib.sh
-@@ -189,7 +189,7 @@ set_ifname() {
- fix_bootif() {
- local macaddr=${1}
- local IFS='-'
-- macaddr=$(for i in ${macaddr} ; do echo -n $i:; done)
-+ macaddr=$(printf '%s:' ${macaddr})
- macaddr=${macaddr%:}
- # strip hardware type field from pxelinux
- [ -n "${macaddr%??:??:??:??:??:??}" ] && macaddr=${macaddr#??:}
-diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
-index fa7db27..251d684 100755
---- a/modules.d/45ifcfg/write-ifcfg.sh
-+++ b/modules.d/45ifcfg/write-ifcfg.sh
-@@ -48,7 +48,7 @@ print_s390() {
- for i in /sys/class/net/$_netif/device/cdev[0-9]*; do
- [ -e $i ] || continue
- channel=$(readlink -f $i)
-- echo -n "${channel##*/},"
-+ printf '%s' "${channel##*/},"
- done
- })
- [ -n "$SUBCHANNELS" ] || return 1
-diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh
-index 7495644..ead28aa 100755
---- a/modules.d/90lvm/lvm_scan.sh
-+++ b/modules.d/90lvm/lvm_scan.sh
-@@ -15,14 +15,14 @@ SNAPSIZE=$(getargs rd.lvm.snapsize -d rd_LVM_SNAPSIZE=)
- lvmdevs=$(
- for f in /tmp/.lvm_scan-*; do
- [ -e "$f" ] || continue
-- echo -n "${f##/tmp/.lvm_scan-} "
-+ printf '%s' "${f##/tmp/.lvm_scan-} "
- done
- )
-
- if [ ! -e /etc/lvm/lvm.conf ]; then
- {
- echo 'devices {';
-- echo -n ' filter = [ '
-+ printf ' filter = [ '
- for dev in $lvmdevs; do
- printf '"a|^/dev/%s$|", ' $dev;
- done;
-diff --git a/modules.d/95fcoe/fcoe-up.sh b/modules.d/95fcoe/fcoe-up.sh
-index 43a0ad5..950e4b6 100755
---- a/modules.d/95fcoe/fcoe-up.sh
-+++ b/modules.d/95fcoe/fcoe-up.sh
-@@ -64,7 +64,7 @@ elif [ "$netdriver" = "bnx2x" ]; then
- sleep 3
- fipvlan "$netif" -c -s
- else
-- echo -n "$netif" > /sys/module/fcoe/parameters/create
-+ printf '%s' "$netif" > /sys/module/fcoe/parameters/create
- fi
-
- need_shutdown
-diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh
-index c29610f..d1a629c 100755
---- a/modules.d/98usrmount/mount-usr.sh
-+++ b/modules.d/98usrmount/mount-usr.sh
-@@ -12,7 +12,7 @@ filtersubvol() {
- while [ $# -gt 0 ]; do
- case $1 in
- subvol\=*) :;;
-- *) echo -n "${1}," ;;
-+ *) printf '%s' "${1}," ;;
- esac
- shift
- done
-diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
-index 08110cc..7a3c58c 100755
---- a/modules.d/99base/dracut-lib.sh
-+++ b/modules.d/99base/dracut-lib.sh
-@@ -298,7 +298,7 @@ _dogetargs() {
- fi
- done
- if [ -n "$_found" ]; then
-- [ $# -gt 0 ] && echo -n "$@"
-+ [ $# -gt 0 ] && printf '%s' "$*"
- return 0
- fi
- return 1;
-@@ -329,9 +329,9 @@ getargs() {
- done
- if [ -n "$_gfound" ]; then
- if [ $# -gt 0 ]; then
-- echo -n "$@"
-+ printf '%s' "$*"
- else
-- echo -n 1
-+ printf 1
- fi
- debug_on
- return 0
-diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
-index f96dbb5..a59e8ea 100755
---- a/modules.d/99base/init.sh
-+++ b/modules.d/99base/init.sh
-@@ -253,7 +253,7 @@ while :; do
- done
-
- {
-- echo -n "Mounted root filesystem "
-+ printf "Mounted root filesystem "
- while read dev mp rest || [ -n "$dev" ]; do [ "$mp" = "$NEWROOT" ] && echo $dev; done < /proc/mounts
- } | vinfo
-
-diff --git a/test/TEST-10-RAID/create-root.sh b/test/TEST-10-RAID/create-root.sh
-index a7e56a5..7b5f2a7 100755
---- a/test/TEST-10-RAID/create-root.sh
-+++ b/test/TEST-10-RAID/create-root.sh
-@@ -18,7 +18,7 @@ mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 /dev/sda2 /d
- # randomly.
- mdadm -W /dev/md0
- set -e
--echo -n test >keyfile
-+printf test >keyfile
- cryptsetup -q luksFormat /dev/md0 /keyfile
- echo "The passphrase is test"
- cryptsetup luksOpen /dev/md0 dracut_crypt_test </keyfile
-diff --git a/test/TEST-10-RAID/cryptroot-ask.sh b/test/TEST-10-RAID/cryptroot-ask.sh
-index 407d067..c39eff6 100755
---- a/test/TEST-10-RAID/cryptroot-ask.sh
-+++ b/test/TEST-10-RAID/cryptroot-ask.sh
-@@ -1,5 +1,5 @@
- #!/bin/sh
-
- [ -b "/dev/mapper/$2" ] && exit 0
--echo -n test >/keyfile
-+printf test >/keyfile
- /sbin/cryptsetup luksOpen "$1" "$2" </keyfile
-diff --git a/test/TEST-12-RAID-DEG/create-root.sh b/test/TEST-12-RAID-DEG/create-root.sh
-index 7b9a171..3299aa6 100755
---- a/test/TEST-12-RAID-DEG/create-root.sh
-+++ b/test/TEST-12-RAID-DEG/create-root.sh
-@@ -20,7 +20,7 @@ mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 /dev/sdb /de
- # wait for the array to finish initailizing, otherwise this sometimes fails
- # randomly.
- mdadm -W /dev/md0
--echo -n test >keyfile
-+printf test >keyfile
- cryptsetup -q luksFormat /dev/md0 /keyfile
- echo "The passphrase is test"
- set -e
-diff --git a/test/TEST-12-RAID-DEG/cryptroot-ask.sh b/test/TEST-12-RAID-DEG/cryptroot-ask.sh
-index db27c5b..78ed7f5 100755
---- a/test/TEST-12-RAID-DEG/cryptroot-ask.sh
-+++ b/test/TEST-12-RAID-DEG/cryptroot-ask.sh
-@@ -1,6 +1,6 @@
- #!/bin/sh
-
- [ -b /dev/mapper/$2 ] && exit 0
--echo -n test >/keyfile
-+printf test >/keyfile
- /sbin/cryptsetup luksOpen $1 $2 </keyfile
-
-diff --git a/test/TEST-13-ENC-RAID-LVM/create-root.sh b/test/TEST-13-ENC-RAID-LVM/create-root.sh
-index e74fe7f..72bc765 100755
---- a/test/TEST-13-ENC-RAID-LVM/create-root.sh
-+++ b/test/TEST-13-ENC-RAID-LVM/create-root.sh
-@@ -14,7 +14,7 @@ sfdisk /dev/sda <<EOF
- ,25M
- EOF
- udevadm settle
--echo -n test >keyfile
-+printf test >keyfile
- cryptsetup -q luksFormat /dev/sda2 /keyfile
- cryptsetup -q luksFormat /dev/sda3 /keyfile
- cryptsetup -q luksFormat /dev/sda4 /keyfile
-diff --git a/test/TEST-13-ENC-RAID-LVM/cryptroot-ask.sh b/test/TEST-13-ENC-RAID-LVM/cryptroot-ask.sh
-index db27c5b..78ed7f5 100755
---- a/test/TEST-13-ENC-RAID-LVM/cryptroot-ask.sh
-+++ b/test/TEST-13-ENC-RAID-LVM/cryptroot-ask.sh
-@@ -1,6 +1,6 @@
- #!/bin/sh
-
- [ -b /dev/mapper/$2 ] && exit 0
--echo -n test >/keyfile
-+printf test >/keyfile
- /sbin/cryptsetup luksOpen $1 $2 </keyfile
-
-diff --git a/test/TEST-14-IMSM/cryptroot-ask.sh b/test/TEST-14-IMSM/cryptroot-ask.sh
-index db27c5b..78ed7f5 100755
---- a/test/TEST-14-IMSM/cryptroot-ask.sh
-+++ b/test/TEST-14-IMSM/cryptroot-ask.sh
-@@ -1,6 +1,6 @@
- #!/bin/sh
-
- [ -b /dev/mapper/$2 ] && exit 0
--echo -n test >/keyfile
-+printf test >/keyfile
- /sbin/cryptsetup luksOpen $1 $2 </keyfile
-
-diff --git a/test/TEST-20-NFS/client-init.sh b/test/TEST-20-NFS/client-init.sh
-index 2311981..a443289 100755
---- a/test/TEST-20-NFS/client-init.sh
-+++ b/test/TEST-20-NFS/client-init.sh
-@@ -8,7 +8,7 @@ strstr() { [ "${1##*"$2"*}" != "$1" ]; }
-
- stty sane
- if strstr "$CMDLINE" "rd.shell"; then
-- [ -c /dev/watchdog ] && echo -n 'V' > /dev/watchdog
-+ [ -c /dev/watchdog ] && printf 'V' > /dev/watchdog
- strstr "$(setsid --help)" "control" && CTTY="-c"
- setsid $CTTY sh -i
- fi
-diff --git a/test/TEST-40-NBD/create-root.sh b/test/TEST-40-NBD/create-root.sh
-index 391279e..20d0eff 100755
---- a/test/TEST-40-NBD/create-root.sh
-+++ b/test/TEST-40-NBD/create-root.sh
-@@ -5,7 +5,7 @@ for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
- done
- rm -f -- /etc/lvm/lvm.conf
- udevadm control --reload
--echo -n test >keyfile
-+printf test >keyfile
- cryptsetup -q luksFormat /dev/sdb /keyfile
- echo "The passphrase is test"
- cryptsetup luksOpen /dev/sdb dracut_crypt_test </keyfile && \
-diff --git a/test/TEST-40-NBD/cryptroot-ask.sh b/test/TEST-40-NBD/cryptroot-ask.sh
-index db27c5b..78ed7f5 100755
---- a/test/TEST-40-NBD/cryptroot-ask.sh
-+++ b/test/TEST-40-NBD/cryptroot-ask.sh
-@@ -1,6 +1,6 @@
- #!/bin/sh
-
- [ -b /dev/mapper/$2 ] && exit 0
--echo -n test >/keyfile
-+printf test >/keyfile
- /sbin/cryptsetup luksOpen $1 $2 </keyfile
-
---
-2.5.0
-
diff --git a/sys-kernel/dracut/files/043-0003-syncheck-Look-for-echo-n-usage-in-modu.patch b/sys-kernel/dracut/files/043-0003-syncheck-Look-for-echo-n-usage-in-modu.patch
deleted file mode 100644
index 8be88334cc..0000000000
--- a/sys-kernel/dracut/files/043-0003-syncheck-Look-for-echo-n-usage-in-modu.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 4e17745f9786bfe21d5419c2e0eeff8c5667e747 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Tue, 14 Jul 2015 11:12:16 -0400
-Subject: [PATCH 3/3] syncheck: Look for 'echo -n' usage in modules
-
----
- Makefile | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 0af5d0f..16c6d2a 100644
---- a/Makefile
-+++ b/Makefile
-@@ -211,7 +211,8 @@ syncheck:
- [ "$${i##*/}" = "module-setup.sh" ] && continue; \
- read line < "$$i"; [ "$${line#*bash*}" != "$$line" ] && continue; \
- [ $$V ] && echo "posix syntax check: $$i"; bash --posix -n "$$i" ; ret=$$(($$ret+$$?)); \
-- [ $$V ] && echo "checking for [[: $$i"; if grep -Fq '[[ ' "$$i" ; then ret=$$(($$ret+1)); echo "$$i contains [["; fi \
-+ [ $$V ] && echo "checking for [[: $$i"; if grep -Fq '[[ ' "$$i" ; then ret=$$(($$ret+1)); echo "$$i contains [["; fi; \
-+ [ $$V ] && echo "checking for echo -n: $$i"; if grep -Fq 'echo -n ' "$$i" ; then ret=$$(($$ret+1)); echo "$$i contains echo -n"; fi \
- done;exit $$ret
- @ret=0;for i in *.sh mkinitrd-dracut.sh modules.d/*/*.sh \
- modules.d/*/module-setup.sh; do \
---
-2.5.0
-
diff --git a/sys-kernel/dracut/files/043-0004-dracut-initramfs-restore-make-mount-er.patch b/sys-kernel/dracut/files/043-0004-dracut-initramfs-restore-make-mount-er.patch
deleted file mode 100644
index 23e30e1f70..0000000000
--- a/sys-kernel/dracut/files/043-0004-dracut-initramfs-restore-make-mount-er.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From a18c8fdc9cb3eb917e9a7a30466839c33131cc8a Mon Sep 17 00:00:00 2001
-From: Alexander Tsoy <alexander@tsoy.me>
-Date: Tue, 28 Jul 2015 14:55:59 +0300
-Subject: [PATCH 4/4] dracut-initramfs-restore: make mount error nonfatal
-
-Script enables errexit option (set -e). So if /boot is not a mount point
-or is already mounted, then script dies after unsuccessful mount
-command. Fix this by always returning successful result.
----
- dracut-initramfs-restore.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dracut-initramfs-restore.sh b/dracut-initramfs-restore.sh
-index 0e6a1a8..0c41a59 100644
---- a/dracut-initramfs-restore.sh
-+++ b/dracut-initramfs-restore.sh
-@@ -14,7 +14,7 @@ SKIP="$dracutbasedir/skipcpio"
-
- [[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id
-
--mount -o ro /boot &>/dev/null
-+mount -o ro /boot &>/dev/null || true
-
- if [[ $MACHINE_ID ]] && [[ -d /boot/${MACHINE_ID} || -L /boot/${MACHINE_ID} ]] ; then
- IMG="/boot/${MACHINE_ID}/${KERNEL_VERSION}/initrd"
---
-2.5.0
-
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2018-03-24 18:03 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2018-03-24 18:03 UTC (permalink / raw
To: gentoo-commits
commit: c9943a36849687a41b3feec6d6a7de5dddd715da
Author: Alexander Tsoy <alexander <AT> tsoy <DOT> me>
AuthorDate: Fri Mar 23 14:45:25 2018 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Mar 24 18:02:33 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c9943a36
sys-kernel/dracut: add upstream patches
Fixes the following issues:
- issues found by shellcheck
- broken plymouth directory detection
Closes: https://bugs.gentoo.org/651132
.../{dracut-047.ebuild => dracut-047-r1.ebuild} | 2 +
.../047-all-fix-issues-found-by-shellcheck.patch | 77 ++++++++++++++++++++++
...mouth-fix-detection-of-plymouth-directory.patch | 31 +++++++++
3 files changed, 110 insertions(+)
diff --git a/sys-kernel/dracut/dracut-047.ebuild b/sys-kernel/dracut/dracut-047-r1.ebuild
similarity index 97%
rename from sys-kernel/dracut/dracut-047.ebuild
rename to sys-kernel/dracut/dracut-047-r1.ebuild
index b37520c7e9f..0ced6bdb8d9 100644
--- a/sys-kernel/dracut/dracut-047.ebuild
+++ b/sys-kernel/dracut/dracut-047-r1.ebuild
@@ -52,6 +52,8 @@ QA_MULTILIB_PATHS="usr/lib/dracut/.*"
PATCHES=(
"${FILESDIR}/045-systemdutildir.patch"
+ "${FILESDIR}/047-all-fix-issues-found-by-shellcheck.patch"
+ "${FILESDIR}/047-plymouth-fix-detection-of-plymouth-directory.patch"
)
src_configure() {
diff --git a/sys-kernel/dracut/files/047-all-fix-issues-found-by-shellcheck.patch b/sys-kernel/dracut/files/047-all-fix-issues-found-by-shellcheck.patch
new file mode 100644
index 00000000000..d5cbe042b63
--- /dev/null
+++ b/sys-kernel/dracut/files/047-all-fix-issues-found-by-shellcheck.patch
@@ -0,0 +1,77 @@
+From 3aa37cafde734719f2377600a17459fad30edfbc Mon Sep 17 00:00:00 2001
+From: Lukas Nykryn <lnykryn@redhat.com>
+Date: Fri, 2 Mar 2018 12:29:46 +0100
+Subject: [PATCH 06/14] all: fix issues found by shellcheck
+To: <initramfs@vger.kernel.org>
+
+Error: SHELLCHECK_WARNING:
+/usr/lib/dracut/dracut-init.sh:939:20: error: Argument to implicit -n is always true due to literal strings. [SC2157]
+ 937| dracut_kernel_post() {
+ 938| for _f in modules.builtin.bin modules.builtin modules.order; do
+ 939|-> [[ $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f"
+ 940| done
+ 941|
+
+Error: SHELLCHECK_WARNING:
+/usr/lib/dracut/modules.d/98syslog/parse-syslog-opts.sh:18:12: error: This expression is constant. Did you forget a $ somewhere? [SC2078]
+ 16| elif [ -e /sbin/syslogd ]; then
+ 17| syslogtype="syslogd"
+ 18|-> elif [ /sbin/syslog-ng ]; then
+ 19| syslogtype="syslog-ng"
+ 20| else
+
+Error: SHELLCHECK_WARNING:
+/usr/lib/dracut/modules.d/90crypt/crypt-lib.sh:15:29: error: Since you double quoted this, it will not word split, and the loop will only run once. [SC2066]
+ 13| strstr "$d" "${luks##luks-}" && return 0
+ 14| if [ -n "$dev" ]; then
+ 15|-> for _dev in "$(devnames $d)"; do
+ 16| [ "$dev" -ef "$_dev" ] && return 0
+ 17| done
+---
+ dracut-init.sh | 2 +-
+ modules.d/90crypt/crypt-lib.sh | 2 +-
+ modules.d/98syslog/parse-syslog-opts.sh | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/dracut-init.sh b/dracut-init.sh
+index 53e6f13a..1278c638 100644
+--- a/dracut-init.sh
++++ b/dracut-init.sh
+@@ -942,7 +942,7 @@ for_each_kmod_dep() {
+
+ dracut_kernel_post() {
+ for _f in modules.builtin.bin modules.builtin modules.order; do
+- [[ $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f"
++ [[ -e $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f"
+ done
+
+ # generate module dependencies for the initrd
+diff --git a/modules.d/90crypt/crypt-lib.sh b/modules.d/90crypt/crypt-lib.sh
+index 532b9a71..bbf485e0 100755
+--- a/modules.d/90crypt/crypt-lib.sh
++++ b/modules.d/90crypt/crypt-lib.sh
+@@ -12,7 +12,7 @@ crypttab_contains() {
+ strstr "${l##luks-}" "${luks##luks-}" && return 0
+ strstr "$d" "${luks##luks-}" && return 0
+ if [ -n "$dev" ]; then
+- for _dev in "$(devnames $d)"; do
++ for _dev in $(devnames $d); do
+ [ "$dev" -ef "$_dev" ] && return 0
+ done
+ fi
+diff --git a/modules.d/98syslog/parse-syslog-opts.sh b/modules.d/98syslog/parse-syslog-opts.sh
+index 50ec2759..9ec6ad47 100755
+--- a/modules.d/98syslog/parse-syslog-opts.sh
++++ b/modules.d/98syslog/parse-syslog-opts.sh
+@@ -15,7 +15,7 @@ detect_syslog() {
+ syslogtype="rsyslogd"
+ elif [ -e /sbin/syslogd ]; then
+ syslogtype="syslogd"
+- elif [ /sbin/syslog-ng ]; then
++ elif [ -e /sbin/syslog-ng ]; then
+ syslogtype="syslog-ng"
+ else
+ warn "Could not find any syslog binary although the syslogmodule is selected to be installed. Please check."
+--
+2.16.1
+
diff --git a/sys-kernel/dracut/files/047-plymouth-fix-detection-of-plymouth-directory.patch b/sys-kernel/dracut/files/047-plymouth-fix-detection-of-plymouth-directory.patch
new file mode 100644
index 00000000000..42f877292a7
--- /dev/null
+++ b/sys-kernel/dracut/files/047-plymouth-fix-detection-of-plymouth-directory.patch
@@ -0,0 +1,31 @@
+From fe6c7e0f06cde65effb3503a47c31ac39aceefb6 Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Fri, 23 Mar 2018 11:52:27 +0300
+Subject: [PATCH 14/14] plymouth: fix detection of plymouth directory
+To: <initramfs@vger.kernel.org>
+
+Some distros have both /usr/lib/plymouth and /usr/libexec/plymouth
+directorirs, so we should check the existance of plymouth-populate-initrd
+script.
+
+Fixes: 421b46f8ae89cfe2b62e880a8a5079ee8c1b3aae
+---
+ modules.d/50plymouth/module-setup.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/50plymouth/module-setup.sh b/modules.d/50plymouth/module-setup.sh
+index 5fbca8b0..b51913e8 100755
+--- a/modules.d/50plymouth/module-setup.sh
++++ b/modules.d/50plymouth/module-setup.sh
+@@ -6,7 +6,7 @@ pkglib_dir() {
+ _dirs+=" /usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/plymouth"
+ fi
+ for _dir in $_dirs; do
+- if [ -d $_dir ]; then
++ if [ -x $_dir/plymouth-populate-initrd ]; then
+ echo $_dir
+ return
+ fi
+--
+2.16.1
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2019-01-21 14:23 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2019-01-21 14:23 UTC (permalink / raw
To: gentoo-commits
commit: 3a5005c33678f26a1477a49e791f89a8480c523a
Author: Alexander Tsoy <alexander <AT> tsoy <DOT> me>
AuthorDate: Fri Jan 11 18:40:03 2019 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Jan 21 14:23:15 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a5005c3
sys-kernel/dracut: version bump to 049
Bug: https://bugs.gentoo.org/602122
Bug: https://bugs.gentoo.org/670450
Closes: https://github.com/gentoo/gentoo/pull/10808
Package-Manager: Portage-2.3.51, Repoman-2.3.11
Signed-off-by: Alexander Tsoy <alexander <AT> tsoy.me>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
sys-kernel/dracut/Manifest | 1 +
sys-kernel/dracut/dracut-049.ebuild | 158 +++++++++++++++++++++
...etwork-Don-t-include-40network-by-default.patch | 34 +++++
...49-remove-bashism-in-various-boot-scripts.patch | 89 ++++++++++++
4 files changed, 282 insertions(+)
diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest
index cac868159ce..7b97320d25d 100644
--- a/sys-kernel/dracut/Manifest
+++ b/sys-kernel/dracut/Manifest
@@ -3,3 +3,4 @@ DIST dracut-045.tar.xz 292652 BLAKE2B 0e7c57ddca6757d59823afdc4ff23dcb06cc9cec31
DIST dracut-046.tar.xz 299520 BLAKE2B 1e2d848aa0db0e90734d8c60610a60b1f0ff67f8c4d4f9933bec0bc1290071b1b1ee3cdb6c3da5b82d8f6d4cc7561ee17d38685659a4a6ee48a9085e388dfced SHA512 75cefc184960024ef32f7bb5a0fe060e9c7d82dbfd0fe247d54b585e2ebbf0f8af5d5dc1be7e5e8cf2c3bc27b3293842c6361ae62d047289d0c59d7d40b09122
DIST dracut-047.tar.xz 305836 BLAKE2B 18333ae1e24cfbbb6a152bf9ba2c48884821f6a506344259ba56c581a9f3efac7b4c88e8ca149ef1f83347a5e4d59acba61e42b8e0ab3a9e9beb8684d5db28b0 SHA512 03369726b6c2b682d0c9dead7b7dbd1c3989aaf2b4a561015634d33a94e5230d03cb634c3890191b19dd8c1c83389533ae1a46d45d2024ba885e0d2d46c5d035
DIST dracut-048.tar.xz 308484 BLAKE2B b19c8122034a8b40cbc9d09245730900b59691c336f1d231e768786ad64068e0a8daf57ae9a4182ab50d9e1c683c9b7dcac354eb26d8a60f061db78121bc11c7 SHA512 97fcfd5d314ef40687c245d95d2f1d0f3f9ff0472e66b6e6324bf9bd6b98186104f9d71fd9af344126d6ea9fa47b744d52831a374225633225f6f17fb15c04e0
+DIST dracut-049.tar.gz 376857 BLAKE2B e50084164e26aae6de812345cc76782435ec84951b44eea454355d0c65fe84fdd0858733de534bdf018bdfd92922f0be30b74d74be329a918e55d96c5e4d4fb6 SHA512 51489570856538588868a66c7bcc8a3728574592529905484526c523398dc1b8f1416e6b264780303acd08d818417a9668b76f1d64d3194432b5af79dc15c9f7
diff --git a/sys-kernel/dracut/dracut-049.ebuild b/sys-kernel/dracut/dracut-049.ebuild
new file mode 100644
index 00000000000..dda60561bf7
--- /dev/null
+++ b/sys-kernel/dracut/dracut-049.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2019 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
+
+DESCRIPTION="Generic initramfs generation tool"
+HOMEPAGE="https://dracut.wiki.kernel.org"
+SRC_URI="https://github.com/dracutdevs/dracut/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+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/systemd[sysv-utils]
+ )
+ >=sys-apps/util-linux-2.21
+ virtual/pkgconfig
+ virtual/udev
+
+ selinux? (
+ sec-policy/selinux-dracut
+ sys-libs/libselinux
+ sys-libs/libsepol
+ )
+ "
+DEPEND=">=sys-apps/kmod-23"
+
+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 README.generic README.kernel README.modules
+ README.testsuite TODO )
+
+QA_MULTILIB_PATHS="usr/lib/dracut/.*"
+
+PATCHES=(
+ "${FILESDIR}"/048-dracut-install-simplify-ldd-parsing-logic.patch
+ "${FILESDIR}"/049-40network-Don-t-include-40network-by-default.patch
+ "${FILESDIR}"/049-remove-bashism-in-various-boot-scripts.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
+
+ # Source tarball from github doesn't include this file
+ echo "DRACUT_VERSION=${PV}" > dracut-version.sh || die
+}
+
+src_install() {
+ default
+
+ local libdirs=( /$(get_libdir) /usr/$(get_libdir) )
+ if [[ ${SYMLINK_LIB} = yes && $(get_libdir) != lib ]]; then
+ # Preserve lib -> lib64 symlinks in initramfs
+ libdirs+=( /lib /usr/lib )
+ fi
+
+ einfo "Setting libdirs to \"${libdirs[*]}\" ..."
+ echo "libdirs=\"${libdirs[*]}\"" > "${T}/gentoo.conf" || die
+ insinto "/usr/lib/dracut/dracut.conf.d"
+ doins "${T}/gentoo.conf"
+
+ 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
+}
diff --git a/sys-kernel/dracut/files/049-40network-Don-t-include-40network-by-default.patch b/sys-kernel/dracut/files/049-40network-Don-t-include-40network-by-default.patch
new file mode 100644
index 00000000000..0d537941f1d
--- /dev/null
+++ b/sys-kernel/dracut/files/049-40network-Don-t-include-40network-by-default.patch
@@ -0,0 +1,34 @@
+From 83cbc06ab91288e2d931b4f36935bfdb79a99b0e Mon Sep 17 00:00:00 2001
+From: Kairui Song <kasong@redhat.com>
+Date: Fri, 12 Oct 2018 13:07:13 +0800
+Subject: [PATCH] 40network: Don't include 40network by default
+To: <initramfs@vger.kernel.org>
+
+commit 7347391 ('network-legacy: split off from network module')
+splitted network function to network-legacy and removed check() function
+of 40network. This caused 40network to be included even if network is
+not needed.
+
+Signed-off-by: Kairui Song <kasong@redhat.com>
+---
+ 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 57c0a45e..e8541636 100755
+--- a/modules.d/40network/module-setup.sh
++++ b/modules.d/40network/module-setup.sh
+@@ -1,5 +1,10 @@
+ #!/bin/bash
+
++# called by dracut
++check() {
++ return 255
++}
++
+ # called by dracut
+ depends() {
+ echo -n "kernel-network-modules "
+--
+2.19.2
+
diff --git a/sys-kernel/dracut/files/049-remove-bashism-in-various-boot-scripts.patch b/sys-kernel/dracut/files/049-remove-bashism-in-various-boot-scripts.patch
new file mode 100644
index 00000000000..93e3ed5bed8
--- /dev/null
+++ b/sys-kernel/dracut/files/049-remove-bashism-in-various-boot-scripts.patch
@@ -0,0 +1,89 @@
+From 09d2a1605b1b2663e3c25f1d9950b23a2bf4ad89 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
+ <congdanhqx@gmail.com>
+Date: Sun, 6 Jan 2019 11:48:02 +0700
+Subject: [PATCH] remove bashism in various boot scripts
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+To: <initramfs@vger.kernel.org>
+
+When using dash as initramfs shell, the boot process is broken.
+
+Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
+---
+ modules.d/90crypt/crypt-lib.sh | 2 +-
+ modules.d/90crypt/parse-keydev.sh | 2 +-
+ modules.d/91crypt-gpg/crypt-gpg-lib.sh | 2 +-
+ modules.d/95dcssblk/parse-dcssblk.sh | 2 +-
+ modules.d/98syslog/rsyslogd-start.sh | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/modules.d/90crypt/crypt-lib.sh b/modules.d/90crypt/crypt-lib.sh
+index bbf485e0..688ea251 100755
+--- a/modules.d/90crypt/crypt-lib.sh
++++ b/modules.d/90crypt/crypt-lib.sh
+@@ -191,7 +191,7 @@ readkey() {
+ local device="$3"
+
+ # No mounting needed if the keyfile resides inside the initrd
+- if [ "/" == "$keydev" ]; then
++ if [ "/" = "$keydev" ]; then
+ local mntp=/
+ else
+ # This creates a unique single mountpoint for *, or several for explicitly
+diff --git a/modules.d/90crypt/parse-keydev.sh b/modules.d/90crypt/parse-keydev.sh
+index a45b2fb5..04813414 100755
+--- a/modules.d/90crypt/parse-keydev.sh
++++ b/modules.d/90crypt/parse-keydev.sh
+@@ -18,7 +18,7 @@ if getargbool 1 rd.luks -n rd_NO_LUKS && \
+ fi
+
+ # A keydev of '/' is treated as the initrd itself
+- if [ "/" == "$keydev" ]; then
++ if [ "/" = "$keydev" ]; then
+ [ -z "$luksdev" ] && luksdev='*'
+ echo "$luksdev:$keydev:$keypath" >> /tmp/luks.keys
+ continue
+diff --git a/modules.d/91crypt-gpg/crypt-gpg-lib.sh b/modules.d/91crypt-gpg/crypt-gpg-lib.sh
+index b85ed2b8..c051b430 100755
+--- a/modules.d/91crypt-gpg/crypt-gpg-lib.sh
++++ b/modules.d/91crypt-gpg/crypt-gpg-lib.sh
+@@ -53,7 +53,7 @@ gpg_decrypt() {
+ --tries 3 --tty-echo-off
+
+ # Clean up the smartcard gpg-agent
+- if [ "${useSmartcard}" == "1" ]; then
++ if [ "${useSmartcard}" = "1" ]; then
+ GNUPGHOME="$gpghome" gpg-connect-agent 1>/dev/null killagent /bye
+ fi
+
+diff --git a/modules.d/95dcssblk/parse-dcssblk.sh b/modules.d/95dcssblk/parse-dcssblk.sh
+index 8f174408..27ac1d8d 100644
+--- a/modules.d/95dcssblk/parse-dcssblk.sh
++++ b/modules.d/95dcssblk/parse-dcssblk.sh
+@@ -2,7 +2,7 @@
+ # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+ dcssblk_arg=$(getarg rd.dcssblk=)
+-if [ $? == 0 ];then
++if [ $? = 0 ];then
+ info "Loading dcssblk segments=$dcssblk_arg"
+ modprobe dcssblk segments=$dcssblk_arg
+ fi
+diff --git a/modules.d/98syslog/rsyslogd-start.sh b/modules.d/98syslog/rsyslogd-start.sh
+index c64f2121..86ad50ea 100755
+--- a/modules.d/98syslog/rsyslogd-start.sh
++++ b/modules.d/98syslog/rsyslogd-start.sh
+@@ -38,7 +38,7 @@ rsyslog_config() {
+ [ -f /tmp/syslog.conf ] && read conf < /tmp/syslog.conf
+ [ -z "$conf" ] && conf="/etc/rsyslog.conf" && echo "$conf" > /tmp/syslog.conf
+
+-if [ $type == "rsyslogd" ]; then
++if [ $type = "rsyslogd" ]; then
+ template=/etc/templates/rsyslog.conf
+ if [ -n "$server" ]; then
+ rsyslog_config "$server" "$template" "$filters" > $conf
+--
+2.19.2
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2019-12-29 19:39 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2019-12-29 19:39 UTC (permalink / raw
To: gentoo-commits
commit: 980830b7e4a2953550338f13dd8525bcad28d8fc
Author: Alexander Tsoy <alexander <AT> tsoy <DOT> me>
AuthorDate: Thu Dec 26 14:26:15 2019 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Dec 29 19:36:23 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=980830b7
sys-kernel/dracut: Add a bunch of upstream patches
* fix dracut-install crashes
* install kernel module dependencies of dependencies
* add support for compressed firmware files
* add support for rngd service
* bash-5 compatibility
* add fts-standalone dependency and configure check for musl
* fix udevdir detection
Closes: https://bugs.gentoo.org/676268
Closes: https://bugs.gentoo.org/677788
Closes: https://bugs.gentoo.org/687602
Bug: https://bugs.gentoo.org/703438
Signed-off-by: Alexander Tsoy <alexander <AT> tsoy.me>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
sys-kernel/dracut/dracut-049-r3.ebuild | 176 +++++++++++++++++++++
...gure-find-cflags-and-libs-for-fts-on-musl.patch | 97 ++++++++++++
...t-create-locking-directory-run-cryptsetup.patch | 32 ++++
...all-Support-the-compressed-firmware-files.patch | 63 ++++++++
.../049-dracut.sh-Fix-udevdir-detection.patch | 38 +++++
.../dracut/files/049-fs-lib-drop-a-bashism.patch | 99 ++++++++++++
...cut-install.c-install-module-dependencies.patch | 79 +++++++++
...ing_hash_func-should-not-be-fed-with-NULL.patch | 38 +++++
...g-the-systemdutildir-variable-before-it-s.patch | 55 +++++++
...ager-call-the-online-hook-for-connected-d.patch | 32 ++++
...ager-fix-getting-of-ifname-from-the-sysfs.patch | 37 +++++
...rk-manager-remove-useless-use-of-basename.patch | 26 +++
...dule-running-early-during-boot-to-help-ge.patch | 88 +++++++++++
13 files changed, 860 insertions(+)
diff --git a/sys-kernel/dracut/dracut-049-r3.ebuild b/sys-kernel/dracut/dracut-049-r3.ebuild
new file mode 100644
index 00000000000..326820abb62
--- /dev/null
+++ b/sys-kernel/dracut/dracut-049-r3.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2019 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://github.com/dracutdevs/dracut/archive/${PV}.tar.gz -> ${P}.tar.gz"
+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 README.generic README.kernel README.modules
+ README.testsuite TODO )
+
+QA_MULTILIB_PATHS="usr/lib/dracut/.*"
+
+PATCHES=(
+ "${FILESDIR}"/048-dracut-install-simplify-ldd-parsing-logic.patch
+ "${FILESDIR}"/049-40network-Don-t-include-40network-by-default.patch
+ "${FILESDIR}"/049-remove-bashism-in-various-boot-scripts.patch
+ "${FILESDIR}"/049-network-manager-call-the-online-hook-for-connected-d.patch
+ "${FILESDIR}"/049-install-dracut-install.c-install-module-dependencies.patch
+ "${FILESDIR}"/049-install-string_hash_func-should-not-be-fed-with-NULL.patch
+ "${FILESDIR}"/049-dracut.sh-Fix-udevdir-detection.patch
+ "${FILESDIR}"/049-rngd-new-module-running-early-during-boot-to-help-ge.patch
+ "${FILESDIR}"/049-fs-lib-drop-a-bashism.patch
+ "${FILESDIR}"/049-network-manager-remove-useless-use-of-basename.patch
+ "${FILESDIR}"/049-move-setting-the-systemdutildir-variable-before-it-s.patch
+ "${FILESDIR}"/049-dracut-install-Support-the-compressed-firmware-files.patch
+ "${FILESDIR}"/049-crypt-create-locking-directory-run-cryptsetup.patch
+ "${FILESDIR}"/049-network-manager-fix-getting-of-ifname-from-the-sysfs.patch
+ "${FILESDIR}"/049-configure-find-cflags-and-libs-for-fts-on-musl.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 ]] ; 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/049-configure-find-cflags-and-libs-for-fts-on-musl.patch b/sys-kernel/dracut/files/049-configure-find-cflags-and-libs-for-fts-on-musl.patch
new file mode 100644
index 00000000000..cd74564adb5
--- /dev/null
+++ b/sys-kernel/dracut/files/049-configure-find-cflags-and-libs-for-fts-on-musl.patch
@@ -0,0 +1,97 @@
+From 62f27ee6f145b5f8ca571887602cd9b0715b9e9d Mon Sep 17 00:00:00 2001
+From: Doan Tran Cong Danh <congdanhqx@gmail.com>
+Date: Wed, 6 Nov 2019 18:35:12 +0700
+Subject: [PATCH] configure: find cflags and libs for fts on musl
+To: <initramfs@vger.kernel.org>
+
+Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com>
+---
+ Makefile | 2 +-
+ configure | 44 ++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 45 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 31545899..f9b42b96 100644
+--- a/Makefile
++++ b/Makefile
+@@ -62,7 +62,7 @@ install/util.o: install/util.c install/util.h install/macro.h install/log.h
+ install/strv.o: install/strv.c install/strv.h install/util.h install/macro.h install/log.h
+
+ install/dracut-install: $(DRACUT_INSTALL_OBJECTS)
+- $(CC) $(LDFLAGS) -o $@ $(DRACUT_INSTALL_OBJECTS) $(LDLIBS) $(KMOD_LIBS)
++ $(CC) $(LDFLAGS) -o $@ $(DRACUT_INSTALL_OBJECTS) $(LDLIBS) $(FTS_LIBS) $(KMOD_LIBS)
+
+ logtee: logtee.c
+ $(CC) $(LDFLAGS) -o $@ $<
+diff --git a/configure b/configure
+index b55fb609..3f724ef2 100755
+--- a/configure
++++ b/configure
+@@ -7,6 +7,7 @@ prefix=/usr
+
+ enable_documentation=yes
+
++CC="${CC:-cc}"
+ PKG_CONFIG="${PKG_CONFIG:-pkg-config}"
+
+ # Little helper function for reading args from the commandline.
+@@ -57,6 +58,48 @@ if ! ${PKG_CONFIG} --exists --print-errors " libkmod >= 23 "; then
+ exit 1
+ fi
+
++cat <<EOF >conftest.c
++#include <fts.h>
++int main() {
++ return 0;
++}
++EOF
++
++${CC} $CFLAGS $LDFLAGS conftest.c >/dev/null 2>&1
++ret=$?
++rm -f conftest.c a.out
++
++# musl doesn't have fts.h included
++if test $ret -ne 0; then
++ echo "dracut needs fts development files." >&2
++ exit 1
++fi
++
++cat <<EOF >conftest.c
++#include <fts.h>
++int main(void) {
++ fts_open(0, 0, 0);
++ return 0;
++}
++EOF
++
++found=no
++for lib in "-lc" "-lfts"; do
++ ${CC} $CFLAGS -Wl,$lib $LDFLAGS conftest.c >/dev/null 2>&1
++ ret=$?
++ if test $ret -eq 0; then
++ FTS_LIBS="$lib"
++ found=yes
++ break;
++ fi
++done
++rm -f conftest.c a.out
++
++if test $found = no; then
++ echo "dracut couldn't find usable fts library" >&2
++ exit 1
++fi
++
+ cat > Makefile.inc.$$ <<EOF
+ prefix ?= ${prefix}
+ libdir ?= ${libdir:-${prefix}/lib}
+@@ -68,6 +111,7 @@ enable_documentation ?= ${enable_documentation:-yes}
+ bindir ?= ${bindir:-${prefix}/bin}
+ KMOD_CFLAGS ?= $(${PKG_CONFIG} --cflags " libkmod >= 23 ")
+ KMOD_LIBS ?= $(${PKG_CONFIG} --libs " libkmod >= 23 ")
++FTS_LIBS ?= ${FTS_LIBS}
+ EOF
+
+ {
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/049-crypt-create-locking-directory-run-cryptsetup.patch b/sys-kernel/dracut/files/049-crypt-create-locking-directory-run-cryptsetup.patch
new file mode 100644
index 00000000000..be964c03746
--- /dev/null
+++ b/sys-kernel/dracut/files/049-crypt-create-locking-directory-run-cryptsetup.patch
@@ -0,0 +1,32 @@
+From f39aa529c59c533ce5e75e31be1b0cce4513b3d7 Mon Sep 17 00:00:00 2001
+From: Jonas Witschel <diabonas@gmx.de>
+Date: Sat, 31 Aug 2019 17:45:11 +0200
+Subject: [PATCH] crypt: create locking directory /run/cryptsetup
+To: <initramfs@vger.kernel.org>
+
+For LUKS2 partitions cryptsetup needs a locking directory. If it does
+not exist, cryptsetup will create it, but produce a warning
+
+WARNING: Locking directory /run/cryptsetup is missing!
+
+in the process that we do not want to see in the dracut output.
+---
+ modules.d/90crypt/cryptroot-ask.sh | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
+index 33a823c7..e1f17975 100755
+--- a/modules.d/90crypt/cryptroot-ask.sh
++++ b/modules.d/90crypt/cryptroot-ask.sh
+@@ -8,6 +8,8 @@ NEWROOT=${NEWROOT:-"/sysroot"}
+
+ . /lib/dracut-lib.sh
+
++mkdir -m 0700 /run/cryptsetup
++
+ # if device name is /dev/dm-X, convert to /dev/mapper/name
+ if [ "${1##/dev/dm-}" != "$1" ]; then
+ device="/dev/mapper/$(dmsetup info -c --noheadings -o name "$1")"
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/049-dracut-install-Support-the-compressed-firmware-files.patch b/sys-kernel/dracut/files/049-dracut-install-Support-the-compressed-firmware-files.patch
new file mode 100644
index 00000000000..85c0ea09972
--- /dev/null
+++ b/sys-kernel/dracut/files/049-dracut-install-Support-the-compressed-firmware-files.patch
@@ -0,0 +1,63 @@
+From 999cfa84582ab4ce4cc602242cb71d0af0b7d4ac Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Thu, 22 Aug 2019 12:37:56 +0200
+Subject: [PATCH] dracut-install: Support the compressed firmware files
+ correctly
+To: <initramfs@vger.kernel.org>
+
+The compressed firmware support was supposed to be already
+implemented, but it didn't work as expected in the end, because dracut
+moved to use dracut-install binary. This patch adds the support of
+XZ-compressed firmware installation to dracut-install for fixing the
+missing piece.
+
+At best the firmware files should be uncompressed in initrd, but this
+patch simply copies the compressed file as-is, as a quick workaround.
+
+BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1146769
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+---
+ install/dracut-install.c | 17 ++++++++++++++---
+ 1 file changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/install/dracut-install.c b/install/dracut-install.c
+index 9e415b5e..7cda499d 100644
+--- a/install/dracut-install.c
++++ b/install/dracut-install.c
+@@ -1151,6 +1151,8 @@ static int install_firmware(struct kmod_module *mod)
+ ret = -1;
+ STRV_FOREACH(q, firmwaredirs) {
+ _cleanup_free_ char *fwpath = NULL;
++ _cleanup_free_ char *fwpath_xz = NULL;
++ const char *fw;
+ struct stat sb;
+ int r;
+
+@@ -1160,12 +1162,21 @@ static int install_firmware(struct kmod_module *mod)
+ exit(EXIT_FAILURE);
+ }
+
++ fw = fwpath;
+ if (stat(fwpath, &sb) != 0) {
+- log_debug("stat(%s) != 0", fwpath);
+- continue;
++ r = asprintf(&fwpath_xz, "%s.xz", fwpath);
++ if (r < 0) {
++ log_error("Out of memory!");
++ exit(EXIT_FAILURE);
++ }
++ if (stat(fwpath_xz, &sb) != 0) {
++ log_debug("stat(%s) != 0", fwpath);
++ continue;
++ }
++ fw = fwpath_xz;
+ }
+
+- ret = dracut_install(fwpath, fwpath, false, false, true);
++ ret = dracut_install(fw, fw, false, false, true);
+ if (ret == 0)
+ log_debug("dracut_install '%s' OK", fwpath);
+ }
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/049-dracut.sh-Fix-udevdir-detection.patch b/sys-kernel/dracut/files/049-dracut.sh-Fix-udevdir-detection.patch
new file mode 100644
index 00000000000..ec7d4802370
--- /dev/null
+++ b/sys-kernel/dracut/files/049-dracut.sh-Fix-udevdir-detection.patch
@@ -0,0 +1,38 @@
+From dddcb809459b7a75906d4b90cf7a5ac291dc74c1 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 3 Apr 2019 15:24:47 +0800
+Subject: [PATCH] dracut.sh: Fix udevdir detection
+To: <initramfs@vger.kernel.org>
+
+In commit [9d1b81c dracut.sh: improve udevdir and systemdutildir
+fallback logic] , it checked a common binary `collect' to location
+udevdir.
+
+But upstream systemd drop binary `collect' since systemd v240
+[https://github.com/systemd/systemd/commit/a168792c2d95695fd30c0371d4b3890a9df1eafb]
+
+So check binary `ata_id' to instead.
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ dracut.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index 9098571d..fd9903b6 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -1311,8 +1311,8 @@ done
+ [[ -d $udevdir ]] \
+ || udevdir="$(pkg-config udev --variable=udevdir 2>/dev/null)"
+ if ! [[ -d "$udevdir" ]]; then
+- [[ -e /lib/udev/collect ]] && udevdir=/lib/udev
+- [[ -e /usr/lib/udev/collect ]] && udevdir=/usr/lib/udev
++ [[ -e /lib/udev/ata_id ]] && udevdir=/lib/udev
++ [[ -e /usr/lib/udev/ata_id ]] && udevdir=/usr/lib/udev
+ fi
+
+ [[ -d $systemdutildir ]] \
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/049-fs-lib-drop-a-bashism.patch b/sys-kernel/dracut/files/049-fs-lib-drop-a-bashism.patch
new file mode 100644
index 00000000000..a44b8f31651
--- /dev/null
+++ b/sys-kernel/dracut/files/049-fs-lib-drop-a-bashism.patch
@@ -0,0 +1,99 @@
+From 43c8c4ce0471abbb8c0fc4b8be2515cebc636030 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Fri, 21 Jun 2019 18:39:48 +0200
+Subject: [PATCH] fs-lib: drop a bashism
+To: <initramfs@vger.kernel.org>
+
+Bash 5 apparently longer propagates variable assignments to local variables
+in front of function calls when in POSIX mode:
+
+ [lkundrak@demiurge ~]$ cat feh.sh
+ print_VAR () {
+ echo "$VAR";
+ }
+
+ testfunc () {
+ local VAR="OLD"
+ VAR=NEW print_VAR
+ }
+
+ testfunc
+ [lkundrak@demiurge ~]$ bash4 --posix feh.sh
+ NEW
+ [lkundrak@demiurge ~]$ bash5 --posix feh.sh
+ OLD
+ [lkundrak@demiurge ~]$ bash5 feh.sh
+ NEW
+ [lkundrak@demiurge ~]$
+
+It works the way it did in Bash 4 in non-POSIX mode, for external programs,
+or for non-local variables. Don't ask me why -- it's probably some
+compatibility thing for some sad old people.
+
+However, this precisely happens when fsck_single() is calling into the
+fsck_drv_com(), assigned to _drv by fsck_able(). That ruins the
+TEST-70-BONDBRIDGETEAMVLAN test's server and probably more.
+
+Let's pass the fsck driver binary via the function argument instead. It's
+less messy anyway.
+---
+ modules.d/99fs-lib/fs-lib.sh | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh
+index d39ca1b7..11e795d9 100755
+--- a/modules.d/99fs-lib/fs-lib.sh
++++ b/modules.d/99fs-lib/fs-lib.sh
+@@ -44,22 +44,22 @@ fsck_able() {
+ ;;
+ ext?)
+ type e2fsck >/dev/null 2>&1 &&
+- _drv="_drv=e2fsck fsck_drv_com" &&
++ _drv="fsck_drv_com e2fsck" &&
+ return 0
+ ;;
+ f2fs)
+ type fsck.f2fs >/dev/null 2>&1 &&
+- _drv="_drv=fsck.f2fs fsck_drv_com" &&
++ _drv="fsck_drv_com fsck.f2fs" &&
+ return 0
+ ;;
+ jfs)
+ type jfs_fsck >/dev/null 2>&1 &&
+- _drv="_drv=jfs_fsck fsck_drv_com" &&
++ _drv="fsck_drv_com jfs_fsck" &&
+ return 0
+ ;;
+ reiserfs)
+ type reiserfsck >/dev/null 2>&1 &&
+- _drv="_drv=reiserfsck fsck_drv_com" &&
++ _drv="fsck_drv_com reiserfsck" &&
+ return 0
+ ;;
+ btrfs)
+@@ -70,12 +70,12 @@ fsck_able() {
+ ;;
+ nfs*)
+ # nfs can be a nop, returning success
+- _drv="_drv=none :" &&
++ _drv=":" &&
+ return 0
+ ;;
+ *)
+ type fsck >/dev/null 2>&1 &&
+- _drv="_drv=fsck fsck_drv_std" &&
++ _drv="fsck_drv_std fsck" &&
+ return 0
+ ;;
+ esac
+@@ -97,6 +97,7 @@ fsck_drv_btrfs() {
+
+ # common code for checkers that follow usual subset of options and return codes
+ fsck_drv_com() {
++ local _drv="$1"
+ local _ret
+ local _out
+
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/049-install-dracut-install.c-install-module-dependencies.patch b/sys-kernel/dracut/files/049-install-dracut-install.c-install-module-dependencies.patch
new file mode 100644
index 00000000000..ec3e903765a
--- /dev/null
+++ b/sys-kernel/dracut/files/049-install-dracut-install.c-install-module-dependencies.patch
@@ -0,0 +1,79 @@
+From c38f9e980c1ee03151dd1c6602907c6228b78d30 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@redhat.com>
+Date: Tue, 4 Dec 2018 10:02:45 +0100
+Subject: [PATCH] install/dracut-install.c: install module dependencies of
+ dependencies
+To: <initramfs@vger.kernel.org>
+
+---
+ install/dracut-install.c | 28 +++++++++++++++++++++++++---
+ 1 file changed, 25 insertions(+), 3 deletions(-)
+
+diff --git a/install/dracut-install.c b/install/dracut-install.c
+index 5f352b36..d64de545 100644
+--- a/install/dracut-install.c
++++ b/install/dracut-install.c
+@@ -84,6 +84,11 @@ static bool arg_mod_filter_noname = false;
+ static int dracut_install(const char *src, const char *dst, bool isdir, bool resolvedeps, bool hashdst);
+
+
++static inline void kmod_module_unrefp(struct kmod_module **p) {
++ if (*p)
++ kmod_module_unref(*p);
++}
++#define _cleanup_kmod_module_unref_ _cleanup_(kmod_module_unrefp)
+
+ static inline void kmod_module_unref_listp(struct kmod_list **p) {
+ if (*p)
+@@ -1230,28 +1235,45 @@ static bool check_module_path(const char *path)
+ static int install_dependent_modules(struct kmod_list *modlist)
+ {
+ struct kmod_list *itr;
+- struct kmod_module *mod;
+ const char *path = NULL;
+ const char *name = NULL;
+ int ret = 0;
+
+ kmod_list_foreach(itr, modlist) {
++ _cleanup_kmod_module_unref_ struct kmod_module *mod = NULL;
+ mod = kmod_module_get_module(itr);
+ path = kmod_module_get_path(mod);
+
++ if (check_hashmap(items_failed, path))
++ return -1;
++
++ if (check_hashmap(items, path)) {
++ continue;
++ }
++
+ name = kmod_module_get_name(mod);
++
+ if ((path == NULL) || (arg_mod_filter_noname && (regexec(&mod_filter_noname, name, 0, NULL, 0) == 0))) {
+- kmod_module_unref(mod);
+ continue;
+ }
++
+ ret = dracut_install(path, &path[kerneldirlen], false, false, true);
+ if (ret == 0) {
++ _cleanup_kmod_module_unref_list_ struct kmod_list *modlist = NULL;
++ _cleanup_kmod_module_unref_list_ struct kmod_list *modpre = NULL;
++ _cleanup_kmod_module_unref_list_ struct kmod_list *modpost = NULL;
+ log_debug("dracut_install '%s' '%s' OK", path, &path[kerneldirlen]);
+ install_firmware(mod);
++ modlist = kmod_module_get_dependencies(mod);
++ ret = install_dependent_modules(modlist);
++ if (ret == 0) {
++ ret = kmod_module_get_softdeps(mod, &modpre, &modpost);
++ if (ret == 0)
++ ret = install_dependent_modules(modpre);
++ }
+ } else {
+ log_error("dracut_install '%s' '%s' ERROR", path, &path[kerneldirlen]);
+ }
+- kmod_module_unref(mod);
+ }
+
+ return ret;
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/049-install-string_hash_func-should-not-be-fed-with-NULL.patch b/sys-kernel/dracut/files/049-install-string_hash_func-should-not-be-fed-with-NULL.patch
new file mode 100644
index 00000000000..80f0c2b0186
--- /dev/null
+++ b/sys-kernel/dracut/files/049-install-string_hash_func-should-not-be-fed-with-NULL.patch
@@ -0,0 +1,38 @@
+From fc141f22869bad2e5409d1cc555c1a42ea738343 Mon Sep 17 00:00:00 2001
+From: Lukas Nykryn <lnykryn@redhat.com>
+Date: Thu, 14 Feb 2019 20:18:04 +0100
+Subject: [PATCH] install: string_hash_func should not be fed with NULL
+To: <initramfs@vger.kernel.org>
+
+If kmod_module_get_path returns NULL, we should skip that entry,
+the hash function does not like NULL pointers.
+---
+ install/dracut-install.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/install/dracut-install.c b/install/dracut-install.c
+index d64de545..9e415b5e 100644
+--- a/install/dracut-install.c
++++ b/install/dracut-install.c
+@@ -1244,6 +1244,9 @@ static int install_dependent_modules(struct kmod_list *modlist)
+ mod = kmod_module_get_module(itr);
+ path = kmod_module_get_path(mod);
+
++ if (path == NULL)
++ continue;
++
+ if (check_hashmap(items_failed, path))
+ return -1;
+
+@@ -1253,7 +1256,7 @@ static int install_dependent_modules(struct kmod_list *modlist)
+
+ name = kmod_module_get_name(mod);
+
+- if ((path == NULL) || (arg_mod_filter_noname && (regexec(&mod_filter_noname, name, 0, NULL, 0) == 0))) {
++ if (arg_mod_filter_noname && (regexec(&mod_filter_noname, name, 0, NULL, 0) == 0)) {
+ continue;
+ }
+
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/049-move-setting-the-systemdutildir-variable-before-it-s.patch b/sys-kernel/dracut/files/049-move-setting-the-systemdutildir-variable-before-it-s.patch
new file mode 100644
index 00000000000..585f47add02
--- /dev/null
+++ b/sys-kernel/dracut/files/049-move-setting-the-systemdutildir-variable-before-it-s.patch
@@ -0,0 +1,55 @@
+From c8b35bf96af1859c0c254db34a16b9cc5a2aa46b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=D0=94=D0=B0=D0=BC=D1=98=D0=B0=D0=BD=20=D0=93=D0=B5=D0=BE?=
+ =?UTF-8?q?=D1=80=D0=B3=D0=B8=D0=B5=D0=B2=D1=81=D0=BA=D0=B8?=
+ <gdamjan@gmail.com>
+Date: Mon, 27 May 2019 18:22:14 +0200
+Subject: [PATCH] move setting the "systemdutildir" variable before it's used
+To: <initramfs@vger.kernel.org>
+
+on line 1086 it's used to check for the uefi_stub:
+"${systemdutildir}/boot/efi/linux${EFI_MACHINE_TYPE_NAME}.efi.stub"
+
+so it needs to be defined before that
+---
+ dracut.sh | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index 183b892f..a3618f89 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -1009,6 +1009,16 @@ esac
+
+ abs_outfile=$(readlink -f "$outfile") && outfile="$abs_outfile"
+
++
++[[ -d $systemdutildir ]] \
++ || systemdutildir=$(pkg-config systemd --variable=systemdutildir 2>/dev/null)
++
++if ! [[ -d "$systemdutildir" ]]; then
++ [[ -e /lib/systemd/systemd-udevd ]] && systemdutildir=/lib/systemd
++ [[ -e /usr/lib/systemd/systemd-udevd ]] && systemdutildir=/usr/lib/systemd
++fi
++
++
+ if [[ $no_kernel != yes ]] && [[ -d $srcmods ]]; then
+ if ! [[ -f $srcmods/modules.dep ]]; then
+ if [[ -n "$(find "$srcmods" -name '*.ko*')" ]]; then
+@@ -1325,14 +1335,6 @@ if ! [[ -d "$udevdir" ]]; then
+ [[ -e /usr/lib/udev/ata_id ]] && udevdir=/usr/lib/udev
+ fi
+
+-[[ -d $systemdutildir ]] \
+- || systemdutildir=$(pkg-config systemd --variable=systemdutildir 2>/dev/null)
+-
+-if ! [[ -d "$systemdutildir" ]]; then
+- [[ -e /lib/systemd/systemd-udevd ]] && systemdutildir=/lib/systemd
+- [[ -e /usr/lib/systemd/systemd-udevd ]] && systemdutildir=/usr/lib/systemd
+-fi
+-
+ [[ -d $systemdsystemunitdir ]] \
+ || systemdsystemunitdir=$(pkg-config systemd --variable=systemdsystemunitdir 2>/dev/null)
+
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/049-network-manager-call-the-online-hook-for-connected-d.patch b/sys-kernel/dracut/files/049-network-manager-call-the-online-hook-for-connected-d.patch
new file mode 100644
index 00000000000..7f5fc6a0385
--- /dev/null
+++ b/sys-kernel/dracut/files/049-network-manager-call-the-online-hook-for-connected-d.patch
@@ -0,0 +1,32 @@
+From 79a17b0112995eb60c85c64d15070c52f213b28d Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Tue, 27 Nov 2018 15:30:48 +0100
+Subject: [PATCH] network-manager: call the online hook for connected devices
+To: <initramfs@vger.kernel.org>
+
+Look for "connection-uuid" instead of "managed" to determine the devices
+that are actually activated with a connection and call the online hook.
+
+This fixes the anaconda-net root mount, which utilizes the online hook.
+---
+ modules.d/35network-manager/nm-run.sh | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh
+index f6defa99..0f943631 100755
+--- a/modules.d/35network-manager/nm-run.sh
++++ b/modules.d/35network-manager/nm-run.sh
+@@ -9,8 +9,9 @@ fi
+ for _i in /sys/class/net/*/
+ do
+ state=/run/NetworkManager/devices/$(cat $_i/ifindex)
+- grep -q managed=true $state 2>/dev/null || continue
++ grep -q connection-uuid= $state 2>/dev/null || continue
+ ifname=$(basename $_i)
+ sed -n 's/root-path/new_root_path/p' <$state >/tmp/dhclient.$ifname.dhcpopts
++ source_hook initqueue/online $ifname
+ /sbin/netroot $ifname
+ done
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/049-network-manager-fix-getting-of-ifname-from-the-sysfs.patch b/sys-kernel/dracut/files/049-network-manager-fix-getting-of-ifname-from-the-sysfs.patch
new file mode 100644
index 00000000000..430b93f93de
--- /dev/null
+++ b/sys-kernel/dracut/files/049-network-manager-fix-getting-of-ifname-from-the-sysfs.patch
@@ -0,0 +1,37 @@
+From 687e17aa7f2f40d21717be9a04302c749e139d4a Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Wed, 30 Oct 2019 19:25:51 +0100
+Subject: [PATCH] network-manager: fix getting of ifname from the sysfs path
+To: <initramfs@vger.kernel.org>
+
+commit 5e0f8c8a4ced ('network-manager: remove useless use of basename')
+somewhat carelessly didn't take into account that $_i has a slash at
+the end which made the result of the ## substitution be just an empty
+string.
+
+The slash was put to the end of /sys/class/net/*/ to make sure we're only
+iterating directories, but it's not strictly necessary. In an unlikely case
+something else than a directory appears in /sys/class/net/, we'll already deal
+with it gracefully. Remove it.
+
+This fixes the TEST-30-ISCSI test.
+---
+ modules.d/35network-manager/nm-run.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh
+index a539d5b2..b33e0992 100755
+--- a/modules.d/35network-manager/nm-run.sh
++++ b/modules.d/35network-manager/nm-run.sh
+@@ -6,7 +6,7 @@ else
+ /usr/sbin/NetworkManager --configure-and-quit=initrd --no-daemon
+ fi
+
+-for _i in /sys/class/net/*/
++for _i in /sys/class/net/*
+ do
+ state=/run/NetworkManager/devices/$(cat $_i/ifindex)
+ grep -q connection-uuid= $state 2>/dev/null || continue
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/049-network-manager-remove-useless-use-of-basename.patch b/sys-kernel/dracut/files/049-network-manager-remove-useless-use-of-basename.patch
new file mode 100644
index 00000000000..1650c9a767e
--- /dev/null
+++ b/sys-kernel/dracut/files/049-network-manager-remove-useless-use-of-basename.patch
@@ -0,0 +1,26 @@
+From 5e0f8c8a4ced36268d0077acafa1db2402776fa6 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Mon, 17 Jun 2019 10:07:38 +0200
+Subject: [PATCH] network-manager: remove useless use of basename
+To: <initramfs@vger.kernel.org>
+
+---
+ modules.d/35network-manager/nm-run.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh
+index 0f943631..5f4b38ca 100755
+--- a/modules.d/35network-manager/nm-run.sh
++++ b/modules.d/35network-manager/nm-run.sh
+@@ -10,7 +10,7 @@ for _i in /sys/class/net/*/
+ do
+ state=/run/NetworkManager/devices/$(cat $_i/ifindex)
+ grep -q connection-uuid= $state 2>/dev/null || continue
+- ifname=$(basename $_i)
++ ifname=${_i##*/}
+ sed -n 's/root-path/new_root_path/p' <$state >/tmp/dhclient.$ifname.dhcpopts
+ source_hook initqueue/online $ifname
+ /sbin/netroot $ifname
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/049-rngd-new-module-running-early-during-boot-to-help-ge.patch b/sys-kernel/dracut/files/049-rngd-new-module-running-early-during-boot-to-help-ge.patch
new file mode 100644
index 00000000000..5ea342df78a
--- /dev/null
+++ b/sys-kernel/dracut/files/049-rngd-new-module-running-early-during-boot-to-help-ge.patch
@@ -0,0 +1,88 @@
+From adee5b97bc5418b6e357342bb3be20568668aa55 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Renaud=20M=C3=A9trich?= <rmetrich@redhat.com>
+Date: Thu, 11 Jul 2019 10:50:40 +0200
+Subject: [PATCH] rngd: new module running early during boot to help generating
+ entropy when system's default entropy sources are poor (e.g. use of SSD disks
+ or UEFI RNG not available)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+To: <initramfs@vger.kernel.org>
+
+On systems with low entropy at boot, the boot can take up to several
+hours, specially when NBDE is used (e.g. clevis) which makes use of
+the random number generator.
+
+Enabling rngd service at boot early, because dracut-initqueue runs,
+enables to initialize the random number generator in a couple of seconds
+instead of minutes or hours.
+
+Signed-off-by: Renaud Métrich <rmetrich@redhat.com>
+---
+ modules.d/06rngd/module-setup.sh | 39 ++++++++++++++++++++++++++++++++
+ modules.d/06rngd/rngd.service | 7 ++++++
+ 2 files changed, 46 insertions(+)
+ create mode 100644 modules.d/06rngd/module-setup.sh
+ create mode 100644 modules.d/06rngd/rngd.service
+
+diff --git a/modules.d/06rngd/module-setup.sh b/modules.d/06rngd/module-setup.sh
+new file mode 100644
+index 00000000..43d5c2d3
+--- /dev/null
++++ b/modules.d/06rngd/module-setup.sh
+@@ -0,0 +1,39 @@
++#!/bin/bash
++# vim: set tabstop=8 shiftwidth=4 softtabstop=4 expandtab smarttab colorcolumn=80:
++#
++# Copyright (c) 2019 Red Hat, Inc.
++# Author: Renaud Métrich <rmetrich@redhat.com>
++#
++# This program is free software: you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation, either version 3 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program. If not, see <http://www.gnu.org/licenses/>.
++#
++
++depends() {
++ echo systemd
++ return 0
++}
++
++check() {
++ # if there's no rngd binary, no go.
++ require_binaries rngd || return 1
++
++ return 0
++}
++
++install() {
++ inst rngd
++ inst_simple "${moddir}/rngd.service" "${systemdsystemunitdir}/rngd.service"
++ mkdir -p "${initdir}${systemdsystemunitdir}/sysinit.target.wants"
++ ln -rfs "${initdir}${systemdsystemunitdir}/rngd.service" \
++ "${initdir}${systemdsystemunitdir}/sysinit.target.wants/rngd.service"
++}
+diff --git a/modules.d/06rngd/rngd.service b/modules.d/06rngd/rngd.service
+new file mode 100644
+index 00000000..570fbedb
+--- /dev/null
++++ b/modules.d/06rngd/rngd.service
+@@ -0,0 +1,7 @@
++[Unit]
++Description=Hardware RNG Entropy Gatherer Daemon
++DefaultDependencies=no
++Before=systemd-udevd.service
++
++[Service]
++ExecStart=/usr/sbin/rngd -f
+--
+2.24.1
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2020-03-10 19:50 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2020-03-10 19:50 UTC (permalink / raw
To: gentoo-commits
commit: 4963c4ebb04f862691cbb8a769709d34e86eb953
Author: Alexander Tsoy <alexander <AT> tsoy <DOT> me>
AuthorDate: Mon Mar 9 23:21:19 2020 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Mar 10 19:49:53 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4963c4eb
sys-kernel/dracut: Version bump to 050
* Switch back to tarballs from kernel.org
* Remove redundant gcc paths in ldconfig_paths()
Closes: https://bugs.gentoo.org/705728
Signed-off-by: Alexander Tsoy <alexander <AT> tsoy.me>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
sys-kernel/dracut/Manifest | 1 +
sys-kernel/dracut/dracut-050.ebuild | 165 +++++++++++++++++++++
.../files/050-Makefile-fix-VERSION-again.patch | 34 +++++
...erge-main-version-and-git-version-earlier.patch | 78 ++++++++++
...on-t-call-fsfreeze-on-subvol-of-root-file.patch | 75 ++++++++++
.../dracut/files/050-gentoo-ldconfig-paths.patch | 39 +++++
6 files changed, 392 insertions(+)
diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest
index 7b97320d25d..a2441ad9a7f 100644
--- a/sys-kernel/dracut/Manifest
+++ b/sys-kernel/dracut/Manifest
@@ -4,3 +4,4 @@ DIST dracut-046.tar.xz 299520 BLAKE2B 1e2d848aa0db0e90734d8c60610a60b1f0ff67f8c4
DIST dracut-047.tar.xz 305836 BLAKE2B 18333ae1e24cfbbb6a152bf9ba2c48884821f6a506344259ba56c581a9f3efac7b4c88e8ca149ef1f83347a5e4d59acba61e42b8e0ab3a9e9beb8684d5db28b0 SHA512 03369726b6c2b682d0c9dead7b7dbd1c3989aaf2b4a561015634d33a94e5230d03cb634c3890191b19dd8c1c83389533ae1a46d45d2024ba885e0d2d46c5d035
DIST dracut-048.tar.xz 308484 BLAKE2B b19c8122034a8b40cbc9d09245730900b59691c336f1d231e768786ad64068e0a8daf57ae9a4182ab50d9e1c683c9b7dcac354eb26d8a60f061db78121bc11c7 SHA512 97fcfd5d314ef40687c245d95d2f1d0f3f9ff0472e66b6e6324bf9bd6b98186104f9d71fd9af344126d6ea9fa47b744d52831a374225633225f6f17fb15c04e0
DIST dracut-049.tar.gz 376857 BLAKE2B e50084164e26aae6de812345cc76782435ec84951b44eea454355d0c65fe84fdd0858733de534bdf018bdfd92922f0be30b74d74be329a918e55d96c5e4d4fb6 SHA512 51489570856538588868a66c7bcc8a3728574592529905484526c523398dc1b8f1416e6b264780303acd08d818417a9668b76f1d64d3194432b5af79dc15c9f7
+DIST dracut-050.tar.xz 333592 BLAKE2B cb0bfa5a8e7547260b8a80a3606eb284182c062926269c85b09e07d26ad177df0eeaa64b17005bff9290611f1c83fc8cd8e2216cfe14b5e66ec7f659d4c2fa7b SHA512 eba046cf1c8013369a398e585e0bff233daa8595d469ce9acc8bbc6a32d55c6a5429d4219db19abbf6001104be05b357f0961f9e66b7f926039a5d3ee7c2b850
diff --git a/sys-kernel/dracut/dracut-050.ebuild b/sys-kernel/dracut/dracut-050.ebuild
new file mode 100644
index 00000000000..5b09940bf76
--- /dev/null
+++ b/sys-kernel/dracut/dracut-050.ebuild
@@ -0,0 +1,165 @@
+# 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-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-Makefile-fix-VERSION-again.patch b/sys-kernel/dracut/files/050-Makefile-fix-VERSION-again.patch
new file mode 100644
index 00000000000..a091e4c9fac
--- /dev/null
+++ b/sys-kernel/dracut/files/050-Makefile-fix-VERSION-again.patch
@@ -0,0 +1,34 @@
+From a76aa8e39016a8564adb0f18f93bbf2e15d3243f Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Sun, 8 Mar 2020 05:47:50 +0300
+Subject: [PATCH] Makefile: fix VERSION again
+
+The variable is not undefined anymore after the first assignment, so
+we should check if variable is empty instead.
+---
+ Makefile | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index c69e2dfc..02e2c4b5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,9 +1,13 @@
+ -include dracut-version.sh
+
+ DRACUT_MAIN_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CWD)/.. git describe --abbrev=0 --tags --always 2>/dev/null || :)
+-DRACUT_MAIN_VERSION ?= $(DRACUT_VERSION)
++ifeq ($(DRACUT_MAIN_VERSION),)
++DRACUT_MAIN_VERSION = $(DRACUT_VERSION)
++endif
+ DRACUT_FULL_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CWD)/.. git describe --tags --always 2>/dev/null || :)
+-DRACUT_FULL_VERSION ?= $(DRACUT_VERSION)
++ifeq ($(DRACUT_FULL_VERSION),)
++DRACUT_FULL_VERSION = $(DRACUT_VERSION)
++endif
+
+ -include Makefile.inc
+
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/050-Makefile-merge-main-version-and-git-version-earlier.patch b/sys-kernel/dracut/files/050-Makefile-merge-main-version-and-git-version-earlier.patch
new file mode 100644
index 00000000000..49c532b9299
--- /dev/null
+++ b/sys-kernel/dracut/files/050-Makefile-merge-main-version-and-git-version-earlier.patch
@@ -0,0 +1,78 @@
+From eb8a7a96351b6e1cfd9dc34f1e854333a8f4a4e0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
+ <congdanhqx@gmail.com>
+Date: Fri, 6 Mar 2020 08:46:36 +0700
+Subject: [PATCH] Makefile: merge main-version and git-version earlier
+
+With GNU Make 4.3 on both ArchLinux, and VoidLinux,
+GITVERION is always empty because of bad substitution.
+Change '\#' to simply '#' can fix it,
+but we don't need that complation.
+
+We can merge DRACUT_MAIN_VERSION and GITVERSION into DRACUT_FULL_VERSION.
+Because, GITVERSION will be attached back to DRACUT_MAIN_VERSION in all
+situation.
+
+While we're at it, detect if we're in git worktree by:
+limiting GIT_CEILING_DIRECTORIES to parent directory of
+dracut's top level directory; instead of checking for .git directory,
+in order to support git-worktree, in such case, .git will be a file, see
+gitrepository-layout(5)
+---
+ Makefile | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 22b584f1..c69e2dfc 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,8 +1,9 @@
+ -include dracut-version.sh
+
+-DRACUT_MAIN_VERSION ?= $(shell [ -d .git ] && git describe --abbrev=0 --tags --always 2>/dev/null || :)
++DRACUT_MAIN_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CWD)/.. git describe --abbrev=0 --tags --always 2>/dev/null || :)
+ DRACUT_MAIN_VERSION ?= $(DRACUT_VERSION)
+-GITVERSION ?= $(shell [ -d .git ] && { v=$$(git describe --tags --always 2>/dev/null); [ -n "$$v" ] && [ $${v\#*-} != $$v ] && echo -$${v\#*-}; } )
++DRACUT_FULL_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CWD)/.. git describe --tags --always 2>/dev/null || :)
++DRACUT_FULL_VERSION ?= $(DRACUT_VERSION)
+
+ -include Makefile.inc
+
+@@ -92,14 +93,14 @@ endif
+
+ %.xml: %.asc
+ @rm -f -- "$@"
+- asciidoc -a "version=$(DRACUT_MAIN_VERSION)$(GITVERSION)" -d manpage -b docbook -o "$@" $<
++ asciidoc -a "version=$(DRACUT_FULL_VERSION)" -d manpage -b docbook -o "$@" $<
+
+ dracut.8: dracut.usage.asc dracut.8.asc
+
+ dracut.html: dracut.asc $(manpages) dracut.css dracut.usage.asc
+ @rm -f -- dracut.xml
+ asciidoc -a "mainversion=$(DRACUT_MAIN_VERSION)" \
+- -a "version=$(DRACUT_MAIN_VERSION)$(GITVERSION)" \
++ -a "version=$(DRACUT_FULL_VERSION)" \
+ -a numbered \
+ -d book -b docbook -o dracut.xml dracut.asc
+ @rm -f -- dracut.html
+@@ -112,7 +113,7 @@ dracut.html: dracut.asc $(manpages) dracut.css dracut.usage.asc
+ dracut.pc: Makefile.inc Makefile
+ @echo "Name: dracut" > dracut.pc
+ @echo "Description: dracut" >> dracut.pc
+- @echo "Version: $(DRACUT_MAIN_VERSION)$(GITVERSION)" >> dracut.pc
++ @echo "Version: $(DRACUT_FULL_VERSION)" >> dracut.pc
+ @echo "dracutdir=$(pkglibdir)" >> dracut.pc
+ @echo "dracutmodulesdir=$(pkglibdir)/modules.d" >> dracut.pc
+ @echo "dracutconfdir=$(pkglibdir)/dracut.conf.d" >> dracut.pc
+@@ -182,7 +183,7 @@ endif
+
+ dracut-version.sh:
+ @rm -f dracut-version.sh
+- @echo "DRACUT_VERSION=$(DRACUT_MAIN_VERSION)$(GITVERSION)" > dracut-version.sh
++ @echo "DRACUT_VERSION=$(DRACUT_FULL_VERSION)" > dracut-version.sh
+
+ clean:
+ $(RM) *~
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/050-dracut.sh-don-t-call-fsfreeze-on-subvol-of-root-file.patch b/sys-kernel/dracut/files/050-dracut.sh-don-t-call-fsfreeze-on-subvol-of-root-file.patch
new file mode 100644
index 00000000000..cf54cabb5eb
--- /dev/null
+++ b/sys-kernel/dracut/files/050-dracut.sh-don-t-call-fsfreeze-on-subvol-of-root-file.patch
@@ -0,0 +1,75 @@
+From 0386e4627779cb51f4292b3c642d90586d5e71b4 Mon Sep 17 00:00:00 2001
+From: Martin Wilck <mwilck@suse.com>
+Date: Wed, 29 Jan 2020 23:53:29 +0100
+Subject: [PATCH] dracut.sh: don't call fsfreeze on subvol of root file system
+
+dracut.sh already doesn't call fsfreeze if the output file is on
+the root file system. For btrfs, however, this is not sufficient.
+Because fsfreeze is a superblock operation, and all btrfs subvolumes
+share the same superblock, fsfreeze may freeze the entire system
+if the subvolume on which the output file is written and / are
+subvolumes of the same file system. Avoid this by comparing file
+system UUIDs for btrfs.
+
+Fixes: de576db3c225 ("call fsfreeze(8) on /boot to flush initramfs data & metadata to media")
+---
+ dracut.sh | 36 +++++++++++++++++++++++++++++++++++-
+ 1 file changed, 35 insertions(+), 1 deletion(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index af346f3a..c14f6c0b 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -2075,6 +2075,40 @@ fi
+
+ command -v restorecon &>/dev/null && restorecon -- "$outfile"
+
++btrfs_uuid() {
++ btrfs filesystem show "$1" | sed -n '1s/^.*uuid: //p'
++}
++
++freeze_ok_for_btrfs() {
++ local mnt uuid1 uuid2
++ # If the output file is on btrfs, we need to make sure that it's
++ # not on a subvolume of the same file system as the root FS.
++ # Otherwise, fsfreeze() might freeze the entire system.
++ # This is most conveniently checked by comparing the FS uuid.
++
++ [[ "$(stat -f -c %T -- "/")" == "btrfs" ]] || return 0
++ mnt=$(stat -c %m -- "$1")
++ uuid1=$(btrfs_uuid "$mnt")
++ uuid2=$(btrfs_uuid "/")
++ [[ "$uuid1" && "$uuid2" && "$uuid1" != "$uuid2" ]]
++}
++
++freeze_ok_for_fstype() {
++ local outfile=$1
++ local fstype
++
++ [[ "$(stat -c %m -- "$outfile")" == "/" ]] && return 1
++ fstype=$(stat -f -c %T -- "$outfile")
++ case $fstype in
++ msdos)
++ return 1;;
++ btrfs)
++ freeze_ok_for_btrfs "$outfile";;
++ *)
++ return 0;;
++ esac
++}
++
+ # We sync/fsfreeze only if we're operating on a live booted system.
+ # It's possible for e.g. `kernel` to be installed as an RPM BuildRequires or equivalent,
+ # and there's no reason to sync, and *definitely* no reason to fsfreeze.
+@@ -2087,7 +2121,7 @@ if test -d $dracutsysrootdir/run/systemd/system; then
+ fi
+
+ # use fsfreeze only if we're not writing to /
+- if [[ "$(stat -c %m -- "$outfile")" != "/" && "$(stat -f -c %T -- "$outfile")" != "msdos" ]]; then
++ if [[ "$(stat -c %m -- "$outfile")" != "/" ]] && freeze_ok_for_fstype "$outfile"; then
+ if ! $(fsfreeze -f $(dirname "$outfile") 2>/dev/null && fsfreeze -u $(dirname "$outfile") 2>/dev/null); then
+ dinfo "dracut: warning: could not fsfreeze $(dirname "$outfile")"
+ fi
+--
+2.24.1
+
diff --git a/sys-kernel/dracut/files/050-gentoo-ldconfig-paths.patch b/sys-kernel/dracut/files/050-gentoo-ldconfig-paths.patch
new file mode 100644
index 00000000000..15522ef4fc1
--- /dev/null
+++ b/sys-kernel/dracut/files/050-gentoo-ldconfig-paths.patch
@@ -0,0 +1,39 @@
+From 0674b9136831b1beb6a7ec91147fd5c280c693a3 Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Mon, 9 Mar 2020 02:47:07 +0300
+Subject: [PATCH] Remove redundant gcc paths in ldconfig_paths()
+
+Bug: https://bugs.gentoo.org/705728
+---
+ dracut-functions.sh | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index 3cb9c7af..5337ff6c 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -76,7 +76,20 @@ find_binary() {
+
+ ldconfig_paths()
+ {
+- $DRACUT_LDCONFIG ${dracutsysrootdir:+-r ${dracutsysrootdir} -f /etc/ld.so.conf} -pN 2>/dev/null | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | sed -n 's,.* => \(.*\)/.*,\1,p' | sort | uniq
++ local gccpath
++
++ if type -P gcc-config &>/dev/null; then
++ gccpath=$(gcc-config -c)
++ gccpath=/usr/lib/gcc/${gccpath%-*}/${gccpath##*-}
++ fi
++
++ while read -r line; do
++ if [[ ${line} != /usr/lib/gcc/* || -z ${gccpath} ]]; then
++ echo ${line}
++ elif [[ ${line} == ${gccpath} ]]; then
++ echo ${line}
++ fi
++ done < <($DRACUT_LDCONFIG ${dracutsysrootdir:+-r ${dracutsysrootdir} -f /etc/ld.so.conf} -pN 2>/dev/null | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | sed -n 's,.* => \(.*\)/.*,\1,p' | sort | uniq)
+ }
+
+ # Version comparision function. Assumes Linux style version scheme.
+--
+2.24.1
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2020-07-03 11:18 Thomas Deutschmann
0 siblings, 0 replies; 21+ messages in thread
From: Thomas Deutschmann @ 2020-07-03 11:18 UTC (permalink / raw
To: gentoo-commits
commit: 88969ec3eacbd206d0f694bd865554f945dc6986
Author: Alexander Tsoy <alexander <AT> tsoy <DOT> me>
AuthorDate: Wed Jun 24 14:46:47 2020 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Fri Jul 3 11:17:37 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88969ec3
sys-kernel/dracut: Apply fix for busybox module to 050
Closes: https://bugs.gentoo.org/714838
Signed-off-by: Alexander Tsoy <alexander <AT> tsoy.me>
Closes: https://github.com/gentoo/gentoo/pull/16394
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
sys-kernel/dracut/dracut-050-r1.ebuild | 166 +++++++++++++++++++++
.../dracut/files/050-busybox-module-fix.patch | 102 +++++++++++++
2 files changed, 268 insertions(+)
diff --git a/sys-kernel/dracut/dracut-050-r1.ebuild b/sys-kernel/dracut/dracut-050-r1.ebuild
new file mode 100644
index 00000000000..3b43c5fefe6
--- /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 00000000000..faaf026e536
--- /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
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2021-06-14 18:42 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2021-06-14 18:42 UTC (permalink / raw
To: gentoo-commits
commit: e673f765070d823bd11c6099de4a4798fed9592b
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 14 18:27:32 2021 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Jun 14 18:42:44 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e673f765
sys-kernel/dracut: bump to 055
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
sys-kernel/dracut/Manifest | 1 +
.../{dracut-9999.ebuild => dracut-055.ebuild} | 34 +++++++++++++------
sys-kernel/dracut/dracut-9999.ebuild | 34 +++++++++++++------
.../dracut/files/gentoo-ldconfig-paths-r1.patch | 39 ++++++++++++++++++++++
4 files changed, 88 insertions(+), 20 deletions(-)
diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest
index 1f7643564be..6aa82815479 100644
--- a/sys-kernel/dracut/Manifest
+++ b/sys-kernel/dracut/Manifest
@@ -1,3 +1,4 @@
DIST dracut-050.tar.xz 333592 BLAKE2B cb0bfa5a8e7547260b8a80a3606eb284182c062926269c85b09e07d26ad177df0eeaa64b17005bff9290611f1c83fc8cd8e2216cfe14b5e66ec7f659d4c2fa7b SHA512 eba046cf1c8013369a398e585e0bff233daa8595d469ce9acc8bbc6a32d55c6a5429d4219db19abbf6001104be05b357f0961f9e66b7f926039a5d3ee7c2b850
DIST dracut-051.tar.xz 346500 BLAKE2B 38129b6b713b3338bbb2554fffd611f80216969eebac9fca7fb72df2db2036d4fbe66ebd54e646e562e24801e61064e54b62f066bab9e77ca88814100ebdd8ff SHA512 f3533430e479bc91c538e0a198ca97450ec449a7d661d876ecd0ad3e417e22f7e4abf0a384fc676a63a4d3479f25d717c8acdcd1bdec7d0a5714298c5c4ea6b8
DIST dracut-053.tar.xz 354668 BLAKE2B d20d0f1675e18cf44615a98255c8b1a73f23e9c665a771a1fe99716d3bf0b6082961ab20fe058bf31c106c4f521d9e8708e2ae98cff00f613197bbf9dd3abda3 SHA512 4736f84442bda208a38d3285ffeb8b845f06e52e3bf60d2aaea121240cf695e1369208c2d2cee1137a6c1d3f8f7794385675006beaf5cd86ade259d5f42d039a
+DIST dracut-055.tar.xz 361752 BLAKE2B 9fcb0bce9ead2e079c70a377ea53701e4634d3dc64ae163e0e157d7d85822a274813e05f6079768640e1807818fad7a8158626413d773686a8d52fcd95fb5680 SHA512 2d2ea2889d9013bc94245bd7d1a2154f24d02bd9c2f7dbb28e5968e17d918e6598c68d85b0f551f968218980a80b19361ca0c9e8e94997ba54f4c09afcd6d866
diff --git a/sys-kernel/dracut/dracut-9999.ebuild b/sys-kernel/dracut/dracut-055.ebuild
similarity index 90%
copy from sys-kernel/dracut/dracut-9999.ebuild
copy to sys-kernel/dracut/dracut-055.ebuild
index e6d09f406d0..3b042f3de74 100644
--- a/sys-kernel/dracut/dracut-9999.ebuild
+++ b/sys-kernel/dracut/dracut-055.ebuild
@@ -19,10 +19,9 @@ HOMEPAGE="https://dracut.wiki.kernel.org"
LICENSE="GPL-2"
SLOT="0"
-IUSE="selinux"
+IUSE="selinux test"
-# Tests need root privileges, bug #298014
-RESTRICT="test"
+RESTRICT="!test? ( test )"
RDEPEND="
app-arch/cpio
@@ -58,13 +57,10 @@ BDEPEND="
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}"/gentoo-ldconfig-paths.patch
+ "${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
)
src_configure() {
@@ -86,11 +82,29 @@ src_configure() {
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() {
- default
+ local DOCS=(
+ AUTHORS
+ NEWS.md
+ README.md
+ docs/README.cross
+ docs/README.generic
+ docs/README.kernel
+ docs/SECURITY.md
+ )
- insinto /etc/logrotate.d
- newins dracut.logrotate dracut
+ default
docinto html
dodoc dracut.html
diff --git a/sys-kernel/dracut/dracut-9999.ebuild b/sys-kernel/dracut/dracut-9999.ebuild
index e6d09f406d0..3b042f3de74 100644
--- a/sys-kernel/dracut/dracut-9999.ebuild
+++ b/sys-kernel/dracut/dracut-9999.ebuild
@@ -19,10 +19,9 @@ HOMEPAGE="https://dracut.wiki.kernel.org"
LICENSE="GPL-2"
SLOT="0"
-IUSE="selinux"
+IUSE="selinux test"
-# Tests need root privileges, bug #298014
-RESTRICT="test"
+RESTRICT="!test? ( test )"
RDEPEND="
app-arch/cpio
@@ -58,13 +57,10 @@ BDEPEND="
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}"/gentoo-ldconfig-paths.patch
+ "${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
)
src_configure() {
@@ -86,11 +82,29 @@ src_configure() {
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() {
- default
+ local DOCS=(
+ AUTHORS
+ NEWS.md
+ README.md
+ docs/README.cross
+ docs/README.generic
+ docs/README.kernel
+ docs/SECURITY.md
+ )
- insinto /etc/logrotate.d
- newins dracut.logrotate dracut
+ default
docinto html
dodoc dracut.html
diff --git a/sys-kernel/dracut/files/gentoo-ldconfig-paths-r1.patch b/sys-kernel/dracut/files/gentoo-ldconfig-paths-r1.patch
new file mode 100644
index 00000000000..53349a1f31f
--- /dev/null
+++ b/sys-kernel/dracut/files/gentoo-ldconfig-paths-r1.patch
@@ -0,0 +1,39 @@
+From e6a5f02038954ede223cc75901386acf43ec4264 Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Mon, 9 Mar 2020 02:47:07 +0300
+Subject: [PATCH] Remove redundant gcc paths in ldconfig_paths()
+
+Bug: https://bugs.gentoo.org/705728
+---
+ dracut-functions.sh | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index 5206bd21..a119fb15 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -81,7 +81,20 @@ find_binary() {
+ }
+
+ ldconfig_paths() {
+- $DRACUT_LDCONFIG ${dracutsysrootdir:+-r ${dracutsysrootdir} -f /etc/ld.so.conf} -pN 2> /dev/null | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | sed -n 's,.* => \(.*\)/.*,\1,p' | sort | uniq
++ local gccpath
++
++ if type -P gcc-config &>/dev/null; then
++ gccpath=$(gcc-config -c)
++ gccpath=/usr/lib/gcc/${gccpath%-*}/${gccpath##*-}
++ fi
++
++ while read -r line; do
++ if [[ ${line} != /usr/lib/gcc/* || -z ${gccpath} ]]; then
++ echo ${line}
++ elif [[ ${line} == ${gccpath} ]]; then
++ echo ${line}
++ fi
++ done < <($DRACUT_LDCONFIG ${dracutsysrootdir:+-r ${dracutsysrootdir} -f /etc/ld.so.conf} -pN 2>/dev/null | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | sed -n 's,.* => \(.*\)/.*,\1,p' | sort | uniq)
+ }
+
+ # Version comparision function. Assumes Linux style version scheme.
+--
+2.32.0
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2021-07-23 19:16 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2021-07-23 19:16 UTC (permalink / raw
To: gentoo-commits
commit: b11a0316d954d186df8c61aee62402ff6026c7dc
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 23 19:13:04 2021 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Jul 23 19:13:04 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b11a0316
sys-kernel/dracut: fix quoting issues
Closes: https://bugs.gentoo.org/803548
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
.../{dracut-055.ebuild => dracut-055-r1.ebuild} | 2 ++
...ase-do-not-quote-initargs-for-switch_root.patch | 32 ++++++++++++++++++
...x-crypt-remove-quotes-from-cryptsetupopts.patch | 39 ++++++++++++++++++++++
3 files changed, 73 insertions(+)
diff --git a/sys-kernel/dracut/dracut-055.ebuild b/sys-kernel/dracut/dracut-055-r1.ebuild
similarity index 97%
rename from sys-kernel/dracut/dracut-055.ebuild
rename to sys-kernel/dracut/dracut-055-r1.ebuild
index 3b042f3de74..e45745cf50f 100644
--- a/sys-kernel/dracut/dracut-055.ebuild
+++ b/sys-kernel/dracut/dracut-055-r1.ebuild
@@ -60,6 +60,8 @@ BDEPEND="
QA_MULTILIB_PATHS="usr/lib/dracut/.*"
PATCHES=(
+ "${FILESDIR}"/055-fix-crypt-remove-quotes-from-cryptsetupopts.patch
+ "${FILESDIR}"/055-fix-base-do-not-quote-initargs-for-switch_root.patch
"${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
)
diff --git a/sys-kernel/dracut/files/055-fix-base-do-not-quote-initargs-for-switch_root.patch b/sys-kernel/dracut/files/055-fix-base-do-not-quote-initargs-for-switch_root.patch
new file mode 100644
index 00000000000..5568c22aede
--- /dev/null
+++ b/sys-kernel/dracut/files/055-fix-base-do-not-quote-initargs-for-switch_root.patch
@@ -0,0 +1,32 @@
+From 285e2ad01035743ff51005a74e486e09fcbb0a0d Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Fri, 23 Jul 2021 14:35:07 -0400
+Subject: [PATCH] fix(base): do not quote $initargs for switch_root
+
+We want word splitting to occur so that the arguments are passed
+separately, and we don't end up passing an empty string if no arguments
+are specified.
+
+Bug: https://bugs.gentoo.org/803548
+Fixes: 2fabaaa62dcfd31e593ca45e1374e55adae29d6b
+---
+ modules.d/99base/init.sh | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
+index 978adb6f..ab62bb44 100755
+--- a/modules.d/99base/init.sh
++++ b/modules.d/99base/init.sh
+@@ -387,7 +387,8 @@ if [ -f /etc/capsdrop ]; then
+ }
+ else
+ unset RD_DEBUG
+- exec "$SWITCH_ROOT" "$NEWROOT" "$INIT" "$initargs" || {
++ # shellcheck disable=SC2086
++ exec "$SWITCH_ROOT" "$NEWROOT" "$INIT" $initargs || {
+ warn "Something went very badly wrong in the initramfs. Please "
+ warn "file a bug against dracut."
+ emergency_shell
+--
+2.32.0
+
diff --git a/sys-kernel/dracut/files/055-fix-crypt-remove-quotes-from-cryptsetupopts.patch b/sys-kernel/dracut/files/055-fix-crypt-remove-quotes-from-cryptsetupopts.patch
new file mode 100644
index 00000000000..355cdc461ab
--- /dev/null
+++ b/sys-kernel/dracut/files/055-fix-crypt-remove-quotes-from-cryptsetupopts.patch
@@ -0,0 +1,39 @@
+From e0abf88a15d23fbf793cf872397016ad86aeaaa8 Mon Sep 17 00:00:00 2001
+From: lapseofreason <lapseofreason0@gmail.com>
+Date: Tue, 8 Jun 2021 16:01:58 +0200
+Subject: [PATCH] fix(crypt): remove quotes from cryptsetupopts
+
+Fixes #1528.
+---
+ modules.d/90crypt/cryptroot-ask.sh | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
+index 37a4deea..b1f8df81 100755
+--- a/modules.d/90crypt/cryptroot-ask.sh
++++ b/modules.d/90crypt/cryptroot-ask.sh
+@@ -138,8 +138,9 @@ unset allowdiscards
+ ask_passphrase=1
+
+ if [ -n "$luksfile" -a "$luksfile" != "none" -a -e "$luksfile" ]; then
++ # shellcheck disable=SC2086
+ if readkey "$luksfile" / "$device" \
+- | cryptsetup -d - "$cryptsetupopts" luksOpen "$device" "$luksname"; then
++ | cryptsetup -d - $cryptsetupopts luksOpen "$device" "$luksname"; then
+ ask_passphrase=0
+ fi
+ elif [ "$is_keysource" -ne 0 ]; then
+@@ -164,8 +165,9 @@ else
+ unset tmp
+
+ info "Using '$keypath' on '$keydev'"
++ # shellcheck disable=SC2086
+ readkey "$keypath" "$keydev" "$device" \
+- | cryptsetup -d - "$cryptsetupopts" luksOpen "$device" "$luksname" \
++ | cryptsetup -d - $cryptsetupopts luksOpen "$device" "$luksname" \
+ && ask_passphrase=0
+ unset keypath keydev
+ break
+--
+2.32.0
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2021-08-17 17:24 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2021-08-17 17:24 UTC (permalink / raw
To: gentoo-commits
commit: 85685d7b73395bddcf58a7550a0220ee9175e3f2
Author: Alexander Tsoy <alexander <AT> tsoy <DOT> me>
AuthorDate: Tue Aug 17 10:51:21 2021 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Aug 17 17:23:41 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=85685d7b
sys-kernel/dracut: fix usr mount regression
Closes: https://bugs.gentoo.org/807971
Signed-off-by: Alexander Tsoy <alexander <AT> tsoy.me>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/22009
.../{dracut-055-r1.ebuild => dracut-055-r2.ebuild} | 1 +
...5-fix-usrmount-do-not-empty-_dev-variable.patch | 36 ++++++++++++++++++++++
2 files changed, 37 insertions(+)
diff --git a/sys-kernel/dracut/dracut-055-r1.ebuild b/sys-kernel/dracut/dracut-055-r2.ebuild
similarity index 98%
rename from sys-kernel/dracut/dracut-055-r1.ebuild
rename to sys-kernel/dracut/dracut-055-r2.ebuild
index e45745cf50f..5d3767efdfc 100644
--- a/sys-kernel/dracut/dracut-055-r1.ebuild
+++ b/sys-kernel/dracut/dracut-055-r2.ebuild
@@ -62,6 +62,7 @@ QA_MULTILIB_PATHS="usr/lib/dracut/.*"
PATCHES=(
"${FILESDIR}"/055-fix-crypt-remove-quotes-from-cryptsetupopts.patch
"${FILESDIR}"/055-fix-base-do-not-quote-initargs-for-switch_root.patch
+ "${FILESDIR}"/055-fix-usrmount-do-not-empty-_dev-variable.patch
"${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
)
diff --git a/sys-kernel/dracut/files/055-fix-usrmount-do-not-empty-_dev-variable.patch b/sys-kernel/dracut/files/055-fix-usrmount-do-not-empty-_dev-variable.patch
new file mode 100644
index 00000000000..e46f8bb25db
--- /dev/null
+++ b/sys-kernel/dracut/files/055-fix-usrmount-do-not-empty-_dev-variable.patch
@@ -0,0 +1,36 @@
+From 4afdcba212793f136aea012b30dd7bdb5b641a5a Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Mon, 16 Aug 2021 18:54:34 +0300
+Subject: [PATCH] fix(usrmount): do not empty _dev variable
+
+Currently $_dev is always overridden with the value returned by
+label_uuid_to_dev(). This results in an empty value if $_dev is a
+device path. Fix this by calling label_uuid_to_dev() conditionally.
+
+Bug: https://bugs.gentoo.org/807971
+Fixes: d3532978de04c78f53664dad7b37705a49a7ee54
+---
+ modules.d/98usrmount/mount-usr.sh | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh
+index 23ed06aa..c8e1893b 100755
+--- a/modules.d/98usrmount/mount-usr.sh
++++ b/modules.d/98usrmount/mount-usr.sh
+@@ -55,7 +55,12 @@ mount_usr() {
+ while read -r _dev _mp _fs _opts _freq _passno || [ -n "$_dev" ]; do
+ [ "${_dev%%#*}" != "$_dev" ] && continue
+ if [ "$_mp" = "/usr" ]; then
+- _dev="$(label_uuid_to_dev "$_dev")"
++ case "$_dev" in
++ LABEL=* | UUID=* | PARTUUID=* | PARTLABEL=*)
++ _dev="$(label_uuid_to_dev "$_dev")"
++ ;;
++ *) ;;
++ esac
+
+ if strstr "$_opts" "subvol=" \
+ && [ "${root#block:}" -ef "$_dev" ] \
+--
+2.31.1
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2021-09-06 0:14 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2021-09-06 0:14 UTC (permalink / raw
To: gentoo-commits
commit: 087f6ff3f00a4e0a84bec0278fcb8228d7d9aa12
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 6 00:13:58 2021 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Sep 6 00:13:58 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=087f6ff3
sys-kernel/dracut: fix typo in tpm2-tss module
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
.../{dracut-055-r2.ebuild => dracut-055-r3.ebuild} | 1 +
sys-kernel/dracut/files/055-tpm2-tss-typo.patch | 23 ++++++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git a/sys-kernel/dracut/dracut-055-r2.ebuild b/sys-kernel/dracut/dracut-055-r3.ebuild
similarity index 99%
rename from sys-kernel/dracut/dracut-055-r2.ebuild
rename to sys-kernel/dracut/dracut-055-r3.ebuild
index 5d3767efdfc..cdc58e186f3 100644
--- a/sys-kernel/dracut/dracut-055-r2.ebuild
+++ b/sys-kernel/dracut/dracut-055-r3.ebuild
@@ -63,6 +63,7 @@ PATCHES=(
"${FILESDIR}"/055-fix-crypt-remove-quotes-from-cryptsetupopts.patch
"${FILESDIR}"/055-fix-base-do-not-quote-initargs-for-switch_root.patch
"${FILESDIR}"/055-fix-usrmount-do-not-empty-_dev-variable.patch
+ "${FILESDIR}"/055-tpm2-tss-typo.patch
"${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
)
diff --git a/sys-kernel/dracut/files/055-tpm2-tss-typo.patch b/sys-kernel/dracut/files/055-tpm2-tss-typo.patch
new file mode 100644
index 00000000000..a04496a29ca
--- /dev/null
+++ b/sys-kernel/dracut/files/055-tpm2-tss-typo.patch
@@ -0,0 +1,23 @@
+From 8b17105bed69ed90582a13d97d95ee19e6581365 Mon Sep 17 00:00:00 2001
+From: Matthias Berndt <matthias_berndt@gmx.de>
+Date: Tue, 1 Jun 2021 19:32:48 +0200
+Subject: [PATCH] fix(tpm2-tss): typo in depends()
+
+There is no systemd-udev module, only systemd-udevd
+---
+ modules.d/91tpm2-tss/module-setup.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/91tpm2-tss/module-setup.sh b/modules.d/91tpm2-tss/module-setup.sh
+index 28af22a31..361131d66 100755
+--- a/modules.d/91tpm2-tss/module-setup.sh
++++ b/modules.d/91tpm2-tss/module-setup.sh
+@@ -17,7 +17,7 @@ check() {
+ depends() {
+
+ # This module has external dependency on other module(s).
+- echo systemd-sysusers systemd-udev
++ echo systemd-sysusers systemd-udevd
+ # Return 0 to include the dependent module(s) in the initramfs.
+ return 0
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2021-12-27 16:51 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2021-12-27 16:51 UTC (permalink / raw
To: gentoo-commits
commit: a50ce1b8021417323405d8526e104248b07d86b8
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 27 16:51:09 2021 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Dec 27 16:51:42 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a50ce1b8
sys-kernel/dracut: backport a patch
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
.../{dracut-055-r3.ebuild => dracut-055-r4.ebuild} | 1 +
sys-kernel/dracut/files/055-add-blockfuncs.patch | 25 ++++++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/sys-kernel/dracut/dracut-055-r3.ebuild b/sys-kernel/dracut/dracut-055-r4.ebuild
similarity index 99%
rename from sys-kernel/dracut/dracut-055-r3.ebuild
rename to sys-kernel/dracut/dracut-055-r4.ebuild
index b6ae9af423ff..607fff23c894 100644
--- a/sys-kernel/dracut/dracut-055-r3.ebuild
+++ b/sys-kernel/dracut/dracut-055-r4.ebuild
@@ -64,6 +64,7 @@ PATCHES=(
"${FILESDIR}"/055-fix-base-do-not-quote-initargs-for-switch_root.patch
"${FILESDIR}"/055-fix-usrmount-do-not-empty-_dev-variable.patch
"${FILESDIR}"/055-tpm2-tss-typo.patch
+ "${FILESDIR}"/055-add-blockfuncs.patch
"${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
)
diff --git a/sys-kernel/dracut/files/055-add-blockfuncs.patch b/sys-kernel/dracut/files/055-add-blockfuncs.patch
new file mode 100644
index 000000000000..56724e0c73aa
--- /dev/null
+++ b/sys-kernel/dracut/files/055-add-blockfuncs.patch
@@ -0,0 +1,25 @@
+From a91dcfeb54b8c6c810020f77124f6eaf6ef5baa9 Mon Sep 17 00:00:00 2001
+From: Lukas Nykryn <lnykryn@redhat.com>
+Date: Thu, 12 Aug 2021 11:46:35 +0200
+Subject: [PATCH] fix(kernel-modules): add blk_mq_alloc_disk and
+ blk_cleanup_disk to blockfuncs
+
+Since kernel 5-14 those are used by many drivers for example:
+xen-blkfront, loop, nbd, pd
+---
+ modules.d/90kernel-modules/module-setup.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
+index 8b06893ae..69dc18b59 100755
+--- a/modules.d/90kernel-modules/module-setup.sh
++++ b/modules.d/90kernel-modules/module-setup.sh
+@@ -2,7 +2,7 @@
+
+ # called by dracut
+ installkernel() {
+- local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host|scsi_add_host_with_dma'
++ local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host|scsi_add_host_with_dma|blk_mq_alloc_disk|blk_cleanup_disk'
+ local -A _hostonly_drvs
+
+ find_kernel_modules_external() {
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2022-12-25 2:53 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2022-12-25 2:53 UTC (permalink / raw
To: gentoo-commits
commit: d16cdc9c9eb5826a704dc71fd6838a24d83a1172
Author: Laszlo Gombos <laszlo.gombos <AT> gmail <DOT> com>
AuthorDate: Sat Dec 24 02:02:14 2022 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Dec 25 02:53:02 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d16cdc9c
sys-kernel/dracut: when no systemd then only network-legacy is supported
Bug: https://github.com/dracutdevs/dracut/issues/1756
Signed-off-by: Laszlo Gombos <laszlo.gombos <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/28777
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
sys-kernel/dracut/dracut-057-r2.ebuild | 1 +
sys-kernel/dracut/dracut-9999.ebuild | 1 +
sys-kernel/dracut/files/gentoo-network-r1.patch | 29 +++++++++++++++++++++++++
3 files changed, 31 insertions(+)
diff --git a/sys-kernel/dracut/dracut-057-r2.ebuild b/sys-kernel/dracut/dracut-057-r2.ebuild
index 5a6ec27fcb43..ddb9e967acd8 100644
--- a/sys-kernel/dracut/dracut-057-r2.ebuild
+++ b/sys-kernel/dracut/dracut-057-r2.ebuild
@@ -63,6 +63,7 @@ QA_MULTILIB_PATHS="usr/lib/dracut/.*"
PATCHES=(
"${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
+ "${FILESDIR}"/gentoo-network-r1.patch
"${FILESDIR}"/057-virtiofs-split-usr.patch
"${FILESDIR}"/057-i18n-keymaps.patch
)
diff --git a/sys-kernel/dracut/dracut-9999.ebuild b/sys-kernel/dracut/dracut-9999.ebuild
index 7f2f0151787d..40d636fee825 100644
--- a/sys-kernel/dracut/dracut-9999.ebuild
+++ b/sys-kernel/dracut/dracut-9999.ebuild
@@ -63,6 +63,7 @@ QA_MULTILIB_PATHS="usr/lib/dracut/.*"
PATCHES=(
"${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
+ "${FILESDIR}"/gentoo-network-r1.patch
)
src_configure() {
diff --git a/sys-kernel/dracut/files/gentoo-network-r1.patch b/sys-kernel/dracut/files/gentoo-network-r1.patch
new file mode 100644
index 000000000000..3d5db25cb0ae
--- /dev/null
+++ b/sys-kernel/dracut/files/gentoo-network-r1.patch
@@ -0,0 +1,29 @@
+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
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2023-05-26 20:03 Mike Gilbert
0 siblings, 0 replies; 21+ messages in thread
From: Mike Gilbert @ 2023-05-26 20:03 UTC (permalink / raw
To: gentoo-commits
commit: e8f8be11a5cb38c954d54615d0a31c0378bf88f5
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri May 26 20:02:07 2023 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri May 26 20:02:07 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e8f8be11
sys-kernel/dracut: fix uefi stub path for split-usr
Closes: https://bugs.gentoo.org/765208
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
.../{dracut-059.ebuild => dracut-059-r1.ebuild} | 1 +
sys-kernel/dracut/files/059-uefi-split-usr.patch | 46 ++++++++++++++++++++++
2 files changed, 47 insertions(+)
diff --git a/sys-kernel/dracut/dracut-059.ebuild b/sys-kernel/dracut/dracut-059-r1.ebuild
similarity index 99%
rename from sys-kernel/dracut/dracut-059.ebuild
rename to sys-kernel/dracut/dracut-059-r1.ebuild
index 20f297121ad8..5aa6cfb4a241 100644
--- a/sys-kernel/dracut/dracut-059.ebuild
+++ b/sys-kernel/dracut/dracut-059-r1.ebuild
@@ -64,6 +64,7 @@ QA_MULTILIB_PATHS="usr/lib/dracut/.*"
PATCHES=(
"${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
"${FILESDIR}"/gentoo-network-r1.patch
+ "${FILESDIR}"/059-uefi-split-usr.patch
)
src_configure() {
diff --git a/sys-kernel/dracut/files/059-uefi-split-usr.patch b/sys-kernel/dracut/files/059-uefi-split-usr.patch
new file mode 100644
index 000000000000..1b1f1348a223
--- /dev/null
+++ b/sys-kernel/dracut/files/059-uefi-split-usr.patch
@@ -0,0 +1,46 @@
+https://github.com/dracutdevs/dracut/pull/2365
+
+From afb2019ddc6ffe6e59df3d3dc9929a840bd09bc8 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 | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index bbb34697..9da59561 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -1389,6 +1389,9 @@ esac
+
+ abs_outfile=$(readlink -f "$outfile") && outfile="$abs_outfile"
+
++[[ -n $systemd_prefix ]] \
++ || systemd_prefix=$(pkg-config systemd --variable=prefix 2> /dev/null)
++
+ [[ -d $dracutsysrootdir$systemdutildir ]] \
+ || systemdutildir=$(pkg-config systemd --variable=systemdutildir 2> /dev/null)
+
+@@ -1467,7 +1470,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
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2023-07-20 3:39 Sam James
0 siblings, 0 replies; 21+ messages in thread
From: Sam James @ 2023-07-20 3:39 UTC (permalink / raw
To: gentoo-commits
commit: 2711de74b3c4967cd16a7b2760aff3de1acdd69e
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 20 03:39:11 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jul 20 03:39:11 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2711de74
sys-kernel/dracut: backport UKI fix w/ systemd-254
Fails to boot otherwise.
Signed-off-by: Sam James <sam <AT> gentoo.org>
sys-kernel/dracut/dracut-059-r3.ebuild | 184 ++++++++++++++++++++++
sys-kernel/dracut/files/059-gawk.patch | 35 ++++
sys-kernel/dracut/files/059-uki-systemd-254.patch | 134 ++++++++++++++++
3 files changed, 353 insertions(+)
diff --git a/sys-kernel/dracut/dracut-059-r3.ebuild b/sys-kernel/dracut/dracut-059-r3.ebuild
new file mode 100644
index 000000000000..6d27123ec55b
--- /dev/null
+++ b/sys-kernel/dracut/dracut-059-r3.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1 linux-info 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-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/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-uefi-split-usr.patch
+ "${FILESDIR}"/059-uki-systemd-254.patch
+ "${FILESDIR}"/059-gawk.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() {
+ 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
+
+ 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
+}
diff --git a/sys-kernel/dracut/files/059-gawk.patch b/sys-kernel/dracut/files/059-gawk.patch
new file mode 100644
index 000000000000..5f1da79bb24a
--- /dev/null
+++ b/sys-kernel/dracut/files/059-gawk.patch
@@ -0,0 +1,35 @@
+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"
+
diff --git a/sys-kernel/dracut/files/059-uki-systemd-254.patch b/sys-kernel/dracut/files/059-uki-systemd-254.patch
new file mode 100644
index 000000000000..e8b52480d030
--- /dev/null
+++ b/sys-kernel/dracut/files/059-uki-systemd-254.patch
@@ -0,0 +1,134 @@
+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 \
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2023-09-22 6:10 Andrew Ammerlaan
0 siblings, 0 replies; 21+ messages in thread
From: Andrew Ammerlaan @ 2023-09-22 6:10 UTC (permalink / raw
To: gentoo-commits
commit: a0ff41c3e81b6adb74bea3c15ce7e894753eef6b
Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 21 08:54:47 2023 +0000
Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Fri Sep 22 06:10:14 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a0ff41c3
sys-kernel/dracut: backport uki kernel-install fixes
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
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/32961
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
sys-kernel/dracut/dracut-059-r4.ebuild | 185 +++++++++++++++++++++
.../dracut/files/059-kernel-install-uki.patch | 150 +++++++++++++++++
2 files changed, 335 insertions(+)
diff --git a/sys-kernel/dracut/dracut-059-r4.ebuild b/sys-kernel/dracut/dracut-059-r4.ebuild
new file mode 100644
index 000000000000..90c42349d4a5
--- /dev/null
+++ b/sys-kernel/dracut/dracut-059-r4.ebuild
@@ -0,0 +1,185 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1 linux-info 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-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/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
+)
+
+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() {
+ 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
+
+ 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
+}
diff --git a/sys-kernel/dracut/files/059-kernel-install-uki.patch b/sys-kernel/dracut/files/059-kernel-install-uki.patch
new file mode 100644
index 000000000000..9bbf3574b7a2
--- /dev/null
+++ b/sys-kernel/dracut/files/059-kernel-install-uki.patch
@@ -0,0 +1,150 @@
+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
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2023-12-13 9:19 Andrew Ammerlaan
0 siblings, 0 replies; 21+ messages in thread
From: Andrew Ammerlaan @ 2023-12-13 9:19 UTC (permalink / raw
To: gentoo-commits
commit: 32774e9d9e056831857e7aaf6aeed10498e9de39
Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 13 09:17:35 2023 +0000
Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Wed Dec 13 09:17:35 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=32774e9d
sys-kernel/dracut: backport fix for systemd-255 pcrphase
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
...030.ebuild => dracut-060_pre20231030-r1.ebuild} | 1 +
.../dracut/files/dracut-060-systemd-255.patch | 26 ++++++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/sys-kernel/dracut/dracut-060_pre20231030.ebuild b/sys-kernel/dracut/dracut-060_pre20231030-r1.ebuild
similarity index 98%
rename from sys-kernel/dracut/dracut-060_pre20231030.ebuild
rename to sys-kernel/dracut/dracut-060_pre20231030-r1.ebuild
index 639d28605329..cdb6f8ce433f 100644
--- a/sys-kernel/dracut/dracut-060_pre20231030.ebuild
+++ b/sys-kernel/dracut/dracut-060_pre20231030-r1.ebuild
@@ -69,6 +69,7 @@ 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
)
src_configure() {
diff --git a/sys-kernel/dracut/files/dracut-060-systemd-255.patch b/sys-kernel/dracut/files/dracut-060-systemd-255.patch
new file mode 100644
index 000000000000..9d577e9504da
--- /dev/null
+++ b/sys-kernel/dracut/files/dracut-060-systemd-255.patch
@@ -0,0 +1,26 @@
+https://github.com/dracutdevs/dracut/pull/2586/files
+diff --git a/modules.d/01systemd-pcrphase/module-setup.sh b/modules.d/01systemd-pcrphase/module-setup.sh
+index fa960a42c1..87efd0c1a6 100755
+--- a/modules.d/01systemd-pcrphase/module-setup.sh
++++ b/modules.d/01systemd-pcrphase/module-setup.sh
+@@ -6,7 +6,11 @@
+ check() {
+
+ # If the binary(s) requirements are not fulfilled the module can't be installed.
+- require_binaries "$systemdutildir"/systemd-pcrphase || return 1
++ # systemd-255 renamed the binary, check for old and new location.
++ if ! require_binaries "$systemdutildir"/systemd-pcrphase && \
++ ! require_binaries "$systemdutildir"/systemd-pcrextend; then
++ return 1
++ fi
+
+ # Return 255 to only include the module, if another module requires it.
+ return 255
+@@ -28,6 +32,7 @@ install() {
+
+ inst_multiple -o \
+ "$systemdutildir"/systemd-pcrphase \
++ "$systemdutildir"/systemd-pcrextend \
+ "$systemdsystemunitdir"/systemd-pcrphase-initrd.service \
+ "$systemdsystemunitdir/systemd-pcrphase-initrd.service.d/*.conf" \
+ "$systemdsystemunitdir"/initrd.target.wants/systemd-pcrphase-initrd.service
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2024-09-30 9:09 Andrew Ammerlaan
0 siblings, 0 replies; 21+ messages in thread
From: Andrew Ammerlaan @ 2024-09-30 9:09 UTC (permalink / raw
To: gentoo-commits
commit: a194e7ae1a9a4949f3e64d20c8cc7865e4c9f06c
Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 30 09:08:48 2024 +0000
Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Mon Sep 30 09:08:48 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a194e7ae
sys-kernel/dracut: backport fix for including libsystemd-core always
Issue was reported on Discord
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
.../{dracut-103-r3.ebuild => dracut-103-r4.ebuild} | 2 ++
.../dracut-103-always-install-libsystemd.patch | 21 +++++++++++++++++++++
2 files changed, 23 insertions(+)
diff --git a/sys-kernel/dracut/dracut-103-r3.ebuild b/sys-kernel/dracut/dracut-103-r4.ebuild
similarity index 98%
rename from sys-kernel/dracut/dracut-103-r3.ebuild
rename to sys-kernel/dracut/dracut-103-r4.ebuild
index b64be3a7f82f..2e6c11185065 100644
--- a/sys-kernel/dracut/dracut-103-r3.ebuild
+++ b/sys-kernel/dracut/dracut-103-r4.ebuild
@@ -68,6 +68,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-103-acct-user-group-gentoo.patch
# https://github.com/dracut-ng/dracut-ng/pull/507
"${FILESDIR}"/${PN}-103-systemd-udev-256-kmod.patch
+ # libsystemd-core is sometimes missing
+ "${FILESDIR}"/${PN}-103-always-install-libsystemd.patch
)
src_configure() {
diff --git a/sys-kernel/dracut/files/dracut-103-always-install-libsystemd.patch b/sys-kernel/dracut/files/dracut-103-always-install-libsystemd.patch
new file mode 100644
index 000000000000..f2533e14d8cd
--- /dev/null
+++ b/sys-kernel/dracut/files/dracut-103-always-install-libsystemd.patch
@@ -0,0 +1,21 @@
+From 921792f201e954de461d3b551e01b5369d666db8 Mon Sep 17 00:00:00 2001
+From: Antonio Alvarez Feijoo <antonio.feijoo@suse.com>
+Date: Tue, 10 Sep 2024 15:51:46 +0200
+Subject: [PATCH] feat(systemd): always install libsystemd libraries
+
+---
+ modules.d/00systemd/module-setup.sh | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
+index 498cd7edd..fb8a8200b 100755
+--- a/modules.d/00systemd/module-setup.sh
++++ b/modules.d/00systemd/module-setup.sh
+@@ -156,5 +156,6 @@ EOF
+ _arch=${DRACUT_ARCH:-$(uname -m)}
+ inst_libdir_file \
+ {"tls/$_arch/",tls/,"$_arch/",}"libgcrypt.so*" \
+- {"tls/$_arch/",tls/,"$_arch/",}"libnss_*"
++ {"tls/$_arch/",tls/,"$_arch/",}"libnss_*" \
++ {"tls/$_arch/",tls/,"$_arch/",}"systemd/libsystemd*.so"
+ }
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/
@ 2024-11-01 17:10 Andrew Ammerlaan
0 siblings, 0 replies; 21+ messages in thread
From: Andrew Ammerlaan @ 2024-11-01 17:10 UTC (permalink / raw
To: gentoo-commits
commit: 73acde46849358374af4ce57b80421039cc6a830
Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 13 13:03:39 2024 +0000
Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Fri Nov 1 17:05:47 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73acde46
sys-kernel/dracut: add 105
Closes: https://github.com/gentoo/gentoo/pull/38912
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
sys-kernel/dracut/Manifest | 1 +
sys-kernel/dracut/dracut-105.ebuild | 202 +++++++++++++++++++++
.../dracut-105-ensure-abs-args-for-objcopy.patch | 48 +++++
3 files changed, 251 insertions(+)
diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest
index 93fcb1e769ad..5db010d68363 100644
--- a/sys-kernel/dracut/Manifest
+++ b/sys-kernel/dracut/Manifest
@@ -1,2 +1,3 @@
DIST dracut-060_pre20240104.tar.gz 499965 BLAKE2B 935e0e5da348426d69c6dab6b91078f126cadd9ffc6a32378e79cd93b1dbadff35899efc3786fc12bf5a6741843d3637b0c98cc71fe4a96a8caf053ae887bac3 SHA512 f7818265f082e9c05ebb81a91b67fb9b1d3bf8b2433b7e6ea9be6bee43d28cd1ee48577648e1d9b3729c17608b028d294c13bf5d4db4cc5a18e3b007eb2cd67e
DIST dracut-103.tar.gz 567713 BLAKE2B 7781c0b7fc83a2c0c461f6398687e053226b489fb5405b3132b30d8e7a4f3cea2bb73aa0fe6e4c4b27187d6270ba623f403916ec38025a912930ae347a7e25ce SHA512 ba0dbefbcbecb09c44ce240664bc4f4ee25dfb8be7bc060028ae3b1ccf7d70410491c105e64fcef3d6f44d2794cb6162bcea9404125906be46bf3dff098e0277
+DIST dracut-105.tar.gz 575857 BLAKE2B 93463e3d1649e6e68accbb4f2480af471e851a54185771cec01e8b7112f5c4158901747bdc1180e08e270d3b3b21afb4d510dae09ca6ef00e309300bede188d1 SHA512 1608fb31d6a53905ea25a279586573db5fc7e084b4f6ff06e52065cbcb4ff503c2d51c0a282345844228232b1b590382b482a224183e0c4ee16c9c9e6932b275
diff --git a/sys-kernel/dracut/dracut-105.ebuild b/sys-kernel/dracut/dracut-105.ebuild
new file mode 100644
index 000000000000..b6668b2572f4
--- /dev/null
+++ b/sys-kernel/dracut/dracut-105.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic bash-completion-r1 edo optfeature systemd toolchain-funcs
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/dracut-ng/dracut-ng"
+else
+ if [[ "${PV}" != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ fi
+ SRC_URI="https://github.com/dracut-ng/dracut-ng/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/${PN}-ng-${PV}"
+fi
+
+DESCRIPTION="Generic initramfs generation tool"
+HOMEPAGE="https://github.com/dracut-ng/dracut-ng/wiki"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="selinux test"
+RESTRICT="test"
+PROPERTIES="test? ( test_privileged test_network )"
+
+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/openrc-navi[sysv-utils(-),selinux?]
+ sys-apps/systemd[sysv-utils]
+ sys-apps/s6-linux-init[sysv-utils(-)]
+ )
+ >=sys-apps/util-linux-2.21
+ virtual/pkgconfig[native-symlinks(+)]
+ 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
+ test? (
+ net-nds/rpcbind
+ net-fs/nfs-utils
+ sys-block/open-iscsi
+ sys-fs/btrfs-progs
+ sys-fs/dmraid
+ sys-fs/lvm2[lvm,thin]
+ sys-fs/mdadm
+ sys-fs/multipath-tools
+ alpha? ( app-emulation/qemu[qemu_softmmu_targets_alpha] )
+ amd64? ( app-emulation/qemu[qemu_softmmu_targets_x86_64] )
+ arm? ( app-emulation/qemu[qemu_softmmu_targets_arm] )
+ arm64? ( app-emulation/qemu[qemu_softmmu_targets_aarch64] )
+ hppa? ( app-emulation/qemu[qemu_softmmu_targets_hppa] )
+ loong? ( app-emulation/qemu[qemu_softmmu_targets_loongarch64] )
+ mips? ( || (
+ app-emulation/qemu[qemu_softmmu_targets_mips]
+ app-emulation/qemu[qemu_softmmu_targets_mips64]
+ app-emulation/qemu[qemu_softmmu_targets_mips64el]
+ ) )
+ ppc? ( app-emulation/qemu[qemu_softmmu_targets_ppc] )
+ ppc64? ( app-emulation/qemu[qemu_softmmu_targets_ppc64] )
+ riscv? ( || (
+ app-emulation/qemu[qemu_softmmu_targets_riscv32]
+ app-emulation/qemu[qemu_softmmu_targets_riscv64]
+ ) )
+ sparc? ( || (
+ app-emulation/qemu[qemu_softmmu_targets_sparc]
+ app-emulation/qemu[qemu_softmmu_targets_sparc64]
+ ) )
+ x86? ( app-emulation/qemu[qemu_softmmu_targets_i386] )
+ )
+"
+
+QA_MULTILIB_PATHS="usr/lib/dracut/.*"
+
+PATCHES=(
+ "${FILESDIR}"/gentoo-ldconfig-paths-r1.patch
+ # Gentoo specific acct-user and acct-group conf adjustments
+ "${FILESDIR}"/${PN}-103-acct-user-group-gentoo.patch
+ # https://github.com/dracut-ng/dracut-ng/pull/834
+ "${FILESDIR}"/${PN}-105-ensure-abs-args-for-objcopy.patch
+)
+
+src_configure() {
+ local myconf=(
+ --prefix="${EPREFIX}/usr"
+ --sysconfdir="${EPREFIX}/etc"
+ --bashcompletiondir="$(get_bashcompdir)"
+ --systemdsystemunitdir="$(systemd_get_systemunitdir)"
+ )
+
+ # this emulates what the build system would be doing without us
+ append-cflags -D_FILE_OFFSET_BITS=64
+
+ tc-export CC PKG_CONFIG
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_test() {
+ addwrite /dev/kvm
+ # Translate ARCH so run-qemu can find the correct qemu-system-ARCH
+ local qemu_arch
+ if use amd64; then
+ qemu_arch=x86_64
+ elif use arm64; then
+ qemu_arch=aarch64
+ elif use loong; then
+ qemu_arch=loongarch64
+ elif use x86; then
+ qemu_arch=i386
+ else
+ qemu_arch=$(tc-arch)
+ fi
+ ARCH=${qemu_arch} emake -C test check
+}
+
+src_install() {
+ local DOCS=(
+ AUTHORS
+ NEWS.md
+ README.md
+ docs/HACKING.md
+ docs/README.cross
+ docs/README.kernel
+ docs/RELEASE.md
+ 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 "building Unified Kernel Images with dracut (--uefi)" \
+ "sys-apps/systemd[boot]" "sys-apps/systemd-utils[boot]"
+ optfeature "automatically generating an initramfs on each kernel installation" \
+ "sys-kernel/installkernel[dracut]"
+ optfeature "automatically generating an UKI on each kernel installation" \
+ "sys-kernel/installkernel[dracut,uki]"
+}
diff --git a/sys-kernel/dracut/files/dracut-105-ensure-abs-args-for-objcopy.patch b/sys-kernel/dracut/files/dracut-105-ensure-abs-args-for-objcopy.patch
new file mode 100644
index 000000000000..aefd8be67e90
--- /dev/null
+++ b/sys-kernel/dracut/files/dracut-105-ensure-abs-args-for-objcopy.patch
@@ -0,0 +1,48 @@
+From 1579bb0c77d9e1e4599623a165c54a0dccdaf875 Mon Sep 17 00:00:00 2001
+From: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
+Date: Thu, 31 Oct 2024 11:28:37 +0100
+Subject: [PATCH] fix(dracut.sh): ensure abs path for objcopy args
+
+Closes: https://github.com/dracut-ng/dracut-ng/issues/833
+Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
+---
+ dracut.sh | 19 ++++++++++++++++---
+ 1 file changed, 16 insertions(+), 3 deletions(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index 90927136e..8b666a1ac 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -35,6 +35,19 @@ readonly dracut_cmd=$(readlink -f "$0")
+
+ set -o pipefail
+
++# below we sometimes cd, which causes problems if we're building an UKI
++# and relative paths are passed on to us. Store the pwd before we do anything.
++pwd=$(pwd)
++path_rel_to_abs() {
++ for var in "$@"; do
++ if [[ $var == /* ]]; then
++ echo "$var"
++ else
++ echo "$pwd/$var"
++ fi
++ done
++}
++
+ usage() {
+ [[ $sysroot_l ]] && dracutsysrootdir="$sysroot_l"
+ [[ $dracutbasedir ]] || dracutbasedir="$dracutsysrootdir"/usr/lib/dracut
+@@ -1095,9 +1108,9 @@ drivers_dir="${drivers_dir%"${drivers_dir##*[!/]}"}"
+ [[ $reproducible_l ]] && reproducible="$reproducible_l"
+ [[ $loginstall_l ]] && loginstall="$loginstall_l"
+ [[ $uefi_l ]] && uefi=$uefi_l
+-[[ $uefi_stub_l ]] && uefi_stub="$uefi_stub_l"
+-[[ $uefi_splash_image_l ]] && uefi_splash_image="$uefi_splash_image_l"
+-[[ $kernel_image_l ]] && kernel_image="$kernel_image_l"
++[[ $uefi_stub_l ]] && uefi_stub=$(path_rel_to_abs "$uefi_stub_l")
++[[ $uefi_splash_image_l ]] && uefi_splash_image=$(path_rel_to_abs "$uefi_splash_image_l")
++[[ $kernel_image_l ]] && kernel_image=$(path_rel_to_abs "$kernel_image_l")
+ [[ $sbat_l ]] && sbat="$sbat_l"
+ [[ $machine_id_l ]] && machine_id="$machine_id_l"
+
^ permalink raw reply related [flat|nested] 21+ messages in thread
end of thread, other threads:[~2024-11-01 17:10 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-24 18:03 [gentoo-commits] repo/gentoo:master commit in: sys-kernel/dracut/files/, sys-kernel/dracut/ Mike Gilbert
-- strict thread matches above, loose matches on Subject: below --
2024-11-01 17:10 Andrew Ammerlaan
2024-09-30 9:09 Andrew Ammerlaan
2023-12-13 9:19 Andrew Ammerlaan
2023-09-22 6:10 Andrew Ammerlaan
2023-07-20 3:39 Sam James
2023-05-26 20:03 Mike Gilbert
2022-12-25 2:53 Mike Gilbert
2021-12-27 16:51 Mike Gilbert
2021-09-06 0:14 Mike Gilbert
2021-08-17 17:24 Mike Gilbert
2021-07-23 19:16 Mike Gilbert
2021-06-14 18:42 Mike Gilbert
2020-07-03 11:18 Thomas Deutschmann
2020-03-10 19:50 Mike Gilbert
2019-12-29 19:39 Mike Gilbert
2019-01-21 14:23 Mike Gilbert
2017-02-09 18:47 Patrick McLean
2017-02-09 18:47 Patrick McLean
2016-11-04 18:39 Mike Gilbert
2015-08-16 10:04 Amadeusz Żołnowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox