sys-kernel/vanilla-kernel: Bump to 5.4.6
authorMichał Górny <mgorny@gentoo.org>
Sun, 22 Dec 2019 07:11:53 +0000 (08:11 +0100)
committerMichał Górny <mgorny@gentoo.org>
Sun, 22 Dec 2019 08:16:25 +0000 (09:16 +0100)
Signed-off-by: Michał Górny <mgorny@gentoo.org>
sys-kernel/vanilla-kernel/Manifest
sys-kernel/vanilla-kernel/vanilla-kernel-5.4.6.ebuild [new file with mode: 0644]

index a22511e243014caba477c6a49917ab4c68e9ba75..47bd736b996b3c505b80b343f923f4e8df360516 100644 (file)
@@ -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 (file)
index 0000000..37b591f
--- /dev/null
@@ -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}"
+}