diff options
-rw-r--r-- | sys-kernel/gentoo-kernel-bin/Manifest | 4 | ||||
-rw-r--r-- | sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.11.6.ebuild | 182 |
2 files changed, 186 insertions, 0 deletions
diff --git a/sys-kernel/gentoo-kernel-bin/Manifest b/sys-kernel/gentoo-kernel-bin/Manifest index 206f77982e5a..6c9b59ee2a87 100644 --- a/sys-kernel/gentoo-kernel-bin/Manifest +++ b/sys-kernel/gentoo-kernel-bin/Manifest @@ -72,6 +72,10 @@ DIST gentoo-kernel-6.11.5-r1-1.amd64.gpkg.tar 291328000 BLAKE2B 9c1ba7d9cf2b3457 DIST gentoo-kernel-6.11.5-r1-1.arm64.gpkg.tar 268390400 BLAKE2B 946224df401b5c18884f5bf10379862d2536c672fc7962f0f83eeb1966d897479383ee33a42ef692ef4ad4bef9a750740bebef36ccede5c4a3673635a4aafe0a SHA512 dc7d31cf8387ffacb370ce6db1bf830549c59e7cac744958b353062cc9a143370b80232070a9a32d324f9698f166f81da83fc1d93ac6e8dff103c61a318319f3 DIST gentoo-kernel-6.11.5-r1-1.ppc64le.gpkg.tar 72785920 BLAKE2B 9865a9fab8030c696d8f84dcc471a9bd8432e6cd603b23e6c5e0fd181ae06b8f76255603d02cbe2767fe2449677be80ec4f0488987f56675df4e3dee41ba4a7c SHA512 a3971900701d743619127eaf8b9072e0c6f0b188e744de4433f3edb59f80adec69316682e3e2d2d787c26f891664bd33373d837eb7e205a0219d5602588181ff DIST gentoo-kernel-6.11.5-r1-1.x86.gpkg.tar 76482560 BLAKE2B 44f4af75a2daa8b1433152c8af8e414494b5d23dc9b11aca22529a10c6c28b43350cff31c6420dae0f6df5e8382d41f580f5bff5b05c9c14cd23516d44e8eba0 SHA512 4a6d8ce4e25d541de1096ec2ead561b3f9d7115db7a76e539fa395e058d19adbbf1b59c24380534064f3114b9797d398447c1a5dc2b806217f0bd2c765295837 +DIST gentoo-kernel-6.11.6-1.amd64.gpkg.tar 291389440 BLAKE2B 4c5e3cd6bb1d4c798ee77b73a04488ec946591e4a843c37f1d2349aa05bddd1bf22d3b7840fdb94c7eff0dfe946782820a3145bc4cd983a8d9776bc749020987 SHA512 9ea5c5fcf2fe0c8defaea2e97e97a2fb63d35fb5b2b6edd71d2c7d995aec43eac035fd9e8afdae88a004b53216c4f39d9119b2e1f02df885fae1a75fb5e94966 +DIST gentoo-kernel-6.11.6-1.arm64.gpkg.tar 268462080 BLAKE2B e9ccc0ab604dccbd7a86a07ded8e3c4ef495fdefbdc0146fdd917bff3514a2e83edd293654e347b8b878dc4014c5584fd845a5fb4f3d376a20fe32e18cac9126 SHA512 d02ec12629981d102aaeef96d8fb4dcb8039b680dc580b0174f0802e362361b20c2f02c19e5c9d7b4f8ff5cbee578d6a326398411872e3488ea980d424dd6c5a +DIST gentoo-kernel-6.11.6-1.ppc64le.gpkg.tar 72816640 BLAKE2B 019c29aff28ac2b99886eb68f6b2809d34803dfa1bc82c68e914ede618f2195c9609ab7408bd1748526020f5bcbe5eb504ec232805ea182909fc7dd8d7869132 SHA512 edc9ad35a01b1c2201dd76f550f9773fe10c4e86d1b1bdb610140871ff917f1b813a026f3f46cb62ad467c43f9a87559a1406b17ccb04d5bfafdc80492ddd3b3 +DIST gentoo-kernel-6.11.6-1.x86.gpkg.tar 76472320 BLAKE2B 51b28592911cb54ff06079877e3ba3a198a3ef0e287a011ea89bc406a977a568c1a59927b464cadb1d6955134c72f5ccd1fa0006eb235e3f8e59916607389c43 SHA512 83107ebc4d9149a2e9281c854e42c7930941d0d2d3de227a984616cf73b8c0e495ef009bff3663f0167ac72df79ca3eca59e52b980e18702cbc127c650818621 DIST gentoo-kernel-6.6.57-1.amd64.gpkg.tar 264243200 BLAKE2B 6929ae1df44f7ca9ded205e42ded2f601f6252adec0cebdeedf2f4343a2f4d62c904ffb1b1c30b948dd5928d00ddea93db1382de1e06e8cac71749dc3120fb9b SHA512 a55c92d767adc3186e25d2ea652432f2ecc900e4c2d7da8c83264cddc4661aeb4ccf7c1bfdb801cc53bb166a900ed2045120646fc9018fa89de9d97678827dc3 DIST gentoo-kernel-6.6.57-1.arm64.gpkg.tar 241264640 BLAKE2B 4f3d7c7e1f4027361bb2705e12bade25342e4b38ff933e81bb4708f6eb77e7096da69912a86c12e2e5ed3cacc1c9fe00cfe31ad4e8d46f2fd406c4fa8277eb59 SHA512 68ba3e5736dc0c98fbc8c14b75246063710f504d36cd7aa4ff4c7a7161d0120a67ea0d6d3b5e7162ea734d959b77398396e7b00a833f6056f8ef94c98ee8cd6d DIST gentoo-kernel-6.6.57-1.ppc64le.gpkg.tar 64296960 BLAKE2B d679aebf79ca62f5ff7c01bce794067d74b53fe7b60f42c18a644039fea55ba4de95c2f4a75060d38f276353c037575cea6c98668cfd1ff3adcc26f12dd84973 SHA512 73c659ace206fdbe9b4abf2115670afa2416e36c489f45e332cc8fa136f889590a329acf959df8381fd59191677799b6ff4469052a0368d8c11d5bfc12b9107a diff --git a/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.11.6.ebuild b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.11.6.ebuild new file mode 100644 index 000000000000..e264bcf1bcc9 --- /dev/null +++ b/sys-kernel/gentoo-kernel-bin/gentoo-kernel-bin-6.11.6.ebuild @@ -0,0 +1,182 @@ +# Copyright 2020-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +KERNEL_EFI_ZBOOT=1 +KERNEL_IUSE_GENERIC_UKI=1 +KERNEL_IUSE_SECUREBOOT=1 + +inherit kernel-install toolchain-funcs unpacker + +MY_P=linux-${PV%.*} +GENPATCHES_P=genpatches-${PV%.*}-$(( ${PV##*.} + 1 )) +BINPKG=${PF/-bin}-1 + +DESCRIPTION="Pre-built Linux kernel with Gentoo patches" +HOMEPAGE="https://www.kernel.org/" +SRC_URI+=" + https://cdn.kernel.org/pub/linux/kernel/v$(ver_cut 1).x/${MY_P}.tar.xz + https://dev.gentoo.org/~mpagano/dist/genpatches/${GENPATCHES_P}.base.tar.xz + https://dev.gentoo.org/~mpagano/dist/genpatches/${GENPATCHES_P}.extras.tar.xz + amd64? ( + https://dev.gentoo.org/~mgorny/binpkg/amd64/kernel/sys-kernel/gentoo-kernel/${BINPKG}.gpkg.tar + -> ${BINPKG/-2/-1}.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 +" + +QA_PREBUILT='*' + +KV_LOCALVERSION='-gentoo-dist' +KPV=${PV}${KV_LOCALVERSION} + +src_prepare() { + local PATCHES=( + # meh, genpatches have no directory + "${WORKDIR}"/*.patch + ) + cd "${MY_P}" || die + default +} + +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 + + 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-${KPV}" + local image="${kernel_dir}/$(dist-kernel_get_image_path)" + local uki="${image%/*}/uki.efi" + 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 "${MY_P}" "${makeargs[@]}" modules_prepare +} + +src_test() { + local kernel_dir="${BINPKG}/image/usr/src/linux-${KPV}" + kernel-install_test "${KPV}" \ + "${WORKDIR}/${kernel_dir}/$(dist-kernel_get_image_path)" \ + "${BINPKG}/image/lib/modules/${KPV}" +} + +src_install() { + local rel_kernel_dir=/usr/src/linux-${KPV} + 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 +} |