diff --git a/sys-kernel/gentoo-kernel-bin/Manifest b/sys-kernel/gentoo-kernel-bin/Manifest index aa4782ba3d11e..1f9179861841c 100644 --- a/sys-kernel/gentoo-kernel-bin/Manifest +++ b/sys-kernel/gentoo-kernel-bin/Manifest @@ -30,6 +30,10 @@ DIST gentoo-kernel-6.12.57-1.amd64.gpkg.tar 307927040 BLAKE2B 2481928667645fbfbe DIST gentoo-kernel-6.12.57-1.arm64.gpkg.tar 280463360 BLAKE2B a04bf9acb5130e832fb492c494b4e2038b78199cedfcb1dcda630b912964a607d34eb84a541ce922d3dc06413061fa23607c57de46bd76b4425904c6302bb4b9 SHA512 4962d345fa430a9137ba782fdd9fb68d518c0019697ccfdd3537acc4026106392b89bb4f25e3d903a80b82687c15350beb8a771d290d5dc503190a93c3a18a1e DIST gentoo-kernel-6.12.57-1.ppc64le.gpkg.tar 72529920 BLAKE2B 02f31015c2a06f34d0d1965c56b385e60771f92371696817ce243bb0dc7c331bff5c75655399d6831919508fcabff4735c150e54b9791172dcc76bcbba5c16e1 SHA512 c4fe1144f8cf89a001faea1e1a748679e7b58d5fc3a70534573875e318d779a0cb61a78317c8c0812ce8bdf711c172e5e9ce25fbaaccb2661d89d62597a2c068 DIST gentoo-kernel-6.12.57-1.x86.gpkg.tar 77721600 BLAKE2B 240e0817874a631ba171e89cdc864f37776940b8d573036e1ba43f117b038581ea42a929222110f1d4d681aed9baecab265400cd1857477ab444e076dd3230fa SHA512 647335ccad473bda05d4db0dbd2be74e0803b34a66554112a1238121bcc9d25fa4dea998a4d8a364bd377ee618c513bf5b5a2981394a09d296b15a61a612f500 +DIST gentoo-kernel-6.12.58-1.amd64.gpkg.tar 307886080 BLAKE2B f73a6b681213d45c888e0f1c6ba890cd88ff645b5c8f28dec5f2dfb81f574d9b6474f3d9269e10ce7621977b64000d14248789a46799251aa965f8aae0433f03 SHA512 f4bde5479540801a4aec3d0ad24bc2f1f96cfaeaa05222aeb52634d506a8615add9cc2d645935b8cca60d8616c2887a428e9d436a046f884790b98326e6004a3 +DIST gentoo-kernel-6.12.58-1.arm64.gpkg.tar 280504320 BLAKE2B 4316a365c8a7ae3f5c74705c95fd4bb5472eb067a8c737b3d387e7e56b247fb54eb1b7af662a7394383cf73306bd19ecad844d19e1d2543b1045e0256b0057c9 SHA512 d553771aec2d71467f81947cdb435f404ebf20071ae32483382162ff43f17f671a7d7a29362771f9c40b6e09454f67a3d214a425cb029c753507224b5a8a8531 +DIST gentoo-kernel-6.12.58-1.ppc64le.gpkg.tar 72519680 BLAKE2B 8ccfefed04bc53ad1838c6e921c33cd1d1554383cd0a21757199040bac276ffcb7fba692639e233dbf841a39c6c93ca4fc12e9673118baf17f09afcad2b19f0b SHA512 e453003e6af57a6c8e76edd9106b853e25fde0ec536020b7bc2526d91c8307d0d33d724714ccbe14f0d448cd488a82d17dd5e8a7b4cf637931e3535d7ac8ee5a +DIST gentoo-kernel-6.12.58-1.x86.gpkg.tar 77711360 BLAKE2B 432255fcdf6d5ce0190b4f570eb5d50193e81d4ed6f2686b3f485a0d70011f4d4943ac62515476d84d48521ea76459e76b2440fd897774e1c00fe208f8487880 SHA512 311274123cd6e1d97da9294d5ed0d8dc80c244316b4e9026da5a10f47ddaf3617303afc713888a5eb80bfd5eb832b8fe6ef593740b0280d9f4dc27e483248864 DIST gentoo-kernel-6.17.7-1.amd64.gpkg.tar 334080000 BLAKE2B e0be10df1ea77a23ace79715a0fcf1c134464b237fdb61576f0bd7f60e671844257ecf7ac635130e3a034173c552cd7339843cd7cdc659d0da1cad239dd22278 SHA512 4ce8b6aaf97252c43310dab946aaed504c9bdf781c4b6e3fc344e229b4fb31d514b975259e0dfaf463fde076abe675dc77608726e4edaa222abed291c30ac803 DIST gentoo-kernel-6.17.7-1.arm64.gpkg.tar 297369600 BLAKE2B 069e00864fdf5a53e01088f7fa4f23aee399b94f15747d06b154aace0473681987cea9a128a5c7e1bbe7bd75e698e7f765310abb82444d44aa6769f917f109cc SHA512 64e082a0515aef4d66b7f9699316166ea127fd67c5071eaace80b1636f22c940bde25b8215be5ef1e7eeccf03ddd32603b76183db56206eaa236a94b8111f0ca DIST gentoo-kernel-6.17.7-1.ppc64le.gpkg.tar 75560960 BLAKE2B 2f881e73a96df66be74af22448a7e499e763e8c67df70476adebae61206b335ac883309e94bb42361e9fb325aa020e8233e563e6af0e57d57007549048d750b1 SHA512 6f3dca66d87c6c3207be2d8e65b79d2e19678433f6557d45edc179bd52773e715f23c3d0db63021ec8cb9f8dd71c7a7f7fd340f699c1711fb6e5fd07dcff84b1 @@ -74,6 +78,7 @@ DIST patch-6.1.157.xz 6579568 BLAKE2B 57556c1ebd47576a12155d3b00a5c238d3667a18f9 DIST patch-6.1.158.xz 6613684 BLAKE2B 51ff33497e42b9803545b0d848abc125dfdc439ba152c2c573419a564501890345fa0f958bc8a8433557e605a82707fa8d71410d9390856e13f08677ee9d2329 SHA512 7a43f6d1a601a890e5df90f9ad791292dd3bfb7e8e0baab90b9a0fa84be7c20075cac4738e3fb3ecaecb575952432c04c83a9eecafa2c1f02fab830777c8b24a DIST patch-6.12.54.xz 3096864 BLAKE2B f5bff8166a5a45535092614ef9ed1d9e39064fd2762f0d71e852a87437326892c9d25a095ad51eb3b7fdfe266ba5f16d271303b98c4c1c6ed1716cfa09b669bb SHA512 744143218b5258a67f4b00126c72d7630b6e563dd0cc0a9cf685bc38cb48dc217d717053117e72a52fba061b2171a99ef64d992288f75500f069c617d1663b5b DIST patch-6.12.57.xz 3166572 BLAKE2B d3de49aef49104485236672f0d932a790f81f43d10d3178c4d22dbdc42f2f0bf5e58f74455b1a2f96ff4edb28a68ade510400025eb5da0e3e9d0d0fedb1c0f3e SHA512 32c056e4bdc5ccdaa6d74517f841b5e051197337a3c22a9e1324a7c5ab23ccfa1842403ad4887a31a6a68beee73a5800c92c7fb043a22d49ddc316d6ad909ea5 +DIST patch-6.12.58.xz 3286180 BLAKE2B 6a96368f7c0db35442897ef811f2601c985e61d87928be77c84dd460dd935cfc0562239ab88341877535a25e84d571fd50641560b2f9b496905c1f22403af183 SHA512 dcbe11090c4c2020b05ad3930cad292191608b953676158255679f56075639baf666eed7421f775218d06798dbc99a9816ccf31cdaf6ab09cdc9b022527ed79c DIST patch-6.17.7.xz 443556 BLAKE2B 732800a96e7be442d190a70ff7476a3f21116741338895f24f2f24e5fd8cc7073ef7606cec8b878d9103395ed7a7b0692bdfcbe5f03b978f3c5508b0fa48e758 SHA512 8388e1271e03d99a6edd05169bb44037fa20cd585f632f50da1aa677a5a466feb716dffaa6482bce35d22699abdb3ba9901443869683b520cc84e5ea3f9bfd6f DIST patch-6.17.8.xz 697436 BLAKE2B 663b9970d6039e00c8e33c8a01696e0d7d3613b4b235c20aa8443e328b262154a5babcd7be8a37eabe2584b40e4360cccec12416d12ea1f34525a684dc8bf190 SHA512 a457f9bb4ec031a3bc4a4286a85794e16e16e81935cf6b69d37f0c48d40a6d138a8ebeb449d5dc27cb4ae57c39a145bedc1a3281da21e4b33e11e81fdf5d3e9c DIST patch-6.6.113.xz 5000480 BLAKE2B 6f9b360db1f92e80a5faae98ab399aba43f307df6fbc37d106b768aff02b0abea69dd4d20cb3db82ecb7b778ecf769bd49998c0b3a0e00f7e81af4fff49a39c5 SHA512 37622c883ae85ada9ec01852b1b8b40ab8e6533ee1f59b6dc080599cf03eddc77901043ef25dcd3872698fa59029297727c31f83e1891332896c2b597fa2fcb9 diff --git a/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.58.ebuild b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.58.ebuild new file mode 100644 index 0000000000000..b88a0a3cb6611 --- /dev/null +++ b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.58.ebuild @@ -0,0 +1,237 @@ +# 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 + +BASE_P=linux-${PV%.*} +PATCH_PV=${PV%_p*} +PATCHSET=linux-gentoo-patches-6.12.52 +BINPKG=${P/-bin}-1 +SHA256SUM_DATE=20251114 + +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://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' +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}" + 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 + + # 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}" +} + +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 +}