diff --git a/sys-kernel/gentoo-kernel-bin/Manifest b/sys-kernel/gentoo-kernel-bin/Manifest index ca86857933548..c9ac275a1ba5a 100644 --- a/sys-kernel/gentoo-kernel-bin/Manifest +++ b/sys-kernel/gentoo-kernel-bin/Manifest @@ -58,6 +58,10 @@ DIST gentoo-kernel-6.6.116-1.amd64.gpkg.tar 274821120 BLAKE2B c93b8b3dc50d0aba96 DIST gentoo-kernel-6.6.116-1.arm64.gpkg.tar 247490560 BLAKE2B b2eaf44da5d3b20c00ab009198aa37905734a5c0a0403927fc595f2661ab95ad2a6939923928614869e44ae9a3bd24dc6fc2c4196b917cba2442db72101c5ec0 SHA512 62d0af00479b64837731ca9ece779e1b3c7cd0d375196e08730fd579b842ae87370f957825e8c5b4bef1d7733d0fae3bb4552d8b05c4d78a8b086ff7097bf096 DIST gentoo-kernel-6.6.116-1.ppc64le.gpkg.tar 64481280 BLAKE2B f48919679d041322db17d48a61d6b477315c6eedaa0564774a3ab67ea220d5c7af245b4dd5e67f683ffaacf2bf872a985bb80f0deef51f5e7850ce7de829e2e9 SHA512 2c15494201ac80fe5d3fa9b7e56f70d6930676ff560424bc0884bea24346864eaf9506b80ba7fe5b89547c1c45fa1a93b013d1c547c47e42e07d3ad04cd58eb8 DIST gentoo-kernel-6.6.116-1.x86.gpkg.tar 68700160 BLAKE2B 5193a7124459da2f29da182ca6106c018a0a4a4be7936228d6397fd9f621d5d5c3ca084e8170bafb89487b010ea0e9664c430d10bfe2049fc930f6354b78c727 SHA512 994bbfa6431106b7f8488c982cd41bc39230eb8975c9d32874a0788f1ffc0d0f379797cb73dc673f13b23cc00fa44296a101d95a616aa079188b93f5f05688f8 +DIST gentoo-kernel-6.6.117-1.amd64.gpkg.tar 277585920 BLAKE2B 88b2a4a8bd5cd1dabd38f2d837324d4ce427485edbfb7e46b1833679c1e9c227729745180032eae9fdd6381fd551cab7f51c0aa8c214ef813fda583c0ba210d6 SHA512 ddf86f018d3b3d77c7bc7d636dbd1d71782adfe3497d0d5d7ff36650d2e9eb4dcb73349eab67d101726adb68dd9a5d44755d3bb5c17e707e85ef0521980cc34d +DIST gentoo-kernel-6.6.117-1.arm64.gpkg.tar 247623680 BLAKE2B 02388db1ae8e02e694cb280ca62d10648f5c72ddaa5d7f5f1ef88ab0fa0f158ce8bd22b1776d7294b6e0b67d4a05412ac43b7f25083667d3d8a08e750da7575c SHA512 924cc6b850f92873515f26be398d17a71d4405fe513875cc2dcc202d8322db9c98819c92d18bac06f83eaceea6b6cae83c0759aa8f4ebe36705903f6b0742fcd +DIST gentoo-kernel-6.6.117-1.ppc64le.gpkg.tar 64501760 BLAKE2B 3412afe8c9f3036f42b65051ce2c476bced921b4cf15e63c8456a3f489325986f4c81bbf4fe1c7c1ed89c0762a37a1c2f7221df60754a223f608faaf6962eb2e SHA512 6cd5a8eac39b88ff28a72eb8bd6085bd504a0624221f9e73db26ced7675c718e53b89d2fafb8a8bbdb0cf9148dea91065e67d65d15c05ddb88cb19debdf803b4 +DIST gentoo-kernel-6.6.117-1.x86.gpkg.tar 68700160 BLAKE2B 6fdb8a3838d2cdda69771de0a3927ccc1e6fd448b3c811fed98a7bceb21b8ffacf0ccba8a8dd98a89ed4a7c6eb9d76818a36a88e8c82f728193f8c074ba2e5d8 SHA512 eb64cec4e551a2d0fe9e3ffb1635385c1719f078782079fdd02f9233df61c48a7f28a6090f09a8adc3b58beef10b952cfa2d9059a78495fec358e2a28a40a356 DIST linux-5.10.tar.xz 116606704 BLAKE2B b923d7b66309224f42f35f8a5fa219421b0a9362d2adacdadd8d96251f61f7230878ea297a269a7f3b3c56830f0b177e068691e1d7f88501a05653b0a13274d1 SHA512 95bc137d0cf9148da6a9d1f1a878698dc27b40f68e22c597544010a6c591ce1b256f083489d3ff45ff77753289b535135590194d88ef9f007d0ddab3d74de70e DIST linux-5.15.tar.xz 121913744 BLAKE2B 3921274b23f7938abdf3ed9334534b4581e13d7484303d3a5280eddb038999aaa8b836666a487472d9c4a219af0f06b9fecccaf348fb5510ab8762f4ef4b7e83 SHA512 d25ad40b5bcd6a4c6042fd0fd84e196e7a58024734c3e9a484fd0d5d54a0c1d87db8a3c784eff55e43b6f021709dc685eb0efa18d2aec327e4f88a79f405705a DIST linux-5.x-sha256sums-20251002.asc 369409 BLAKE2B 62c1f9ac1772cd3890d9afef5a2f7da95fb34441396db435c4969e7a268e01bc72b82dba8f5fdd77d9f895dc8d6ff62d236bc6960db41156ca68a15aa3f66ecc SHA512 3a2f452d03ef1c2bfb60ba12021bed5942d9d8d96944e38eff905724e1dd2aeceeda133fe2c4e4d77d5caebae1b8e8d06dab0c8f18d44ed10659306c43cb9ef4 @@ -94,3 +98,4 @@ DIST patch-6.17.8.xz 697436 BLAKE2B 663b9970d6039e00c8e33c8a01696e0d7d3613b4b235 DIST patch-6.17.9.xz 764968 BLAKE2B a0ce8311be7c251ad21b7cc11be4f30ec5125e3763f97a750afef855be385a3ceae24df3b65b5dd751729575aa0cd254a95cbae0f2e8cc8f95539dcfa2d9d3a1 SHA512 35593bc973cc7f626aa7a41cf8b7dea1b46fe8922bd57194db363d26e8854af514d103e39d02c642c26748bd933d5e402ff89d2a20d2da5f8d901e4713eafc46 DIST patch-6.6.113.xz 5000480 BLAKE2B 6f9b360db1f92e80a5faae98ab399aba43f307df6fbc37d106b768aff02b0abea69dd4d20cb3db82ecb7b778ecf769bd49998c0b3a0e00f7e81af4fff49a39c5 SHA512 37622c883ae85ada9ec01852b1b8b40ab8e6533ee1f59b6dc080599cf03eddc77901043ef25dcd3872698fa59029297727c31f83e1891332896c2b597fa2fcb9 DIST patch-6.6.116.xz 5054680 BLAKE2B 0ff38d6f77204767a2a2f79080405634a53ee304754156fc1c5f0c8aa339b39b2382d3d4e33132a2a5c02d0c2c81ae07e20eb55ef76b62788411321399c49569 SHA512 60d1d70b217a4908d3b67b61596013b3ecc06d44ab095ad50accb21a71bb9b3d20128d38cb73790b9999e0e922092c06a414cad0efaab4c1739accc7cf8b5510 +DIST patch-6.6.117.xz 5149968 BLAKE2B 5557cb9181cb2885ebf7bda52e37c69b91f6be11b8338b8ab5d691d3786a0d1ceac432062a2954256203a63c19277725a915284c520cfd7d1ef72df82ba41ccf SHA512 387d134e42416f90a32b349a5c941ad99d135cd57388fbd90ca0479b0521bb1aff0f3b8f6b8af6f9d73ed0f0f83ded8728300bd99c63473cf62a0f700d03de25 diff --git a/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.6.117.ebuild b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.6.117.ebuild new file mode 100644 index 0000000000000..e2d5f5109966b --- /dev/null +++ b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.6.117.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.6.111 +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 +}