diff options
| -rw-r--r-- | sys-kernel/gentoo-kernel-bin/Manifest | 5 | ||||
| -rw-r--r-- | sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.6.106.ebuild | 237 |
2 files changed, 242 insertions, 0 deletions
diff --git a/sys-kernel/gentoo-kernel-bin/Manifest b/sys-kernel/gentoo-kernel-bin/Manifest index 6e7b198dd792..21dac58a15e7 100644 --- a/sys-kernel/gentoo-kernel-bin/Manifest +++ b/sys-kernel/gentoo-kernel-bin/Manifest @@ -138,6 +138,10 @@ DIST gentoo-kernel-6.6.105-1.amd64.gpkg.tar 274247680 BLAKE2B 81953f1fb5b120696e DIST gentoo-kernel-6.6.105-1.arm64.gpkg.tar 247091200 BLAKE2B 06661ef10e253e9851e82c8af59e02a3b259beee6174220853af8f0d26cd06c9ea022ad2ad2ed771bfedcf52c4d431a0cb9a4f82bff6d630d6ff892e8b572e49 SHA512 94a90d9fb2a72a349d77fcd612096c0b5be21436738f068b983fb09350b2d63f162265cce3e1c96e48be4ab768927b4744541a6c63dcb54956e446b0955f63f4 DIST gentoo-kernel-6.6.105-1.ppc64le.gpkg.tar 64450560 BLAKE2B da0bf9071ebec45aed69579ac0e32d7f0d587fc7e59dd992e62de72f0525d5e9c34eb7962ac2ae3f20b1a11a89c20bef506d34df3c9bbd291e068aa643a7e18c SHA512 3d92421bbb930d1fb906092688107fd2df0d3838d75be5509f06356abfa576bd3dc46f0b7cc642c50a9b6ab402fc86158aa786aa2945f337965e710cfbb3dbce DIST gentoo-kernel-6.6.105-1.x86.gpkg.tar 68669440 BLAKE2B 3109d6b55e39b4077cd5023202646525c900f94c0f2d0a2b6fb6b5bccb1fd6d244a489820e9e4c58ba05beb0c36bfaa5236d35dc233484de525b3a528cfbb368 SHA512 31798042f352d8ec61e2bec354d20784eb52ab4c8617ace4d65dfcaea1e736dd0d536404207dd3638037ce798ca59ba0758602e7fafa79edbe269d325cf86d53 +DIST gentoo-kernel-6.6.106-1.amd64.gpkg.tar 274186240 BLAKE2B 05486cd1758f0b513fb30d2896e444c6c3f5e8573503de541c1b9104092318a74afab4fc57fc039e9fd27502b03484ff52708967de2ab0651cbe167850677b6a SHA512 f202fa9d352b774c4e46ec32266985056555a4c3f3f1bf2e0e0bef162a180d8aea8ec452e779ae2bfb75686fb948a99f5b743752c299eac9f6bdfcb71be3cf7a +DIST gentoo-kernel-6.6.106-1.arm64.gpkg.tar 247060480 BLAKE2B a4c4785e593e31b0705358a636aa368f1298fa1e64a3b758254eedf9f11263f8d189bd154b5200a949da9c39a91437ea480a0916e2e0b45da00e9c8c33455a32 SHA512 5b7face37f729e08159cb36f644ef491beca325ee96948cdc23bfe3c506861027439b20da53a50ec6c84e1e2159000edb219bdd94a262cecd5bf13473ad4ce63 +DIST gentoo-kernel-6.6.106-1.ppc64le.gpkg.tar 64440320 BLAKE2B acf1cb12c3aaddb7968be139ee03b2759b6963f42091da4bddfab48f9128326ae3e797309d685096d17594dd4124eba84fa674dd77d12bf9d1a7b05eeb292a42 SHA512 524abd19947ce7e0972ce27188e870299622da7142f25957a8c1ee33cb1e5cd6953b98413b009e9c8a394933588d52a3d8cc3d9dca0aaa852598d5a20a9fc9f9 +DIST gentoo-kernel-6.6.106-1.x86.gpkg.tar 68689920 BLAKE2B 06c01d6e25aa06181591d4c24bd409b1667e0e526bd920301b6d0af39bfb6988dee89df358c4efe6330eab8e9af61375f0343083bf6959b97612f8f11a8cee2a SHA512 7d34f1e3a819d4dde5b810c5de5840189c51f5317a9fcde12b07e0145e88899b8502439e5162373a4772c49839925943335c29809bbf020d36c50dd5e4d32485 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-20250717.asc 364595 BLAKE2B 75abc4c666dede398ee54a7323380496f75cecb9439261305a60200169430544eaec7bc9e6ee3d4b1beb667d51cb6c858ebe109e3a9446667e9b1793298aef08 SHA512 1d52b1dfc0da4d287f4d1d02bb05a38c24f5505002c567bedc48b4bfd523a2135bdaa8e103c75e7bf521d356b66e7b36009054a792d8eaf3034ae1ef09fe3ff2 @@ -209,3 +213,4 @@ DIST patch-6.6.102.xz 4713208 BLAKE2B 8790f52d46e96c3e4ac88e883dd9bb1875abef3ca0 DIST patch-6.6.103.xz 4835452 BLAKE2B 477d10f8cc23326a6c6d195529327546d3addf11436c6696ce4f3b1c8bae1622f04da0abb6cd257126db4fe44408466b94a16400ce8b29b98421297cb0e0f91f SHA512 305eb896563c19b6d9cd9a4faddd7b39b41a651f64dfee017364cd18c962f6e1c1840e8350532d13007afbe5d89bdfb8a982c328586ce1d2e7e3f199836654aa DIST patch-6.6.104.xz 4851576 BLAKE2B 80d56cbc928370fc31c79cae2d0d5381fe784df2b08d6ac0c921ca328f81adea365eac545765b8bf69cb92a7d97a398bfc9cb02f1f643689e3f02c541e925d37 SHA512 bc16cde26764f633b6053df1d5c569698e41b7afb887a377ca8c935ee4d59e0e800cbb6aa0031ff386afe7f4990de9653aa9c03940425adfdc35600b5715edc5 DIST patch-6.6.105.xz 4877884 BLAKE2B 9dc3abb2ac9f503455c1d16fcc5eba756d79c26624e02a4d0562d51503ea07e6863000a1bea22261b5123874282a7d93b16d42a0e38bc9d7d145c3d2976b9dff SHA512 9a4e8a820b54093af64d88053cde950caea2ea01eb85806afa28e835097b506c774b466d76ac276ef0e7e5f487485911473e5ab34fb4dbd5cc2b115b7ae76b1e +DIST patch-6.6.106.xz 4880660 BLAKE2B 3205119e8c10be006eb9f5c455a6fd2cec6b98f351e5e9983c6303f11b5f8822f73ede0dbc95c390736ddbd90bd2ca6383e3737618d108ffe3637d38dafad762 SHA512 e4a2bbd7c0f6a5a875fe4bdb1fbc82ff54a7d8a37f0c8cf04e6222a2be3d4579458bcbd87736b9fc95058f79a5181a381d40dc4d5b69761378eae29dc30349bc diff --git a/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.6.106.ebuild b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.6.106.ebuild new file mode 100644 index 000000000000..1ee9a7071e2b --- /dev/null +++ b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.6.106.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.105 +BINPKG=${P/-bin}-1 +SHA256SUM_DATE=20250911 + +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-${PATCH_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 +} |
