From 56bd759df1d0c750a065b8c845e93d5dfa6b549d Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Sat, 8 Aug 2015 13:49:04 -0700 Subject: proj/gentoo: Initial commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson X-Thanks: Alec Warner - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring - wrote much python to improve cvs2svn X-Thanks: Rich Freeman - validation scripts X-Thanks: Patrick Lauer - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed --- ...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 +++++ 25 files changed, 1239 insertions(+) create mode 100644 sys-kernel/dracut/files/034-0001-dracut.sh-do-not-bail-out-if-kernel-mo.patch create mode 100644 sys-kernel/dracut/files/034-0002-dracut-functions.sh-support-for-altern.patch create mode 100644 sys-kernel/dracut/files/034-0003-gentoo.conf-let-udevdir-be-handled-by-.patch create mode 100644 sys-kernel/dracut/files/034-0004-Use-the-same-paths-in-dracut.sh-as-tho.patch create mode 100644 sys-kernel/dracut/files/034-0005-Install-dracut-install-into-libexec-di.patch create mode 100644 sys-kernel/dracut/files/034-0006-resume-fix-swap-detection-in-hostonly.patch create mode 100644 sys-kernel/dracut/files/034-0007-dracut.sh-also-mkdir-run-lock-which-is.patch create mode 100644 sys-kernel/dracut/files/034-0008-dracut.sh-no-need-to-make-subdirs-in-r.patch create mode 100644 sys-kernel/dracut/files/034-0009-lvm-install-thin-utils-for-non-hostonl.patch create mode 100644 sys-kernel/dracut/files/034-0011-lvm-fix-thin-recognition.patch create mode 100644 sys-kernel/dracut/files/034-0012-lvm-always-install-thin-utils-for-lvm.patch create mode 100644 sys-kernel/dracut/files/034-0013-usrmount-always-install.patch create mode 100644 sys-kernel/dracut/files/034-0014-udev-rules-add-eudev-rules.patch create mode 100644 sys-kernel/dracut/files/040-0001-dracut-functions.sh-support-for-altern.patch create mode 100644 sys-kernel/dracut/files/040-0002-gentoo.conf-let-udevdir-be-handled-by-.patch create mode 100644 sys-kernel/dracut/files/040-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch create mode 100644 sys-kernel/dracut/files/040-0004-Install-dracut-install-into-libexec-di.patch create mode 100644 sys-kernel/dracut/files/040-0005-NEWS-add-040-entry.patch create mode 100644 sys-kernel/dracut/files/040-0006-Don-t-pass-rsyncable-option-to-gzip-Ge.patch create mode 100644 sys-kernel/dracut/files/040-0007-Take-into-account-lib64-dirs-when-dete.patch create mode 100644 sys-kernel/dracut/files/041-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch create mode 100644 sys-kernel/dracut/files/041-0002-Install-dracut-install-and-skipcpio-in.patch create mode 100644 sys-kernel/dracut/files/041-0003-Take-into-account-lib64-dirs-when-dete.patch create mode 100644 sys-kernel/dracut/files/041-0004-Portability-fixes.patch create mode 100644 sys-kernel/dracut/files/041-0005-base-dracut-lib.sh-remove-bashism.patch (limited to 'sys-kernel/dracut/files') 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 new file mode 100644 index 000000000000..7500ecfdb7a8 --- /dev/null +++ b/sys-kernel/dracut/files/034-0001-dracut.sh-do-not-bail-out-if-kernel-mo.patch @@ -0,0 +1,42 @@ +From 45e5079d4be0ac1a977bc41dcda423fcfa3280fc Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 new file mode 100644 index 000000000000..acb2db7677e6 --- /dev/null +++ b/sys-kernel/dracut/files/034-0002-dracut-functions.sh-support-for-altern.patch @@ -0,0 +1,41 @@ +From c5a2f35eb2a90d8787d127b44cb6b5e0536d16ce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 . + +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 new file mode 100644 index 000000000000..e5bee434ef8a --- /dev/null +++ b/sys-kernel/dracut/files/034-0003-gentoo.conf-let-udevdir-be-handled-by-.patch @@ -0,0 +1,30 @@ +From 29ade4d78b7609877659aa5938b3fba2954ce415 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 new file mode 100644 index 000000000000..dec964e5a87f --- /dev/null +++ b/sys-kernel/dracut/files/034-0004-Use-the-same-paths-in-dracut.sh-as-tho.patch @@ -0,0 +1,74 @@ +From 6660721bd34b7a25026ffc6a6df4cdfdc8742ed3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 new file mode 100644 index 000000000000..6af99197ed49 --- /dev/null +++ b/sys-kernel/dracut/files/034-0005-Install-dracut-install-into-libexec-di.patch @@ -0,0 +1,81 @@ +From 80dbe6dfbdb2cd3475006e210fe057dceb81ddf2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 new file mode 100644 index 000000000000..e97780c25981 --- /dev/null +++ b/sys-kernel/dracut/files/034-0006-resume-fix-swap-detection-in-hostonly.patch @@ -0,0 +1,31 @@ +From 0c89bcc27516803d68444488ede3d513ba982039 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +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 new file mode 100644 index 000000000000..0cf2586ed422 --- /dev/null +++ b/sys-kernel/dracut/files/034-0007-dracut.sh-also-mkdir-run-lock-which-is.patch @@ -0,0 +1,25 @@ +From be723725cd6ea1c41b52c1bff5a569eb8cd0c76d Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 new file mode 100644 index 000000000000..380411cc5f14 --- /dev/null +++ b/sys-kernel/dracut/files/034-0008-dracut.sh-no-need-to-make-subdirs-in-r.patch @@ -0,0 +1,25 @@ +From 34712f015f13221b653a1ed2ee75804f06a22357 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 new file mode 100644 index 000000000000..8bf0f7c39875 --- /dev/null +++ b/sys-kernel/dracut/files/034-0009-lvm-install-thin-utils-for-non-hostonl.patch @@ -0,0 +1,41 @@ +From bd3303000b32cb500b2d769c6852784a807cee47 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 new file mode 100644 index 000000000000..b2dfc777814c --- /dev/null +++ b/sys-kernel/dracut/files/034-0011-lvm-fix-thin-recognition.patch @@ -0,0 +1,40 @@ +From a70dff7f103b27d5b7016e13a64c7710c61dc96e Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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/ 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 new file mode 100644 index 000000000000..074566b69a48 --- /dev/null +++ b/sys-kernel/dracut/files/034-0012-lvm-always-install-thin-utils-for-lvm.patch @@ -0,0 +1,79 @@ +From 615071016ecfa223b2744fc17e137de780167115 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 new file mode 100644 index 000000000000..55fd87c1b08c --- /dev/null +++ b/sys-kernel/dracut/files/034-0013-usrmount-always-install.patch @@ -0,0 +1,31 @@ +From ffbe30d1e1e9fb09136bfc2d29a3cc65292b5690 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +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 new file mode 100644 index 000000000000..0b3fc39d2f9e --- /dev/null +++ b/sys-kernel/dracut/files/034-0014-udev-rules-add-eudev-rules.patch @@ -0,0 +1,29 @@ +From 29f735ac0e54421d1518b8d0f730523ebb7e6d5a Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +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 new file mode 100644 index 000000000000..55b369981810 --- /dev/null +++ b/sys-kernel/dracut/files/040-0001-dracut-functions.sh-support-for-altern.patch @@ -0,0 +1,41 @@ +From ed2f8d6145ef12084af882575091a7d44a3e47c1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 . + +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 new file mode 100644 index 000000000000..52b97692f9e2 --- /dev/null +++ b/sys-kernel/dracut/files/040-0002-gentoo.conf-let-udevdir-be-handled-by-.patch @@ -0,0 +1,30 @@ +From a562cb9ad84784cb4ba7679a2fc3a269d31a4ca3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 new file mode 100644 index 000000000000..fbfd9ee419ad --- /dev/null +++ b/sys-kernel/dracut/files/040-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch @@ -0,0 +1,74 @@ +From 5a1de9053d27feeb283253554033e7ad25c9aa31 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 new file mode 100644 index 000000000000..2cf27f339c92 --- /dev/null +++ b/sys-kernel/dracut/files/040-0004-Install-dracut-install-into-libexec-di.patch @@ -0,0 +1,81 @@ +From ed9375739c3f7e48f6e1c3037c5a589c49d78613 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 new file mode 100644 index 000000000000..eeb4610e4190 --- /dev/null +++ b/sys-kernel/dracut/files/040-0005-NEWS-add-040-entry.patch @@ -0,0 +1,25 @@ +From 36c91220234af69a96cd95e575b47f0a3ec4c645 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 new file mode 100644 index 000000000000..1ade9bd1e94c --- /dev/null +++ b/sys-kernel/dracut/files/040-0006-Don-t-pass-rsyncable-option-to-gzip-Ge.patch @@ -0,0 +1,26 @@ +From ff57ba111c03957d4a68459efd91322c24223861 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 new file mode 100644 index 000000000000..5d1031284611 --- /dev/null +++ b/sys-kernel/dracut/files/040-0007-Take-into-account-lib64-dirs-when-dete.patch @@ -0,0 +1,44 @@ +From 25efd305dace3275c661e0a7dfbaef42b4cbc6d7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 new file mode 100644 index 000000000000..d16119ccaea7 --- /dev/null +++ b/sys-kernel/dracut/files/041-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch @@ -0,0 +1,74 @@ +From 89334439113c0ea8196ac5e9e188e6a1bbebe267 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 new file mode 100644 index 000000000000..5202ac37401a --- /dev/null +++ b/sys-kernel/dracut/files/041-0002-Install-dracut-install-and-skipcpio-in.patch @@ -0,0 +1,125 @@ +From 7d8dadfdb2d59ac60c6a579f602e13ac7c743e39 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 new file mode 100644 index 000000000000..b355f8445c69 --- /dev/null +++ b/sys-kernel/dracut/files/041-0003-Take-into-account-lib64-dirs-when-dete.patch @@ -0,0 +1,60 @@ +From acfd4d98e821dbaa9ae68dde82fb8843fbf5de59 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= +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 new file mode 100644 index 000000000000..f92cba390e66 --- /dev/null +++ b/sys-kernel/dracut/files/041-0004-Portability-fixes.patch @@ -0,0 +1,63 @@ +From 82f7e46c8fdb2bb41b7b26916e463add7af70a94 Mon Sep 17 00:00:00 2001 +From: xtraeme +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 . + ***/ + ++#define _GNU_SOURCE ++ + #include + #include + #include +@@ -27,6 +29,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +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 new file mode 100644 index 000000000000..47bfdc5e0983 --- /dev/null +++ b/sys-kernel/dracut/files/041-0005-base-dracut-lib.sh-remove-bashism.patch @@ -0,0 +1,27 @@ +From 7ab0852f24a803ea2c9b0d8e1ce45d13cdd25320 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +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 + -- cgit v1.2.3-65-gdbad