aidecoe 15/06/04 18:46:41
Added:
041-0003-Take-into-account-lib64-dirs-when-dete.patch
041-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch
041-0002-Install-dracut-install-and-skipcpio-in.patch
041-0004-Portability-fixes.patch
Removed:
041-r2-0003-Take-into-account-lib64-dirs-when-dete.patch
041-r2-0004-Portability-fixes.patch
041-r2-0002-Install-dracut-install-and-skipcpio-in.patch
041-r2-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch
Log:
Rename patches.
(Portage version: 2.2.20/cvs/Linux x86_64, signed Manifest commit with key
F0134531E1DBFAB5)
Revision Changes Path
1.1
sys-kernel/dracut/files/041-0003-Take-into-account-lib64-dirs-when-dete.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/041-0003-Take-into-account-lib64-dirs-when-dete.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/041-0003-Take-into-account-lib64-dirs-when-dete.patch?rev=1.1&content-type=text/plain
Index: 041-0003-Take-into-account-lib64-dirs-when-dete.patch
===================================================================
>From acfd4d98e821dbaa9ae68dde82fb8843fbf5de59 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <[email protected]>
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
1.1
sys-kernel/dracut/files/041-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/041-0001-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/041-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch?rev=1.1&content-type=text/plain
Index: 041-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch
===================================================================
>From 89334439113c0ea8196ac5e9e188e6a1bbebe267 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <[email protected]>
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
1.1
sys-kernel/dracut/files/041-0002-Install-dracut-install-and-skipcpio-in.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/041-0002-Install-dracut-install-and-skipcpio-in.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/041-0002-Install-dracut-install-and-skipcpio-in.patch?rev=1.1&content-type=text/plain
Index: 041-0002-Install-dracut-install-and-skipcpio-in.patch
===================================================================
>From 7d8dadfdb2d59ac60c6a579f602e13ac7c743e39 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <[email protected]>
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
1.1 sys-kernel/dracut/files/041-0004-Portability-fixes.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/041-0004-Portability-fixes.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-kernel/dracut/files/041-0004-Portability-fixes.patch?rev=1.1&content-type=text/plain
Index: 041-0004-Portability-fixes.patch
===================================================================
>From 82f7e46c8fdb2bb41b7b26916e463add7af70a94 Mon Sep 17 00:00:00 2001
From: xtraeme <[email protected]>
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