diff --git a/sys-kernel/gentoo-kernel-bin/Manifest b/sys-kernel/gentoo-kernel-bin/Manifest index e72a7c678494e..fe9b5c7df76af 100644 --- a/sys-kernel/gentoo-kernel-bin/Manifest +++ b/sys-kernel/gentoo-kernel-bin/Manifest @@ -46,6 +46,10 @@ DIST gentoo-kernel-6.6.156-1.amd64.gpkg.tar 292116480 BLAKE2B 9067ff69d8818219e8 DIST gentoo-kernel-6.6.156-1.arm64.gpkg.tar 261048320 BLAKE2B 69f0cef7d7f7e8ad79765fdea0d86844ded4914cb125174e0fa601cfe405afd7122559eb6fd8b24e0b6c4a92d24c83ee50a3f08c0f8b231a9225147829a433f2 SHA512 efecdbfe8c485989286cce0c96fdadd6c8d541bf02f94ca1afedf37065ba0a4a8968cc0cc004ec69ff945bdad683ce9f6901f4961e4d0838904ce5757fa9caec DIST gentoo-kernel-6.6.156-1.ppc64le.gpkg.tar 65331200 BLAKE2B 15c31a6dc682bac8f75b0cc37ed74b8ef5c380b859a8249318860caddec3e6892e626d180c192b5ab02203a81b6b93fe9c93095f079e6db6472a5904fe01ce10 SHA512 fe636d8220e5cfd4acf519d3b92c8391bf234706794978371bb12ce64d93e440fbfe769dd914866813d003c90a22c7a6e4840ccf62a9443379ecbeaf1e705a6c DIST gentoo-kernel-6.6.156-1.x86.gpkg.tar 68659200 BLAKE2B a08f4ba4907f6f0781e9cf6b2fb2495a1b6e236abaa1cd8c9fc71e325f108e880da8a8162a1568f9d99e5aa502c046afd6638fc15c1310b1c38b5dfd88e6a177 SHA512 e4201d3cedb3e5e793e92b10892e647bfb287299387f535da988e33b46b9fe04ae466c8f377fb78fe3cf38a605f4e7823d4ea4f71971ccbd764d4445c71755db +DIST gentoo-kernel-6.6.157-1.amd64.gpkg.tar 292147200 BLAKE2B c2b0f4e63550f9fee42c396ba1081b6ace28d01fa4e6bbf9c7f19f34bad641e766d81a7305a304f722b8609a29c58b86665f45650dcf83bd878681210c51ca26 SHA512 772d9eb65a6a58fad9cec2b595a107243e69918fbdf4b6e6a3975bff38043ca61dc564e911cd2d38dec1bef68dd86932179e801146002bc761114231e207eb06 +DIST gentoo-kernel-6.6.157-1.arm64.gpkg.tar 261160960 BLAKE2B a76b38b5e2a496c6c63913650d37755d6cc95f4d9075ac9b2f4898b4f7d340ed8c6a5b4ebef9775efc7a2664891af084b0a94eef35dfc6da7929e9689c79298f SHA512 8cad93f8d29ac46dca9824847c75570b651da68afce6474fd0c8f97367f88267453af424519fc3b9d4408ddea9c6e325679cf5067a286cf78766a938f72ef44b +DIST gentoo-kernel-6.6.157-1.ppc64le.gpkg.tar 65372160 BLAKE2B 91560f7feb1d1741eb64c53d920de608bc492ddb3d49a78892fe800c72dce21fa3228fbf42e063c44554154b331ec5aae094e2d601a521d897f8bd4386b93a7e SHA512 cbbe6f6bfe8ff250907179f6fd0e3e0933e7025662cb7f1a3e9915b882f35db0d9effe45fd0dc50df1680c66240f5e233fd7586d786b15a0fdb50242531c6d6c +DIST gentoo-kernel-6.6.157-1.x86.gpkg.tar 68689920 BLAKE2B c9b19ae987c143a6f6246223aa9a8669b36722601c8721d4575bbf946aeaaf82013d61b98c8ba2ed455ae428f5eee2f743296cc7cec7d3ecbd02138fc4aff0ae SHA512 33ffec5ac72026a89cd8c3ce0774ab6c365b2d22775e96d8b402774c8b7853ef5ea198321454beaaf9c52a5308ff2ef2d19e8eeb443ffeb8205f42e145dfee15 DIST gentoo-kernel-7.1.12-1.amd64.gpkg.tar 360120320 BLAKE2B 85953b93a1f014f66299f427f6a54d00e2a04351aca6e45f45ea235c271966f7c4416a4fbab5989da2d603d1f36502ca6b3371b1e57183bce1052b742ff449cc SHA512 52598e002cff3b1e0960fead7fd0278a97aeb71188664284ad53ee61ee0f225f4dc66555c9b9cd9f4afb3e5b16e14c19e30106000c9b9851693fd956d9d0044b DIST gentoo-kernel-7.1.12-1.arm64.gpkg.tar 331622400 BLAKE2B 43bbf39938f7109ff84d1c7f5504746d7e0131a2a40081c4ec2a505513a66bd52a0a858811235c8fc7a35617eee3f1e549bc023fa4d21d3970c33fa5f4113ce8 SHA512 19d2830e910881df21ef266b582524b9a8dd0ac861b5b0fc60d43ae5d65e00bde986fdd3642a065ea445d45d9211e928214c9a6ebf3fa5846398be3e97a6a0a1 DIST gentoo-kernel-7.1.12-1.ppc64le.gpkg.tar 79104000 BLAKE2B 381826cb4c18becc65b2c23442d723b83deee44afa8678e692eb459c7ac2094961e83914d970ce7d72ead2a6cd8a4ca4bb8bd55b05594db7cdc6d226da707530 SHA512 0fd466452bd109475a7c7cbb6b16032a4dd0a47665f5e46679af1594be806a443925be11afea9a27aad5dbb9ac3987c1eb49503740b577aaec430c14a9d83f6f @@ -102,6 +106,7 @@ DIST patch-6.18.50.xz 3404240 BLAKE2B 3b7794114d37bf1f5f0c95b5b6f44aa33c00096a16 DIST patch-6.18.51.xz 3545252 BLAKE2B 1636bb5b2dfab15f9bafeb215f925acdb5c7df0fc544d7787ffbe76cd1efcaff7cb99d925e39997e7cff37266192dd07ad3d7de3a8a845a907de9d5cf72b2dcc SHA512 c5022b7b718093b791237599a00565bf37f7e6d256e136c88ddc9508163cea5993bb22cfbbf928c3604e12ecb76d7e2ce814a3634d5a65e7c84825eb4e773f9d DIST patch-6.6.155.xz 6891280 BLAKE2B 1df8fbf4aab980280a52f6199f44f3030f917872fc5bf719dcd6bfeb236cd340aaea6cfe1da06948bbfbbdf4f89232a577e11dd0e422fb544ed2824b12f1c9cb SHA512 09f9f30b4bb33a324e3237e7eef78fe0dca9dc5d28e4c432a6e6bffc2a02dd4828f19bd1f0572e4f98cba94df55f427e11248689f0ae16437d0ef4cdda1a977a DIST patch-6.6.156.xz 6914532 BLAKE2B 95bda8ed3689d35c3bb5410f3c33b80097f78b038d343c33df3699dfb9d216215560411b939f2c6e8cba8990aa1169e914617d2432e14674484bbcac0b47d175 SHA512 de670a00152147ff05f19a5d519917bf522dfe40b3b88619e76dc768ffbf8d4609ba761c600c9441521de6254f87a6a2cf6162218ae90b1e75d7f5825c5dda10 +DIST patch-6.6.157.xz 7211724 BLAKE2B 0b1c80d86bc3fac163ef830979d2c3492e6b72ee56f17c18ce561b399a8b36d7292aabd56012bc978a7bd0b319551f7fb86d688a5e974be01a069446058f72b0 SHA512 6aca3405b62daa0e1fac66d5500705d6d780900b2960e2f50449b0db84cb4a1a814e7eadc9d97a3c959262e3cffb8ec63492ee6c3c0af163c1c8f8a10c184e1c DIST patch-7.1.12.xz 1401192 BLAKE2B f78bbf6e2468cf5324d0ee1b9da26d57e605c1f51c83b7bce0c5cd4776d7496c5160d6877b9efa6a0c470c1f479220e5b40a309fafd85da0ac50dd0e2cda5273 SHA512 ec4443c4af0ca05597fc45241a6676179ff562f49b8c09639c123465ea357d48d74f05f5b4b229f056b5ac7f497a04c2fb864cdde5dacc2f466637d4eb8ca330 DIST patch-7.1.13.xz 1427684 BLAKE2B 6c80c845eee5e6b231aab8b3675eb25dee0a1257b1138501634af31d4aead57102794d155dc012498b424e523d6a472e3ca7aead4a7573aaa4e30ef1e27f7784 SHA512 b858b8594d0bb2b401a947d1c3bd3d25e4d2c07b6e07b5585a8fd84011fbca4c23f3f0424dd74a338358dc42aa53eef2d88205e1b4ddcdc8abe382b922f8d461 DIST patch-7.2.2.xz 32596 BLAKE2B d3185df869fc6613476a9bfcae4ecbe8bc80891593df937d2ec76bf5c6a92ff0af2395abfbf52604d3083afbf41d49d1fbd8d7764bc5c6b76c87a05703b6809e SHA512 144f29bcdf647b4d90179ca4132c0e9fa1d88993bb29ac84236c10c790188d79c827e633cc6cc852ea4b6259b58c6f25a8fbb7073fedf7434e9b0f07f986c2fc diff --git a/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.6.157.ebuild b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.6.157.ebuild new file mode 100644 index 0000000000000..d8237e38c4265 --- /dev/null +++ b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.6.157.ebuild @@ -0,0 +1,222 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +KERNEL_IUSE_GENERIC_UKI=1 + +inherit kernel-install toolchain-funcs unpacker verify-sig + +BASE_P=linux-${PV%.*} +PATCH_PV=${PV%_p*} +PATCHSET=linux-gentoo-patches-6.6.145 +BINPKG=${P/-bin}-1 +SHA256SUM_DATE=20260914 + +DESCRIPTION="Pre-built Linux kernel with Gentoo patches" +HOMEPAGE=" + https://wiki.gentoo.org/wiki/Project:Distribution_Kernel + https://www.kernel.org/ +" +SRC_URI+=" + https://cdn.kernel.org/pub/linux/kernel/v$(ver_cut 1).x/${BASE_P}.tar.xz + https://cdn.kernel.org/pub/linux/kernel/v$(ver_cut 1).x/patch-${PATCH_PV}.xz + https://distfiles.gentoo.org/pub/proj/dist-kernel/patchsets/$(ver_cut 1-2)/${PATCHSET}.tar.xz + verify-sig? ( + https://cdn.kernel.org/pub/linux/kernel/v$(ver_cut 1).x/sha256sums.asc + -> linux-$(ver_cut 1).x-sha256sums-${SHA256SUM_DATE}.asc + ) + amd64? ( + https://distfiles.gentoo.org/pub/proj/dist-kernel/binpkg/amd64/$(ver_cut 1-2)/${BINPKG}.amd64.gpkg.tar + ) + arm64? ( + https://distfiles.gentoo.org/pub/proj/dist-kernel/binpkg/arm64/$(ver_cut 1-2)/${BINPKG}.arm64.gpkg.tar + ) + ppc64? ( + https://distfiles.gentoo.org/pub/proj/dist-kernel/binpkg/ppc64le/$(ver_cut 1-2)/${BINPKG}.ppc64le.gpkg.tar + ) + x86? ( + https://distfiles.gentoo.org/pub/proj/dist-kernel/binpkg/x86/$(ver_cut 1-2)/${BINPKG}.x86.gpkg.tar + ) +" +S=${WORKDIR} + +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +IUSE="debug" + +PDEPEND=" + >=virtual/dist-kernel-${PV} +" +BDEPEND=" + app-alternatives/bc + app-alternatives/lex + dev-util/pahole + virtual/libelf + app-alternatives/yacc + amd64? ( app-crypt/sbsigntools ) + arm64? ( app-crypt/sbsigntools ) + verify-sig? ( >=sec-keys/openpgp-keys-kernel-20250702 ) +" + +KV_LOCALVERSION='-gentoo-dist-bin' +KV_FULL=${PV/_p/-p}${KV_LOCALVERSION} + +QA_PREBUILT='*' + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/kernel.org.asc + +src_unpack() { + if use verify-sig; then + cd "${DISTDIR}" || die + verify-sig_verify_signed_checksums \ + "linux-$(ver_cut 1).x-sha256sums-${SHA256SUM_DATE}.asc" \ + sha256 "${BASE_P}.tar.xz patch-${PATCH_PV}.xz" + cd "${WORKDIR}" || die + fi + + unpacker +} + +src_prepare() { + local patch + cd "${BASE_P}" || die + eapply "${WORKDIR}/patch-${PATCH_PV}" + eapply "${WORKDIR}/${PATCHSET}" + + default + + # add Gentoo patchset version + local extraversion=${PV#${PATCH_PV}} + sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${extraversion/_/-}:" Makefile || die +} + +src_configure() { + # force ld.bfd if we can find it easily + local HOSTLD="$(tc-getBUILD_LD)" + if type -P "${HOSTLD}.bfd" &>/dev/null; then + HOSTLD+=.bfd + fi + local LD="$(tc-getLD)" + if type -P "${LD}.bfd" &>/dev/null; then + LD+=.bfd + fi + tc-export_build_env + local makeargs=( + V=1 + WERROR=0 + + HOSTCC="$(tc-getBUILD_CC)" + HOSTCXX="$(tc-getBUILD_CXX)" + HOSTLD="${HOSTLD}" + HOSTAR="$(tc-getBUILD_AR)" + HOSTCFLAGS="${BUILD_CFLAGS}" + HOSTLDFLAGS="${BUILD_LDFLAGS}" + + CROSS_COMPILE=${CHOST}- + AS="$(tc-getAS)" + CC="$(tc-getCC)" + LD="${LD}" + AR="$(tc-getAR)" + NM="$(tc-getNM)" + STRIP="$(tc-getSTRIP)" + OBJCOPY="$(tc-getOBJCOPY)" + OBJDUMP="$(tc-getOBJDUMP)" + READELF="$(tc-getREADELF)" + + # we need to pass it to override colliding Gentoo envvar + ARCH="$(tc-arch-kernel)" + + O="${WORKDIR}"/modprep + ) + + local kernel_dir="${BINPKG}/image/usr/src/linux-${KV_FULL}" + + # If this is set it will have an effect on the name of the output + # image. Set this variable to track this setting. + if grep -q "CONFIG_EFI_ZBOOT=y" "${kernel_dir}/.config"; then + KERNEL_EFI_ZBOOT=1 + elif use arm64 && use generic-uki; then + die "USE=generic-uki requires a CONFIG_EFI_ZBOOT enabled build" + fi + + local image="${kernel_dir}/$(dist-kernel_get_image_path)" + local uki="${image%/*}/uki.efi" + + # Override user variable with the cert used during build + openssl x509 \ + -inform DER -in "${kernel_dir}/certs/signing_key.x509" \ + -outform PEM -out "${T}/cert.pem" || + die "Failed to convert pcrpkey to PEM format" + export SECUREBOOT_SIGN_CERT=${T}/cert.pem + + if [[ -s ${uki} ]]; then + # We need to extract the plain image for the test phase + # and USE=-generic-uki. + kernel-install_extract_from_uki linux "${uki}" "${image}" + fi + + mkdir modprep || die + cp "${kernel_dir}/.config" modprep/ || die + emake -C "${BASE_P}" "${makeargs[@]}" modules_prepare +} + +src_test() { + local kernel_dir="${BINPKG}/image/usr/src/linux-${KV_FULL}" + kernel-install_test "${KV_FULL}" \ + "${WORKDIR}/${kernel_dir}/$(dist-kernel_get_image_path)" \ + "${BINPKG}/image/lib/modules/${KV_FULL}" \ + "${WORKDIR}/${kernel_dir}/.config" +} + +src_install() { + local rel_kernel_dir=/usr/src/linux-${KV_FULL} + local kernel_dir="${BINPKG}/image${rel_kernel_dir}" + local image="${kernel_dir}/$(dist-kernel_get_image_path)" + local uki="${image%/*}/uki.efi" + if [[ -s ${uki} ]]; then + # Keep the kernel image type we don't want out of install tree + # Replace back with placeholder + if use generic-uki; then + > "${image}" || die + else + > "${uki}" || die + fi + fi + + # Overwrite the identifier in the prebuilt package + echo "${CATEGORY}/${PF}:${SLOT}" > "${kernel_dir}/dist-kernel" || die + + mv "${BINPKG}"/image/{lib,usr} "${ED}"/ || die + + # FIXME: requires proper mount-boot + if [[ -d ${BINPKG}/image/boot/dtbs ]]; then + mv "${BINPKG}"/image/boot "${ED}"/ || die + fi + + # strip out-of-source build stuffs from modprep + # and then copy built files + find modprep -type f '(' \ + -name Makefile -o \ + -name '*.[ao]' -o \ + '(' -name '.*' -a -not -name '.config' ')' \ + ')' -delete || die + rm modprep/source || die + cp -p -R modprep/. "${ED}${rel_kernel_dir}"/ || die + + # Update timestamps on all modules to ensure cleanup works correctly + # when switching USE=modules-compress. + find "${ED}/lib" -name '*.ko' -exec touch {} + || die + + # Modules were already stripped before signing + dostrip -x /lib/modules + kernel-install_compress_modules + + # Mirror the logic from kernel-build_src_install, for architectures + # where USE=debug is used. + if use ppc64; then + dostrip -x "${rel_kernel_dir}/$(dist-kernel_get_image_path)" + elif use debug && { use amd64 || use arm64; }; then + dostrip -x "${rel_kernel_dir}/vmlinux" + dostrip -x "${rel_kernel_dir}/vmlinux.ctfa" + fi +}