From f1cbfacb90c00dc5b6550acb7266465d68176420 Mon Sep 17 00:00:00 2001 From: Flatcar Buildbot Date: Mon, 21 Jul 2025 07:17:25 +0000 Subject: [PATCH] sys-apps/kmod: Sync with Gentoo It's from Gentoo commit c07bfd9a348ffe78a54d9bef1ca42a1bbbd2124a. Signed-off-by: Mathieu Tortuyaux --- .../portage-stable/sys-apps/kmod/Manifest | 1 + .../sys-apps/kmod/kmod-33.ebuild | 4 +- .../sys-apps/kmod/kmod-34.2.ebuild | 114 ++++++++++++++++ .../sys-apps/kmod/kmod-9999.ebuild | 129 ++++++------------ 4 files changed, 160 insertions(+), 88 deletions(-) create mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-34.2.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kmod/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/kmod/Manifest index e6c3dab071..ce72d59756 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/kmod/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kmod/Manifest @@ -1 +1,2 @@ DIST kmod-33.tar.xz 514428 BLAKE2B 5fb4ea9d96217f8c94cba752b07a1b53228c6ae79dbaa605030cd84e3c6ca8d9c1a703a0253cea1d6c78a78f1507e2a1d9c6215d28dcb01b9e7f8b98a9fde425 SHA512 32d79d0bb7e89012f18458d4e88325f8e19a7dba6e1d5cff01aec3e618d1757b0f7c119735bf38d02e0d056a14273fd7522fca7c61a4d12a3ea5854bb662fff8 +DIST kmod-34.2.tar.xz 443748 BLAKE2B 73e7664ef882f5d17985230797d619716b52adfbd39761579a375cdda1f516a0e120b8e3a753983d44b4cff08d3109737aca0b19283549c53a6cc2772f7ae812 SHA512 0e095c45ad61a6c61ce1ad61b9aa10cf5040e688b749f9a933b0e7d12de493c58027a5068b459cbbce05576fc564a22b83a3dbef1e6511b2a3e27034c88afd33 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-33.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-33.ebuild index 6946c9b652..76e91bb63a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-33.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-33.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -16,7 +16,7 @@ else KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" fi -LICENSE="LGPL-2" +LICENSE="LGPL-2.1+ tools? ( GPL-2+ )" SLOT="0" IUSE="debug doc +lzma pkcs7 static-libs +tools +zlib +zstd" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-34.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-34.2.ebuild new file mode 100644 index 0000000000..412e1ecdff --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-34.2.ebuild @@ -0,0 +1,114 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info meson shell-completion toolchain-funcs + +DESCRIPTION="Library and tools for managing linux kernel modules" +HOMEPAGE="https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git" + +if [[ ${PV} == 9999* ]]; then + EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/kernel/${PN}/${PN}.git" + inherit git-r3 +else + SRC_URI="https://mirrors.edge.kernel.org/pub/linux/utils/kernel/kmod/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +LICENSE="LGPL-2.1+ tools? ( GPL-2+ )" +SLOT="0" +IUSE="debug doc +lzma pkcs7 +tools +zlib +zstd" + +# - >=zlib-1.2.6 required because of bug #427130 +# - >=zstd-1.5.2-r1 required for bug #771078 +RDEPEND=" + lzma? ( >=app-arch/xz-utils-5.0.4-r1 ) + pkcs7? ( >=dev-libs/openssl-1.1.0:= ) + zlib? ( >=sys-libs/zlib-1.2.6 ) + zstd? ( >=app-arch/zstd-1.5.2-r1:= ) +" +DEPEND="${RDEPEND}" + +# >=dev-build/meson-1.7.0 to avoid building tests in compile phase +# https://github.com/mesonbuild/meson/issues/2518 +BDEPEND=" + app-text/scdoc + >=dev-build/meson-1.7.0 + doc? ( dev-util/gtk-doc ) + lzma? ( virtual/pkgconfig ) + zlib? ( virtual/pkgconfig ) +" + +pkg_setup() { + : +} + +src_configure() { + # TODO: >=33 enables decompressing without libraries being built in + # as kmod defers to the kernel. How should the ebuild be adapted? + local emesonargs=( + --bindir "${EPREFIX}/bin" + --sbindir "${EPREFIX}/sbin" + -Dbuild-tests=true + -Dbashcompletiondir="$(get_bashcompdir)" + -Dfishcompletiondir="$(get_fishcompdir)" + -Dzshcompletiondir="$(get_zshcompdir)" + $(meson_use debug debug-messages) + $(meson_use doc docs) + $(meson_use tools) + $(meson_feature lzma xz) + $(meson_feature pkcs7 openssl) + $(meson_feature zlib) + $(meson_feature zstd) + ) + + meson_src_configure +} + +src_test() { + if [[ ${LD_PRELOAD} == *libsandbox* ]]; then + ewarn "Skipping tests: libsandbox in LD_PRELOAD" + return + fi + if ! get_version; then + ewarn "Skipping tests: could not find kernel directory" + return + fi + local -x ARCH=$(tc-arch-kernel) + local -x CROSS_COMPILE=${CHOST}- + local -x KDIR=${KV_OUT_DIR} + meson_src_test +} + +src_install() { + meson_src_install + newinitd "${FILESDIR}"/kmod-static-nodes-r1 kmod-static-nodes +} + +pkg_postinst() { + if [[ -L ${EROOT}/etc/runlevels/boot/static-nodes ]]; then + ewarn "Removing old conflicting static-nodes init script from the boot runlevel" + rm -f "${EROOT}"/etc/runlevels/boot/static-nodes + fi + + # Add kmod to the runlevel automatically if this is the first install of this package. + if [[ -z ${REPLACING_VERSIONS} ]]; then + if [[ ! -d ${EROOT}/etc/runlevels/sysinit ]]; then + mkdir -p "${EROOT}"/etc/runlevels/sysinit + fi + if [[ -x ${EROOT}/etc/init.d/kmod-static-nodes ]]; then + ln -s /etc/init.d/kmod-static-nodes "${EROOT}"/etc/runlevels/sysinit/kmod-static-nodes + fi + fi + + if [[ -e ${EROOT}/etc/runlevels/sysinit ]]; then + if ! has_version sys-apps/systemd && [[ ! -e ${EROOT}/etc/runlevels/sysinit/kmod-static-nodes ]]; then + ewarn + ewarn "You need to add kmod-static-nodes to the sysinit runlevel for" + ewarn "kernel modules to have required static nodes!" + ewarn "Run this command:" + ewarn "\trc-update add kmod-static-nodes sysinit" + fi + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-9999.ebuild index ef67100015..412e1ecdff 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-9999.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit autotools libtool bash-completion-r1 +inherit linux-info meson shell-completion toolchain-funcs DESCRIPTION="Library and tools for managing linux kernel modules" HOMEPAGE="https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git" @@ -13,119 +13,76 @@ if [[ ${PV} == 9999* ]]; then inherit git-r3 else SRC_URI="https://mirrors.edge.kernel.org/pub/linux/utils/kernel/kmod/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" fi -LICENSE="LGPL-2" +LICENSE="LGPL-2.1+ tools? ( GPL-2+ )" SLOT="0" -IUSE="debug doc +lzma pkcs7 static-libs +tools +zlib +zstd" - -# Upstream does not support running the test suite with custom configure flags. -# I was also told that the test suite is intended for kmod developers. -# So we have to restrict it. -# See bug #408915. -#RESTRICT="test" +IUSE="debug doc +lzma pkcs7 +tools +zlib +zstd" # - >=zlib-1.2.6 required because of bug #427130 -# - Block systemd below 217 for -static-nodes-indicate-that-creation-of-static-nodes-.patch # - >=zstd-1.5.2-r1 required for bug #771078 RDEPEND=" - !sys-apps/module-init-tools - !sys-apps/modutils - !=app-arch/xz-utils-5.0.4-r1 ) pkcs7? ( >=dev-libs/openssl-1.1.0:= ) zlib? ( >=sys-libs/zlib-1.2.6 ) zstd? ( >=app-arch/zstd-1.5.2-r1:= ) " DEPEND="${RDEPEND}" + +# >=dev-build/meson-1.7.0 to avoid building tests in compile phase +# https://github.com/mesonbuild/meson/issues/2518 BDEPEND=" - doc? ( - dev-util/gtk-doc - dev-build/gtk-doc-am - ) + app-text/scdoc + >=dev-build/meson-1.7.0 + doc? ( dev-util/gtk-doc ) lzma? ( virtual/pkgconfig ) zlib? ( virtual/pkgconfig ) " -if [[ ${PV} == 9999* ]]; then - BDEPEND+=" app-text/scdoc" -fi -src_prepare() { - default - - if [[ ! -e configure ]] || use doc ; then - if use doc; then - cp "${BROOT}"/usr/share/aclocal/gtk-doc.m4 m4 || die - gtkdocize --copy --docdir libkmod/docs || die - else - touch libkmod/docs/gtk-doc.make - fi - eautoreconf - else - elibtoolize - fi - - # Restore possibility of running --enable-static, bug #472608 - sed -i \ - -e '/--enable-static is not supported by kmod/s:as_fn_error:echo:' \ - configure || die +pkg_setup() { + : } src_configure() { # TODO: >=33 enables decompressing without libraries being built in # as kmod defers to the kernel. How should the ebuild be adapted? - local myeconfargs=( - --bindir="${EPREFIX}/bin" - --sbindir="${EPREFIX}/sbin" - --enable-shared - --with-bashcompletiondir="$(get_bashcompdir)" - $(use_enable debug) - $(usev doc '--enable-gtk-doc') - $(use_enable static-libs static) - $(use_enable tools) - $(use_with lzma xz) - $(use_with pkcs7 openssl) - $(use_with zlib) - $(use_with zstd) + local emesonargs=( + --bindir "${EPREFIX}/bin" + --sbindir "${EPREFIX}/sbin" + -Dbuild-tests=true + -Dbashcompletiondir="$(get_bashcompdir)" + -Dfishcompletiondir="$(get_fishcompdir)" + -Dzshcompletiondir="$(get_zshcompdir)" + $(meson_use debug debug-messages) + $(meson_use doc docs) + $(meson_use tools) + $(meson_feature lzma xz) + $(meson_feature pkcs7 openssl) + $(meson_feature zlib) + $(meson_feature zstd) ) - if [[ ${PV} != 9999 ]] ; then - # See src_install - myeconfargs+=( --disable-manpages ) - fi + meson_src_configure +} - econf "${myeconfargs[@]}" +src_test() { + if [[ ${LD_PRELOAD} == *libsandbox* ]]; then + ewarn "Skipping tests: libsandbox in LD_PRELOAD" + return + fi + if ! get_version; then + ewarn "Skipping tests: could not find kernel directory" + return + fi + local -x ARCH=$(tc-arch-kernel) + local -x CROSS_COMPILE=${CHOST}- + local -x KDIR=${KV_OUT_DIR} + meson_src_test } src_install() { - default - - if [[ ${PV} != 9999 ]] ; then - # The dist logic is broken but the files are in there (bug #937942) - emake -C man DESTDIR="${D}" install - fi - - find "${ED}" -type f -name "*.la" -delete || die - - if use tools; then - local cmd - for cmd in depmod insmod modprobe rmmod; do - rm "${ED}"/bin/${cmd} || die - dosym ../bin/kmod /sbin/${cmd} - done - fi - - cat <<-EOF > "${T}"/usb-load-ehci-first.conf - softdep uhci_hcd pre: ehci_hcd - softdep ohci_hcd pre: ehci_hcd - EOF - - insinto /lib/modprobe.d - # bug #260139 - doins "${T}"/usb-load-ehci-first.conf - + meson_src_install newinitd "${FILESDIR}"/kmod-static-nodes-r1 kmod-static-nodes }