From 27b57276ac1f9dbb6dae71e17377a753f245a747 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 26 Apr 2018 18:40:23 +0100 Subject: sys-kernel/dracut : revision bump --- sys-kernel/dracut/dracut-044-r7.ebuild | 275 -------------------- sys-kernel/dracut/dracut-044-r8.ebuild | 276 +++++++++++++++++++++ .../dracut-044-ext4-and-f2fs-need-crc32X-too.patch | 30 +++ 3 files changed, 306 insertions(+), 275 deletions(-) delete mode 100644 sys-kernel/dracut/dracut-044-r7.ebuild create mode 100644 sys-kernel/dracut/dracut-044-r8.ebuild create mode 100644 sys-kernel/dracut/files/dracut-044-ext4-and-f2fs-need-crc32X-too.patch diff --git a/sys-kernel/dracut/dracut-044-r7.ebuild b/sys-kernel/dracut/dracut-044-r7.ebuild deleted file mode 100644 index 6ebd8635..00000000 --- a/sys-kernel/dracut/dracut-044-r7.ebuild +++ /dev/null @@ -1,275 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI=5 - -inherit bash-completion-r1 eutils linux-info multilib systemd - -DESCRIPTION="Generic initramfs generation tool" -HOMEPAGE="https://dracut.wiki.kernel.org" -SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.xz" -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="debug +microcode selinux +splash systemd" - -RESTRICT="test" - -CDEPEND="virtual/udev - microcode? ( - sys-firmware/intel-microcode - sys-kernel/linux-firmware - ) - splash? ( - sys-boot/plymouth - ) - systemd? ( >=sys-apps/systemd-199 ) - sys-kernel/dracut-config-redcore - " -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 -QA_MULTILIB_PATHS=" - usr/lib/dracut/dracut-install - usr/lib/dracut/skipcpio - " - -PATCHES=( - ""${FILESDIR}"/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch" - ""${FILESDIR}"/044-0002-systemd-initrd-add-initrd-root-device.target.patch" - ""${FILESDIR}"/044-0003-50-dracut.install-use-bin-bash-shebang.patch" - ""${FILESDIR}"/044-0004-redcore-change-default-initramfs-name.patch" - ""${FILESDIR}"/"${P}"-bash-4.4.patch" - ""${FILESDIR}"/"${P}"-preserve-xattrs-when-copying.patch" - ""${FILESDIR}"/"${P}"-backport-fix-for-microcode-loading.patch" -) - -# -# 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 -} - -src_prepare() { - 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 "${PATCHES[@]}" - - epatch_user -} - -src_configure() { - local myconf=( - --libdir="${MY_LIBDIR}" - --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 00systemd 98dracut-systemd - # Without systemd following modules do not make sense - rm_module 00systemd-bootchart 01systemd-initrd 02systemd-networkd - 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_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/dracut-044-r8.ebuild b/sys-kernel/dracut/dracut-044-r8.ebuild new file mode 100644 index 00000000..fad4090e --- /dev/null +++ b/sys-kernel/dracut/dracut-044-r8.ebuild @@ -0,0 +1,276 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit bash-completion-r1 eutils linux-info multilib systemd + +DESCRIPTION="Generic initramfs generation tool" +HOMEPAGE="https://dracut.wiki.kernel.org" +SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.xz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="debug +microcode selinux +splash systemd" + +RESTRICT="test" + +CDEPEND="virtual/udev + microcode? ( + sys-firmware/intel-microcode + sys-kernel/linux-firmware + ) + splash? ( + sys-boot/plymouth + ) + systemd? ( >=sys-apps/systemd-199 ) + sys-kernel/dracut-config-redcore + " +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 +QA_MULTILIB_PATHS=" + usr/lib/dracut/dracut-install + usr/lib/dracut/skipcpio + " + +PATCHES=( + ""${FILESDIR}"/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch" + ""${FILESDIR}"/044-0002-systemd-initrd-add-initrd-root-device.target.patch" + ""${FILESDIR}"/044-0003-50-dracut.install-use-bin-bash-shebang.patch" + ""${FILESDIR}"/044-0004-redcore-change-default-initramfs-name.patch" + ""${FILESDIR}"/"${P}"-bash-4.4.patch" + ""${FILESDIR}"/"${P}"-preserve-xattrs-when-copying.patch" + ""${FILESDIR}"/"${P}"-backport-fix-for-microcode-loading.patch" + ""${FILESDIR}"/"${P}"-ext4-and-f2fs-need-crc32X-too.patch" +) + +# +# 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 +} + +src_prepare() { + 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 "${PATCHES[@]}" + + epatch_user +} + +src_configure() { + local myconf=( + --libdir="${MY_LIBDIR}" + --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 00systemd 98dracut-systemd + # Without systemd following modules do not make sense + rm_module 00systemd-bootchart 01systemd-initrd 02systemd-networkd + 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_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/dracut-044-ext4-and-f2fs-need-crc32X-too.patch b/sys-kernel/dracut/files/dracut-044-ext4-and-f2fs-need-crc32X-too.patch new file mode 100644 index 00000000..dad12c9b --- /dev/null +++ b/sys-kernel/dracut/files/dracut-044-ext4-and-f2fs-need-crc32X-too.patch @@ -0,0 +1,30 @@ +diff -Naur dracut-044/modules.d/99fs-lib/module-setup.sh dracut-044-p/modules.d/99fs-lib/module-setup.sh +--- dracut-044/modules.d/99fs-lib/module-setup.sh 2015-11-25 14:22:28.000000000 +0100 ++++ dracut-044-p/modules.d/99fs-lib/module-setup.sh 2018-04-26 16:30:19.960345610 +0200 +@@ -38,20 +38,23 @@ + include_fs_helper_modules() { + local dev=$1 fs=$2 + case "$fs" in +- xfs|btrfs) ++ xfs|btrfs|ext4) + instmods crc32c + ;; ++ f2fs) ++ instmods crc32 ++ ;; + esac + } + + # called by dracut + installkernel() { +- # xfs and btrfs needs crc32c... ++ # xfs, btrfs , ext4, f2fs needs crc32c / crc32 + if [[ $hostonly ]]; then + for_each_host_dev_fs include_fs_helper_modules + : + else +- instmods crc32c ++ instmods crc32c crc32 + fi + } + -- cgit v1.2.3