diff options
author | Robert Gerus <arachnist@i.am-a.cat> | 2015-05-23 10:27:17 +0200 |
---|---|---|
committer | Robert Gerus <arachnist@i.am-a.cat> | 2015-05-23 10:27:17 +0200 |
commit | c4002960c11bf83bc6e5564a1e7ce23018600baf (patch) | |
tree | ab00780db6e190a355d2c5d555b39fe4d9f7da85 | |
parent | 4618fa1175b1f71eaff9e72774e7fabd01ebc866 (diff) | |
download | gentoo-overlay-c4002960c11bf83bc6e5564a1e7ce23018600baf.tar.gz gentoo-overlay-c4002960c11bf83bc6e5564a1e7ce23018600baf.tar.bz2 gentoo-overlay-c4002960c11bf83bc6e5564a1e7ce23018600baf.tar.xz gentoo-overlay-c4002960c11bf83bc6e5564a1e7ce23018600baf.zip |
Import sys-kernel/dracut and fix for musl.
6 files changed, 593 insertions, 0 deletions
diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest new file mode 100644 index 0000000..61bd7c1 --- /dev/null +++ b/sys-kernel/dracut/Manifest @@ -0,0 +1,6 @@ +AUX 041-r2-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch 2410 SHA256 31f7ef0e7837f7f3977c29eb6102beb238e170edbdbbe0da0c9e0893424a22b7 SHA512 98e3ceaf1ad196ca951ef48aae5dae6eb4ee2eb603d7d842fd134c24713bceb9732efc5924670abd32409c82c6a1cec60b24da1353fd7846f1af475008dccabc WHIRLPOOL 847df267c421d01a220816e803802394e321a75f9b0130209844e717e1692e38961108590f2148e2a57737150c27a94ebd78b5d7c2ec9c5a5d5816348aa18a52 +AUX 041-r2-0002-Install-dracut-install-and-skipcpio-in.patch 4255 SHA256 b32c724c08daefa3886e11a5b098da6ef66039ef01378ea24beb52b81cd61b83 SHA512 cc6b09811729b177885600c7c5de061051e8b15ee190396665e705d086f723b28c0b4b892ba1faee645765b364361b03d6f70c1039b48b745c6c50d82e090db6 WHIRLPOOL d8e7ca8444fe61e293947b347e31cd96110f1b25aa8a997cca9cf7f45cee44820d1bb2902dfd46b67c3f8c74bed2d78a37132ed8a91ad75eee2c152077551840 +AUX 041-r2-0003-Take-into-account-lib64-dirs-when-dete.patch 2028 SHA256 2726bd4eea86017fb443ed1375408a64c01e1070702c14c349bcd0a5e276eacb SHA512 b71a9c884974b22389370ca3c72fad7dccb3ce3f80fcca230e47b68928bf5ed388707433d9093277bfc2a9d20f261d2abe1ecd639ebd147582bd6a6792cacfe4 WHIRLPOOL c02d50137b5a5d21c530a20e2e04c08dfd53b2c6ead6f4f976b10aaf2cb3f472590435ee9c1e619bfaa354c34a950b1b7bec41699c72903df566024f2a30a47d +AUX portability.patch 1622 SHA256 4102ed488b2b16e2b61c60e9710320ca47819f800297ff11059e097c3c43465a SHA512 b13a34a3425a03b35ac83d868fdeed40c71665e5d499d542afb83508aa88833e571e8795b23551e4136b5ea4fbe6c0bf33bde45462ee6acb41934b5889066d7c WHIRLPOOL 1c5d8c606fa1a44837fac38365d45d0fc9068aed577b8119841cf3e6e116ad5db90364510b24b61b19475dd154e6fd7236ebc30f5d08acba661043989ba317ab +DIST dracut-041.tar.xz 268288 SHA256 8ece6c2240bf0e9283e5f717b65dfcd6830b3ef7f8d1c01b60014052f1063251 SHA512 358444588febfc482627eb5423b8a87b588ed3842ae814b9f88d8c5dfec28419f2aea92cd54c11c4949b9968d60d7e05ba9cfea78d26d2dc6f2a943a38b28dac WHIRLPOOL ab538fe1ffeb3d43185c6222a6e65af8c684b292be571e0571fdd69011f654c3093f3a2256f3003d5dbaf07d0a26f83d82055885bae1868738ad15dc74982e72 +EBUILD dracut-041-r2.ebuild 7990 SHA256 676c88d24aa3014cf8869aa204349e9012af709358f91087c671ad611e2a6743 SHA512 9b74f05b3a317ea914570655f192eb8a05325b3caad204575b11e723b12551af30816536f9e2f6bb52de35386d67c3b77c36b27a5215c69e9840493f22deccce WHIRLPOOL 976d242236dc65b53f9813fe9945daaf14e1ad517948b71066fa9d19527738b648066668ea672eb97a4dc34f2fb40857dc645659f2ea212690bffddef911ff1c diff --git a/sys-kernel/dracut/dracut-041-r2.ebuild b/sys-kernel/dracut/dracut-041-r2.ebuild new file mode 100644 index 0000000..2645158 --- /dev/null +++ b/sys-kernel/dracut/dracut-041-r2.ebuild @@ -0,0 +1,279 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/dracut-041-r2.ebuild,v 1.2 2015/03/31 10:54:29 aidecoe Exp $ + +EAPI=4 + +inherit bash-completion-r1 eutils linux-info multilib systemd + +DESCRIPTION="Generic initramfs generation tool" +HOMEPAGE="http://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}/${PVR}-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch" + "${FILESDIR}/${PVR}-0002-Install-dracut-install-and-skipcpio-in.patch" + "${FILESDIR}/${PVR}-0003-Take-into-account-lib64-dirs-when-dete.patch" + "${FILESDIR}"/portability.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 +} + +# Grabbed from net-misc/netctl ebuild. +optfeature() { + local desc=$1 + shift + while (( $# )); do + if has_version "$1"; then + elog " [I] $1 to ${desc}" + else + elog " [ ] $1 to ${desc}" + fi + shift + done +} + +# +# ebuild functions +# + +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_src_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/041-r2-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch b/sys-kernel/dracut/files/041-r2-0001-Use-the-same-paths-in-dracut.sh-as-tho.patch new file mode 100644 index 0000000..d16119c --- /dev/null +++ b/sys-kernel/dracut/files/041-r2-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?= <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-r2-0002-Install-dracut-install-and-skipcpio-in.patch b/sys-kernel/dracut/files/041-r2-0002-Install-dracut-install-and-skipcpio-in.patch new file mode 100644 index 0000000..5202ac3 --- /dev/null +++ b/sys-kernel/dracut/files/041-r2-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?= <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-r2-0003-Take-into-account-lib64-dirs-when-dete.patch b/sys-kernel/dracut/files/041-r2-0003-Take-into-account-lib64-dirs-when-dete.patch new file mode 100644 index 0000000..b355f84 --- /dev/null +++ b/sys-kernel/dracut/files/041-r2-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?= <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/portability.patch b/sys-kernel/dracut/files/portability.patch new file mode 100644 index 0000000..4f4dbf1 --- /dev/null +++ b/sys-kernel/dracut/files/portability.patch @@ -0,0 +1,49 @@ +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/util.h 2014-10-24 13:19:58.000000000 +0200 ++++ install/util.h 2014-12-28 07:58:51.723864634 +0100 +@@ -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> +--- install/dracut-install.c.orig 2014-10-24 13:19:58.000000000 +0200 ++++ install/dracut-install.c 2014-12-30 10:16:25.850635694 +0100 +@@ -222,7 +222,7 @@ static int cp(const char *src, const cha + 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; + |