From 21435953e16cda318a82334ddbadb3b5c36d9ea7 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 15 Jan 2020 15:51:32 +0000 Subject: gentoo resync : 15.01.2020 --- sys-kernel/dracut/Manifest | 15 +- sys-kernel/dracut/dracut-049-r3.ebuild | 176 +++++++++++++++++++++ sys-kernel/dracut/dracut-9999.ebuild | 15 +- ...gure-find-cflags-and-libs-for-fts-on-musl.patch | 97 ++++++++++++ ...t-create-locking-directory-run-cryptsetup.patch | 32 ++++ ...all-Support-the-compressed-firmware-files.patch | 63 ++++++++ .../049-dracut.sh-Fix-udevdir-detection.patch | 38 +++++ .../dracut/files/049-fs-lib-drop-a-bashism.patch | 99 ++++++++++++ ...cut-install.c-install-module-dependencies.patch | 79 +++++++++ ...ing_hash_func-should-not-be-fed-with-NULL.patch | 38 +++++ ...g-the-systemdutildir-variable-before-it-s.patch | 55 +++++++ ...ager-call-the-online-hook-for-connected-d.patch | 32 ++++ ...ager-fix-getting-of-ifname-from-the-sysfs.patch | 37 +++++ ...rk-manager-remove-useless-use-of-basename.patch | 26 +++ ...dule-running-early-during-boot-to-help-ge.patch | 88 +++++++++++ 15 files changed, 885 insertions(+), 5 deletions(-) create mode 100644 sys-kernel/dracut/dracut-049-r3.ebuild create mode 100644 sys-kernel/dracut/files/049-configure-find-cflags-and-libs-for-fts-on-musl.patch create mode 100644 sys-kernel/dracut/files/049-crypt-create-locking-directory-run-cryptsetup.patch create mode 100644 sys-kernel/dracut/files/049-dracut-install-Support-the-compressed-firmware-files.patch create mode 100644 sys-kernel/dracut/files/049-dracut.sh-Fix-udevdir-detection.patch create mode 100644 sys-kernel/dracut/files/049-fs-lib-drop-a-bashism.patch create mode 100644 sys-kernel/dracut/files/049-install-dracut-install.c-install-module-dependencies.patch create mode 100644 sys-kernel/dracut/files/049-install-string_hash_func-should-not-be-fed-with-NULL.patch create mode 100644 sys-kernel/dracut/files/049-move-setting-the-systemdutildir-variable-before-it-s.patch create mode 100644 sys-kernel/dracut/files/049-network-manager-call-the-online-hook-for-connected-d.patch create mode 100644 sys-kernel/dracut/files/049-network-manager-fix-getting-of-ifname-from-the-sysfs.patch create mode 100644 sys-kernel/dracut/files/049-network-manager-remove-useless-use-of-basename.patch create mode 100644 sys-kernel/dracut/files/049-rngd-new-module-running-early-during-boot-to-help-ge.patch (limited to 'sys-kernel/dracut') diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest index bc0488b82947..3ef5992e0a73 100644 --- a/sys-kernel/dracut/Manifest +++ b/sys-kernel/dracut/Manifest @@ -7,7 +7,19 @@ AUX 047-all-fix-issues-found-by-shellcheck.patch 3265 BLAKE2B 0f7e227311c96ca204 AUX 047-plymouth-fix-detection-of-plymouth-directory.patch 1055 BLAKE2B 285e008dcbada06a475f1cbfe67602f046c7bb354b812ea614d99a921d40d09d099f3329cbc348b8bc4dd17bbbdcc0da986f0de5cce7f07464d2318dd9f0d719 SHA512 90372cd630903981528acd6aec1f1051e94ca2a0e53a834583faf6bf244aa7967f590f9bc38db3233e78bfd859388c011484a624d7f092c863755f73d6285b21 AUX 048-dracut-install-simplify-ldd-parsing-logic.patch 1488 BLAKE2B 3a76ff666482b17adb49e3e9fb6483f7545136df33624d5bd76d472328c7a68532fbb1bace2988b62f279b0dba7d3c53e023146711474ef8497502aee8042a41 SHA512 09992afca26026b8f77de371486c655feabb1626120a571cbf24e1a230725c7debe56c9e47eb365aa200cf7aab15798ecc57e9d764887e42cee8d3c59fb341c9 AUX 049-40network-Don-t-include-40network-by-default.patch 967 BLAKE2B 43c3942ae5199457f0cc394cb81bef58852a42ca7a25fb198001882f52089132780bbd0d8782d8ca383e1d19be210bd5fc14730b1f56b8053c52a832f2c3fd93 SHA512 a18c5b3b28915deff97cbfa151e67c58942f3cc407b101ca3ae16e51114279c1a05475461c9748b3debd4e05b609e02f431d2dcf4ca4fcb18d4f806d42cdaade +AUX 049-configure-find-cflags-and-libs-for-fts-on-musl.patch 2432 BLAKE2B 8ee880257e72b8e6f269adc6e72cab1a8f0a4095ac4ffc48114f27cda20b0cd49584f82e64ce01a13e1d3c5bc722c978f334d1f4459c8fad8014f4fa8228d6ca SHA512 847e912965b510321340273b1d7f9a7f5cbe4c49d1e661e542fa741873643861e4fb436a83f60fafcc07ddb859121971c1c3151350d567eed89756019904671a +AUX 049-crypt-create-locking-directory-run-cryptsetup.patch 1065 BLAKE2B 928b9da93e0fa34dcf6218f5049074789ca79ebf949b28dc8fb4702ea3a1c539302258cb7e0cbdd9d814e8c6df98cc8b6486dde86376fa9d5320e3bf843badac SHA512 e98d268f533157a33528b6f075aed97b67c7e137ff1ea027414892986fc48ec0a1a691e105ca834e96ae3fdf0efe2dbfac8c977befc58645eb186e068b6408f0 +AUX 049-dracut-install-Support-the-compressed-firmware-files.patch 2706 BLAKE2B b1059e28ed7bac29570ebf4fdd6f4cd2ca09e612e7570dbd630cf00c53d6b2a3b8e9127c17ac178eec5f809d6c80635343813c7e982d500955bc72a7a6632c54 SHA512 7e5e0504a6308f98af28a9126667180fa1a9b98788b47b215edfa728d149e8653db493534ea5eed38d08a7e4fdee9a23b083895c1dfacfada8df6b6969f48389 +AUX 049-dracut.sh-Fix-udevdir-detection.patch 1209 BLAKE2B 063b6cc8e7961ffaf36bd4079bcdbdc7f33df329efcd8d2b33238d71d032cfa29c19cceacf5021b336b2cfc919e1bcf5ffe82ec67ae5667691393b23c1ec6f5a SHA512 2b399494de0c183325ab1d7ef4d29f231ac4cf1570ad7611c54097424cecb41a1684a99b3e83cdd7b1946534cb4767b5cd7d08773670bce97a33c7a95ae9dfec +AUX 049-fs-lib-drop-a-bashism.patch 2862 BLAKE2B 3dfc19f3c5cff949dad9fcd1fcdbfc3c0804f10051914977a81d9d2747c25880a664863393d029193510e3162058ce8d832011ef4323406a91e96a44d51eb3c3 SHA512 b1125bc6c5098ae5a85019ca2b6d7153b95b177312f79b711ff466093040eb0cab54a91025b4434375b3420ac8c92ab30352415ebf8d34a784eb6f76ea0d91be +AUX 049-install-dracut-install.c-install-module-dependencies.patch 2849 BLAKE2B 201367835c37b1e00c2828f0fff0fa44809b66c0fbdf4d9c1a51945cf2d44371cfa5e1f7e0b6d9b3c163484b4c294c6f93417b71f669867da2f3f1ad62fa4f48 SHA512 08332ed064e57579f121fc5dcdff15cd2eac7e0a16a4c92e97f1d2d3a3e87e8f5a0daad6401457b1877e04ffa5fba5eb5ec8ea7aecbd3e64368b3607ca1c89fa +AUX 049-install-string_hash_func-should-not-be-fed-with-NULL.patch 1368 BLAKE2B 78477ee6fab5832f2d99ff5f2cfaebd48e4adcf682f6fee7685752d33bac5335ee9f5ed78a4825c6db71084c5a7fc17f1e5b537fbab01a150d1527b2ecd5f38b SHA512 7da53e81742fd804c3fb4e5cbf71fecc08d38988153b8bba710cefcb8b8395daba3f0a7170fc79e461863756c080ba1e965b3b1a5bcd8fd3f0a666b767eedf1e +AUX 049-move-setting-the-systemdutildir-variable-before-it-s.patch 1872 BLAKE2B fe882f7a71fb7b5dd8f8de35fbc0ad37f3a028a9264533e003d16767397d3c27d2bfa1f40fbf9618e02de2ff0eab0bc1e8352785afec0c1f5d5702de6e527454 SHA512 f00c6eec2fb6a0baeb1869507507350216963a0589535ae87e8fefd890fccf81fb88dde8bd77108ddeb58d1be2189060cf3aeb89f6968f1f7c4aa4c824f06c13 +AUX 049-network-manager-call-the-online-hook-for-connected-d.patch 1211 BLAKE2B b9171820cb3f276850b13d66e546da3a95c04c233bc07c7b973bc7bd705b9082e00bed4d1b2a78e241de9b16ac2a485df7fe227edd2b55ba45b6a751c71a5a78 SHA512 05277630cdd25a7b3e13cb5818f48708ce6521f6b59f6f9d1fa8c2e3be0ec6d6bb72854e1ad4164edc3a711f309068903bce8a22a35a06fec0750b6e78d72626 +AUX 049-network-manager-fix-getting-of-ifname-from-the-sysfs.patch 1370 BLAKE2B 8649c9a4e39136caf7bef64834836f931ce58ef5bdf37f7333b079963c2d0cd9f1b0bf900bf0bdb54cbeafb6acb5625b3b887dfb21feb69910e08143b931decf SHA512 1cf15225ac3ef7bec54ac1859a8958666e8b57e66971832478a1f66c8930d28729caf6c7188edf00a95cacd599129912058ea0f34eeb0b69e1f397a8a45340af +AUX 049-network-manager-remove-useless-use-of-basename.patch 936 BLAKE2B ef9a08db966f55fe8d39802445cbdf8df3a402cf4cdcdeaf86312ce16ee90d6937c8235b555407d05913b28fc1bcd62f9ed417491bdd4f929cc4dda62edec41b SHA512 61650c162e1b40270ba2bd0d6d9117b4e52961728e8038ba4095cd3767d869904196ac843822dbbc14c2281e63b4cee5eea81b58730898dfb7d80cbf63fd6dfe AUX 049-remove-bashism-in-various-boot-scripts.patch 3423 BLAKE2B a2a5946b53eee63492f5e407fc18541e8ccd341c4ce607daf2bde81bf061328c7cfbdf5f9a2c9b09f3e19c23e6e746d8383a7c78dcfa1aaed78ff252fcaef520 SHA512 a381394c9aed25abe73adb58d07fd26ab19a99338fa9d60a5a4642b8f13a88d1b209ae9deffdc527beccd1bdbd93754c3e5f2687c9f9a6b6430481f08fae201f +AUX 049-rngd-new-module-running-early-during-boot-to-help-ge.patch 3009 BLAKE2B 4a259a7f742574e02322bbd78337657daea8fe5c19e63331867c1e4b48bf68890860c1b91e420fa3b13412cad7eee64dcc69cb52ad93d28320cbf988726f22ed SHA512 8652310eaa1294f819e3d1c6dc9b2ae332652586462b044088167eb3a7af9d1303c2a667b75045d9b04deb4a9e1cdfd55aec85cf5f66b36412bfbe3b67bbaae5 AUX dracut-044-bash-4.4.patch 5036 BLAKE2B faf944f4405b560d7f43ce2fd0595b223f1c91eed11422b19a5b61b710e69c10b855d3fb99fd28f204d8c31c49c272259704e148fcb794bbd8309b3779a62b4f SHA512 68522464fb446175f967c8453e8427f961e97522661a22a7c302a90ff716ab75b0cfc32f568a06f1e1821ba7115d6d2f48b6ded9ed65b30806d4d505a0903279 AUX dracut-044-preserve-xattrs-when-copying.patch 2354 BLAKE2B a7195fdf0663e71b5e5eb2f8c9d971f5bd2bdc8b8a49399d836efc8efed2547118399ae7780c93014659d88c0359e7336f2e2a345ce009b5f872468d0412aaf9 SHA512 b15babf62a4ece46c8b55a2ac21c3284665da8c38c10fc1209c08605b778689cf80108b8baa0ce66eee2218d6975cc5b9401d8a70326ddb6f731c55373e52a02 DIST dracut-044.tar.xz 280004 BLAKE2B 5b9603eb769b542e2d56fae4d0f0fe250e7e60eb9c85f9c7b7a472b9d889a9f323b3ba1cbbeb1d5de10507498542275cd4430695cc8b48426b42c03d0672ea87 SHA512 bc788076e425b223d98cf0e0b15ff57d75d423991d7a67fb564a2857c38d5c3a21d846d2ca4523f9d4b0128bb981d09b5c26031435c5fc5e30f53080bca19b3d @@ -25,6 +37,7 @@ EBUILD dracut-048-r1.ebuild 4552 BLAKE2B 73137f7c79259381f5cf1c6f5d6a97ce12e324a EBUILD dracut-048.ebuild 4478 BLAKE2B 84ad2d4f65e63c2094a22ab3040a6bc2c6feef27fdea3d75996dc198abf3e2057b7c65d48e3d1db33adb685575b93e3990605195bf111043723745ca906ff19f SHA512 9a062e4d0b630f2dacd8b170bbb6a5774cb172750410e99829722f9123dfed4ae5f9658cb9554e3d90ebd6f1a08f2406e1a61d2a5af684660865af81ed9f7d6a EBUILD dracut-049-r1.ebuild 4615 BLAKE2B ea43727ba91acd3a31b902dae3f80945957f1bbe5397c76bc3d46eb323ab5249b8edea1366c77253a792373d0cdc5ebb075484305dfafd86bbebccd9c0268bfb SHA512 bc0ac08a471ba994f9da4beb5ded4db2da8770e1a973d324e0b7b28845e357dde4401367defdc421c323103408318098386b9228c28e94de71b95c1726d802fa EBUILD dracut-049-r2.ebuild 4654 BLAKE2B 8d3da740bf354e82e6bfd155ea5858d21ce0904b255e83d43c70c9987152ea0027b797d19f59bae703e515ac6a4b04c9034fa770bcaf83de7e9f2c6cf002a743 SHA512 de9257ca8c56b065aaf104514670777159b5ad64005ab596c348765ae5b0e9c64e1f18ac3907c5f68cd9edef94385805ef1efe5256d1c78c420f4ef3fa02485c +EBUILD dracut-049-r3.ebuild 5703 BLAKE2B b4094b0e6e13f7a1feb396ee6be3f54dd9ac413cd029f8a6586297867ea6f865b9814342535b7a7b8e807ff7801d1ca0719266c4e111a1a57f3cf6c0dc3e864d SHA512 75f0c54ae52c33fff7f9b3176ea93f10b180c7ac649a5318274e7827939a406b7bc26d2ddda72b9b02dd2b40b999e662085138b9bbfa17ec35b92aeea1822874 EBUILD dracut-049.ebuild 4808 BLAKE2B 70418167cc13d508df24865d2c598dd208ce92963acc0c67b3106e24f3d97c8d82766cec91bbb475649b4003a2590f2279c663ff5b4b8785c3618c9bdca21f09 SHA512 cc9568f59f5d5be6605ff679cbaa55521beab37b7c9438fc096e4ceef7f194c6b21f35f1da177de17816eb7a1835bc27040b3ae21b3b31558e2606e7495e817b -EBUILD dracut-9999.ebuild 4453 BLAKE2B 88879375ee46fb12f9c5ec8222d175e4ddce74b6ab2301af931242e961389fc1e239ae5346cfba223a28b4b1d6308ff8e4cf4c43d0286fe9d4078a54e0cc1f43 SHA512 5c60db3be8cec3c309549665dc84e425a87da53e23987b922409abd75fcaf6b236c3a5ab2a5dc90f6d128198c4414e5718d355822ad41b47d072f995d8e796cf +EBUILD dracut-9999.ebuild 4645 BLAKE2B 45f01786c492ba660572d510e5201f1b812e7b67a10b3d9a179b05ec4c05aa21e2556451c8007e2e370c0178a19286582951b691ba8d9cceb0dbe0a66df1d64c SHA512 17dd1ea2568b3915a64fd329c08c9ae74dd06f617b55bdc87fcd04ae8de222423e42e44dccd7aaa006b6e780fd9dca2b7f37a4c63ab96d73367ce1fdef08d1e3 MISC metadata.xml 725 BLAKE2B 475d51f4e2bebf318ef94ea1fec40a34bcf04b4f0c69e051c8840e0965a92fd9861c5aa8acfb2ccb5a4cf354665ab3efc6adfdf7d0191325c1f798ea5e49594e SHA512 b708d0eb6a792d5ba3495f321af5e10672af3354f1f42c60b175b7fb48ae836e24db7768511c44cbb0a949c1cca75948890d3b32904bbe47e50d9c43d71787fb diff --git a/sys-kernel/dracut/dracut-049-r3.ebuild b/sys-kernel/dracut/dracut-049-r3.ebuild new file mode 100644 index 000000000000..be448a3ab299 --- /dev/null +++ b/sys-kernel/dracut/dracut-049-r3.ebuild @@ -0,0 +1,176 @@ +# Copyright 1999-2020 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 + +if [[ ${PV} == 9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/dracutdevs/dracut" +else + [[ "${PV}" = *_rc* ]] || \ + KEYWORDS="~alpha amd64 ~arm ~arm64 ia64 ~mips ppc ppc64 ~sparc x86" + SRC_URI="https://github.com/dracutdevs/dracut/archive/${PV}.tar.gz -> ${P}.tar.gz" +fi + +DESCRIPTION="Generic initramfs generation tool" +HOMEPAGE="https://dracut.wiki.kernel.org" + +LICENSE="GPL-2" +SLOT="0" +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/openrc[sysv-utils,selinux?] + sys-apps/systemd[sysv-utils] + ) + >=sys-apps/util-linux-2.21 + virtual/pkgconfig + virtual/udev + + elibc_musl? ( sys-libs/fts-standalone ) + selinux? ( + sec-policy/selinux-dracut + sys-libs/libselinux + sys-libs/libsepol + ) +" +DEPEND=" + >=sys-apps/kmod-23 + elibc_musl? ( sys-libs/fts-standalone ) +" + +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 + "${FILESDIR}"/049-network-manager-call-the-online-hook-for-connected-d.patch + "${FILESDIR}"/049-install-dracut-install.c-install-module-dependencies.patch + "${FILESDIR}"/049-install-string_hash_func-should-not-be-fed-with-NULL.patch + "${FILESDIR}"/049-dracut.sh-Fix-udevdir-detection.patch + "${FILESDIR}"/049-rngd-new-module-running-early-during-boot-to-help-ge.patch + "${FILESDIR}"/049-fs-lib-drop-a-bashism.patch + "${FILESDIR}"/049-network-manager-remove-useless-use-of-basename.patch + "${FILESDIR}"/049-move-setting-the-systemdutildir-variable-before-it-s.patch + "${FILESDIR}"/049-dracut-install-Support-the-compressed-firmware-files.patch + "${FILESDIR}"/049-crypt-create-locking-directory-run-cryptsetup.patch + "${FILESDIR}"/049-network-manager-fix-getting-of-ifname-from-the-sysfs.patch + "${FILESDIR}"/049-configure-find-cflags-and-libs-for-fts-on-musl.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 + + if [[ ${PV} != 9999 ]] ; then + # Source tarball from github doesn't include this file + echo "DRACUT_VERSION=${PV}" > dracut-version.sh || die + fi +} + +src_install() { + default + + 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 + optfeature \ + "Enable rngd service to help generating entropy early during boot" \ + sys-apps/rng-tools +} diff --git a/sys-kernel/dracut/dracut-9999.ebuild b/sys-kernel/dracut/dracut-9999.ebuild index 8cd97656094e..192c96442040 100644 --- a/sys-kernel/dracut/dracut-9999.ebuild +++ b/sys-kernel/dracut/dracut-9999.ebuild @@ -38,13 +38,17 @@ RDEPEND=" virtual/pkgconfig virtual/udev + elibc_musl? ( sys-libs/fts-standalone ) selinux? ( sec-policy/selinux-dracut sys-libs/libselinux sys-libs/libsepol ) - " -DEPEND=">=sys-apps/kmod-23" +" +DEPEND=" + >=sys-apps/kmod-23 + elibc_musl? ( sys-libs/fts-standalone ) +" BDEPEND=" app-text/asciidoc @@ -52,9 +56,9 @@ BDEPEND=" >=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 +DOCS=( AUTHORS HACKING NEWS README.md README.generic README.kernel README.modules README.testsuite TODO ) QA_MULTILIB_PATHS="usr/lib/dracut/.*" @@ -151,4 +155,7 @@ pkg_postinst() { "Install ssh and scp along with config files and specified keys" \ net-misc/openssh optfeature "Enable logging with rsyslog" app-admin/rsyslog + optfeature \ + "Enable rngd service to help generating entropy early during boot" \ + sys-apps/rng-tools } diff --git a/sys-kernel/dracut/files/049-configure-find-cflags-and-libs-for-fts-on-musl.patch b/sys-kernel/dracut/files/049-configure-find-cflags-and-libs-for-fts-on-musl.patch new file mode 100644 index 000000000000..cd74564adb54 --- /dev/null +++ b/sys-kernel/dracut/files/049-configure-find-cflags-and-libs-for-fts-on-musl.patch @@ -0,0 +1,97 @@ +From 62f27ee6f145b5f8ca571887602cd9b0715b9e9d Mon Sep 17 00:00:00 2001 +From: Doan Tran Cong Danh +Date: Wed, 6 Nov 2019 18:35:12 +0700 +Subject: [PATCH] configure: find cflags and libs for fts on musl +To: + +Signed-off-by: Doan Tran Cong Danh +--- + Makefile | 2 +- + configure | 44 ++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 45 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 31545899..f9b42b96 100644 +--- a/Makefile ++++ b/Makefile +@@ -62,7 +62,7 @@ install/util.o: install/util.c install/util.h install/macro.h install/log.h + install/strv.o: install/strv.c install/strv.h install/util.h install/macro.h install/log.h + + install/dracut-install: $(DRACUT_INSTALL_OBJECTS) +- $(CC) $(LDFLAGS) -o $@ $(DRACUT_INSTALL_OBJECTS) $(LDLIBS) $(KMOD_LIBS) ++ $(CC) $(LDFLAGS) -o $@ $(DRACUT_INSTALL_OBJECTS) $(LDLIBS) $(FTS_LIBS) $(KMOD_LIBS) + + logtee: logtee.c + $(CC) $(LDFLAGS) -o $@ $< +diff --git a/configure b/configure +index b55fb609..3f724ef2 100755 +--- a/configure ++++ b/configure +@@ -7,6 +7,7 @@ prefix=/usr + + enable_documentation=yes + ++CC="${CC:-cc}" + PKG_CONFIG="${PKG_CONFIG:-pkg-config}" + + # Little helper function for reading args from the commandline. +@@ -57,6 +58,48 @@ if ! ${PKG_CONFIG} --exists --print-errors " libkmod >= 23 "; then + exit 1 + fi + ++cat <conftest.c ++#include ++int main() { ++ return 0; ++} ++EOF ++ ++${CC} $CFLAGS $LDFLAGS conftest.c >/dev/null 2>&1 ++ret=$? ++rm -f conftest.c a.out ++ ++# musl doesn't have fts.h included ++if test $ret -ne 0; then ++ echo "dracut needs fts development files." >&2 ++ exit 1 ++fi ++ ++cat <conftest.c ++#include ++int main(void) { ++ fts_open(0, 0, 0); ++ return 0; ++} ++EOF ++ ++found=no ++for lib in "-lc" "-lfts"; do ++ ${CC} $CFLAGS -Wl,$lib $LDFLAGS conftest.c >/dev/null 2>&1 ++ ret=$? ++ if test $ret -eq 0; then ++ FTS_LIBS="$lib" ++ found=yes ++ break; ++ fi ++done ++rm -f conftest.c a.out ++ ++if test $found = no; then ++ echo "dracut couldn't find usable fts library" >&2 ++ exit 1 ++fi ++ + cat > Makefile.inc.$$ <= 23 ") + KMOD_LIBS ?= $(${PKG_CONFIG} --libs " libkmod >= 23 ") ++FTS_LIBS ?= ${FTS_LIBS} + EOF + + { +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/049-crypt-create-locking-directory-run-cryptsetup.patch b/sys-kernel/dracut/files/049-crypt-create-locking-directory-run-cryptsetup.patch new file mode 100644 index 000000000000..be964c03746f --- /dev/null +++ b/sys-kernel/dracut/files/049-crypt-create-locking-directory-run-cryptsetup.patch @@ -0,0 +1,32 @@ +From f39aa529c59c533ce5e75e31be1b0cce4513b3d7 Mon Sep 17 00:00:00 2001 +From: Jonas Witschel +Date: Sat, 31 Aug 2019 17:45:11 +0200 +Subject: [PATCH] crypt: create locking directory /run/cryptsetup +To: + +For LUKS2 partitions cryptsetup needs a locking directory. If it does +not exist, cryptsetup will create it, but produce a warning + +WARNING: Locking directory /run/cryptsetup is missing! + +in the process that we do not want to see in the dracut output. +--- + modules.d/90crypt/cryptroot-ask.sh | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh +index 33a823c7..e1f17975 100755 +--- a/modules.d/90crypt/cryptroot-ask.sh ++++ b/modules.d/90crypt/cryptroot-ask.sh +@@ -8,6 +8,8 @@ NEWROOT=${NEWROOT:-"/sysroot"} + + . /lib/dracut-lib.sh + ++mkdir -m 0700 /run/cryptsetup ++ + # if device name is /dev/dm-X, convert to /dev/mapper/name + if [ "${1##/dev/dm-}" != "$1" ]; then + device="/dev/mapper/$(dmsetup info -c --noheadings -o name "$1")" +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/049-dracut-install-Support-the-compressed-firmware-files.patch b/sys-kernel/dracut/files/049-dracut-install-Support-the-compressed-firmware-files.patch new file mode 100644 index 000000000000..85c0ea099726 --- /dev/null +++ b/sys-kernel/dracut/files/049-dracut-install-Support-the-compressed-firmware-files.patch @@ -0,0 +1,63 @@ +From 999cfa84582ab4ce4cc602242cb71d0af0b7d4ac Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Thu, 22 Aug 2019 12:37:56 +0200 +Subject: [PATCH] dracut-install: Support the compressed firmware files + correctly +To: + +The compressed firmware support was supposed to be already +implemented, but it didn't work as expected in the end, because dracut +moved to use dracut-install binary. This patch adds the support of +XZ-compressed firmware installation to dracut-install for fixing the +missing piece. + +At best the firmware files should be uncompressed in initrd, but this +patch simply copies the compressed file as-is, as a quick workaround. + +BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1146769 +Signed-off-by: Takashi Iwai +--- + install/dracut-install.c | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index 9e415b5e..7cda499d 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -1151,6 +1151,8 @@ static int install_firmware(struct kmod_module *mod) + ret = -1; + STRV_FOREACH(q, firmwaredirs) { + _cleanup_free_ char *fwpath = NULL; ++ _cleanup_free_ char *fwpath_xz = NULL; ++ const char *fw; + struct stat sb; + int r; + +@@ -1160,12 +1162,21 @@ static int install_firmware(struct kmod_module *mod) + exit(EXIT_FAILURE); + } + ++ fw = fwpath; + if (stat(fwpath, &sb) != 0) { +- log_debug("stat(%s) != 0", fwpath); +- continue; ++ r = asprintf(&fwpath_xz, "%s.xz", fwpath); ++ if (r < 0) { ++ log_error("Out of memory!"); ++ exit(EXIT_FAILURE); ++ } ++ if (stat(fwpath_xz, &sb) != 0) { ++ log_debug("stat(%s) != 0", fwpath); ++ continue; ++ } ++ fw = fwpath_xz; + } + +- ret = dracut_install(fwpath, fwpath, false, false, true); ++ ret = dracut_install(fw, fw, false, false, true); + if (ret == 0) + log_debug("dracut_install '%s' OK", fwpath); + } +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/049-dracut.sh-Fix-udevdir-detection.patch b/sys-kernel/dracut/files/049-dracut.sh-Fix-udevdir-detection.patch new file mode 100644 index 000000000000..ec7d4802370b --- /dev/null +++ b/sys-kernel/dracut/files/049-dracut.sh-Fix-udevdir-detection.patch @@ -0,0 +1,38 @@ +From dddcb809459b7a75906d4b90cf7a5ac291dc74c1 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 3 Apr 2019 15:24:47 +0800 +Subject: [PATCH] dracut.sh: Fix udevdir detection +To: + +In commit [9d1b81c dracut.sh: improve udevdir and systemdutildir +fallback logic] , it checked a common binary `collect' to location +udevdir. + +But upstream systemd drop binary `collect' since systemd v240 +[https://github.com/systemd/systemd/commit/a168792c2d95695fd30c0371d4b3890a9df1eafb] + +So check binary `ata_id' to instead. + +Signed-off-by: Hongxu Jia +--- + dracut.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index 9098571d..fd9903b6 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1311,8 +1311,8 @@ done + [[ -d $udevdir ]] \ + || udevdir="$(pkg-config udev --variable=udevdir 2>/dev/null)" + if ! [[ -d "$udevdir" ]]; then +- [[ -e /lib/udev/collect ]] && udevdir=/lib/udev +- [[ -e /usr/lib/udev/collect ]] && udevdir=/usr/lib/udev ++ [[ -e /lib/udev/ata_id ]] && udevdir=/lib/udev ++ [[ -e /usr/lib/udev/ata_id ]] && udevdir=/usr/lib/udev + fi + + [[ -d $systemdutildir ]] \ +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/049-fs-lib-drop-a-bashism.patch b/sys-kernel/dracut/files/049-fs-lib-drop-a-bashism.patch new file mode 100644 index 000000000000..a44b8f316517 --- /dev/null +++ b/sys-kernel/dracut/files/049-fs-lib-drop-a-bashism.patch @@ -0,0 +1,99 @@ +From 43c8c4ce0471abbb8c0fc4b8be2515cebc636030 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Fri, 21 Jun 2019 18:39:48 +0200 +Subject: [PATCH] fs-lib: drop a bashism +To: + +Bash 5 apparently longer propagates variable assignments to local variables +in front of function calls when in POSIX mode: + + [lkundrak@demiurge ~]$ cat feh.sh + print_VAR () { + echo "$VAR"; + } + + testfunc () { + local VAR="OLD" + VAR=NEW print_VAR + } + + testfunc + [lkundrak@demiurge ~]$ bash4 --posix feh.sh + NEW + [lkundrak@demiurge ~]$ bash5 --posix feh.sh + OLD + [lkundrak@demiurge ~]$ bash5 feh.sh + NEW + [lkundrak@demiurge ~]$ + +It works the way it did in Bash 4 in non-POSIX mode, for external programs, +or for non-local variables. Don't ask me why -- it's probably some +compatibility thing for some sad old people. + +However, this precisely happens when fsck_single() is calling into the +fsck_drv_com(), assigned to _drv by fsck_able(). That ruins the +TEST-70-BONDBRIDGETEAMVLAN test's server and probably more. + +Let's pass the fsck driver binary via the function argument instead. It's +less messy anyway. +--- + modules.d/99fs-lib/fs-lib.sh | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh +index d39ca1b7..11e795d9 100755 +--- a/modules.d/99fs-lib/fs-lib.sh ++++ b/modules.d/99fs-lib/fs-lib.sh +@@ -44,22 +44,22 @@ fsck_able() { + ;; + ext?) + type e2fsck >/dev/null 2>&1 && +- _drv="_drv=e2fsck fsck_drv_com" && ++ _drv="fsck_drv_com e2fsck" && + return 0 + ;; + f2fs) + type fsck.f2fs >/dev/null 2>&1 && +- _drv="_drv=fsck.f2fs fsck_drv_com" && ++ _drv="fsck_drv_com fsck.f2fs" && + return 0 + ;; + jfs) + type jfs_fsck >/dev/null 2>&1 && +- _drv="_drv=jfs_fsck fsck_drv_com" && ++ _drv="fsck_drv_com jfs_fsck" && + return 0 + ;; + reiserfs) + type reiserfsck >/dev/null 2>&1 && +- _drv="_drv=reiserfsck fsck_drv_com" && ++ _drv="fsck_drv_com reiserfsck" && + return 0 + ;; + btrfs) +@@ -70,12 +70,12 @@ fsck_able() { + ;; + nfs*) + # nfs can be a nop, returning success +- _drv="_drv=none :" && ++ _drv=":" && + return 0 + ;; + *) + type fsck >/dev/null 2>&1 && +- _drv="_drv=fsck fsck_drv_std" && ++ _drv="fsck_drv_std fsck" && + return 0 + ;; + esac +@@ -97,6 +97,7 @@ fsck_drv_btrfs() { + + # common code for checkers that follow usual subset of options and return codes + fsck_drv_com() { ++ local _drv="$1" + local _ret + local _out + +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/049-install-dracut-install.c-install-module-dependencies.patch b/sys-kernel/dracut/files/049-install-dracut-install.c-install-module-dependencies.patch new file mode 100644 index 000000000000..ec3e903765a4 --- /dev/null +++ b/sys-kernel/dracut/files/049-install-dracut-install.c-install-module-dependencies.patch @@ -0,0 +1,79 @@ +From c38f9e980c1ee03151dd1c6602907c6228b78d30 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 4 Dec 2018 10:02:45 +0100 +Subject: [PATCH] install/dracut-install.c: install module dependencies of + dependencies +To: + +--- + install/dracut-install.c | 28 +++++++++++++++++++++++++--- + 1 file changed, 25 insertions(+), 3 deletions(-) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index 5f352b36..d64de545 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -84,6 +84,11 @@ static bool arg_mod_filter_noname = false; + static int dracut_install(const char *src, const char *dst, bool isdir, bool resolvedeps, bool hashdst); + + ++static inline void kmod_module_unrefp(struct kmod_module **p) { ++ if (*p) ++ kmod_module_unref(*p); ++} ++#define _cleanup_kmod_module_unref_ _cleanup_(kmod_module_unrefp) + + static inline void kmod_module_unref_listp(struct kmod_list **p) { + if (*p) +@@ -1230,28 +1235,45 @@ static bool check_module_path(const char *path) + static int install_dependent_modules(struct kmod_list *modlist) + { + struct kmod_list *itr; +- struct kmod_module *mod; + const char *path = NULL; + const char *name = NULL; + int ret = 0; + + kmod_list_foreach(itr, modlist) { ++ _cleanup_kmod_module_unref_ struct kmod_module *mod = NULL; + mod = kmod_module_get_module(itr); + path = kmod_module_get_path(mod); + ++ if (check_hashmap(items_failed, path)) ++ return -1; ++ ++ if (check_hashmap(items, path)) { ++ continue; ++ } ++ + name = kmod_module_get_name(mod); ++ + if ((path == NULL) || (arg_mod_filter_noname && (regexec(&mod_filter_noname, name, 0, NULL, 0) == 0))) { +- kmod_module_unref(mod); + continue; + } ++ + ret = dracut_install(path, &path[kerneldirlen], false, false, true); + if (ret == 0) { ++ _cleanup_kmod_module_unref_list_ struct kmod_list *modlist = NULL; ++ _cleanup_kmod_module_unref_list_ struct kmod_list *modpre = NULL; ++ _cleanup_kmod_module_unref_list_ struct kmod_list *modpost = NULL; + log_debug("dracut_install '%s' '%s' OK", path, &path[kerneldirlen]); + install_firmware(mod); ++ modlist = kmod_module_get_dependencies(mod); ++ ret = install_dependent_modules(modlist); ++ if (ret == 0) { ++ ret = kmod_module_get_softdeps(mod, &modpre, &modpost); ++ if (ret == 0) ++ ret = install_dependent_modules(modpre); ++ } + } else { + log_error("dracut_install '%s' '%s' ERROR", path, &path[kerneldirlen]); + } +- kmod_module_unref(mod); + } + + return ret; +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/049-install-string_hash_func-should-not-be-fed-with-NULL.patch b/sys-kernel/dracut/files/049-install-string_hash_func-should-not-be-fed-with-NULL.patch new file mode 100644 index 000000000000..80f0c2b0186d --- /dev/null +++ b/sys-kernel/dracut/files/049-install-string_hash_func-should-not-be-fed-with-NULL.patch @@ -0,0 +1,38 @@ +From fc141f22869bad2e5409d1cc555c1a42ea738343 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Thu, 14 Feb 2019 20:18:04 +0100 +Subject: [PATCH] install: string_hash_func should not be fed with NULL +To: + +If kmod_module_get_path returns NULL, we should skip that entry, +the hash function does not like NULL pointers. +--- + install/dracut-install.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index d64de545..9e415b5e 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -1244,6 +1244,9 @@ static int install_dependent_modules(struct kmod_list *modlist) + mod = kmod_module_get_module(itr); + path = kmod_module_get_path(mod); + ++ if (path == NULL) ++ continue; ++ + if (check_hashmap(items_failed, path)) + return -1; + +@@ -1253,7 +1256,7 @@ static int install_dependent_modules(struct kmod_list *modlist) + + name = kmod_module_get_name(mod); + +- if ((path == NULL) || (arg_mod_filter_noname && (regexec(&mod_filter_noname, name, 0, NULL, 0) == 0))) { ++ if (arg_mod_filter_noname && (regexec(&mod_filter_noname, name, 0, NULL, 0) == 0)) { + continue; + } + +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/049-move-setting-the-systemdutildir-variable-before-it-s.patch b/sys-kernel/dracut/files/049-move-setting-the-systemdutildir-variable-before-it-s.patch new file mode 100644 index 000000000000..585f47add024 --- /dev/null +++ b/sys-kernel/dracut/files/049-move-setting-the-systemdutildir-variable-before-it-s.patch @@ -0,0 +1,55 @@ +From c8b35bf96af1859c0c254db34a16b9cc5a2aa46b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=D0=94=D0=B0=D0=BC=D1=98=D0=B0=D0=BD=20=D0=93=D0=B5=D0=BE?= + =?UTF-8?q?=D1=80=D0=B3=D0=B8=D0=B5=D0=B2=D1=81=D0=BA=D0=B8?= + +Date: Mon, 27 May 2019 18:22:14 +0200 +Subject: [PATCH] move setting the "systemdutildir" variable before it's used +To: + +on line 1086 it's used to check for the uefi_stub: +"${systemdutildir}/boot/efi/linux${EFI_MACHINE_TYPE_NAME}.efi.stub" + +so it needs to be defined before that +--- + dracut.sh | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index 183b892f..a3618f89 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1009,6 +1009,16 @@ esac + + abs_outfile=$(readlink -f "$outfile") && outfile="$abs_outfile" + ++ ++[[ -d $systemdutildir ]] \ ++ || systemdutildir=$(pkg-config systemd --variable=systemdutildir 2>/dev/null) ++ ++if ! [[ -d "$systemdutildir" ]]; then ++ [[ -e /lib/systemd/systemd-udevd ]] && systemdutildir=/lib/systemd ++ [[ -e /usr/lib/systemd/systemd-udevd ]] && systemdutildir=/usr/lib/systemd ++fi ++ ++ + if [[ $no_kernel != yes ]] && [[ -d $srcmods ]]; then + if ! [[ -f $srcmods/modules.dep ]]; then + if [[ -n "$(find "$srcmods" -name '*.ko*')" ]]; then +@@ -1325,14 +1335,6 @@ if ! [[ -d "$udevdir" ]]; then + [[ -e /usr/lib/udev/ata_id ]] && udevdir=/usr/lib/udev + fi + +-[[ -d $systemdutildir ]] \ +- || systemdutildir=$(pkg-config systemd --variable=systemdutildir 2>/dev/null) +- +-if ! [[ -d "$systemdutildir" ]]; then +- [[ -e /lib/systemd/systemd-udevd ]] && systemdutildir=/lib/systemd +- [[ -e /usr/lib/systemd/systemd-udevd ]] && systemdutildir=/usr/lib/systemd +-fi +- + [[ -d $systemdsystemunitdir ]] \ + || systemdsystemunitdir=$(pkg-config systemd --variable=systemdsystemunitdir 2>/dev/null) + +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/049-network-manager-call-the-online-hook-for-connected-d.patch b/sys-kernel/dracut/files/049-network-manager-call-the-online-hook-for-connected-d.patch new file mode 100644 index 000000000000..7f5fc6a0385c --- /dev/null +++ b/sys-kernel/dracut/files/049-network-manager-call-the-online-hook-for-connected-d.patch @@ -0,0 +1,32 @@ +From 79a17b0112995eb60c85c64d15070c52f213b28d Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Tue, 27 Nov 2018 15:30:48 +0100 +Subject: [PATCH] network-manager: call the online hook for connected devices +To: + +Look for "connection-uuid" instead of "managed" to determine the devices +that are actually activated with a connection and call the online hook. + +This fixes the anaconda-net root mount, which utilizes the online hook. +--- + modules.d/35network-manager/nm-run.sh | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh +index f6defa99..0f943631 100755 +--- a/modules.d/35network-manager/nm-run.sh ++++ b/modules.d/35network-manager/nm-run.sh +@@ -9,8 +9,9 @@ fi + for _i in /sys/class/net/*/ + do + state=/run/NetworkManager/devices/$(cat $_i/ifindex) +- grep -q managed=true $state 2>/dev/null || continue ++ grep -q connection-uuid= $state 2>/dev/null || continue + ifname=$(basename $_i) + sed -n 's/root-path/new_root_path/p' <$state >/tmp/dhclient.$ifname.dhcpopts ++ source_hook initqueue/online $ifname + /sbin/netroot $ifname + done +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/049-network-manager-fix-getting-of-ifname-from-the-sysfs.patch b/sys-kernel/dracut/files/049-network-manager-fix-getting-of-ifname-from-the-sysfs.patch new file mode 100644 index 000000000000..430b93f93de5 --- /dev/null +++ b/sys-kernel/dracut/files/049-network-manager-fix-getting-of-ifname-from-the-sysfs.patch @@ -0,0 +1,37 @@ +From 687e17aa7f2f40d21717be9a04302c749e139d4a Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Wed, 30 Oct 2019 19:25:51 +0100 +Subject: [PATCH] network-manager: fix getting of ifname from the sysfs path +To: + +commit 5e0f8c8a4ced ('network-manager: remove useless use of basename') +somewhat carelessly didn't take into account that $_i has a slash at +the end which made the result of the ## substitution be just an empty +string. + +The slash was put to the end of /sys/class/net/*/ to make sure we're only +iterating directories, but it's not strictly necessary. In an unlikely case +something else than a directory appears in /sys/class/net/, we'll already deal +with it gracefully. Remove it. + +This fixes the TEST-30-ISCSI test. +--- + modules.d/35network-manager/nm-run.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh +index a539d5b2..b33e0992 100755 +--- a/modules.d/35network-manager/nm-run.sh ++++ b/modules.d/35network-manager/nm-run.sh +@@ -6,7 +6,7 @@ else + /usr/sbin/NetworkManager --configure-and-quit=initrd --no-daemon + fi + +-for _i in /sys/class/net/*/ ++for _i in /sys/class/net/* + do + state=/run/NetworkManager/devices/$(cat $_i/ifindex) + grep -q connection-uuid= $state 2>/dev/null || continue +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/049-network-manager-remove-useless-use-of-basename.patch b/sys-kernel/dracut/files/049-network-manager-remove-useless-use-of-basename.patch new file mode 100644 index 000000000000..1650c9a767e3 --- /dev/null +++ b/sys-kernel/dracut/files/049-network-manager-remove-useless-use-of-basename.patch @@ -0,0 +1,26 @@ +From 5e0f8c8a4ced36268d0077acafa1db2402776fa6 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 17 Jun 2019 10:07:38 +0200 +Subject: [PATCH] network-manager: remove useless use of basename +To: + +--- + modules.d/35network-manager/nm-run.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh +index 0f943631..5f4b38ca 100755 +--- a/modules.d/35network-manager/nm-run.sh ++++ b/modules.d/35network-manager/nm-run.sh +@@ -10,7 +10,7 @@ for _i in /sys/class/net/*/ + do + state=/run/NetworkManager/devices/$(cat $_i/ifindex) + grep -q connection-uuid= $state 2>/dev/null || continue +- ifname=$(basename $_i) ++ ifname=${_i##*/} + sed -n 's/root-path/new_root_path/p' <$state >/tmp/dhclient.$ifname.dhcpopts + source_hook initqueue/online $ifname + /sbin/netroot $ifname +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/049-rngd-new-module-running-early-during-boot-to-help-ge.patch b/sys-kernel/dracut/files/049-rngd-new-module-running-early-during-boot-to-help-ge.patch new file mode 100644 index 000000000000..5ea342df78a4 --- /dev/null +++ b/sys-kernel/dracut/files/049-rngd-new-module-running-early-during-boot-to-help-ge.patch @@ -0,0 +1,88 @@ +From adee5b97bc5418b6e357342bb3be20568668aa55 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Thu, 11 Jul 2019 10:50:40 +0200 +Subject: [PATCH] rngd: new module running early during boot to help generating + entropy when system's default entropy sources are poor (e.g. use of SSD disks + or UEFI RNG not available) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +To: + +On systems with low entropy at boot, the boot can take up to several +hours, specially when NBDE is used (e.g. clevis) which makes use of +the random number generator. + +Enabling rngd service at boot early, because dracut-initqueue runs, +enables to initialize the random number generator in a couple of seconds +instead of minutes or hours. + +Signed-off-by: Renaud Métrich +--- + modules.d/06rngd/module-setup.sh | 39 ++++++++++++++++++++++++++++++++ + modules.d/06rngd/rngd.service | 7 ++++++ + 2 files changed, 46 insertions(+) + create mode 100644 modules.d/06rngd/module-setup.sh + create mode 100644 modules.d/06rngd/rngd.service + +diff --git a/modules.d/06rngd/module-setup.sh b/modules.d/06rngd/module-setup.sh +new file mode 100644 +index 00000000..43d5c2d3 +--- /dev/null ++++ b/modules.d/06rngd/module-setup.sh +@@ -0,0 +1,39 @@ ++#!/bin/bash ++# vim: set tabstop=8 shiftwidth=4 softtabstop=4 expandtab smarttab colorcolumn=80: ++# ++# Copyright (c) 2019 Red Hat, Inc. ++# Author: Renaud Métrich ++# ++# This program is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++# ++ ++depends() { ++ echo systemd ++ return 0 ++} ++ ++check() { ++ # if there's no rngd binary, no go. ++ require_binaries rngd || return 1 ++ ++ return 0 ++} ++ ++install() { ++ inst rngd ++ inst_simple "${moddir}/rngd.service" "${systemdsystemunitdir}/rngd.service" ++ mkdir -p "${initdir}${systemdsystemunitdir}/sysinit.target.wants" ++ ln -rfs "${initdir}${systemdsystemunitdir}/rngd.service" \ ++ "${initdir}${systemdsystemunitdir}/sysinit.target.wants/rngd.service" ++} +diff --git a/modules.d/06rngd/rngd.service b/modules.d/06rngd/rngd.service +new file mode 100644 +index 00000000..570fbedb +--- /dev/null ++++ b/modules.d/06rngd/rngd.service +@@ -0,0 +1,7 @@ ++[Unit] ++Description=Hardware RNG Entropy Gatherer Daemon ++DefaultDependencies=no ++Before=systemd-udevd.service ++ ++[Service] ++ExecStart=/usr/sbin/rngd -f +-- +2.24.1 + -- cgit v1.2.3