diff options
Diffstat (limited to 'sys-kernel')
4 files changed, 282 insertions, 0 deletions
diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest index cac868159ce5..7b97320d25db 100644 --- a/sys-kernel/dracut/Manifest +++ b/sys-kernel/dracut/Manifest @@ -3,3 +3,4 @@ DIST dracut-045.tar.xz 292652 BLAKE2B 0e7c57ddca6757d59823afdc4ff23dcb06cc9cec31 DIST dracut-046.tar.xz 299520 BLAKE2B 1e2d848aa0db0e90734d8c60610a60b1f0ff67f8c4d4f9933bec0bc1290071b1b1ee3cdb6c3da5b82d8f6d4cc7561ee17d38685659a4a6ee48a9085e388dfced SHA512 75cefc184960024ef32f7bb5a0fe060e9c7d82dbfd0fe247d54b585e2ebbf0f8af5d5dc1be7e5e8cf2c3bc27b3293842c6361ae62d047289d0c59d7d40b09122 DIST dracut-047.tar.xz 305836 BLAKE2B 18333ae1e24cfbbb6a152bf9ba2c48884821f6a506344259ba56c581a9f3efac7b4c88e8ca149ef1f83347a5e4d59acba61e42b8e0ab3a9e9beb8684d5db28b0 SHA512 03369726b6c2b682d0c9dead7b7dbd1c3989aaf2b4a561015634d33a94e5230d03cb634c3890191b19dd8c1c83389533ae1a46d45d2024ba885e0d2d46c5d035 DIST dracut-048.tar.xz 308484 BLAKE2B b19c8122034a8b40cbc9d09245730900b59691c336f1d231e768786ad64068e0a8daf57ae9a4182ab50d9e1c683c9b7dcac354eb26d8a60f061db78121bc11c7 SHA512 97fcfd5d314ef40687c245d95d2f1d0f3f9ff0472e66b6e6324bf9bd6b98186104f9d71fd9af344126d6ea9fa47b744d52831a374225633225f6f17fb15c04e0 +DIST dracut-049.tar.gz 376857 BLAKE2B e50084164e26aae6de812345cc76782435ec84951b44eea454355d0c65fe84fdd0858733de534bdf018bdfd92922f0be30b74d74be329a918e55d96c5e4d4fb6 SHA512 51489570856538588868a66c7bcc8a3728574592529905484526c523398dc1b8f1416e6b264780303acd08d818417a9668b76f1d64d3194432b5af79dc15c9f7 diff --git a/sys-kernel/dracut/dracut-049.ebuild b/sys-kernel/dracut/dracut-049.ebuild new file mode 100644 index 000000000000..dda60561bf73 --- /dev/null +++ b/sys-kernel/dracut/dracut-049.ebuild @@ -0,0 +1,158 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit bash-completion-r1 eutils linux-info systemd toolchain-funcs + +DESCRIPTION="Generic initramfs generation tool" +HOMEPAGE="https://dracut.wiki.kernel.org" +SRC_URI="https://github.com/dracutdevs/dracut/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86" +IUSE="selinux" + +# Tests need root privileges, bug #298014 +RESTRICT="test" + +RDEPEND=" + app-arch/cpio + >=app-shells/bash-4.0:0 + sys-apps/coreutils[xattr(-)] + >=sys-apps/kmod-23[tools] + || ( + >=sys-apps/sysvinit-2.87-r3 + sys-apps/systemd[sysv-utils] + ) + >=sys-apps/util-linux-2.21 + virtual/pkgconfig + virtual/udev + + selinux? ( + sec-policy/selinux-dracut + sys-libs/libselinux + sys-libs/libsepol + ) + " +DEPEND=">=sys-apps/kmod-23" + +BDEPEND=" + app-text/asciidoc + app-text/docbook-xml-dtd:4.5 + >=app-text/docbook-xsl-stylesheets-1.75.2 + >=dev-libs/libxslt-1.1.26 + virtual/pkgconfig + " + +DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules + README.testsuite TODO ) + +QA_MULTILIB_PATHS="usr/lib/dracut/.*" + +PATCHES=( + "${FILESDIR}"/048-dracut-install-simplify-ldd-parsing-logic.patch + "${FILESDIR}"/049-40network-Don-t-include-40network-by-default.patch + "${FILESDIR}"/049-remove-bashism-in-various-boot-scripts.patch +) + +src_configure() { + local myconf=( + --prefix="${EPREFIX}/usr" + --sysconfdir="${EPREFIX}/etc" + --bashcompletiondir="$(get_bashcompdir)" + --systemdsystemunitdir="$(systemd_get_systemunitdir)" + ) + + tc-export CC PKG_CONFIG + + echo ./configure "${myconf[@]}" + ./configure "${myconf[@]}" || die + + # Source tarball from github doesn't include this file + echo "DRACUT_VERSION=${PV}" > dracut-version.sh || die +} + +src_install() { + default + + local libdirs=( /$(get_libdir) /usr/$(get_libdir) ) + if [[ ${SYMLINK_LIB} = yes && $(get_libdir) != lib ]]; then + # Preserve lib -> lib64 symlinks in initramfs + libdirs+=( /lib /usr/lib ) + fi + + einfo "Setting libdirs to \"${libdirs[*]}\" ..." + echo "libdirs=\"${libdirs[*]}\"" > "${T}/gentoo.conf" || die + insinto "/usr/lib/dracut/dracut.conf.d" + doins "${T}/gentoo.conf" + + insinto /etc/logrotate.d + newins dracut.logrotate dracut + + docinto html + dodoc dracut.html +} + +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 ERROR_DEVTMPFS='CONFIG_DEVTMPFS: "Maintain a devtmpfs filesystem to mount at /dev" ' + ERROR_DEVTMPFS+='is missing and REQUIRED' + local ERROR_BLK_DEV_INITRD='CONFIG_BLK_DEV_INITRD: "Initial RAM filesystem and RAM disk ' + ERROR_BLK_DEV_INITRD+='(initramfs/initrd) support" is missing and REQUIRED' + + check_extra_config + echo + else + ewarn "" + ewarn "Your kernel configuration couldn't be checked." + ewarn "Please check manually if 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/networkmanager + optfeature "Legacy networking support" net-misc/curl "net-misc/dhcp[client]" \ + sys-apps/iproute2 "net-misc/iputils[arping]" + 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 "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 rsyslog" app-admin/rsyslog +} diff --git a/sys-kernel/dracut/files/049-40network-Don-t-include-40network-by-default.patch b/sys-kernel/dracut/files/049-40network-Don-t-include-40network-by-default.patch new file mode 100644 index 000000000000..0d537941f1d8 --- /dev/null +++ b/sys-kernel/dracut/files/049-40network-Don-t-include-40network-by-default.patch @@ -0,0 +1,34 @@ +From 83cbc06ab91288e2d931b4f36935bfdb79a99b0e Mon Sep 17 00:00:00 2001 +From: Kairui Song <kasong@redhat.com> +Date: Fri, 12 Oct 2018 13:07:13 +0800 +Subject: [PATCH] 40network: Don't include 40network by default +To: <initramfs@vger.kernel.org> + +commit 7347391 ('network-legacy: split off from network module') +splitted network function to network-legacy and removed check() function +of 40network. This caused 40network to be included even if network is +not needed. + +Signed-off-by: Kairui Song <kasong@redhat.com> +--- + modules.d/40network/module-setup.sh | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh +index 57c0a45e..e8541636 100755 +--- a/modules.d/40network/module-setup.sh ++++ b/modules.d/40network/module-setup.sh +@@ -1,5 +1,10 @@ + #!/bin/bash + ++# called by dracut ++check() { ++ return 255 ++} ++ + # called by dracut + depends() { + echo -n "kernel-network-modules " +-- +2.19.2 + diff --git a/sys-kernel/dracut/files/049-remove-bashism-in-various-boot-scripts.patch b/sys-kernel/dracut/files/049-remove-bashism-in-various-boot-scripts.patch new file mode 100644 index 000000000000..93e3ed5bed87 --- /dev/null +++ b/sys-kernel/dracut/files/049-remove-bashism-in-various-boot-scripts.patch @@ -0,0 +1,89 @@ +From 09d2a1605b1b2663e3c25f1d9950b23a2bf4ad89 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= + <congdanhqx@gmail.com> +Date: Sun, 6 Jan 2019 11:48:02 +0700 +Subject: [PATCH] remove bashism in various boot scripts +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +To: <initramfs@vger.kernel.org> + +When using dash as initramfs shell, the boot process is broken. + +Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com> +--- + modules.d/90crypt/crypt-lib.sh | 2 +- + modules.d/90crypt/parse-keydev.sh | 2 +- + modules.d/91crypt-gpg/crypt-gpg-lib.sh | 2 +- + modules.d/95dcssblk/parse-dcssblk.sh | 2 +- + modules.d/98syslog/rsyslogd-start.sh | 2 +- + 5 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/modules.d/90crypt/crypt-lib.sh b/modules.d/90crypt/crypt-lib.sh +index bbf485e0..688ea251 100755 +--- a/modules.d/90crypt/crypt-lib.sh ++++ b/modules.d/90crypt/crypt-lib.sh +@@ -191,7 +191,7 @@ readkey() { + local device="$3" + + # No mounting needed if the keyfile resides inside the initrd +- if [ "/" == "$keydev" ]; then ++ if [ "/" = "$keydev" ]; then + local mntp=/ + else + # This creates a unique single mountpoint for *, or several for explicitly +diff --git a/modules.d/90crypt/parse-keydev.sh b/modules.d/90crypt/parse-keydev.sh +index a45b2fb5..04813414 100755 +--- a/modules.d/90crypt/parse-keydev.sh ++++ b/modules.d/90crypt/parse-keydev.sh +@@ -18,7 +18,7 @@ if getargbool 1 rd.luks -n rd_NO_LUKS && \ + fi + + # A keydev of '/' is treated as the initrd itself +- if [ "/" == "$keydev" ]; then ++ if [ "/" = "$keydev" ]; then + [ -z "$luksdev" ] && luksdev='*' + echo "$luksdev:$keydev:$keypath" >> /tmp/luks.keys + continue +diff --git a/modules.d/91crypt-gpg/crypt-gpg-lib.sh b/modules.d/91crypt-gpg/crypt-gpg-lib.sh +index b85ed2b8..c051b430 100755 +--- a/modules.d/91crypt-gpg/crypt-gpg-lib.sh ++++ b/modules.d/91crypt-gpg/crypt-gpg-lib.sh +@@ -53,7 +53,7 @@ gpg_decrypt() { + --tries 3 --tty-echo-off + + # Clean up the smartcard gpg-agent +- if [ "${useSmartcard}" == "1" ]; then ++ if [ "${useSmartcard}" = "1" ]; then + GNUPGHOME="$gpghome" gpg-connect-agent 1>/dev/null killagent /bye + fi + +diff --git a/modules.d/95dcssblk/parse-dcssblk.sh b/modules.d/95dcssblk/parse-dcssblk.sh +index 8f174408..27ac1d8d 100644 +--- a/modules.d/95dcssblk/parse-dcssblk.sh ++++ b/modules.d/95dcssblk/parse-dcssblk.sh +@@ -2,7 +2,7 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + dcssblk_arg=$(getarg rd.dcssblk=) +-if [ $? == 0 ];then ++if [ $? = 0 ];then + info "Loading dcssblk segments=$dcssblk_arg" + modprobe dcssblk segments=$dcssblk_arg + fi +diff --git a/modules.d/98syslog/rsyslogd-start.sh b/modules.d/98syslog/rsyslogd-start.sh +index c64f2121..86ad50ea 100755 +--- a/modules.d/98syslog/rsyslogd-start.sh ++++ b/modules.d/98syslog/rsyslogd-start.sh +@@ -38,7 +38,7 @@ rsyslog_config() { + [ -f /tmp/syslog.conf ] && read conf < /tmp/syslog.conf + [ -z "$conf" ] && conf="/etc/rsyslog.conf" && echo "$conf" > /tmp/syslog.conf + +-if [ $type == "rsyslogd" ]; then ++if [ $type = "rsyslogd" ]; then + template=/etc/templates/rsyslog.conf + if [ -n "$server" ]; then + rsyslog_config "$server" "$template" "$filters" > $conf +-- +2.19.2 + |