diff options
Diffstat (limited to 'sys-kernel/linux')
-rw-r--r-- | sys-kernel/linux/Manifest | 1 | ||||
-rw-r--r-- | sys-kernel/linux/linux-4.13.7-r1.ebuild | 86 |
2 files changed, 87 insertions, 0 deletions
diff --git a/sys-kernel/linux/Manifest b/sys-kernel/linux/Manifest index 843db0f..174e6d9 100644 --- a/sys-kernel/linux/Manifest +++ b/sys-kernel/linux/Manifest @@ -1 +1,2 @@ DIST linux-4.12.13.tar.gz 153599205 SHA256 6923c030fc4d3ed4e877ebf8ee22969c97c42d34efcaed9d780c114d516cd2d0 SHA512 2c380fef7ee193c444b0288be8c904ddedbc9cf6820d44bd71c0280801d467cf00e1f6edf0ff3b8fa6e6cd733fae0afcf938b8caa4eec8311aa361fd0692afca WHIRLPOOL 45fd41506d8f7c95a55f1f43a812ca5f0dad7c1be57c881b149ecb7dd550203d8edf90e497070cc057403df7d8e93d69d70e5287540777694422f342e724d6bc +DIST linux-4.13.7.tar.gz 157409140 SHA256 c071e28e3a28cdf373b399bce62fa01c8f4fdb7142455332c0ab611e712ecfcf SHA512 26e71fb3de70c8db4eb01700067d4809455f24b322b475497b74583dd29487e6b9264a8819fc24a6511290b0abd3a7fa65d17a7c10476eb9d6472d46e2b6a44e WHIRLPOOL 5be211fcf84870ca53805736d6ea564324ea4728c710b41ab2d3e7a9680acddcee6ad9dad237b2e8c1bb46fae6dd5efdb82b05e6685b06974855e5320769e16a diff --git a/sys-kernel/linux/linux-4.13.7-r1.ebuild b/sys-kernel/linux/linux-4.13.7-r1.ebuild new file mode 100644 index 0000000..76579ab --- /dev/null +++ b/sys-kernel/linux/linux-4.13.7-r1.ebuild @@ -0,0 +1,86 @@ +# 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-stable.git/snapshot/linux-stable-${VER}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/linux-stable-${VER}" + +LICENSE="GPLv2" +SLOT="${PV}" +KEYWORDS="amd64 ~x86" +IUSE="" + +DEPEND="sys-devel/bc" +RDEPEND="sys-boot/myinitramfs" + +src_configure() { + # Fix ARCH variable + [ "$ARCH" = "amd64" ] && ARCH="x86" + + "${FILESDIR}"/config_prepare.sh || die "Configuration application failed" +} + +src_install() { + emake modules_install INSTALL_MOD_PATH="${D}" INSTALL_FW_PATH="${D}/lib/firmware/${PV}" + + 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/linux-${PV}" +} + +# 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" + PFIX=".." + elif [ -f "${ROOT}/boot/EFI/BOOT/syslinux.cfg" ]; then + SYSLINUX="${ROOT}/boot/EFI/BOOT/syslinux.cfg" + PFIX="../../.." + else + eerror "Can't locate syslinux configuration!" + fi +} + +pkg_postinst() { + sysfile + # Add label to syslinux config if there is non yet + if ! grep -q "^LABEL gentoo-${PV}$" "${SYSLINUX}"; then + 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 ${PFIX}/bzlinux-${PV}\n\tAPPEND ${ARGS}\n\tINITRD ${PFIX}/initramfs-gentoo\n" "${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 ${PFIX}/bzlinux-${PV}\n\tAPPEND ${ARGS} recovery\n\tINITRD ${PFIX}/initramfs-gentoo\n" "${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() { + sysfile + # Remove label from syslinux config + sed -i "/^LABEL gentoo-${PV}\(\|-recovery\)$/,/^$/d" "${SYSLINUX}" || eerror "Removing label from syslinux fonfiguration failed!" +} + +pkg_postrm() { + src_link +} |