From 3e870804e31a2e2a937512d3ce155c59b4f0e315 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sun, 22 Dec 2019 08:11:53 +0100 Subject: [PATCH] sys-kernel/vanilla-kernel: Bump to 5.4.6 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- sys-kernel/vanilla-kernel/Manifest | 1 + .../vanilla-kernel-5.4.6.ebuild | 181 ++++++++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 sys-kernel/vanilla-kernel/vanilla-kernel-5.4.6.ebuild diff --git a/sys-kernel/vanilla-kernel/Manifest b/sys-kernel/vanilla-kernel/Manifest index a22511e24301..47bd736b996b 100644 --- a/sys-kernel/vanilla-kernel/Manifest +++ b/sys-kernel/vanilla-kernel/Manifest @@ -3,3 +3,4 @@ DIST linux-5.4.2.tar.xz 109441848 BLAKE2B 126e00ef6a084049089f6733e480e68271083c DIST linux-5.4.3.tar.xz 109443116 BLAKE2B c874dc8d2fcf344efc6111071e9a54128d5b05fda2aa4ff56b684b68c5b61d58105d3cbf012f7005ed01f8d4350cf23096befc7f9357acbb0d003c5e8dc2bbd7 SHA512 bbdf4179c5263f313aac56a75ebe14da6d05128b27b3d84305743605745bb0ffa872dc6fd349a9f066676ab39ed395e512bb1b27fec47a99d6f002cd25f64ed5 DIST linux-5.4.4.arch1-1.config 241587 BLAKE2B 71db76bf30a8d7f4dc680399b9f9fbb4236d1938bb86e23eb1ab236a667a959fc1cff788f7e432c43a6173e1bac4e20f3a6c3391d84275d46f1f66bd338bf538 SHA512 34d66658963dbd72fa3e96f2c5d5bccafb781fa14f6ebafe7859953929ba2fbb112f1435ca68cec8389d789cf0efa81d5fc0f5ac6dfa23a704348ab83709e9db DIST linux-5.4.5.tar.xz 109435988 BLAKE2B 881ff4047a404b7754fc56f16b6a4ab66ba6beb4ef6d8c2601f99c57ac47b0d6f52de95aafbd8346e0fce6fc5fa63cb60aa7876d1f5f4ad9344e8a659941bf22 SHA512 462bddae3e0410f8a65393631fac4bcde19def55a21890d88ed4929948cbbb95ec4d3a310f507c71588269598c518b0072f2fc536be116337b627da6ae151e5e +DIST linux-5.4.6.tar.xz 109454640 BLAKE2B 8619492fedd4ae489a811561f72285b69deb827bb1db1f65be2a128d3bcbb69bdeec6b73650e1e8f72b18e5016c2df092bc77ee38be756d35f2903ecf0db1687 SHA512 9e1153e80303d6d5016856a25f3757259a3a428bad11208192315088d1f1a09957f5b8e966ab8cb5842ce1a740760f87474066294f8b410e9c44c810838bcdac diff --git a/sys-kernel/vanilla-kernel/vanilla-kernel-5.4.6.ebuild b/sys-kernel/vanilla-kernel/vanilla-kernel-5.4.6.ebuild new file mode 100644 index 000000000000..37b591ff1c59 --- /dev/null +++ b/sys-kernel/vanilla-kernel/vanilla-kernel-5.4.6.ebuild @@ -0,0 +1,181 @@ +# Copyright 2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit mount-boot savedconfig toolchain-funcs + +MY_P=linux-${PV} +CONFIG_VER=5.4.4.arch1-1 +CONFIG_HASH=f101331956bb37080dce191ca789a5c44fac9e69 + +DESCRIPTION="Linux kernel built from vanilla upstream sources" +HOMEPAGE="https://www.kernel.org/" +SRC_URI="https://cdn.kernel.org/pub/linux/kernel/v5.x/${MY_P}.tar.xz + https://git.archlinux.org/svntogit/packages.git/plain/trunk/config?h=packages/linux&id=${CONFIG_HASH} + -> linux-${CONFIG_VER}.config" +S=${WORKDIR}/${MY_P} + +LICENSE="GPL-2" +SLOT="${PV}" +KEYWORDS="~amd64" +IUSE="+initramfs" + +# install-DEPEND actually +# note: we need installkernel with initramfs support! +RDEPEND=" + || ( + sys-kernel/installkernel-gentoo + sys-kernel/installkernel-systemd-boot + ) + initramfs? ( sys-kernel/dracut )" + +pkg_pretend() { + mount-boot_pkg_pretend + + ewarn "This is an experimental package. The built kernel and/or initramfs" + ewarn "may not work at all or fail with your bootloader configuration. Please" + ewarn "make sure to keep a backup kernel available before testing it." +} + +src_configure() { + # force ld.bfd if we can find it easily + local LD="$(tc-getLD)" + if type -P "${LD}.bfd" &>/dev/null; then + LD+=.bfd + fi + + MAKEARGS=( + V=1 + + HOSTCC="$(tc-getCC)" + HOSTCXX="$(tc-getCXX)" + HOSTCFLAGS="${CFLAGS}" + HOSTLDFLAGS="${LDFLAGS}" + + AS="$(tc-getAS)" + CC="$(tc-getCC)" + LD="${LD}" + AR="$(tc-getAR)" + NM="$(tc-getNM)" + STRIP=":" + OBJCOPY="$(tc-getOBJCOPY)" + OBJDUMP="$(tc-getOBJDUMP)" + + # we need to pass it to override colliding Gentoo envvar + ARCH=x86 + ) + + cp "${DISTDIR}"/linux-${CONFIG_VER}.config .config || die + # while Arch config is cool, we don't want gcc plugins as they + # break distcc + sed -i -e '/GCC_PLUGIN/d' .config || die + # module compression prevents us from stripping them post-inst + sed -i -e '/MODULE_COMPRESS/d' .config || die + # shove our theft under the carpet! + sed -i -e '/HOSTNAME/s:archlinux:gentoo:' .config || die + restore_config .config + + mkdir -p "${WORKDIR}"/modprep || die + mv .config "${WORKDIR}"/modprep/ || die + emake O="${WORKDIR}"/modprep "${MAKEARGS[@]}" olddefconfig + emake O="${WORKDIR}"/modprep "${MAKEARGS[@]}" modules_prepare + cp -pR "${WORKDIR}"/modprep "${WORKDIR}"/build || die +} + +src_compile() { + emake O="${WORKDIR}"/build "${MAKEARGS[@]}" all +} + +src_test() { + : +} + +src_install() { + # do not use 'make install' as it behaves differently based + # on what kind of installkernel is installed + emake O="${WORKDIR}"/build "${MAKEARGS[@]}" \ + INSTALL_MOD_PATH="${ED}" modules_install + + # install headers and prepared objects on top of them + # note: we're using mv rather than doins to save space and time + find -name '*.c' -delete || die + rm -r Documentation || die + dodir /usr/src + cd "${WORKDIR}" || die + mv "${S}" "${ED}"/usr/src/ || die + # strip out-of-source build stuffs from modprep + find modprep -type f '(' \ + -name Makefile -o \ + -name '*.[ao]' -o \ + '(' -name '.*' -a -not -name '.config' ')' \ + ')' -delete || die + rm modprep/source || die + cp -pR modprep/. "${ED}/usr/src/linux-${PV}"/ || die + + # install the kernel and files needed for module builds + cp build/{arch/x86/boot/bzImage,System.map,Module.symvers} \ + "${ED}/usr/src/linux-${PV}"/ || die + + # fix source tree and build dir symlinks + dosym ../../../usr/src/linux-${PV} /lib/modules/${PV}/build + dosym ../../../usr/src/linux-${PV} /lib/modules/${PV}/source + + save_config build/.config +} + +pkg_preinst() { + : +} + +pkg_postinst() { + if [[ -z ${ROOT} ]]; then + mount-boot_pkg_preinst + + local fail= + + if use initramfs; then + ebegin "Building initramfs via dracut" + # putting it alongside kernel image as 'initrd' makes + # kernel-install happier + dracut --force "${EROOT}/usr/src/linux-${PV}/initrd" "${PV}" + eend || die "Building initramfs failed" + fi + + ebegin "Installing the kernel via installkernel" + # note: .config is taken relatively to System.map; + # initrd relatively to bzImage + installkernel "${PV}" \ + "${EROOT}/usr/src/linux-${PV}/bzImage" \ + "${EROOT}/usr/src/linux-${PV}/System.map" + eend || fail=1 + + [[ ${fail} ]] && die "Installing the kernel failed" + fi + + local symlink_target=$(readlink "${EROOT}"/usr/src/linux) + if [[ ${symlink_target} == linux-[0-9]* ]]; then + local symlink_ver=${symlink_target#linux-} + local symlink_pkg=${CATEGORY}/${PN}-${symlink_ver} + # if the current target is either being replaced, or still + # installed (probably depclean candidate), update the symlink + if has "${symlink_ver}" ${REPLACING_VERSIONS} || + has_version -r "~${symlink_pkg}" + then + ebegin "Updating /usr/src/linux symlink" + ln -f -n -s linux-${PV} "${EROOT}"/usr/src/linux + eend + fi + fi + + savedconfig_pkg_postinst +} + +pkg_prerm() { + : +} + +pkg_postrm() { + rm -f "${EROOT}/usr/src/linux-${PV}/initrd" && + rmdir --ignore-fail-on-non-empty "${EROOT}/usr/src/linux-${PV}" +} -- 2.26.2