diff --git a/sys-kernel/gentoo-kernel-bin/Manifest b/sys-kernel/gentoo-kernel-bin/Manifest index 0047d3cb08412..2e47bb78fd468 100644 --- a/sys-kernel/gentoo-kernel-bin/Manifest +++ b/sys-kernel/gentoo-kernel-bin/Manifest @@ -14,6 +14,10 @@ DIST gentoo-kernel-6.12.41-1.amd64.gpkg.tar 305725440 BLAKE2B f13fe3dc3cc254e5b6 DIST gentoo-kernel-6.12.41-1.arm64.gpkg.tar 279449600 BLAKE2B 46660c67f31a7ac9fb3c11bd5a092cb84bd290d11c19251c78636fcf09c1b86ec35fe5169448d1b7ca7d3855299c8b39f2e7def97eb687d434743f121b9f2496 SHA512 795a21c29b537348ef02d017ca04ec0b0d08f02ba3d485221ccc1791df6d5655a2ad12e854b005eeeb2feb5a2ad6f06439fed49c62365d82cb1f0f1d7b9de339 DIST gentoo-kernel-6.12.41-1.ppc64le.gpkg.tar 73318400 BLAKE2B 322bdc40b8691cbf853e8296445aebaa67c6e964cbe60eeea6d15f73f055be4c8b703cb6f288aadea3e2a68cbd9194623ca27544bef26af59736990454890f0c SHA512 72b146dcc31c77634e81b3b898aea3f2c39d0098653f8d858c2f430fdc7198314b18682d729ff40f8ebadf8ababd4b917bca3136ab028b8305d06d6e311d9b3e DIST gentoo-kernel-6.12.41-1.x86.gpkg.tar 77660160 BLAKE2B f67bb6ae8d4469056c43173f4f4fc67ee765a199ea015b32246ac92b0d89c3315cfc0cd85941355dbae700b5d3e34ca1b091cc0d018352a39b6a46a76213b80c SHA512 19133fa20950aa8c1ccdb0dc640903ba263d732507296d37570b081fdff78dbcad848b875f3a3fcfb0568829003527dc01eaf48985446d0233996687cba3f0c0 +DIST gentoo-kernel-6.12.42-1.amd64.gpkg.tar 306677760 BLAKE2B 17bd4df86e03b22068d4d626cae9751d722eb0cf28adff1e108a0a93468d929d8a9f251fd5a6fd1be12f70549b6df315ffd2261209d75c15e89ee28a30e1a6fd SHA512 3fac3b1d486c58c7f999047fda258c6c9e7a30b5c0f094b921770b79eacecc90fdb2e7aa0710a8780a2c90d0b7ea37c8e0977bfe2bd2d0c5718e4be2391cf8e6 +DIST gentoo-kernel-6.12.42-1.arm64.gpkg.tar 279889920 BLAKE2B 68fcac8f63776525deb20c50bf141d3b2cb9dcae96a3c6974ef9b440674353157ec19998b56e3cfb6e19e1f049a8ee443109efd3a16c40887e2c79beb4d924ea SHA512 8ccfdc74875b45c30f37acd6d5dee413f760988621108ab24f4d2732be3c81d46da2d98ebe557d3167e12003a629e28646c199a414b801a05670a3c22699941f +DIST gentoo-kernel-6.12.42-1.ppc64le.gpkg.tar 73308160 BLAKE2B 3058d100b50c05162a8a3fcf155a8587b355a0caa784d4e797c155818a144185ddc4127dfdff7b8e1a1914564f7b41e3fa22bd6c35cbb08d8611f77509936e13 SHA512 7ff700e418a907a39cc8c68d169c1b155bf1a21be48e66efba086d16438d5d3b5aaa63db710d2e866d18cfb63686a43ae1105e2d7e3fb0538d0ba5fc1da4b053 +DIST gentoo-kernel-6.12.42-1.x86.gpkg.tar 77660160 BLAKE2B f52c05a8969a7cbd394a57e0c6588d123b8407ebee7c551cd2133430a86b2689169fcecb3326b217fe4ff7f43d31b5e0128b4856bcc21ea29fa5c493620fb898 SHA512 3c95c4b0d8d2dccf23a068412772955a63f3380aeca21a683a159341f640a89438e7d1fcb1f111415ca51ad7586b0a051f3263e0e15b087cd42407a7d8ad8490 DIST gentoo-kernel-6.15.10-1.amd64.gpkg.tar 327403520 BLAKE2B e9d3f012185e0e91eba27aaab4a830c5b26eaf7b011b0d2bc7dc7186c7280eda0d1e1a791037fbf9302cb7d968c2ef1ee1da4ee42215150f06f884f5720fae5f SHA512 92363c0802dc49181baa273c633c1fa8e0226792a94ef4b439bec187dcf333bd497c88293150cc44d8ffa04f690505d1a3d272f82bb237da48cf216cc405e34a DIST gentoo-kernel-6.15.10-1.arm64.gpkg.tar 290037760 BLAKE2B 94d75c0ab8654e6b2ad02938d6655136140dd83e3cf391ea651bfe5f1b5e2e55f7db45c0580805a948d0d376620afe4c808da6204259efb21e78488d5c03784a SHA512 122ed4dc86182357342dd58f1e097ddf25d4b910a474223f8e9a3fb3235c0dcdf8a24339e865d5a67082f1228a5d9e14c0da9a536404141e0ff890bf28bba931 DIST gentoo-kernel-6.15.10-1.ppc64le.gpkg.tar 75243520 BLAKE2B fec2b6ab3df40f79cc440e71eba9ec1b67283ff3c8ab8f25264ff12fd8d41485d50d8f5fed09be7303e555d9744227207b6a58e52a65bd49065d8247ef015052 SHA512 d039a2a6e4e11ac1264bb505aff784a22ef831fb993de1a454834ee08cfc705af99c81580564a662a56f0d66f2d4ffb855e84516cbb5cd2471a7afc91f536144 @@ -45,6 +49,7 @@ DIST patch-5.10.240.xz 6786568 BLAKE2B 1cb287b2c99bb403585cad3500a2de0819db40ea6 DIST patch-5.15.189.xz 6955776 BLAKE2B bd2bf4ad70014395ffac8874434b2caae7823b1b9999231738552d9f23a53547533c248fdb7fc4b4bdd60dc05e8898a910e3e94e6f5edae7ae96a66937f387a2 SHA512 8ace7d82af676b101ed37c382c9833193ab487cbb15b8444b92ccf8239e2c62bfb70ef7342ef6f694d71e8ac72b7db445d544e4ad285d9bd977365350bf155d3 DIST patch-6.1.147.xz 6320180 BLAKE2B d109214e0682653ead5f62f5699d0bad2764bae1765789720d780e74afefadc39faf8e833df1ee4cc1436e4db5facbfc7f4ba8c3b657fc48aabda3ab84a4b540 SHA512 2cfd04771f982da4b65caf53cb944bf9ae2888a32005428adce383c408c35c72bec5d88e49670deb87011f0d6bc329e0a53adcad065aaa716ad5c8baffb2fddf DIST patch-6.12.41.xz 2584360 BLAKE2B 8cb7d77a45e79b186e24bc59be15d74f4e9ea4b7c7f7b5c81b82eaa9b1a8b88a7aabff6768471d905e24539366bdb85593304365726307e19bcfa41937764bf0 SHA512 b9307fafe443eb61b0edc624b2c9ab7a0206765eb614683e0f01d7f7fab04a729a91d92d67b8ace03208d6b63088ff235203e8fdfad27adc97cdbf7df872b3c2 +DIST patch-6.12.42.xz 2666304 BLAKE2B 7e8cfcb30f98202d7cf9e152be9ff31bb013b358f12817bca1211816bc008171a1e0ebe09a3c67c3867f5b194dbf818ad4bd412509e6a44a25f944e16c0eedfe SHA512 8b31be7c22a413e13a7b68086ac7f326d4741c2ae21dbd2ba3d62fc1b04fd393861b2801dbfd48dcf5b84651bc271434521b5e07876bd97afceae01034a7c144 DIST patch-6.15.10.xz 851240 BLAKE2B c3397c8fe10b62ebe8e021864d456a1bec4eb52a0274e1c3fe365145191cbd39c2ca7cc6ab807b4df22936634fad67520dc978cc6df45a7a34e350e7a08ebb88 SHA512 4cb5a0848214b7cd76d587226efde3077c06359c0c8c1de50952b7f8282cb83195d477b46844ea0eaef039448f45fc1a07a331bac86efc6bae33cd4ff58bd9aa DIST patch-6.15.9.xz 730252 BLAKE2B 277dee1df9517f06060f1f20b9d6000b3ed6acc0805d0ed55acebab59e996190a8f5d819ede79b5268ebb76e0976a546dc5339a4cf72307fab12c900c3311159 SHA512 34572997debcfac374401783a95d87e7be8754b4f1f4a9f436435c18e75087c05325321d800a22c33f0c4ac379d3b8759095a2b7738807eb51656bdc49b5d382 DIST patch-6.6.101.xz 4660596 BLAKE2B 3b02a5a37a67113ec35d647bb13f729fa0b883fa59b004e7b19b401bed374b700ef806f27285c0951c2dc8cd3e0af16ae7d9fc3268b4f5020eafb1d0361aaab8 SHA512 bcb5671c660a84f34556210dd525c6b38f3a9cf6c78bbc6b7d936f8efeb3170b27bfbf4a343b0ac94659cc63a35c479e1e158ca35043d5937eebbaf4fd8cadb6 diff --git a/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.42.ebuild b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.42.ebuild new file mode 100644 index 0000000000000..cd4077f4f9535 --- /dev/null +++ b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.42.ebuild @@ -0,0 +1,224 @@ +# Copyright 2020-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +KERNEL_IUSE_GENERIC_UKI=1 +KERNEL_IUSE_MODULES_SIGN=1 + +inherit kernel-install toolchain-funcs unpacker verify-sig + +MY_P=linux-${PV%.*} +PATCHSET=linux-gentoo-patches-6.12.40 +BINPKG=${PF/-bin}-1 +SHA256SUM_DATE=20250815 + +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/${MY_P}.tar.xz + https://cdn.kernel.org/pub/linux/kernel/v$(ver_cut 1).x/patch-${PV}.xz + https://dev.gentoo.org/~mgorny/dist/linux/${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://dev.gentoo.org/~mgorny/binpkg/amd64/kernel/sys-kernel/gentoo-kernel/${BINPKG}.gpkg.tar + -> ${BINPKG}.amd64.gpkg.tar + ) + arm64? ( + https://dev.gentoo.org/~mgorny/binpkg/arm64/kernel/sys-kernel/gentoo-kernel/${BINPKG}.gpkg.tar + -> ${BINPKG}.arm64.gpkg.tar + ) + ppc64? ( + https://dev.gentoo.org/~mgorny/binpkg/ppc64le/kernel/sys-kernel/gentoo-kernel/${BINPKG}.gpkg.tar + -> ${BINPKG}.ppc64le.gpkg.tar + ) + x86? ( + https://dev.gentoo.org/~mgorny/binpkg/x86/kernel/sys-kernel/gentoo-kernel/${BINPKG}.gpkg.tar + -> ${BINPKG}.x86.gpkg.tar + ) +" +S=${WORKDIR} + +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +IUSE="debug" + +RDEPEND=" + !sys-kernel/gentoo-kernel:${SLOT} +" +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' +KPV=${PV}${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 "${MY_P}.tar.xz patch-${PV}.xz" + cd "${WORKDIR}" || die + fi + + unpacker +} + +src_prepare() { + local patch + cd "${MY_P}" || die + eapply "${WORKDIR}/patch-${PV}" + for patch in "${WORKDIR}/${PATCHSET}"/*.patch; do + eapply "${patch}" + # non-experimental patches always finish with Gentoo Kconfig + # we built -bins without them + if [[ ${patch} == *Add-Gentoo-Linux-support-config-settings* ]] + then + break + fi + done + + default +} + +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-${KPV}" + + # 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" + 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 "${MY_P}" "${makeargs[@]}" modules_prepare +} + +src_test() { + local kernel_dir="${BINPKG}/image/usr/src/linux-${KPV}" + kernel-install_test "${KPV}" \ + "${WORKDIR}/${kernel_dir}/$(dist-kernel_get_image_path)" \ + "${BINPKG}/image/lib/modules/${KPV}" +} + +src_install() { + local rel_kernel_dir=/usr/src/linux-${KPV} + 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 +}