summaryrefslogtreecommitdiff
path: root/sys-kernel/vanilla-kernel
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/vanilla-kernel')
-rw-r--r--sys-kernel/vanilla-kernel/Manifest6
-rw-r--r--sys-kernel/vanilla-kernel/metadata.xml15
-rw-r--r--sys-kernel/vanilla-kernel/vanilla-kernel-5.4.2.ebuild168
-rw-r--r--sys-kernel/vanilla-kernel/vanilla-kernel-5.4.3.ebuild168
4 files changed, 357 insertions, 0 deletions
diff --git a/sys-kernel/vanilla-kernel/Manifest b/sys-kernel/vanilla-kernel/Manifest
new file mode 100644
index 000000000000..b5cd2a53cc26
--- /dev/null
+++ b/sys-kernel/vanilla-kernel/Manifest
@@ -0,0 +1,6 @@
+DIST linux-5.4.1.arch1-1.config 241587 BLAKE2B 71db76bf30a8d7f4dc680399b9f9fbb4236d1938bb86e23eb1ab236a667a959fc1cff788f7e432c43a6173e1bac4e20f3a6c3391d84275d46f1f66bd338bf538 SHA512 34d66658963dbd72fa3e96f2c5d5bccafb781fa14f6ebafe7859953929ba2fbb112f1435ca68cec8389d789cf0efa81d5fc0f5ac6dfa23a704348ab83709e9db
+DIST linux-5.4.2.tar.xz 109441848 BLAKE2B 126e00ef6a084049089f6733e480e68271083cc5f88bd2c64cba198c983c78c3e5f61a9cded8357d1767c4faadec5ab81c1a7231cc65f41913de2820e02a3467 SHA512 42bd0e1887555cf92d424243d85bb39911669da814b0201503319604f1d45f7f0b45d535ee08ca7831f47047db96125496159945c3cd05dac491e0f5e0685854
+DIST linux-5.4.3.tar.xz 109443116 BLAKE2B c874dc8d2fcf344efc6111071e9a54128d5b05fda2aa4ff56b684b68c5b61d58105d3cbf012f7005ed01f8d4350cf23096befc7f9357acbb0d003c5e8dc2bbd7 SHA512 bbdf4179c5263f313aac56a75ebe14da6d05128b27b3d84305743605745bb0ffa872dc6fd349a9f066676ab39ed395e512bb1b27fec47a99d6f002cd25f64ed5
+EBUILD vanilla-kernel-5.4.2.ebuild 4399 BLAKE2B 6ccac31f3c2e00d22626ce457ec4f0184980fec367d3ec25e22cbee5c86ee07afa8900755ef8aac5de152cb1ed1d6e15275f341744d88e8f5517c9b9446b2895 SHA512 63887b5f6b6792e1414c87c1f4f1c1acf84a81fad14cc5f196b5228af9415e56ff98754fce6990df046a2aca4ffe705b12d98f91746d19c60cd094d070cf2733
+EBUILD vanilla-kernel-5.4.3.ebuild 4399 BLAKE2B 6ccac31f3c2e00d22626ce457ec4f0184980fec367d3ec25e22cbee5c86ee07afa8900755ef8aac5de152cb1ed1d6e15275f341744d88e8f5517c9b9446b2895 SHA512 63887b5f6b6792e1414c87c1f4f1c1acf84a81fad14cc5f196b5228af9415e56ff98754fce6990df046a2aca4ffe705b12d98f91746d19c60cd094d070cf2733
+MISC metadata.xml 441 BLAKE2B 7d55a49726dea1d59869898efec62705613c5096b6e52fccd390557db187f6d393cfd8ee0e14d925824eaff9c9426ed4fbee135e0318372c1a16daee41c7a098 SHA512 fe68ddebf6b7ec810bd1748fea879064b19d0415dc45634cf9f624562eb9072b7c40d908c6861cc7ced295d5da0522ed193794c5d5a764bd5a0dd58f255cc337
diff --git a/sys-kernel/vanilla-kernel/metadata.xml b/sys-kernel/vanilla-kernel/metadata.xml
new file mode 100644
index 000000000000..cd6a1d015181
--- /dev/null
+++ b/sys-kernel/vanilla-kernel/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>zlogene@gentoo.org</email>
+ <name>Mikle Kolyada</name>
+ </maintainer>
+ <use>
+ <flag name='initramfs'>Build initramfs along with the kernel.</flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-kernel/vanilla-kernel/vanilla-kernel-5.4.2.ebuild b/sys-kernel/vanilla-kernel/vanilla-kernel-5.4.2.ebuild
new file mode 100644
index 000000000000..ef5bf85d7eb6
--- /dev/null
+++ b/sys-kernel/vanilla-kernel/vanilla-kernel-5.4.2.ebuild
@@ -0,0 +1,168 @@
+# 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.1.arch1-1
+CONFIG_HASH=d6bbb261bd2c8f83b9c93041dae9aa4175e20e6e
+
+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"
+
+ # TODO: update /usr/src/linux symlink?
+ 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}"
+}
diff --git a/sys-kernel/vanilla-kernel/vanilla-kernel-5.4.3.ebuild b/sys-kernel/vanilla-kernel/vanilla-kernel-5.4.3.ebuild
new file mode 100644
index 000000000000..ef5bf85d7eb6
--- /dev/null
+++ b/sys-kernel/vanilla-kernel/vanilla-kernel-5.4.3.ebuild
@@ -0,0 +1,168 @@
+# 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.1.arch1-1
+CONFIG_HASH=d6bbb261bd2c8f83b9c93041dae9aa4175e20e6e
+
+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"
+
+ # TODO: update /usr/src/linux symlink?
+ 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}"
+}