Merge pull request #606 from marineam/dracut

bump(sys-kernel/bootengine): Updates for new dracut version
This commit is contained in:
Michael Marineau 2014-05-15 19:09:13 -07:00
commit 32e1c7f306
20 changed files with 3 additions and 2984 deletions

View File

@ -1,3 +1,2 @@
USE="systemd"
BOOTSTRAP_USE="$BOOTSTRAP_USE udev"
DRACUT_MODULES="systemd"

View File

@ -10,7 +10,7 @@ CROS_WORKON_REPO="git://github.com"
if [[ "${PV}" == 9999 ]]; then
KEYWORDS="~amd64 ~arm ~x86"
else
CROS_WORKON_COMMIT="35f6c11e54dc161cfab9c01f5a165933f796f2d1"
CROS_WORKON_COMMIT="79d407f7164a38a7dc12fee85a7fbab4a9534ce2"
KEYWORDS="amd64 arm x86"
fi
@ -29,13 +29,14 @@ DEPEND="
sys-apps/coreutils
sys-apps/findutils
sys-apps/grep
sys-apps/kbd
sys-apps/kexec-tools
sys-apps/less
sys-apps/sed
sys-apps/systemd
sys-apps/systemd-sysv-utils
sys-apps/util-linux
sys-fs/btrfs-progs
sys-fs/mdadm
sys-kernel/dracut
virtual/udev
"

View File

@ -1,2 +0,0 @@
DIST dracut-031.tar.bz2 260601 SHA256 a62fd3d22600adc0f370d2eff474f9aec51bc3dfb2be619647f258a9805bbb77 SHA512 ddde1279cff61b6fd8567f5e21b5f8d95e935e42520a342960432749c6a085637a5e049e6fd121d491727aea3b35af59e86c8b80e55180f3b5e496aff2b6eb23 WHIRLPOOL 46c9d2a3717fd8c36aac269a213a433f6534b2a547e0b23a31ffca9a4101c69c7253358fccb8a55a0ab9b19d4c4218eb902c49a6cc0fc08c48e3cd70c40eebc2
DIST dracut-034.tar.bz2 277692 SHA256 48c7fd57e287d4f34dfff5b5ead14a4511926858f1e2ffaa40b762f257516d7f SHA512 ae06510668e63550d4d6b509b314c7668880387cfe696fc7f21cf04cc488be743440871dbd1fcf4e8314f9aa9e61ee3e78a42a75631123c420767677c6744e34 WHIRLPOOL 0412dea239fbd82d79e873869211ea31b7495dac74d7079e8aa52dd8d2484986fd0a0831aefffe29cfe5acfbf64fa01a9a1fa742192a28276a8671b663a69e13

View File

@ -1,298 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/dracut-031.ebuild,v 1.1 2013/08/03 21:07:51 aidecoe Exp $
EAPI=4
inherit bash-completion-r1 eutils linux-info systemd
add_req_use_for() {
local dep="$1"; shift
local f
for f in "$@"; do
REQUIRED_USE+="${f}? ( ${dep} )
"
done
}
DESCRIPTION="Generic initramfs generation tool"
HOMEPAGE="http://dracut.wiki.kernel.org"
SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
REQUIRED_USE="
dracut_modules_bootchart? ( !dracut_modules_systemd )
dracut_modules_crypt-gpg? ( dracut_modules_crypt )
dracut_modules_crypt-loop? ( dracut_modules_crypt )
dracut_modules_livenet? ( dracut_modules_dmsquash-live )
"
COMMON_MODULES="
dracut_modules_biosdevname
dracut_modules_bootchart
dracut_modules_btrfs
dracut_modules_caps
dracut_modules_crypt-gpg
dracut_modules_crypt-loop
dracut_modules_gensplash
dracut_modules_mdraid
dracut_modules_multipath
dracut_modules_plymouth
dracut_modules_syslog
dracut_modules_systemd
"
DM_MODULES="
dracut_modules_crypt
dracut_modules_dmraid
dracut_modules_dmsquash-live
dracut_modules_livenet
dracut_modules_lvm
"
NETWORK_MODULES="
dracut_modules_cifs
dracut_modules_iscsi
dracut_modules_livenet
dracut_modules_nbd
dracut_modules_nfs
dracut_modules_ssh-client
"
add_req_use_for device-mapper ${DM_MODULES}
add_req_use_for net ${NETWORK_MODULES}
IUSE_DRACUT_MODULES="${COMMON_MODULES} ${DM_MODULES} ${NETWORK_MODULES}"
IUSE="debug device-mapper optimization net selinux ${IUSE_DRACUT_MODULES}"
RESTRICT="test"
CDEPEND="virtual/udev
dracut_modules_systemd? ( >=sys-apps/systemd-199 )
"
RDEPEND="${CDEPEND}
app-arch/cpio
>=app-shells/bash-4.0
>=sys-apps/baselayout-1.12.14-r1
>sys-apps/kmod-5[tools]
>=sys-apps/util-linux-2.21
virtual/pkgconfig
debug? ( dev-util/strace )
device-mapper? ( >=sys-fs/lvm2-2.02.33 )
net? ( net-misc/curl >=net-misc/dhcp-4.2.4_p2-r1[client] sys-apps/iproute2 )
selinux? ( sys-libs/libselinux sys-libs/libsepol )
dracut_modules_biosdevname? ( sys-apps/biosdevname )
dracut_modules_bootchart? ( app-benchmarks/bootchart2 sys-apps/usleep
sys-process/acct )
dracut_modules_btrfs? ( sys-fs/btrfs-progs )
dracut_modules_caps? ( sys-libs/libcap )
dracut_modules_cifs? ( net-fs/cifs-utils )
dracut_modules_crypt? ( sys-fs/cryptsetup )
dracut_modules_crypt-gpg? ( app-crypt/gnupg )
dracut_modules_dmraid? ( sys-fs/dmraid sys-fs/multipath-tools )
dracut_modules_gensplash? ( media-gfx/splashutils )
dracut_modules_iscsi? ( >=sys-block/open-iscsi-2.0.871.3 )
dracut_modules_lvm? ( >=sys-fs/lvm2-2.02.33 )
dracut_modules_mdraid? ( sys-fs/mdadm )
dracut_modules_multipath? ( sys-fs/multipath-tools )
dracut_modules_nbd? ( sys-block/nbd )
dracut_modules_nfs? ( net-fs/nfs-utils net-nds/rpcbind )
dracut_modules_plymouth? ( >=sys-boot/plymouth-0.8.3-r1 )
dracut_modules_ssh-client? ( dev-libs/openssl )
dracut_modules_syslog? ( || ( app-admin/syslog-ng app-admin/rsyslog ) )
"
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
"
DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules
README.testsuite TODO )
MY_LIBDIR="/usr/lib"
#
# Helper functions
#
# Returns true if any of specified modules is enabled by USE flag and false
# otherwise.
# $1 = list of modules (which have corresponding USE flags of the same name)
any_module() {
local m modules=" $@ "
for m in ${modules}; do
! use $m && modules=${modules/ $m / }
done
shopt -s extglob
modules=${modules%%+( )}
shopt -u extglob
[[ ${modules} ]]
}
# 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
}
#
# ebuild functions
#
src_prepare() {
epatch "${FILESDIR}/${PV}-0001-dracut-functions.sh-support-for-altern.patch"
epatch "${FILESDIR}/${PV}-0002-gentoo.conf-let-udevdir-be-handled-by-.patch"
if use dracut_modules_systemd; then
local systemdutildir="$(systemd_get_utildir)"
local systemdsystemunitdir="$(systemd_get_unitdir)"
einfo "Setting systemdutildir to ${systemdutildir} and ..."
sed -e "4asystemdutildir=\"${systemdutildir}\"" \
-i "${S}/dracut.conf.d/gentoo.conf.example" || die
einfo "Setting systemdsystemunitdir to ${systemdsystemunitdir}..."
sed -e "5asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \
-i "${S}/dracut.conf.d/gentoo.conf.example" || die
fi
}
src_configure() {
local myconf="--libdir='${MY_LIBDIR}'"
myconf+=" --bashcompletiondir=$(get_bashcompdir)"
if use dracut_modules_systemd; then
myconf+=" --systemdsystemunitdir='$(systemd_get_unitdir)'"
fi
econf ${myconf}
}
src_compile() {
if use optimization; then
ewarn "Enabling experimental optimization!"
tc-export CC
emake install/dracut-install
fi
}
src_install() {
default
local dracutlibdir="${MY_LIBDIR#/}/dracut"
echo "DRACUT_VERSION=$PVR" > "${D%/}/${dracutlibdir}/dracut-version.sh"
insinto "${dracutlibdir}/dracut.conf.d/"
newins dracut.conf.d/gentoo.conf.example gentoo.conf
insinto /etc/logrotate.d
newins dracut.logrotate dracut
dodir /var/lib/dracut/overlay
dohtml dracut.html
#
# Modules
#
local module
modules_dir="${D%/}/${dracutlibdir}/modules.d"
# Remove modules not enabled by USE flags
for module in ${IUSE_DRACUT_MODULES} ; do
! use ${module} && rm_module -f ${module#dracut_modules_}
done
# Those flags are specific, and even are corresponding to modules, they need
# to be declared as regular USE flags.
use debug || rm_module 95debug
use selinux || rm_module 98selinux
# Following flags define set of helper modules which are base dependencies
# for others and as so have no practical use, so remove these modules.
use device-mapper || rm_module 90dm
use net || rm_module 40network 45ifcfg 45url-lib
if use dracut_modules_systemd; then
# With systemd following modules do not make sense
rm_module 96securityfs 98selinux
else
# Without systemd following modules do not make sense
rm_module 00systemd-bootchart
fi
# Remove S/390 modules which are not tested at all
rm_module 80cms 95dasd 95dasd_mod 95zfcp 95znet
# 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
# Remove extra modules which go to future dracut-extras
rm_module 05busybox 97masterkey 98ecryptfs 98integrity
# dash module is no longer supported
rm_module 00dash
}
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
if use dracut_modules_crypt || use dracut_modules_dmraid || use \
dracut_modules_mdraid || use dracut_modules_lvm; then
if ! [[ $(</proc/cmdline) =~ rd.auto[\ =] ]]; then
ewarn "Autoassembly of special devices like cryptoLUKS, dmraid, "
ewarn "mdraid or lvm is off for default as of >=dracut-024."
ewarn "Use rd.auto option to turn it on."
fi
fi
}

View File

@ -1,320 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/dracut-034-r1.ebuild,v 1.3 2013/11/18 19:10:48 aidecoe Exp $
EAPI=4
inherit bash-completion-r1 eutils linux-info multilib systemd
add_req_use_for() {
local dep="$1"; shift
local f
for f in "$@"; do
REQUIRED_USE+="${f}? ( ${dep} )
"
done
}
DESCRIPTION="Generic initramfs generation tool"
HOMEPAGE="http://dracut.wiki.kernel.org"
SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
REQUIRED_USE="
dracut_modules_bootchart? ( !dracut_modules_systemd )
dracut_modules_crypt-gpg? ( dracut_modules_crypt )
dracut_modules_crypt-loop? ( dracut_modules_crypt )
dracut_modules_livenet? ( dracut_modules_dmsquash-live )
"
COMMON_MODULES="
dracut_modules_biosdevname
dracut_modules_bootchart
dracut_modules_btrfs
dracut_modules_caps
dracut_modules_crypt-gpg
dracut_modules_crypt-loop
dracut_modules_dash
dracut_modules_gensplash
dracut_modules_mdraid
dracut_modules_multipath
dracut_modules_plymouth
dracut_modules_syslog
dracut_modules_systemd
"
DM_MODULES="
dracut_modules_crypt
dracut_modules_dmraid
dracut_modules_dmsquash-live
dracut_modules_livenet
dracut_modules_lvm
"
NETWORK_MODULES="
dracut_modules_cifs
dracut_modules_iscsi
dracut_modules_livenet
dracut_modules_nbd
dracut_modules_nfs
dracut_modules_ssh-client
"
add_req_use_for device-mapper ${DM_MODULES}
add_req_use_for net ${NETWORK_MODULES}
IUSE_DRACUT_MODULES="${COMMON_MODULES} ${DM_MODULES} ${NETWORK_MODULES}"
IUSE="debug device-mapper net selinux ${IUSE_DRACUT_MODULES}"
RESTRICT="test"
CDEPEND="virtual/udev
dracut_modules_systemd? ( >=sys-apps/systemd-199 )
selinux? ( sec-policy/selinux-dracut )
"
RDEPEND="${CDEPEND}
app-arch/cpio
>=app-shells/bash-4.0
>=sys-apps/baselayout-1.12.14-r1
>sys-apps/kmod-5[tools]
>=sys-apps/util-linux-2.21
virtual/pkgconfig
debug? ( dev-util/strace )
device-mapper? ( >=sys-fs/lvm2-2.02.33 )
net? ( net-misc/curl >=net-misc/dhcp-4.2.4_p2-r1[client] sys-apps/iproute2 )
selinux? ( sys-libs/libselinux sys-libs/libsepol )
dracut_modules_biosdevname? ( sys-apps/biosdevname )
dracut_modules_bootchart? ( app-benchmarks/bootchart2 sys-apps/usleep
sys-process/acct )
dracut_modules_btrfs? ( sys-fs/btrfs-progs )
dracut_modules_caps? ( sys-libs/libcap )
dracut_modules_cifs? ( net-fs/cifs-utils )
dracut_modules_crypt? ( sys-fs/cryptsetup )
dracut_modules_crypt-gpg? ( app-crypt/gnupg )
dracut_modules_dash? ( >=app-shells/dash-0.5.4.11 )
dracut_modules_dmraid? ( sys-fs/dmraid sys-fs/multipath-tools )
dracut_modules_gensplash? ( media-gfx/splashutils )
dracut_modules_iscsi? ( >=sys-block/open-iscsi-2.0.871.3 )
dracut_modules_lvm? ( >=sys-fs/lvm2-2.02.33 )
dracut_modules_mdraid? ( >=sys-fs/mdadm-3.2.6-r1 )
dracut_modules_multipath? ( sys-fs/multipath-tools )
dracut_modules_nbd? ( sys-block/nbd )
dracut_modules_nfs? ( net-fs/nfs-utils net-nds/rpcbind )
dracut_modules_plymouth? ( >=sys-boot/plymouth-0.8.3-r1 )
dracut_modules_ssh-client? ( dev-libs/openssl )
dracut_modules_syslog? ( || ( app-admin/syslog-ng app-admin/rsyslog ) )
"
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
"
DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules
README.testsuite TODO )
MY_LIBDIR=/usr/lib
#
# Helper functions
#
# Returns true if any of specified modules is enabled by USE flag and false
# otherwise.
# $1 = list of modules (which have corresponding USE flags of the same name)
any_module() {
local m modules=" $@ "
for m in ${modules}; do
! use $m && modules=${modules/ $m / }
done
shopt -s extglob
modules=${modules%%+( )}
shopt -u extglob
[[ ${modules} ]]
}
# 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
}
#
# ebuild functions
#
src_prepare() {
epatch "${FILESDIR}/${PV}-0001-dracut.sh-do-not-bail-out-if-kernel-mo.patch"
epatch "${FILESDIR}/${PV}-0002-dracut-functions.sh-support-for-altern.patch"
epatch "${FILESDIR}/${PV}-0003-gentoo.conf-let-udevdir-be-handled-by-.patch"
epatch "${FILESDIR}/${PV}-0004-Use-the-same-paths-in-dracut.sh-as-tho.patch"
epatch "${FILESDIR}/${PV}-0005-Install-dracut-install-into-libexec-di.patch"
epatch "${FILESDIR}/${PV}-0006-resume-fix-swap-detection-in-hostonly.patch"
epatch "${FILESDIR}/${PV}-0007-dracut.sh-also-mkdir-run-lock-which-is.patch"
epatch "${FILESDIR}/${PV}-0008-dracut.sh-no-need-to-make-subdirs-in-r.patch"
epatch "${FILESDIR}/${PV}-0009-lvm-install-thin-utils-for-non-hostonl.patch"
epatch "${FILESDIR}/${PV}-0010-module-setup.sh-add-comments-for-dracu.patch"
epatch "${FILESDIR}/${PV}-0011-lvm-fix-thin-recognition.patch"
epatch "${FILESDIR}/${PV}-0012-lvm-always-install-thin-utils-for-lvm.patch"
local libdirs
#local ldir
#for ldir in $(get_all_libdirs); do
# libdirs+=" /$ldir /usr/$ldir"
#done
#libdirs="${libdirs# }"
libdirs="/$(get_libdir) /usr/$(get_libdir)"
[[ $libdirs =~ /lib\ ]] || libdirs+=" /lib /usr/lib"
einfo "Setting libdirs to \"${libdirs}\" ..."
sed -e "3alibdirs=\"${libdirs}\"" \
-i "${S}/dracut.conf.d/gentoo.conf.example" || die
if use dracut_modules_systemd; then
local systemdutildir="$(systemd_get_utildir)"
local systemdsystemunitdir="$(systemd_get_unitdir)"
einfo "Setting systemdutildir to ${systemdutildir} and ..."
sed -e "5asystemdutildir=\"${systemdutildir}\"" \
-i "${S}/dracut.conf.d/gentoo.conf.example" || die
einfo "Setting systemdsystemunitdir to ${systemdsystemunitdir}..."
sed -e "6asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \
-i "${S}/dracut.conf.d/gentoo.conf.example" || die
fi
}
src_configure() {
local myconf="--libdir=${MY_LIBDIR}"
myconf+=" --bashcompletiondir=$(get_bashcompdir)"
if use dracut_modules_systemd; then
myconf+=" --systemdsystemunitdir='$(systemd_get_unitdir)'"
fi
econf ${myconf}
}
src_compile() {
tc-export CC
emake doc install/dracut-install
}
src_install() {
default
local my_libdir="${MY_LIBDIR}"
local dracutlibdir="${my_libdir#/}/dracut"
echo "DRACUT_VERSION=$PVR" > "${D%/}/${dracutlibdir}/dracut-version.sh"
insinto "${dracutlibdir}/dracut.conf.d/"
newins dracut.conf.d/gentoo.conf.example gentoo.conf
insinto /etc/logrotate.d
newins dracut.logrotate dracut
dodir /var/lib/dracut/overlay
dohtml dracut.html
#
# Modules
#
local module
modules_dir="${D%/}/${dracutlibdir}/modules.d"
# Remove modules not enabled by USE flags
for module in ${IUSE_DRACUT_MODULES} ; do
! use ${module} && rm_module -f ${module#dracut_modules_}
done
# Those flags are specific, and even are corresponding to modules, they need
# to be declared as regular USE flags.
use debug || rm_module 95debug
use selinux || rm_module 98selinux
# Following flags define set of helper modules which are base dependencies
# for others and as so have no practical use, so remove these modules.
use device-mapper || rm_module 90dm
use net || rm_module 40network 45ifcfg 45url-lib
if use dracut_modules_systemd; then
# With systemd following modules do not make sense
rm_module 96securityfs 98selinux
else
# Without systemd following modules do not make sense
rm_module 00systemd-bootchart
fi
# Remove S/390 modules which are not tested at all
rm_module 80cms 95dasd 95dasd_mod 95zfcp 95znet
# 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
# Remove extra modules which go to future dracut-extras
rm_module 05busybox 97masterkey 98ecryptfs 98integrity
}
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
if use dracut_modules_crypt || use dracut_modules_dmraid || use \
dracut_modules_mdraid || use dracut_modules_lvm; then
if ! [[ $(</proc/cmdline) =~ rd.auto[\ =] ]]; then
ewarn "Autoassembly of special devices like cryptoLUKS, dmraid, "
ewarn "mdraid or lvm is off for default as of >=dracut-024."
ewarn "Use rd.auto option to turn it on."
fi
fi
}

View File

@ -1,37 +0,0 @@
From 9a45dcf7c92d7e7b4ee7b0ff6ab61ae1a90f03f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
Date: Sun, 6 Jan 2013 13:35:01 +0100
Subject: [PATCH 1/2] dracut-functions.sh: support for alternative udev dirs -
udevaltdirs
It is required for Gentoo which moves udev from / to /usr and supports
both /lib/udev and /usr/lib/udev for compatibility with other packages.
Credits go to Alexander Tsoy <alexander@tsoy.me>.
---
dracut-functions.sh | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index eb1278e..eaa023c 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -960,6 +960,15 @@ inst_rules() {
inst_dir "$_target"
for _rule in "$@"; do
if [ "${_rule#/}" = "$_rule" ]; then
+ for r in ${udevaltdirs}; do
+ [[ "$r" = "${udevdir}" ]] && continue
+ if [[ -f $r/rules.d/$_rule ]]; then
+ _found="$r/rules.d/$_rule"
+ inst_rule_programs "$_found"
+ inst_rule_group_owner "$_found"
+ inst_simple "$_found" "${udevdir}/rules.d/${_found##*/}"
+ fi
+ done
for r in ${udevdir}/rules.d /etc/udev/rules.d; do
if [[ -f $r/$_rule ]]; then
_found="$r/$_rule"
--
1.8.3.2

View File

@ -1,30 +0,0 @@
From fc2bb603bc17e67c66ffcf53a282aa6fb6a6261c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
Date: Sun, 16 Dec 2012 20:02:48 +0100
Subject: [PATCH 2/2] 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

View File

@ -1,42 +0,0 @@
From 45e5079d4be0ac1a977bc41dcda423fcfa3280fc Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 8 Oct 2013 15:03:40 +0200
Subject: [PATCH 1/5] dracut.sh: do not bail out, if kernel modules dir is
missing
and only print a warning message
---
dracut.sh | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index e135dfc..d9533dd 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -496,17 +496,18 @@ if [[ $regenerate_all == "yes" ]]; then
((ret+=$?))
done
exit $ret
-elif [[ $kernel ]]; then
- if ! [[ -d /lib/modules/$kernel ]] && [[ $no_kernel != yes ]]; then
- printf -- "Kernel version $kernel has no modules in /lib/modules/$kernel\n" >&2
- exit 1
- fi
fi
if ! [[ $kernel ]]; then
kernel=$(uname -r)
fi
+if [[ $kernel ]]; then
+ if ! [[ -d /lib/modules/$kernel ]] && [[ $no_kernel != yes ]]; then
+ printf -- "Kernel version $kernel has no module directory /lib/modules/$kernel\n" >&2
+ fi
+fi
+
if ! [[ $outfile ]]; then
[[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id
--
1.8.3.2

View File

@ -1,41 +0,0 @@
From c5a2f35eb2a90d8787d127b44cb6b5e0536d16ce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
Date: Sun, 6 Jan 2013 13:35:01 +0100
Subject: [PATCH 2/5] dracut-functions.sh: support for alternative udev dirs -
udevaltdirs
It is required for Gentoo which moves udev from / to /usr and supports
both /lib/udev and /usr/lib/udev for compatibility with other packages.
Credits go to Alexander Tsoy <alexander@tsoy.me>.
Conflicts:
dracut-functions.sh
---
dracut-functions.sh | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 45e0911..c1cbdeb 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -872,6 +872,16 @@ inst_rules() {
inst_dir "$_target"
for _rule in "$@"; do
if [ "${_rule#/}" = "$_rule" ]; then
+ for r in ${udevaltdirs}; do
+ [[ "$r" = "${udevdir}" ]] && continue
+ if [[ -e $r/rules.d/$_rule ]]; then
+ _found="$r/rules.d/$_rule"
+ inst_rule_programs "$_found"
+ inst_rule_group_owner "$_found"
+ inst_rule_initqueue "$_found"
+ inst_simple "$_found" "${udevdir}/rules.d/${_found##*/}"
+ fi
+ done
for r in ${udevdir}/rules.d ${hostonly:+/etc/udev/rules.d}; do
if [[ -e $r/$_rule ]]; then
_found="$r/$_rule"
--
1.8.3.2

View File

@ -1,30 +0,0 @@
From 29ade4d78b7609877659aa5938b3fba2954ce415 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
Date: Sun, 16 Dec 2012 20:02:48 +0100
Subject: [PATCH 3/5] gentoo.conf: let udevdir= be handled by pkg-config and
use udevaltdirs
To avoid need of rebuild after udev update/downgrade let udevdir= be set
dynamically with pkg-config. Use udevaltdirs to search for rules both
in old and new locations.
---
dracut.conf.d/gentoo.conf.example | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dracut.conf.d/gentoo.conf.example b/dracut.conf.d/gentoo.conf.example
index 26e7314..f9617f0 100644
--- a/dracut.conf.d/gentoo.conf.example
+++ b/dracut.conf.d/gentoo.conf.example
@@ -1,7 +1,8 @@
# /etc/dracut.conf.d/gentoo.conf
# dracut config file customized for Gentoo Base System release 2
-udevdir=/lib/udev
+udevdir=
+udevaltdirs="/lib/udev /usr/lib/udev"
ro_mnt=yes
#
--
1.8.3.2

View File

@ -1,74 +0,0 @@
From 6660721bd34b7a25026ffc6a6df4cdfdc8742ed3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
Date: Wed, 2 Oct 2013 22:37:09 +0200
Subject: [PATCH 4/5] Use the same paths in dracut.sh as those set with
configure script
Makefile alters destination main dracut script and sets dracutbasedir to
the value of pkglibdir set in configure.
---
Makefile | 3 +++
dracut.sh | 9 ++++-----
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index 124a41b..ea504f5 100644
--- a/Makefile
+++ b/Makefile
@@ -91,6 +91,9 @@ install: dracut-version.sh
mkdir -p $(DESTDIR)$(pkglibdir)/modules.d
mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
+ sed -r \
+ -e "s|^(pkglibdir)=.*|\1=$(pkglibdir)|" \
+ -i $(DESTDIR)$(bindir)/dracut
install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
install -m 0755 mkinitrd-dracut.sh $(DESTDIR)$(bindir)/mkinitrd
install -m 0755 lsinitrd.sh $(DESTDIR)$(bindir)/lsinitrd
diff --git a/dracut.sh b/dracut.sh
index d9533dd..cf18c81 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -26,10 +26,13 @@
# store for logging
dracut_args=( "$@" )
+# base dirs
+pkglibdir=/usr/lib/dracut
+dracutbasedir="$pkglibdir"
+
set -o pipefail
usage() {
- [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
if [[ -f $dracutbasedir/dracut-version.sh ]]; then
. $dracutbasedir/dracut-version.sh
fi
@@ -54,7 +57,6 @@ EOF
}
long_usage() {
- [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
if [[ -f $dracutbasedir/dracut-version.sh ]]; then
. $dracutbasedir/dracut-version.sh
fi
@@ -549,8 +551,6 @@ export DRACUT_LOG_LEVEL=warning
debug=yes
}
-[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
-
# if we were not passed a config file, try the default one
if [[ ! -f $conffile ]]; then
if [[ $allowlocal ]]; then
@@ -669,7 +669,6 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
[[ $use_fstab_l ]] && use_fstab=$use_fstab_l
[[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l
[[ $lvmconf_l ]] && lvmconf=$lvmconf_l
-[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
[[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware"
[[ $tmpdir_l ]] && tmpdir="$tmpdir_l"
[[ $tmpdir ]] || tmpdir=/var/tmp
--
1.8.3.2

View File

@ -1,81 +0,0 @@
From 80dbe6dfbdb2cd3475006e210fe057dceb81ddf2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
Date: Wed, 2 Oct 2013 22:40:43 +0200
Subject: [PATCH 5/5] Install dracut-install into libexec dir instead of lib
dir
dracut-install script is the only thing ABI specific atm.
See https://bugs.gentoo.org/show_bug.cgi?id=485218 for details on the
problem.
---
Makefile | 4 +++-
configure | 1 +
dracut-functions.sh | 4 ++++
dracut.sh | 1 +
4 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index ea504f5..e004a79 100644
--- a/Makefile
+++ b/Makefile
@@ -92,6 +92,7 @@ install: dracut-version.sh
mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
sed -r \
+ -e "s|^(libexecdir)=.*|\1=$(libexecdir)|" \
-e "s|^(pkglibdir)=.*|\1=$(pkglibdir)|" \
-i $(DESTDIR)$(bindir)/dracut
install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
@@ -135,7 +136,8 @@ endif
done \
fi
if [ -f install/dracut-install ]; then \
- install -m 0755 install/dracut-install $(DESTDIR)$(pkglibdir)/dracut-install; \
+ mkdir -p $(DESTDIR)$(libexecdir); \
+ install -m 0755 install/dracut-install $(DESTDIR)$(libexecdir)/dracut-install; \
fi
mkdir -p $(DESTDIR)${prefix}/lib/kernel/install.d
install -m 0755 50-dracut.install $(DESTDIR)${prefix}/lib/kernel/install.d/50-dracut.install
diff --git a/configure b/configure
index 19b5e1f..d2ffc2c 100755
--- a/configure
+++ b/configure
@@ -61,6 +61,7 @@ sbindir ?= ${sbindir:-${prefix}/sbin}
mandir ?= ${mandir:-${prefix}/share/man}
enable_documentation ?= ${enable_documentation:-yes}
bindir ?= ${bindir:-${prefix}/bin}
+libexecdir ?= ${libexecdir:-${prefix}/libexec}
EOF
{
diff --git a/dracut-functions.sh b/dracut-functions.sh
index c1cbdeb..72b7f1b 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -694,6 +694,10 @@ if ! [[ $DRACUT_INSTALL ]]; then
DRACUT_INSTALL=$(find_binary dracut-install)
fi
+if ! [[ $DRACUT_INSTALL ]] && [[ -x $libexecdir/dracut-install ]]; then
+ DRACUT_INSTALL=$libexecdir/dracut-install
+fi
+
if ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutbasedir/dracut-install ]]; then
DRACUT_INSTALL=$dracutbasedir/dracut-install
fi
diff --git a/dracut.sh b/dracut.sh
index cf18c81..e28b929 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -27,6 +27,7 @@
dracut_args=( "$@" )
# base dirs
+libexecdir=/usr/libexec
pkglibdir=/usr/lib/dracut
dracutbasedir="$pkglibdir"
--
1.8.3.2

View File

@ -1,31 +0,0 @@
From 0c89bcc27516803d68444488ede3d513ba982039 Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Wed, 9 Oct 2013 06:39:46 +0400
Subject: [PATCH 6/6] resume: fix swap detection in hostonly
Check for other possible fs types. This fixes swap detection when using
TuxOnIce kernel.
Note that parse-resume.sh generate udev rules with support for
ID_FS_TYPE=suspend, but we do not include it here, because it is
libvolume_id thing and host_fs_types is populated using blkid.
---
modules.d/95resume/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh
index 518ebf0..a1ddb46 100755
--- a/modules.d/95resume/module-setup.sh
+++ b/modules.d/95resume/module-setup.sh
@@ -6,7 +6,7 @@ check() {
# No point trying to support resume, if no swap partition exist
[[ $hostonly ]] || [[ $mount_needs ]] && {
for fs in "${host_fs_types[@]}"; do
- [[ $fs = swap ]] && return 0
+ [[ $fs =~ ^(swap|swsuspend|swsupend)$ ]] && return 0
done
return 255
}
--
1.8.3.2

View File

@ -1,25 +0,0 @@
From be723725cd6ea1c41b52c1bff5a569eb8cd0c76d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 16 Oct 2013 11:31:54 +0200
Subject: [PATCH 07/12] dracut.sh: also mkdir /run/lock, which is copied to
---
dracut.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index e28b929..309aa7d 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1081,7 +1081,7 @@ if [[ $kernel_only != yes ]]; then
fi
done
- for d in dev proc sys sysroot root run run/lock run/initramfs; do
+ for d in dev proc sys sysroot root run run/log run/lock run/initramfs; do
if [ -L "/$d" ]; then
inst_symlink "/$d"
else
--
1.8.4.3

View File

@ -1,25 +0,0 @@
From 34712f015f13221b653a1ed2ee75804f06a22357 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 16 Oct 2013 11:39:17 +0200
Subject: [PATCH 08/12] dracut.sh: no need to make subdirs in run
---
dracut.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index 309aa7d..4f58eed 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1081,7 +1081,7 @@ if [[ $kernel_only != yes ]]; then
fi
done
- for d in dev proc sys sysroot root run run/log run/lock run/initramfs; do
+ for d in dev proc sys sysroot root run; do
if [ -L "/$d" ]; then
inst_symlink "/$d"
else
--
1.8.4.3

View File

@ -1,41 +0,0 @@
From bd3303000b32cb500b2d769c6852784a807cee47 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 8 Oct 2013 10:30:00 +0200
Subject: [PATCH 09/12] lvm: install thin utils for non-hostonly
---
modules.d/90lvm/module-setup.sh | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index f98ffff..514addc 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -52,13 +52,17 @@ install() {
inst lvm
- get_host_lvs | while read line; do
- printf "%s" " rd.lvm.lv=$line"
- if ! [[ $_needthin ]]; then
- [[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
- fi
- done >> "${initdir}/etc/cmdline.d/90lvm.conf"
- echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
+ if [[ $hostonly ]]; then
+ get_host_lvs | while read line; do
+ printf "%s" " rd.lvm.lv=$line"
+ if ! [[ $_needthin ]]; then
+ [[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
+ fi
+ done >> "${initdir}/etc/cmdline.d/90lvm.conf"
+ echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
+ else
+ _needthin=1
+ fi
inst_rules "$moddir/64-lvm.rules"
--
1.8.4.3

View File

@ -1,40 +0,0 @@
From a70dff7f103b27d5b7016e13a64c7710c61dc96e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 16 Oct 2013 11:30:08 +0200
Subject: [PATCH 11/12] lvm: fix thin recognition
The global var setting was happening in a pipe and did not have an
effect.
Use <<<$() instead.
< <() cannot be used, because dracut is called in chroot's environments,
where /dev/fd does not point to /proc/self/fd, but bash wants
/dev/fd/<num> for this construct.
---
modules.d/90lvm/module-setup.sh | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index f8b598d..cbdf4a2 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -57,12 +57,13 @@ install() {
inst lvm
if [[ $hostonly ]]; then
- get_host_lvs | while read line; do
+ while read line; do
+ [[ -n "$line" ]] || continue
printf "%s" " rd.lvm.lv=$line"
if ! [[ $_needthin ]]; then
[[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
fi
- done >> "${initdir}/etc/cmdline.d/90lvm.conf"
+ done <<<$(get_host_lvs) >> "${initdir}/etc/cmdline.d/90lvm.conf"
echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
else
_needthin=1
--
1.8.4.3

View File

@ -1,79 +0,0 @@
From 615071016ecfa223b2744fc17e137de780167115 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 21 Oct 2013 09:09:26 +0200
Subject: [PATCH 12/12] lvm: always install thin utils for lvm
---
modules.d/90lvm/module-setup.sh | 33 +++++++--------------------------
1 file changed, 7 insertions(+), 26 deletions(-)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index cbdf4a2..87374da 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -24,7 +24,8 @@ depends() {
return 0
}
-get_host_lvs() {
+# called by dracut
+cmdline() {
local _activated
declare -A _activated
@@ -37,37 +38,20 @@ get_host_lvs() {
eval $(dmsetup splitname --nameprefixes --noheadings --rows "$dev" 2>/dev/null)
[[ ${DM_VG_NAME} ]] && [[ ${DM_LV_NAME} ]] || return 1
if ! [[ ${_activated[${DM_VG_NAME}/${DM_LV_NAME}]} ]]; then
- printf "%s\n" "${DM_VG_NAME}/${DM_LV_NAME} "
+ printf " rd.lvm.lv=%s\n" "${DM_VG_NAME}/${DM_LV_NAME} "
_activated["${DM_VG_NAME}/${DM_LV_NAME}"]=1
fi
done
}
# called by dracut
-cmdline() {
- get_host_lvs | while read line; do
- printf " rd.lvm.lv=$line"
- done
-}
-
-# called by dracut
install() {
- local _i _needthin
+ local _i
inst lvm
- if [[ $hostonly ]]; then
- while read line; do
- [[ -n "$line" ]] || continue
- printf "%s" " rd.lvm.lv=$line"
- if ! [[ $_needthin ]]; then
- [[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
- fi
- done <<<$(get_host_lvs) >> "${initdir}/etc/cmdline.d/90lvm.conf"
- echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
- else
- _needthin=1
- fi
+ cmdline >> "${initdir}/etc/cmdline.d/90lvm.conf"
+ echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
inst_rules "$moddir/64-lvm.rules"
@@ -103,9 +87,6 @@ install() {
inst_libdir_file "libdevmapper-event-lvm*.so"
- if [[ $_needthin ]]; then
- inst_multiple -o thin_dump thin_restore thin_check thin_repair
- fi
-
+ inst_multiple -o thin_dump thin_restore thin_check thin_repair
}
--
1.8.4.3