diff options
author | Karel Kočí <cynerd@email.cz> | 2021-06-04 22:30:37 +0200 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2021-06-04 22:30:37 +0200 |
commit | 35a721a6c3cd77ccc56de7d6002e6b9475c224bf (patch) | |
tree | 485bfedef424b950189e1c91815d2e8c0c76f208 /sys-kernel/linux/linux-5.12.9-r1.ebuild | |
parent | 252f2d419c3a86221f7cd3bbc2d4bae5b5feb799 (diff) | |
download | gentoo-personal-overlay-35a721a6c3cd77ccc56de7d6002e6b9475c224bf.tar.gz gentoo-personal-overlay-35a721a6c3cd77ccc56de7d6002e6b9475c224bf.tar.bz2 gentoo-personal-overlay-35a721a6c3cd77ccc56de7d6002e6b9475c224bf.zip |
sys-kernel/linux: update to 5.12.9
Diffstat (limited to 'sys-kernel/linux/linux-5.12.9-r1.ebuild')
-rw-r--r-- | sys-kernel/linux/linux-5.12.9-r1.ebuild | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/sys-kernel/linux/linux-5.12.9-r1.ebuild b/sys-kernel/linux/linux-5.12.9-r1.ebuild new file mode 100644 index 0000000..28f2079 --- /dev/null +++ b/sys-kernel/linux/linux-5.12.9-r1.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +VER="${PV%-r*}" +REV="r${PV##*-r}" + +DESCRIPTION="Linux kernel" +HOMEPAGE="http://kernel.org/" +SRC_URI="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-${VER}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/linux-${VER}" + +LICENSE="GPLv2" +SLOT="${PV}" +KEYWORDS="amd64 ~x86" +IUSE="amd intel initramfs ucode" + +RDEPEND="initramfs? ( sys-boot/myinitramfs )" +DEPEND=" + sys-devel/bc + dev-libs/elfutils + dev-util/dwarves +" + +src_configure() { + # Fix ARCH variable + [ "$ARCH" = "amd64" ] && ARCH="x86" + + "${FILESDIR}"/config_prepare.sh $(usev amd) $(usev intel) \ + || die "Configuration application failed" +} + +src_install() { + emake modules_install INSTALL_MOD_PATH="${D}" + for dir in "build" "source"; do + rm "${D}/lib/modules/${PV}/$dir" + ln -sf "../../../usr/src/${P}" "${D}/lib/modules/${PV}/$dir" + done + + dodir /boot + insinto /boot + newins "${S}/arch/$ARCH/boot/bzImage" "bzlinux-${PV}" + + # Package source (kind of annoying because of some packages expecting it) + emake clean + dodir /usr/src + cp -a "${S}" "${D}/usr/src/${P}" +} + +# Link /usr/src/linux to newest kernel +src_link() { + ( + cd "${ROOT}/usr/src" + rm -f linux + ln -s $(ls | grep "linux-" | sort | tail -1) linux + ) +} + +sysfile() { + if [ -f "${ROOT}/boot/syslinux/syslinux.cfg" ]; then + SYSLINUX="${ROOT}/boot/syslinux/syslinux.cfg" + elif [ -f "${ROOT}/boot/EFI/BOOT/syslinux.cfg" ]; then + SYSLINUX="${ROOT}/boot/EFI/BOOT/syslinux.cfg" + elif [ -f "${ROOT}/boot/extlinux.conf" ]; then + SYSLINUX="${ROOT}/boot/extlinux.conf" + else + eerror "Can't locate syslinux configuration!" + fi +} + +pkg_postinst() { + # Add label to syslinux config if there is non yet + sysfile + if ! grep -q "^LABEL gentoo-${PV}$" "${SYSLINUX}"; then + if $(use initramfs); then + if $(use ucode); then + INITRD="\tINITRD /ucode.cpio,/initramfs-gentoo\n" + else + INITRD="\tINITRD /initramfs-gentoo\n" + fi + fi + ARGS="$(grep -E "^# ARGS: " "${SYSLINUX}" | sed 's/^# ARGS: //')" + if [ -n "$ARGS" ]; then + sed -i "/^## Dynamic labels ##$/a LABEL gentoo-${PV}\n\tMENU LABEL Gentoo ${PV}\n\tLINUX /bzlinux-${PV}\n\tAPPEND ${ARGS}\n$INITRD" "${SYSLINUX}" || eerror "Adding label to syslinux configuration failed!" + sed -i "/^## Dynamic recovery labels ##$/a LABEL gentoo-${PV}-recovery\n\tMENU LABEL Gentoo ${PV} - Recovery\n\tLINUX /bzlinux-${PV}\n\tAPPEND ${ARGS} recovery\n$INITRD" "${SYSLINUX}" || eerror "Adding recovery label to syslinux configuration failed!" + else + eerror "Adding label to syslinux configuration failed as there are no arguments" + fi + fi + + src_link +} + +pkg_prerm() { + # Remove label from syslinux config + sysfile + sed -i "/^LABEL gentoo-${PV}\(\|-recovery\)$/,/^$/d" "${SYSLINUX}" || eerror "Removing label from syslinux fonfiguration failed!" +} + +pkg_postrm() { + # Remove any residue files + rm -rf "/usr/src/${P}" "/lib/modules/${PV}" + + src_link +} |