commit: 9607023e9accd1cfdd8236bafc6bc669651a3a3b Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> AuthorDate: Tue Oct 8 09:52:29 2024 +0000 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> CommitDate: Fri Nov 1 17:01:15 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9607023e
sys-kernel/dracut: get the tests up and running Instead of skipping the tests if we are not root or cannot access kvm, communicate properly what we need with PROPERTIES and addwrite. Also add several missing dependencies and the dependency on qemu Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org> profiles/arch/alpha/package.use.mask | 4 +++ profiles/arch/arm/package.use.mask | 4 +++ profiles/arch/hppa/package.use.mask | 4 +++ profiles/arch/loong/package.use.mask | 4 +++ profiles/arch/mips/package.use.mask | 4 +++ profiles/arch/ppc/package.use.mask | 4 +++ profiles/arch/sparc/package.use.mask | 4 +++ profiles/arch/x86/i486/package.use.mask | 4 +++ profiles/base/package.use.mask | 4 --- profiles/features/musl/package.use.mask | 4 +++ sys-kernel/dracut/dracut-103-r4.ebuild | 54 ++++++++++++++++++++++++++++----- sys-kernel/dracut/dracut-9999.ebuild | 54 ++++++++++++++++++++++++++++----- 12 files changed, 130 insertions(+), 18 deletions(-) diff --git a/profiles/arch/alpha/package.use.mask b/profiles/arch/alpha/package.use.mask index 457e62f105c4..a2555c50fdc6 100644 --- a/profiles/arch/alpha/package.use.mask +++ b/profiles/arch/alpha/package.use.mask @@ -5,6 +5,10 @@ # requires dev-libs/libcss and net-libs/libdom to be keyworded www-client/elinks libcss +# Andrew Ammerlaan <[email protected]> (2024-10-08) +# Not all required dependencies are keyworded here +sys-kernel/dracut test + # David Roman <[email protected]> (2024-10-04) # dev-libs/libunibreak is not keyworded media-libs/libass libunibreak diff --git a/profiles/arch/arm/package.use.mask b/profiles/arch/arm/package.use.mask index 4b7702d6a841..cf27cc4874a5 100644 --- a/profiles/arch/arm/package.use.mask +++ b/profiles/arch/arm/package.use.mask @@ -10,6 +10,10 @@ media-libs/opencv java net-misc/plowshare javascript sci-libs/gdal java +# Andrew Ammerlaan <[email protected]> (2024-10-08) +# Not all required dependencies are keyworded here +sys-kernel/dracut test + # Andreas Sturmlechner <[email protected]> (2024-09-07) # kde-plasma/plasma-workspace:6 is not keyworded sys-auth/polkit kde diff --git a/profiles/arch/hppa/package.use.mask b/profiles/arch/hppa/package.use.mask index 8893cf67d4fb..863b9ad67c54 100644 --- a/profiles/arch/hppa/package.use.mask +++ b/profiles/arch/hppa/package.use.mask @@ -12,6 +12,10 @@ www-client/elinks libcss # app-i18n/fcitx:5 is not yet keyworded media-libs/libsdl2 fcitx +# Andrew Ammerlaan <[email protected]> (2024-10-08) +# Not all required dependencies are keyworded here +sys-kernel/dracut test + # David Roman <[email protected]> (2024-10-04) # dev-libs/libunibreak is not keyworded media-libs/libass libunibreak diff --git a/profiles/arch/loong/package.use.mask b/profiles/arch/loong/package.use.mask index a10a477151eb..9c6483e31155 100644 --- a/profiles/arch/loong/package.use.mask +++ b/profiles/arch/loong/package.use.mask @@ -1,6 +1,10 @@ # Copyright 2022-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andrew Ammerlaan <[email protected]> (2024-10-08) +# Not all required dependencies are keyworded here +sys-kernel/dracut test + # David Roman <[email protected]> (2024-10-04) # dev-libs/libunibreak is not keyworded media-libs/libass libunibreak diff --git a/profiles/arch/mips/package.use.mask b/profiles/arch/mips/package.use.mask index 9de29291b047..fa77510aa188 100644 --- a/profiles/arch/mips/package.use.mask +++ b/profiles/arch/mips/package.use.mask @@ -5,6 +5,10 @@ # requires dev-libs/libcss and net-libs/libdom to be keyworded www-client/elinks libcss +# Andrew Ammerlaan <[email protected]> (2024-10-08) +# Not all required dependencies are keyworded here +sys-kernel/dracut test + # David Roman <[email protected]> (2024-10-04) # dev-libs/libunibreak is not keyworded media-libs/libass libunibreak diff --git a/profiles/arch/ppc/package.use.mask b/profiles/arch/ppc/package.use.mask index 8c3b12715f9b..b15f9611f544 100644 --- a/profiles/arch/ppc/package.use.mask +++ b/profiles/arch/ppc/package.use.mask @@ -1,6 +1,10 @@ # Copyright 2023-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andrew Ammerlaan <[email protected]> (2024-10-08) +# Not all required dependencies are keyworded here +sys-kernel/dracut test + # Eli Schwartz <[email protected]> (2024-06-05) # tests require pytest-qt which is not keyworded app-portage/elogviewer test diff --git a/profiles/arch/sparc/package.use.mask b/profiles/arch/sparc/package.use.mask index c2ef9274a822..3d6d32fe48d6 100644 --- a/profiles/arch/sparc/package.use.mask +++ b/profiles/arch/sparc/package.use.mask @@ -9,6 +9,10 @@ www-client/elinks libcss # Exposes a kernel bug which causes system lockup (bug #899540) sys-libs/liburing test +# Andrew Ammerlaan <[email protected]> (2024-10-08) +# Not all required dependencies are keyworded here +sys-kernel/dracut test + # David Roman <[email protected]> (2024-10-04) # dev-libs/libunibreak not keyworded here media-libs/libass libunibreak diff --git a/profiles/arch/x86/i486/package.use.mask b/profiles/arch/x86/i486/package.use.mask index 8e79bd33e178..ce9c6f0cb82f 100644 --- a/profiles/arch/x86/i486/package.use.mask +++ b/profiles/arch/x86/i486/package.use.mask @@ -1,6 +1,10 @@ # Copyright 2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andrew Ammerlaan <[email protected]> (2024-10-08) +# Not all required dependencies are keyworded here +sys-kernel/dracut test + # Ben Kohler <[email protected]> (2024-05-03) # Requires thin-provisioning-tools, which requires rust, which cannot currently # build/install on i486 or any other CPU class lacking sse2. diff --git a/profiles/base/package.use.mask b/profiles/base/package.use.mask index 5b30e014e18a..469f9fb030c0 100644 --- a/profiles/base/package.use.mask +++ b/profiles/base/package.use.mask @@ -533,10 +533,6 @@ gui-libs/gtk ffmpeg vulkan # lto does not work on dev-lang/gnat-gpl-2021 dev-lang/gnat-gpl:10 lto -# Mike Gilbert <[email protected]> (2021-06-14) -# Avoid running failing tests by default. -sys-kernel/dracut test - # Andreas Sturmlechner <[email protected]> (2021-05-09) # Dependency requires sys-apps/systemd. Will only be unmasked in systemd target. kde-plasma/plasma-meta firewall diff --git a/profiles/features/musl/package.use.mask b/profiles/features/musl/package.use.mask index 1bae192c2abe..aca87a7d4c85 100644 --- a/profiles/features/musl/package.use.mask +++ b/profiles/features/musl/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andrew Ammerlaan <[email protected]> (2024-10-08) +# Not all required dependencies are keyworded here +sys-kernel/dracut test + # Ian Jordan <[email protected]> (2024-08-22) # Browser uses a prebuilt binary built against glibc (bug #934005) media-video/obs-studio browser diff --git a/sys-kernel/dracut/dracut-103-r4.ebuild b/sys-kernel/dracut/dracut-103-r4.ebuild index 2e6c11185065..ae58053e70fc 100644 --- a/sys-kernel/dracut/dracut-103-r4.ebuild +++ b/sys-kernel/dracut/dracut-103-r4.ebuild @@ -22,7 +22,8 @@ HOMEPAGE="https://github.com/dracut-ng/dracut-ng/wiki" LICENSE="GPL-2" SLOT="0" IUSE="selinux test" -RESTRICT="!test? ( test )" +RESTRICT="test" +PROPERTIES="test? ( test_privileged test_network )" RDEPEND=" app-alternatives/cpio @@ -58,6 +59,38 @@ BDEPEND=" >=app-text/docbook-xsl-stylesheets-1.75.2 >=dev-libs/libxslt-1.1.26 virtual/pkgconfig + test? ( + net-nds/rpcbind + net-fs/nfs-utils + sys-block/open-iscsi + sys-fs/btrfs-progs + sys-fs/dmraid + sys-fs/lvm2[lvm,thin] + sys-fs/mdadm + sys-fs/multipath-tools + alpha? ( app-emulation/qemu[qemu_softmmu_targets_alpha] ) + amd64? ( app-emulation/qemu[qemu_softmmu_targets_x86_64] ) + arm? ( app-emulation/qemu[qemu_softmmu_targets_arm] ) + arm64? ( app-emulation/qemu[qemu_softmmu_targets_aarch64] ) + hppa? ( app-emulation/qemu[qemu_softmmu_targets_hppa] ) + loong? ( app-emulation/qemu[qemu_softmmu_targets_loongarch64] ) + mips? ( || ( + app-emulation/qemu[qemu_softmmu_targets_mips] + app-emulation/qemu[qemu_softmmu_targets_mips64] + app-emulation/qemu[qemu_softmmu_targets_mips64el] + ) ) + ppc? ( app-emulation/qemu[qemu_softmmu_targets_ppc] ) + ppc64? ( app-emulation/qemu[qemu_softmmu_targets_ppc64] ) + riscv? ( || ( + app-emulation/qemu[qemu_softmmu_targets_riscv32] + app-emulation/qemu[qemu_softmmu_targets_riscv64] + ) ) + sparc? ( || ( + app-emulation/qemu[qemu_softmmu_targets_sparc] + app-emulation/qemu[qemu_softmmu_targets_sparc64] + ) ) + x86? ( app-emulation/qemu[qemu_softmmu_targets_i386] ) + ) " QA_MULTILIB_PATHS="usr/lib/dracut/.*" @@ -89,14 +122,21 @@ src_configure() { } src_test() { - if [[ ${EUID} != 0 ]]; then - # Tests need root privileges, bug #298014 - ewarn "Skipping tests: Not running as root." - elif [[ ! -w /dev/kvm ]]; then - ewarn "Skipping tests: Unable to access /dev/kvm." + addwrite /dev/kvm + # Translate ARCH so run-qemu can find the correct qemu-system-ARCH + local qemu_arch + if use amd64; then + qemu_arch=x86_64 + elif use arm64; then + qemu_arch=aarch64 + elif use loong; then + qemu_arch=loongarch64 + elif use x86; then + qemu_arch=i386 else - emake -C test check + qemu_arch=$(tc-arch) fi + ARCH=${qemu_arch} emake -C test check } src_install() { diff --git a/sys-kernel/dracut/dracut-9999.ebuild b/sys-kernel/dracut/dracut-9999.ebuild index ae23c47eba7d..8bbef8760f9d 100644 --- a/sys-kernel/dracut/dracut-9999.ebuild +++ b/sys-kernel/dracut/dracut-9999.ebuild @@ -22,7 +22,8 @@ HOMEPAGE="https://github.com/dracut-ng/dracut-ng/wiki" LICENSE="GPL-2" SLOT="0" IUSE="selinux test" -RESTRICT="!test? ( test )" +RESTRICT="test" +PROPERTIES="test? ( test_privileged test_network )" RDEPEND=" app-alternatives/cpio @@ -58,6 +59,38 @@ BDEPEND=" >=app-text/docbook-xsl-stylesheets-1.75.2 >=dev-libs/libxslt-1.1.26 virtual/pkgconfig + test? ( + net-nds/rpcbind + net-fs/nfs-utils + sys-block/open-iscsi + sys-fs/btrfs-progs + sys-fs/dmraid + sys-fs/lvm2[lvm,thin] + sys-fs/mdadm + sys-fs/multipath-tools + alpha? ( app-emulation/qemu[qemu_softmmu_targets_alpha] ) + amd64? ( app-emulation/qemu[qemu_softmmu_targets_x86_64] ) + arm? ( app-emulation/qemu[qemu_softmmu_targets_arm] ) + arm64? ( app-emulation/qemu[qemu_softmmu_targets_aarch64] ) + hppa? ( app-emulation/qemu[qemu_softmmu_targets_hppa] ) + loong? ( app-emulation/qemu[qemu_softmmu_targets_loongarch64] ) + mips? ( || ( + app-emulation/qemu[qemu_softmmu_targets_mips] + app-emulation/qemu[qemu_softmmu_targets_mips64] + app-emulation/qemu[qemu_softmmu_targets_mips64el] + ) ) + ppc? ( app-emulation/qemu[qemu_softmmu_targets_ppc] ) + ppc64? ( app-emulation/qemu[qemu_softmmu_targets_ppc64] ) + riscv? ( || ( + app-emulation/qemu[qemu_softmmu_targets_riscv32] + app-emulation/qemu[qemu_softmmu_targets_riscv64] + ) ) + sparc? ( || ( + app-emulation/qemu[qemu_softmmu_targets_sparc] + app-emulation/qemu[qemu_softmmu_targets_sparc64] + ) ) + x86? ( app-emulation/qemu[qemu_softmmu_targets_i386] ) + ) " QA_MULTILIB_PATHS="usr/lib/dracut/.*" @@ -85,14 +118,21 @@ src_configure() { } src_test() { - if [[ ${EUID} != 0 ]]; then - # Tests need root privileges, bug #298014 - ewarn "Skipping tests: Not running as root." - elif [[ ! -w /dev/kvm ]]; then - ewarn "Skipping tests: Unable to access /dev/kvm." + addwrite /dev/kvm + # Translate ARCH so run-qemu can find the correct qemu-system-ARCH + local qemu_arch + if use amd64; then + qemu_arch=x86_64 + elif use arm64; then + qemu_arch=aarch64 + elif use loong; then + qemu_arch=loongarch64 + elif use x86; then + qemu_arch=i386 else - emake -C test check + qemu_arch=$(tc-arch) fi + ARCH=${qemu_arch} emake -C test check } src_install() {
