# $Id$ PNAME="dracut" PVER="010" PBUILD="r6" SPLIT_PACKAGES="dracut dracut-network dracut-fips dracut-caps dracut-tools" PCATEGORIE="sys-apps" HOMEPAGE="https://dracut.wiki.kernel.org/" COMMON_DEPEND=">= app-shells/bash-4.2 >= app-shells/dash-0.5.6.1 >= app-arch/bzip2-1.0.6 >= app-arch/gzip-1.4 >= app-arch/cpio-2.11 >= sys-apps/tar-1.26 >= sys-apps/coreutils-8.12 >= sys-apps/findutils-4.4 >= sys-apps/grep-2.8 >= sys-apps/kbd-1.15 >= sys-apps/module-init-tools-3.12 >= sys-apps/sed-4.2 >= sys-apps/util-linux-2.19 >= sys-apps/v86d-0.1.9 >= sys-apps/plymouth-0.8.3 >= sys-apps/grubby-7.0.17.1 >= sys-fs/lvm2-2.02.85 >= sys-fs/device-mapper-2.02.85 >= sys-fs/udev-171" # todo nfs, icsci, rpcbind NETWORK_DEPEND=">= sys-apps/iproute2-2.6.38 >= net-misc/dhcpcd-5.2 >= net-misc/bridge-utils-1.5" CAPS_DEPEND=">= sys-libs/libcap-2.20" SDEPEND="${COMMON_DEPEND} ${NETWORK_DEPEND} ${CAPS_DEPEND}" SRCFILE="${PNAME}-${PVER}.tar.bz2" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" sminclude mbuild mtools cleanutils SRC_URI=( http://www.kernel.org/pub/linux/utils/boot/${PNAME}/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/${PNAME}-${PVER}-11git.patch mirror://${PNAME}/${PNAME}-${PVER}-magellan-3.patch ) UP2DATE="updatecmd http://www.kernel.org/pub/linux/utils/boot/${PNAME} | lasttarball" split_info_dracut() { DESCRIPTION="Initramfs generator using udev which fully replaces mkinitrd." DEPEND="${COMMON_DEPEND}" PROVIDE="virtual/initramfs-tools" } split_info_dracut-network() { DESCRIPTION="Dracut modules to build a dracut initramfs with network support." DEPEND="== sys-apps/dracut-${PVER} ${NETWORK_DEPEND}" } split_info_dracut-fips() { DESCRIPTION="Dracut modules to build a dracut initramfs with an integrity check." DEPEND="== sys-apps/dracut-${PVER}" } split_info_dracut-caps() { DESCRIPTION="Dracut modules to build a dracut initramfs which drops capabilities." DEPEND="== sys-apps/dracut-${PVER} ${CAPS_DEPEND}" } split_info_dracut-tools() { DESCRIPTION="Dracut tools to build the local initramfs." DEPEND="== sys-apps/dracut-${PVER}" } src_prepare() { munpack ${SRCFILE} || die cd ${SRCDIR} # git changes mpatch ${PNAME}-${PVER}-11git.patch || die # magellan compat patch mpatch ${PNAME}-${PVER}-magellan-2.patch || die # remove gentoo specific modules rm -rf modules.d/50gensplash || die # remove rpm-bases specific modules rm -rf modules.d/10rpmversion || die # fix plymouth libexecdir sed -i "s:/usr/libexec:/usr/$(mlibdir)/plymouth:" \ modules.d/50plymouth/module-setup.sh || die } src_compile() { cd ${SRCDIR} mmake || die } src_install_dracut() { cd ${SRCDIR} mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/sbin install || die # remove modules owned by other packages rm -rf ${BINDIR}/etc/dracut.conf.d/40-fips || die rm -rf ${BINDIR}/usr/share/dracut/modules.d/01fips || die rm -rf ${BINDIR}/usr/share/dracut/modules.d/02caps || die rm -rf ${BINDIR}/usr/share/dracut/modules.d/40network || die rm -rf ${BINDIR}/usr/share/dracut/modules.d/95fcoe || die rm -rf ${BINDIR}/usr/share/dracut/modules.d/95iscsi || die rm -rf ${BINDIR}/usr/share/dracut/modules.d/95nbd || die rm -rf ${BINDIR}/usr/share/dracut/modules.d/95nfs || die rm -rf ${BINDIR}/usr/share/dracut/modules.d/45ifcfg || die rm -rf ${BINDIR}/usr/share/dracut/modules.d/95znet || die rm -rf ${BINDIR}/usr/share/dracut/modules.d/01fips || die rm -rf ${BINDIR}/usr/share/man/man8/dracut-gencmdline.8* || die rm -rf ${BINDIR}/usr/share/man/man8/dracut-catimages.8* || die rm -rf ${BINDIR}/sbin/dracut-gencmdline || die rm -rf ${BINDIR}/sbin/dracut-catimages || die # needed directories mkeepdir /var/initramfs || die mkeepdir /var/log || die memptyfile /var/log/dracut.log || die minstalldocs AUTHORS COPYING HACKING NEWS README* TODO || die } src_install_dracut-network() { cd ${SRCDIR} mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/sbin install || die # keep only related stuff zapmost ${BINDIR} \ usr/share/dracut/modules.d/40network \ usr/share/dracut/modules.d/95fcoe \ usr/share/dracut/modules.d/95iscsi \ usr/share/dracut/modules.d/95nbd \ usr/share/dracut/modules.d/95nfs \ usr/share/dracut/modules.d/45ifcfg \ usr/share/dracut/modules.d/95znet \ || die } src_install_dracut-fips() { cd ${SRCDIR} mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/sbin install || die minstalldir /etc/dracut.conf.d || die minstallfile dracut.conf.d/fips.conf.example /etc/dracut.conf.d/40-fips.conf || die # keep only related stuff zapmost ${BINDIR} etc/dracut.conf.d/40-fips usr/share/dracut/modules.d/01fips || die } src_install_dracut-caps() { cd ${SRCDIR} mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/sbin install || die # keep only related stuff zapmost ${BINDIR} usr/share/dracut/modules.d/02caps || die } src_install_dracut-tools() { cd ${SRCDIR} mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/sbin install || die # keep only related stuff zapmost ${BINDIR} \ usr/share/man/man8/dracut-gencmdline.8\* \ usr/share/man/man8/dracut-catimages.8\* \ sbin/dracut-gencmdline \ sbin/dracut-catimages \ || die mkeepdir /boot/dracut || die mkeepdir /var/lib/dracut || die mkeepdir /var/lib/dracut/overlay || die } preinstall() { if [[ ! -z $(magequery -n mkinitrd) ]] then echo -e ${COLRED} echo -e "Error: sys-apps/mkinitrd is installed!!" echo -e "dracut will overwrite binaries from sys-apps/mkinitrd and fully replace it." echo -e "Please uninstall sys-apps/mkinitrd first!" echo -e ${COLDEFAULT} die "sys-apps/mkinitrd found!" fi }