diff --git a/sys-kernel/gentoo-kernel-bin/Manifest b/sys-kernel/gentoo-kernel-bin/Manifest index bca728b1208b4..5635234e9b430 100644 --- a/sys-kernel/gentoo-kernel-bin/Manifest +++ b/sys-kernel/gentoo-kernel-bin/Manifest @@ -82,6 +82,10 @@ DIST gentoo-kernel-7.2.5-1.amd64.gpkg.tar 363151360 BLAKE2B 592915ade584723e8a10 DIST gentoo-kernel-7.2.5-1.arm64.gpkg.tar 334417920 BLAKE2B 4249ecbfa81e572726f17b714a457967a12bcc807daa9c1a5dd388a06bdcb19a3236077826281f4c90c28b70a35d4aef26a895768eb14e618ebb1dd4c130520b SHA512 b722f379ba892646958d228b3e7efa8493b6173e1424451886368900f2f9702b916fae49c5703d49f746ec1616937f08fd2cd9118a17cd5aa96a24dc9cbf1d3d DIST gentoo-kernel-7.2.5-1.ppc64le.gpkg.tar 79861760 BLAKE2B f380d88d74711b574c5f19249311b09cff4d7762833b1ba4d1b5722bb2771708a667e62d7c9f53c1eb8baf1cbfc65d7fccb450b7e15cb0beb20804d8d68c215a SHA512 fe7a82e2b278e8ab3d8b13541540045bce0f8d5b3c1b630a7c4fccfd8f7265950633f81b893ca47943c0f6a018a32efc85f90ad378b10e38c9b560709207c684 DIST gentoo-kernel-7.2.5-1.x86.gpkg.tar 87900160 BLAKE2B 04644651dc0c36bdc3d15ae4cfc6264200580d8e6cad1eac95e548a04b47deca403306d3c86a164947e736741d2d53031153d274b3cc00b2b748af6ee97db36c SHA512 56dc85a80b01d6f70d2b9841a2eaafa5fa6a614169b362db403e58226d498fa0a22adc0b438fa7c6a57bb5c7510c7f1fabb4e182d355df3cc5c00aa3dfd1ef8a +DIST gentoo-kernel-7.2.6-1.amd64.gpkg.tar 363274240 BLAKE2B a76a0c35fd2fb01f5196c90ae8fec65541f891b1bcb4b42f9570b9ebca280e6ec0a48a7dda743b49c80899dff71c9c003647d57c2dd613a78afd58b62f57662c SHA512 8f1654c6161dfcd515b272804ee2f085b51a5aaf76427180c73c1e513e2f91e479e3fc18ab57f16701868ecde98450a0eab9f1e9af5ec0a74e5682917990094c +DIST gentoo-kernel-7.2.6-1.arm64.gpkg.tar 334612480 BLAKE2B d4412a03f7296d442b3dca96eccd582331d98313fe47154dda89ac76ab26db16254ba40fd4dfcdb00dd2dcd42134c67b4dac4cf83de3cc329cb832396117be7d SHA512 4fbe1a2e6613eb40201407ff729b459cc227632dbdb44171c4daae78545b7b20b752927b271d7b6c1861e02c2abfb7cab68c26a39d39ff221a63e572e06e717c +DIST gentoo-kernel-7.2.6-1.ppc64le.gpkg.tar 79892480 BLAKE2B 7ff134e48ca2853db11ff3156689ea19873b8cdd92a1bd4252cc4191894ed5bdad5e43a8989844f87fac0b203c2d5e111801c9a8c56e264f8736603de1e32aab SHA512 dc7821ba1dad3b512c0a20ddb105fe44ebc0d18c3c02cc65d403be3673a233f194455b0c77734ae4fdf3b3ed26e345b6603327d0e300fa9d663afdd6e8a1b4c9 +DIST gentoo-kernel-7.2.6-1.x86.gpkg.tar 87961600 BLAKE2B 4132599ae1074e8c8b12716b73b575d40741c95a5dd4b47f2bdc88f3a2d03c289503179555636ba9ab9db893d7847b2de6c6a38916977bd8efe5a2f877a1b38b SHA512 87d380ae104d99bc44230ef241d8c8c475ec32e26fb91a686009ce9a4e222b9b1534ba612e3d05603b1f50d5ce392d1fe9ccf9eeb5557f6b56bad20bd40e6a41 DIST linux-6.1.tar.xz 134728520 BLAKE2B ae60257860b2bd1bd708d183f0443afc60ebbd2b3d535c45e44c2e541bd0928530a3b62de6385dd4e4726ebbedcc0a871d4f3ffb4105b9f1f6d8ed7467f5688e SHA512 6ed2a73c2699d0810e54753715635736fc370288ad5ce95c594f2379959b0e418665cd71bc512a0273fe226fe90074d8b10d14c209080a6466498417a4fdda68 DIST linux-6.12.tar.xz 147906904 BLAKE2B b2ec2fc69218cacabbbe49f78384a5d259ca581b717617c12b000b16f4a4c59ee348ea886b37147f5f70fb9a7a01c1e2c8f19021078f6b23f5bc62d1c48d5e5e SHA512 a37b1823df7b4f72542f689b65882634740ba0401a42fdcf6601d9efd2e132e5a7650e70450ba76f6cd1f13ca31180f2ccee9d54fe4df89bc0000ade4380a548 DIST linux-6.18.tar.xz 154309096 BLAKE2B b94b7b9bf18aca0c3e50baf79b009a1448fc6cd9c3ee019f641cc247dcf53a4abef4274ee0608ad8cd4943af69854363a95d26e117ff23620bb07dccb158859f SHA512 88599ffdec96d150c1feb9b261ba93bb0301a9d0e1ad6bef7aeab1f5372cbfc57d8b43c7e902bd8f76921d1dbd8189663c142ea869e51d0e2b483b150ee00fe0 @@ -97,6 +101,7 @@ DIST linux-7.x-sha256sums-20260828.asc 11213 BLAKE2B 3be42484550c6e7863570a45175 DIST linux-7.x-sha256sums-20260902.asc 11883 BLAKE2B 868477ba5aaf889713f97de4ac66157c95497f9abdd779e8090dd99b676d47e3aedb0fe32e77f2953c82c61397c0be1c60a7a1716a67a5709ce1152ed1392cef SHA512 5d5d9f7f21fc9b803cd5059341af090c4378bc871efde4380e7fd04958de89b67b74079b307740620c7e978cc6b7798e95320d0269ccf77266f275140af7034b DIST linux-7.x-sha256sums-20260907.asc 12216 BLAKE2B fc43cf1c26c2760c3f4fabf1af6edf4448cfe39527ecf9034ba87e5118356c9bf3af1698fd60f33afbae468959ba1f456d8a325446f0bee2b2a3ac76814d9b20 SHA512 0cf93af8453deb19c43875d61b118b6c93f7598d18e81368715ee069455ec5c3073495c238f219e3088f74268cea608d84866b0e490d04d2b483ae1cbb194015 DIST linux-7.x-sha256sums-20260911.asc 12549 BLAKE2B 2c13002580813fec5b5a0cd69d5bd428886a0bae1fa5155e125e8a13adaba4c3b3bf4831532b348ef1581ac118a776d009ec1878747a8f679a0b36af28a4d2df SHA512 6b035fd353d94ca2a482d9c38fcf75a5e1e88e426f6c635237dae0a396929c87ca465554c9cd85a951ffefa48f84af4bd2896aa534fe94a46c938b7ee5fc2c82 +DIST linux-7.x-sha256sums-20260914.asc 12882 BLAKE2B 83b8e10291ae9e0c1ca3795e86c46038d0df560de695687e52932697df2e89454285003e1d9faa5e9f26f622e8388c561474e993bc8201909c0f7bd043a31c39 SHA512 0abd88ff6979f7fffd3f9f7775cf1905b7a5df27cd8783f3cf85bf8428a815641f0112644877ee66b5e164a5a588513f64c3eded461aebc348bf6682c40f6b68 DIST linux-gentoo-patches-6.1.178.tar.xz 14432 BLAKE2B fc278094f85f58b7aba5c3334503114d28aead086a1e62499111283f0410c02bc9db7f5187975fcf2a793a5ef32e323b9907bbd9e0fb4c0834dc1a823f36af52 SHA512 ae0606ab52f8d66f49cac198aada1cbcced465d8ae43e09ef02cee149125570e09eadfacc07f9ec0ad3b20b365df7b9718a478252771f7c6e09fecda6f701096 DIST linux-gentoo-patches-6.12.97.tar.xz 17192 BLAKE2B e0f09dd8ef2e6ebce9adcc2c050cb7e2c7ae08188e99635d3b541c6deca5bea792f4ec2c8d0c0dbc648b0c1f227b54a95d8d807a43859b3bf1b5f57767af2113 SHA512 af6b182d1e7661c35c215f4da63c8ab53b1ffffa7818a266b4c5639ed8d03428d050f1045d02e885c1b9bdc9fb2464c3f384dcd55d7536eddf2b90ffe1f8c530 DIST linux-gentoo-patches-6.18.42.tar.xz 10856 BLAKE2B 8d9de53163c26980f2097eac090f8add2f0f22707824c25493d24d53cc82ef5bc24dcbc7e1e324010315bd3cd05cf2abdd36c536f1457b311cc5208a1a49575d SHA512 01f3020aa34f0ee29c37473344f6dfe0180a12d20834f9c935575b98092b1c6ddd6c563aaef9e4ce6f14116e5d7386d2203f120d1c680ff617f581c867d4544c @@ -123,3 +128,4 @@ DIST patch-7.2.2.xz 32596 BLAKE2B d3185df869fc6613476a9bfcae4ecbe8bc80891593df93 DIST patch-7.2.3.xz 62920 BLAKE2B bfca37cdb0500afc3c369314e6cbd11871421a380e99436a3e59b689aed674f0eec7b1a605d2bebd3df84a68a2069a1ee05d437444776e0307a4d4535b88deff SHA512 b5c48b2b288bfe0e5aebe6889ae4fca078a33df5ed69444abf3da102ae5b34a0ff1747c3f141a3bb729177a97e19623dfcadb5b950f5cda7a559be0c5cdac898 DIST patch-7.2.4.xz 281532 BLAKE2B f8bc83a92f50b064328727d28d0bb06f660e9b0fe4ccea980a81804776040ce6e7c2d71dd01656dc5a833d53f0e80ec4af91c78df37d20b4f4118673af26708b SHA512 e5b244c7b7c652d55114e4f440be7ac8eca617bbcc704ce9528bdfd793934449c6fdca3424d8e17ef6b6c053952c2aec860e34701d2b6ff9a2d09b1e52d76773 DIST patch-7.2.5.xz 425448 BLAKE2B ee8ab8753089280cbd9afc0e424a84099e4a88b95c383618a18e009712a5862e8f2b72c90a9737197fdd2fd5c844d8fd9083319c053e9065cbc769d1253e3d16 SHA512 60af2204eddf616e3e31cd4e5f6043afab3956443da3221b9048f1e2ed7a539ae5b69bdd0ea9a664938158d099c8d2648ef66a86763305ceb7a4db8286438fbb +DIST patch-7.2.6.xz 1049176 BLAKE2B a9aa8ced201d5c98fc971436508f9a019eb2e9cf0cdc5a830cc7e707613fe2750dd8d222646e55973e9264e722a9404a0e418a1a2f4385523c02f3732006015f SHA512 82780c916050b619145cb4fc3bebff0a3aaa34caea5c8e41e64e613a686cd2f44cd1f13f0c60df952415d25c0f4ba6f176d2548db2df2292680539cf457aa42c diff --git a/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-7.2.6.ebuild b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-7.2.6.ebuild new file mode 100644 index 0000000000000..cd4a41ad174a3 --- /dev/null +++ b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-7.2.6.ebuild @@ -0,0 +1,223 @@ +# 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-7.1.9 +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/7.1/${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 + app-alternatives/yacc + dev-util/pahole + sys-libs/binutils-libs + virtual/libelf + 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 +}