diff --git a/sys-kernel/gentoo-kernel-bin/Manifest b/sys-kernel/gentoo-kernel-bin/Manifest index 3db3825c610d5..4c136a6e44458 100644 --- a/sys-kernel/gentoo-kernel-bin/Manifest +++ b/sys-kernel/gentoo-kernel-bin/Manifest @@ -6,6 +6,10 @@ DIST gentoo-kernel-6.1.179-1.amd64.gpkg.tar 75571200 BLAKE2B f0b48fc5ff5b0eeb5db DIST gentoo-kernel-6.1.179-1.arm64.gpkg.tar 69140480 BLAKE2B e0fe442759c3b7d57e81a134a7cca154bec25bafdce99bd652af127c9fede7ef92a6cb3dde1277660b5cbe3f33d65a182788badcae0c987a2a7b33910449e744 SHA512 9684fa0151f4d2f18edf8a163d0d2a031d8e596aedf81c8db89704e18ce61fabdd42c97d0ad4c8b17ff3afb075b28ab89161429dc0221e7e16795961c71cfe66 DIST gentoo-kernel-6.1.179-1.ppc64le.gpkg.tar 62617600 BLAKE2B 56cbd94d9a2200237e7d24f901d3b8e542c9369e216fd9926e7dd41786cdd0c08317b47d21e74f129bba1c91657e50a1f5cc98ee9efb90481ed00a7fa7c343b1 SHA512 93aa507de4b4048371d704fa9f3bbceb8557283e7c788552be6fa5551296bdae5763f45be502127e4ad24305730eba1e154adde69c91dd303254abbe150aad62 DIST gentoo-kernel-6.1.179-1.x86.gpkg.tar 64788480 BLAKE2B e0c3c58de161b40f45f77d0f1ef1403b26dd93979814cf9cea7648480ae11bff5f9aeb5deedef128ee10e98869d3f2aec66460fc524870fdf092190fe284e16f SHA512 a863a7831682b3d6886a13ae20db78e2678b943445aadd5e20968942098f42446bd0c3fce65acfbc94fa4350817a60c92a02ff7d1d3651f34dd0d1a2a40d3fcf +DIST gentoo-kernel-6.12.100-1.amd64.gpkg.tar 326768640 BLAKE2B 170bb0b4389bbd4b9fafc94f94c3e63e04ee0368b0fab1f1ee58b0107a893ea4eb2bfbb1399d18711464f1c2f06794120ec2d412aec1445c3fead2802d720ae5 SHA512 5bb28aadd4aaa147fb0b881e79d8255444351cd08e794881743a2ae19a365e7a397ed84d00ca04bc216e26237f01a0d754fc313c15a9638c21428c6741ac2e9c +DIST gentoo-kernel-6.12.100-1.arm64.gpkg.tar 296294400 BLAKE2B de3d0b0f6151aafde27c7d239c53855c73a66c41de0ff9d46fb815810538be1e6798462fbbd6abf63b11c4fd99c3f960ae61cdfd69e92b63cb966fecbae7131f SHA512 363c4bb89331dfdba8050a45368f1986f697a02e8915d57bdaacf346be037c5323002b894ed6c8c1bb62e87734783db937a128555a68605e51b28ce6dab10832 +DIST gentoo-kernel-6.12.100-1.ppc64le.gpkg.tar 73973760 BLAKE2B 46492bf1be90edea0759ef2b89ef9b1faddaa4599557b2aa494c879819fbfbe9a98c3e038f0fcb0af02ad373b36c9a9207183a9426c2382a3c252d623adc680f SHA512 41ebee5f19bfe01089bf1aec1c53605985502461c1948b953932c777c80184146d6b8b3f41aaa1330d227733c2767cae5c92bce42418a012d99aa3e3be2d4ae9 +DIST gentoo-kernel-6.12.100-1.x86.gpkg.tar 77711360 BLAKE2B 183304bf6f7ad859fd3204b55c9cf68717940ea2d0c3e27daf774fbfbb9b943bd84c0842019f80ebc4ccd745a4478f8e5af0e8633f62ebfe869c066de6308cf5 SHA512 d00b42cb8fbf76491922839f1868e3d1cd1282a1b63c264edb4340e67b09ce2b87559eed9add47d63d5d89e44b064c6cb1d35473f3512d12fde81eae53ea5285 DIST gentoo-kernel-6.12.94_p2-1.amd64.gpkg.tar 326604800 BLAKE2B 9973413a9cb77d6361e71cf5ad00d3b4f73609c711be0bd2f5c6669892035dae9f84e47f5e3518f4b79c8cd91be40dc695eada57cb97a16708dcbc9ae85e5247 SHA512 b58b56ffedbcbfeb0e84d4bcdd0000a4f3e64d050a4d38f9c1acec5f9838f15c966b2b70b9c8cdd0689e522d0fee1428a5ec32cea3c10889244c7cdf87fc3ffb DIST gentoo-kernel-6.12.94_p2-1.arm64.gpkg.tar 296202240 BLAKE2B 34d50e990a8da8d992b08c37c6444cbaa27b4671f81c6e5948006cd9c19055b66f354f1d604279041d366ff88d9715fec29bbf63db0c7200d4ff392fb23eb19c SHA512 94fd1fb6f0b8212f3fc296eae20b21d519251aadb4d9ff9dc6c0745a11b0a8a66dd2b17fcc999c7188874c90f5bb511a6cd91485f76cd9a23e4b261b9179f9cf DIST gentoo-kernel-6.12.94_p2-1.ppc64le.gpkg.tar 73994240 BLAKE2B 2b1d2acbdff3f11cfb1149d984a45b04a11a8f76cd7021a7d575b2f418733de23925c5489b59d35776d2d705f34fd6a6de48210e7272966a5cd6e8dee6e5914a SHA512 a3458aeb83258f0a16720619b00df537f2192d77208f88791cdfe0e5ae9fca77b922fe6d8c5f05d482a70be24fb8888c53453b7b05e4dbefac4c3c3b0cc78aef @@ -72,6 +76,7 @@ DIST linux-gentoo-patches-7.1.3.tar.xz 12076 BLAKE2B 3cc00cd7b7afaab4d9e35d2ae7b DIST linux-gentoo-patches-7.1.5.tar.xz 10484 BLAKE2B 9b65135d72792375660312e27170cf92858c1a5063c38faed02b378dae399d8f119ca3ff1400175c7354d3e14d1b179a96b4087141d6da649b7ce90b3be1af02 SHA512 c496dd761ee462fbad26186c21f5809e6f7c915de17c4dfc9d1b7ff612f9edc45891b7e7b0381d4faaa50091c4699989a89e1162f897bd6f352170157718f94a DIST patch-6.1.177.xz 7632012 BLAKE2B d1c93ff47abb193b430fefe75414af9128c621b2da4538e769eff8728c0035f948e2f5fe245a3633f4f6ec31857f0046aed5e493510c17dd340b434dc66428c7 SHA512 0f5bfce80c44916fe52a9adcda37f568fbc0a2e108f16a11d0b46f1c2d66bf197e1cbfa08bdabd85ac2bbeb4bc751dba7e76fb4d2f70658df7e24bef62cb91c0 DIST patch-6.1.179.xz 7844400 BLAKE2B 9466335d5eeb08e5ba076151129ef1ed5ca6b0d2132f69dddafbac44295e767066a8e9db605c167a9a75b01647da8ab15fac63c221a4863deb362152bf05302c SHA512 1a12f69f0b8b59d90a27e26e447e9c8f2979e70c9927384a87cad7edd3c56e981123cf1b2de73c2bc4524a211792f9094cde9693296b9c8297d41f8dd2bc1a07 +DIST patch-6.12.100.xz 5245604 BLAKE2B c0fb332fb1bb5ed18cd6dfebe40569b975073ed2b2c7101c04bb8c6281a1a0dea999bc6985adc50860233e4c2ca57c394090625bb83a288122a0c3fdc8142ba0 SHA512 09a74ff66e3bdaa9684ef98c0a4e30979bebe319f119b14b87a62bae2f52d995abba4194ce11ea5e02928d140707fdd7e8e2336a376a0507a5aea1c91a55dba4 DIST patch-6.12.94.xz 4823260 BLAKE2B e3db641e9965737f5143714a52277c454fd70664b0a51f627f92a61d438c738e85451611afb60e8476e6d2aacec4f0e9dc009f3b720ac3bd59c54bad438cd8a4 SHA512 5afc7235971df37eb1209798d074469737614fd505f56b7ba0045053de69d35101abb375bf50d0dbe1fd2f211877bbd3353eb922427f7f2958911d1a7203bb08 DIST patch-6.12.96.xz 4953340 BLAKE2B 455d0eb19086f1feb82905ea233d9347595e1e92b1e943913e8f3d534bd2f7242e7ac1fb7781f239090eb606fbf5e308d8a4a0ce8686b430a58a3e33263afc4c SHA512 c112d977ca29d5967fbc6d678491f159ac15b7e3a5b03b7237fc5c4eecb1ef1a9a0e3c20bdeed55a680376990b1c52aadc9e0ad2f7a4f3406a0c1bf66b5771b4 DIST patch-6.12.99.xz 5243940 BLAKE2B 146c6990222b69a092496ec07f9dcc9dbd7a96c68fb05b34651ec510dc02607de19e9f110cbaa9d45f06890b7bf897c202540202120ed5ce220b35ff1f2b3577 SHA512 a5dde5147b5d3195aafff23488fb138b4e076d329aea07c54e5961d04137f1e4594ed442ad189fae468f64a5d2a12ba309a8f27438b9ef9255799f35762a6f1f diff --git a/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.100.ebuild b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.100.ebuild new file mode 100644 index 0000000000000..eac897465f505 --- /dev/null +++ b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.12.100.ebuild @@ -0,0 +1,222 @@ +# 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-6.12.97 +BINPKG=${P/-bin}-1 +SHA256SUM_DATE=20260730 + +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/$(ver_cut 1-2)/${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 + 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-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 +}