diff --git a/sys-kernel/gentoo-kernel-bin/Manifest b/sys-kernel/gentoo-kernel-bin/Manifest index f3e8e3180e2c4..ca86857933548 100644 --- a/sys-kernel/gentoo-kernel-bin/Manifest +++ b/sys-kernel/gentoo-kernel-bin/Manifest @@ -34,6 +34,10 @@ DIST gentoo-kernel-6.12.58-1.amd64.gpkg.tar 307886080 BLAKE2B f73a6b681213d45c88 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.12.59-1.amd64.gpkg.tar 310681600 BLAKE2B c0e7bbc4e20daf4e58fe6cef7204cc98ff9cf3fb57bcd58a06ebe1f26d1213ba0a2529103a137091ab5e17207a153f835a9173d62b9eebe7333803b84d5f2760 SHA512 5f2c69da901ca3bcbef943cb38a87b75c67193d926d724d1f0967627243ea692600dd987da9c2d0951e8567a343e323790873f2be50e83453a803e69caec8702 +DIST gentoo-kernel-6.12.59-1.arm64.gpkg.tar 280637440 BLAKE2B 6c31d1fb452ce2bc0b36f582fb8609ff35b8bb2cddbaf801d038bf04e0d00dd9bbcfa7e6889255a973dd65d1bfbbc3acc4966cef86f3fd2a7e1b0feb748586ee SHA512 d72e3ad716b4977f7ecb83ae899676d92bc99b995b758f7f2ace37663e361159d69fda53c94486b29d79df3b14e4b6c83899709da2b8506b6e888ac17540c74b +DIST gentoo-kernel-6.12.59-1.ppc64le.gpkg.tar 72509440 BLAKE2B 284411fec04463e12777ecbd8171befceadf362789982f53d2e78d4e42963c7ccb156e0964ad271a7c1ffa19b84ee694eb004aad1234756e98d8ab3ab31ce664 SHA512 6a1a34d141d30706d9086fa5ce2eac3fbcdbffed6f33322f1d08ef07bf0a7d56d74d5608d9d4d7de2397d4aa7b69896752f419c2093f059e1f23d91bfccaef56 +DIST gentoo-kernel-6.12.59-1.x86.gpkg.tar 77701120 BLAKE2B aa42cd098e66a926eec72cf057257b23a18bb3a5fc9fd30425c24a9547a5c22650f13a2c83cc0752a453c4547d0415a5d3c89c8e17ad397f721f228a5f5ec61e SHA512 515c68cde933ae7a256a06f434e0dc6ae2590540f3d628dd1b14e74542629caf2b4e233f29e77c45bd01254282c1a22ef5929356f7b3dd7677df573f2f685792 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 @@ -84,6 +88,7 @@ DIST patch-6.1.158.xz 6613684 BLAKE2B 51ff33497e42b9803545b0d848abc125dfdc439ba1 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.12.59.xz 3325064 BLAKE2B 9bd2f598b2884592a47fc021966c3c4bf2310d3cf2ccd6c730d4f4186d51676ae7a4363a48f0a0f59bb163ae374de620a0c0a7bfe0fd016f7a5774f7c9d44e19 SHA512 a97bba0f85260aedba917b43be968a36e594f9d9b8fea6b6eb7d72f0349e1329f0d9b18ba46d6f183f28d0f644040e1f82f78c3f5fe22b8e15aa49f22046b01d 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.17.9.xz 764968 BLAKE2B a0ce8311be7c251ad21b7cc11be4f30ec5125e3763f97a750afef855be385a3ceae24df3b65b5dd751729575aa0cd254a95cbae0f2e8cc8f95539dcfa2d9d3a1 SHA512 35593bc973cc7f626aa7a41cf8b7dea1b46fe8922bd57194db363d26e8854af514d103e39d02c642c26748bd933d5e402ff89d2a20d2da5f8d901e4713eafc46 diff --git a/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.59.ebuild b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.59.ebuild new file mode 100644 index 0000000000000..9c1fb3fb008d4 --- /dev/null +++ b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.59.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=20251124 + +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 +}