aidecoe 14/03/20 08:51:44 Added: 037-0004-Install-dracut-install-into-libexec-di.patch 037-0002-gentoo.conf-let-udevdir-be-handled-by-.patch 037-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch 037-0001-dracut-functions.sh-support-for-altern.patch Log: Version bump. New udev and systemd are unblocked. dracut-037 ========== - dracut: hostonly_cmdline variable and command line switch Toggle hostonly cmdline storing in the initramfs --hostonly-cmdline: Store kernel command line arguments needed in the initramfs --no-hostonly-cmdline: Do not store kernel command line arguments needed in the initramfs - dracut: --mount now understands full fstab lines - dracut now also includes drivers from the /lib/modules/<version>/updates directory - dracut: only set the owner of files to 0:0, if generated as non-root - dracut now directly writes to the initramfs file - dracut: call lz4 with the legacy flag (linux kernel does not support the new format) - systemd: rootfs-generator generates JobTimeout=0 units for the root device - systemd: added the systemd-sysctl service - systemd: add 80-net-setup-link.rules and .link files for persistent interface renaming - systemd: make dracut-shutdown.service failure non-fatal - network: various IPv6 fixes - network: DCHCP for IPv6 - network: understand ip=.....:<dns1>:<dns2> - network: parse ibft nameserver settings - shutdown: if kexec fails, just reboot - lvm: handle one LV at a time with lvchange - module-setup.sh: New functions require_binaries() and require_any_binary() to be used in the check() section of module-setup.sh. - a lot of small bugfixes (Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key F0134531E1DBFAB5)
Revision Changes Path 1.1 sys-kernel/dracut/files/037-0004-Install-dracut-install-into-libexec-di.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/037-0004-Install-dracut-install-into-libexec-di.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/037-0004-Install-dracut-install-into-libexec-di.patch?rev=1.1&content-type=text/plain Index: 037-0004-Install-dracut-install-into-libexec-di.patch =================================================================== >From c379589cc5cdd0c4e9e559b9edde44410416d2fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aide...@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 cab7755..fd936f2 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 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 6281fa0..e2b1a7a 100755 --- a/dracut-functions.sh +++ b/dracut-functions.sh @@ -740,6 +740,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 b1141de..6cf80b4 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.9.0 1.1 sys-kernel/dracut/files/037-0002-gentoo.conf-let-udevdir-be-handled-by-.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/037-0002-gentoo.conf-let-udevdir-be-handled-by-.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/037-0002-gentoo.conf-let-udevdir-be-handled-by-.patch?rev=1.1&content-type=text/plain Index: 037-0002-gentoo.conf-let-udevdir-be-handled-by-.patch =================================================================== >From 48b6551c95897a89be2510b268b8d89bfd6dc851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aide...@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 # -- 1.9.0 1.1 sys-kernel/dracut/files/037-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/037-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/037-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch?rev=1.1&content-type=text/plain Index: 037-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch =================================================================== >From e40f005daf74f6b6b62ea2e7fc352f097caf5f13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aide...@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 ceb7096..cab7755 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 c1ef474..b1141de 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 @@ -652,8 +654,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 @@ -773,7 +773,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.9.0 1.1 sys-kernel/dracut/files/037-0001-dracut-functions.sh-support-for-altern.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/037-0001-dracut-functions.sh-support-for-altern.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/037-0001-dracut-functions.sh-support-for-altern.patch?rev=1.1&content-type=text/plain Index: 037-0001-dracut-functions.sh-support-for-altern.patch =================================================================== >From 9cdda4d50eddf8a14c57f986c6c4f86bc9619269 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aide...@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 <alexan...@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 391b549..6281fa0 100755 --- a/dracut-functions.sh +++ b/dracut-functions.sh @@ -918,6 +918,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.9.0