summaryrefslogtreecommitdiff
path: root/app-emulation/virtualbox-modules
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /app-emulation/virtualbox-modules
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'app-emulation/virtualbox-modules')
-rw-r--r--app-emulation/virtualbox-modules/Manifest14
-rwxr-xr-xapp-emulation/virtualbox-modules/files/create_vbox_modules_tarball.sh29
-rw-r--r--app-emulation/virtualbox-modules/files/virtualbox-modules-4.1.4-pax-const.patch44
-rw-r--r--app-emulation/virtualbox-modules/files/virtualbox-modules-5.1.30-udp.patch35
-rw-r--r--app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch44
-rw-r--r--app-emulation/virtualbox-modules/files/virtualbox.conf4
-rw-r--r--app-emulation/virtualbox-modules/metadata.xml12
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-5.1.36.ebuild60
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-5.1.38.ebuild56
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-5.2.12.ebuild51
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-5.2.14.ebuild51
11 files changed, 400 insertions, 0 deletions
diff --git a/app-emulation/virtualbox-modules/Manifest b/app-emulation/virtualbox-modules/Manifest
new file mode 100644
index 000000000000..8c56c09ee6ae
--- /dev/null
+++ b/app-emulation/virtualbox-modules/Manifest
@@ -0,0 +1,14 @@
+AUX create_vbox_modules_tarball.sh 896 BLAKE2B 4153a8fa67cd8fe7187f3c4232691b1ded8e51315f41292f9fcc0adb294e9b235b0c2f1e91f6f728076ab85f687ea1ba2877dc44b511eaceb24e7d6e71a8bbd4 SHA512 c3154a13550817c581fa142e24081edfbdbc145315d34cc4569d12ad87a518fa0bf1443c053b50fdfdea6915bda1325ad973455ee85079294b83a49fd53f4771
+AUX virtualbox-modules-4.1.4-pax-const.patch 1729 BLAKE2B 3cada201a2bfde671c073ad49ddd239f90fa2c5338e698b35226e2ac88b4773549a216daa1caeca432e151f892974950dac5defdf91a87916e037d56d5972f5b SHA512 efca9213ace1076e354e168fa3d92da683b2dc27e5306b60452da74cb7f5a024a92033dd07d3559bca70f972aec86be3f0ed186dd951161096df2bcd9e390abe
+AUX virtualbox-modules-5.1.30-udp.patch 1239 BLAKE2B d49d96894bae2fdedc2b8a825c849a99ad0cf36a92cc4d89881ce72a0b7ebd53174f39e298c119670654932b790113fe7fbc3a3bae552f2c597cad20a370141f SHA512 f22e6c8edc360e0f97b207ba9a046042ef1898c10c724d9519badef004858720040caef12bffa1ed0f07517ae2d0b831973a0e4ef8ffb239a26faf62706b0618
+AUX virtualbox-modules-5.2.8-pax-const.patch 1728 BLAKE2B 1a2e8c5946af5abcf443c8cea08a6dbe78f75dd89aa072ac2ac0d745e598e8195ef321eaee53d31bedf52013d94efc046863e65c9fac0d61a507b292b04c7fb9 SHA512 600fd557992efb1fb5db9db64914becd5a86f81a42d70bbc3823533df941881f2289a6ccf630adb8346419499dd48b84ed43c21d0aba183a780daa99fcafddbd
+AUX virtualbox.conf 38 BLAKE2B 853f2ba0ac1627100241e778fa6c35ff4fc86e8c9c753f8aa23cb053ffacf966c131c5630d1fafd481d7b057acc3e9d6f8f1a22766db5d1cf61fffa38de7c01b SHA512 b61936fff57426d31efa6928eadb572cafe40a65d3e31a0eecb53dc784ba9d0a9e0ad5e419df74418b977f89c17873240c38e2ada95949e5252d879110d6094a
+DIST vbox-kernel-module-src-5.1.36.tar.xz 628368 BLAKE2B 49a3dfc4ff573f793eefcfd9b645af6fa6fc63b54475921064be146d3d4bf4db61f48d82f62d65811597fa12b88331153f7491890527fde76f41426355552abb SHA512 c69739c72a5555fc3bca90186129fa4eeb5bd930c4396b416a8a88e6f84bcd9e7498a9bbc9381da648cf87d601d98249feac2e4de6d93d8b7aba46b22d3ec40f
+DIST vbox-kernel-module-src-5.1.38.tar.xz 628552 BLAKE2B 9faa4e837a48ac27be5c0183edcf2b39c08eeab210bd39811704a7a578a93b28f8b8ecf26a34483f2d135a8cb8817756120d7bef0b8de245c5a5e232cfebfff0 SHA512 36311c3ff947fa763db1fc0612c5a4c10ac3d586c3faab3a91e463723488510cedfc1a69696381158a167edfc86d7abf66c18b287ced75cbaba3f1797c4265a8
+DIST vbox-kernel-module-src-5.2.12.tar.xz 637292 BLAKE2B 31b54c8de560a30d228497f5a3f58f868ad09e18051f8fac2257200e324603c5fdfe127d530997f7dae728d13d93ced6321487f20571811352bfbbf1f9c6d646 SHA512 7408e8121bf278050728461d4f7ab4d4b6c502b24859573d4652a58d1058e9b12a4de4b582ce45f7d0b12bf369a7378107c2cab12a6e93b1b082a40d1f2e9712
+DIST vbox-kernel-module-src-5.2.14.tar.xz 637352 BLAKE2B 7ccefbb13f25fe995e0f769192a93baa91358c09e7126d6a6c8bef7fceeab50082f78843140d23cf88c4931c561552c4131b17625e7a3821766571387d78d2a3 SHA512 920eca67fb10ed4d1eeab95b14e65c585dd96df82a4690c34c9d85366ec6dd9835f9a772eb4718a80e6ffb2637de2a698151a6bdfd7984fc2070cd0bade5c077
+EBUILD virtualbox-modules-5.1.36.ebuild 1431 BLAKE2B 9ea7afbf141d43d3c6a22d5bb934bddb1c67a6afa69d65ac905df930cde73d5c8b921b11f4954e3577b6b63a1b1c156d23c97c9aaceeb2fd51be75d81df1d936 SHA512 e5becf1d7298567966b7653b73e3245a9db59b3eca1659890b004d8116a1c150e8c7042a81bb7fd9c0757328895dfe12c39baee9a49375110903d83f6422c988
+EBUILD virtualbox-modules-5.1.38.ebuild 1350 BLAKE2B abf66852d4f907de436721b8c8f06dfd3c3676a0676d6e569147e01aced9b6f5492c9e9a2ddaee5798b38aba0fbc8d812179427d8eb7c45e732ef9093542d40f SHA512 e09b4178d5e20260cdd59597c514a4cc7d78b8caa8e126248f213f3bb4a665762216f07076efb6e81b822920a80c09979a94df11a952488397ced662f8862108
+EBUILD virtualbox-modules-5.2.12.ebuild 1195 BLAKE2B 06cf73894136a6dfe80f0cb7b32850bba3590cf72aa23369801bc4f58f7d96d109cb88d4c84d0c00c7bca8b5b17671b5e1478279a79bc7f642b5f3faf4fede3f SHA512 a12223da83f398dacc597d9ff7d0a0592809acfc5033300ead3e5f1ad4672b1527138418db0bc9f16879456d9f136618952e324d42b22645416564942d5649b1
+EBUILD virtualbox-modules-5.2.14.ebuild 1199 BLAKE2B 467a7073743e16f5efb3e1a68402bad71bbe6afef8c9ae9f56e2029ea4d517eeafc46576e8149899f8c63cd6fee30e1e20d179006174714309eb4eab29bbe431 SHA512 67ca645212bd521d7655e38c390d346299ecf13e7485e7a269fe1891eebcdccf98c02cd4832ba563c449a9dbf3b11e9d242b1a2c5be6bc7bfb741282186087f5
+MISC metadata.xml 353 BLAKE2B d7de13b3a8966ab3bca54ae77f7f6c7dfd57f2c5941f09ab1b5f79ac798687ffaaa183afdf9c034a9d50fda8507a3aaa2ef0c11d0fdfa6e09a55a1bdb9f30f4a SHA512 40029c9a246dde5ed51119f42ec5448b7ae08a47ee4d6be201fef282305c809d7d3182abf807dd2444ffe1a980abcd670878567d948bcd3661a55c6848a37000
diff --git a/app-emulation/virtualbox-modules/files/create_vbox_modules_tarball.sh b/app-emulation/virtualbox-modules/files/create_vbox_modules_tarball.sh
new file mode 100755
index 000000000000..756d243542bc
--- /dev/null
+++ b/app-emulation/virtualbox-modules/files/create_vbox_modules_tarball.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Create a virtualbox modules tarball from a VirtualBox binary package.
+# We cannot download the package by this script because of the unpredictable
+# build number being in the filename.
+#
+# usage: create_vbox_modules_tarball.sh VirtualBox-4.1.18-78361-Linux_amd64.run
+
+[ -f "$1" ] || exit 1
+
+VBOX_PACKAGE="$1"
+VERSION_SUFFIX=""
+
+if [[ ${VBOX_PACKAGE} = *_BETA* ]] || [[ ${VBOX_PACKAGE} = *_RC* ]] ; then
+ VERSION_SUFFIX="$(echo ${VBOX_PACKAGE} | sed 's@.*VirtualBox-[[:digit:]\.]\+\(_[[:alpha:]]\+[[:digit:]]\).*@\L\1@')"
+
+fi
+
+VBOX_VER="$(echo ${VBOX_PACKAGE} | sed 's@.*VirtualBox-\([[:digit:]\.]\+\).*@\1@')${VERSION_SUFFIX}"
+
+
+sh ${VBOX_PACKAGE} --noexec --keep --nox11 || exit 2
+cd install || exit 3
+tar -xaf VirtualBox.tar.bz2 || exit 4
+cd src/vboxhost || exit 5
+tar -cvJf ../../../vbox-kernel-module-src-${VBOX_VER}.tar.xz . || exit 6
+cd ../../.. && rm install -rf
+
+exit 0
diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-4.1.4-pax-const.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-4.1.4-pax-const.patch
new file mode 100644
index 000000000000..f9878848ae13
--- /dev/null
+++ b/app-emulation/virtualbox-modules/files/virtualbox-modules-4.1.4-pax-const.patch
@@ -0,0 +1,44 @@
+--- vboxdrv/SUPDrvIDC.h
++++ vboxdrv/SUPDrvIDC.h
+@@ -160,7 +160,7 @@ typedef struct SUPDRVIDCREQGETSYM
+ {
+ /** The symbol address. */
+ PFNRT pfnSymbol;
+- } Out;
++ } __no_const Out;
+ } u;
+ } SUPDRVIDCREQGETSYM;
+ /** Pointer to a SUPDRV IDC get symbol request. */
+--- vboxnetflt/include/VBox/intnet.h
++++ vboxnetflt/include/VBox/intnet.h
+@@ -783,7 +783,7 @@ typedef struct INTNETTRUNKFACTORY
+ DECLR0CALLBACKMEMBER(int, pfnCreateAndConnect,(struct INTNETTRUNKFACTORY *pIfFactory, const char *pszName,
+ PINTNETTRUNKSWPORT pSwitchPort, uint32_t fFlags,
+ PINTNETTRUNKIFPORT *ppIfPort));
+-} INTNETTRUNKFACTORY;
++} __no_const INTNETTRUNKFACTORY;
+ /** Pointer to the trunk factory. */
+ typedef INTNETTRUNKFACTORY *PINTNETTRUNKFACTORY;
+
+--- vboxnetflt/linux/VBoxNetFlt-linux.c
++++ vboxnetflt/linux/VBoxNetFlt-linux.c
+@@ -840,7 +840,7 @@ typedef struct ethtool_ops OVR_OPSTYPE;
+
+ # else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) */
+
+-typedef struct net_device_ops OVR_OPSTYPE;
++typedef net_device_ops_no_const OVR_OPSTYPE;
+ # define OVR_OPS netdev_ops
+ # define OVR_XMIT pOrgOps->ndo_start_xmit
+
+--- vboxpci/include/VBox/rawpci.h
++++ vboxpci/include/VBox/rawpci.h
+@@ -545,7 +545,7 @@ typedef struct RAWPCIFACTORY
+ DECLR0CALLBACKMEMBER(void, pfnDeinitVm,(PRAWPCIFACTORY pFactory,
+ PVM pVM,
+ PRAWPCIPERVM pPciData));
+-} RAWPCIFACTORY;
++} __no_const RAWPCIFACTORY;
+
+ #define RAWPCIFACTORY_UUID_STR "ea089839-4171-476f-adfb-9e7ab1cbd0fb"
+
diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-5.1.30-udp.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-5.1.30-udp.patch
new file mode 100644
index 000000000000..b9f695e49a1b
--- /dev/null
+++ b/app-emulation/virtualbox-modules/files/virtualbox-modules-5.1.30-udp.patch
@@ -0,0 +1,35 @@
+diff --git a/work/vboxnetflt/linux/VBoxNetFlt-linux.c b/work/vboxnetflt/linux/VBoxNetFlt-linux.c
+index f824654..b61d82c 100644
+--- work/vboxnetflt/linux/VBoxNetFlt-linux.c
++++ work/vboxnetflt/linux/VBoxNetFlt-linux.c
+@@ -126,6 +126,10 @@ typedef struct VBOXNETFLTNOTIFIER *PVBOXNETFLTNOTIFIER;
+ # endif
+ #endif
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
++#define SKB_GSO_UDP 0
++#endif
++
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 20, 0)
+ # define VBOX_HAVE_SKB_VLAN
+ #else
+diff --git a/work/vboxpci/linux/VBoxPci-linux.c b/work/vboxpci/linux/VBoxPci-linux.c
+index 2dbf47f..e361ef3 100644
+--- work/vboxpci/linux/VBoxPci-linux.c
++++ work/vboxpci/linux/VBoxPci-linux.c
+@@ -353,12 +353,16 @@ static void vboxPciFileClose(struct file* file)
+ static int vboxPciFileWrite(struct file* file, unsigned long long offset, unsigned char* data, unsigned int size)
+ {
+ int ret;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
++ ret = kernel_write(file, data, size, &offset);
++#else
+ mm_segment_t fs_save;
+
+ fs_save = get_fs();
+ set_fs(get_ds());
+ ret = vfs_write(file, data, size, &offset);
+ set_fs(fs_save);
++#endif
+ if (ret < 0)
+ printk(KERN_DEBUG "vboxPciFileWrite: error %d\n", ret);
diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch
new file mode 100644
index 000000000000..6251e33ce59e
--- /dev/null
+++ b/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch
@@ -0,0 +1,44 @@
+--- vboxdrv/SUPDrvIDC.h
++++ vboxdrv/SUPDrvIDC.h
+@@ -160,7 +160,7 @@ typedef struct SUPDRVIDCREQGETSYM
+ {
+ /** The symbol address. */
+ PFNRT pfnSymbol;
+- } Out;
++ } __no_const Out;
+ } u;
+ } SUPDRVIDCREQGETSYM;
+ /** Pointer to a SUPDRV IDC get symbol request. */
+--- vboxnetflt/include/VBox/intnet.h
++++ vboxnetflt/include/VBox/intnet.h
+@@ -783,7 +783,7 @@ typedef struct INTNETTRUNKFACTORY
+ DECLR0CALLBACKMEMBER(int, pfnCreateAndConnect,(struct INTNETTRUNKFACTORY *pIfFactory, const char *pszName,
+ PINTNETTRUNKSWPORT pSwitchPort, uint32_t fFlags,
+ PINTNETTRUNKIFPORT *ppIfPort));
+-} INTNETTRUNKFACTORY;
++} __no_const INTNETTRUNKFACTORY;
+ /** Pointer to the trunk factory. */
+ typedef INTNETTRUNKFACTORY *PINTNETTRUNKFACTORY;
+
+--- vboxnetflt/linux/VBoxNetFlt-linux.c
++++ vboxnetflt/linux/VBoxNetFlt-linux.c
+@@ -840,7 +840,7 @@ typedef struct ethtool_ops OVR_OPSTYPE;
+
+ # else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) */
+
+-typedef struct net_device_ops OVR_OPSTYPE;
++typedef net_device_ops_no_const OVR_OPSTYPE;
+ # define OVR_OPS netdev_ops
+ # define OVR_XMIT pOrgOps->ndo_start_xmit
+
+--- vboxpci/include/VBox/rawpci.h
++++ vboxpci/include/VBox/rawpci.h
+@@ -545,7 +545,7 @@ typedef struct RAWPCIFACTORY
+ DECLR0CALLBACKMEMBER(void, pfnDeinitVm,(PRAWPCIFACTORY pFactory,
+ PVM pVM,
+ PRAWPCIPERVM pVmData));
+-} RAWPCIFACTORY;
++} __no_const RAWPCIFACTORY;
+
+ #define RAWPCIFACTORY_UUID_STR "ea089839-4171-476f-adfb-9e7ab1cbd0fb"
+
diff --git a/app-emulation/virtualbox-modules/files/virtualbox.conf b/app-emulation/virtualbox-modules/files/virtualbox.conf
new file mode 100644
index 000000000000..452f0a9ff3e8
--- /dev/null
+++ b/app-emulation/virtualbox-modules/files/virtualbox.conf
@@ -0,0 +1,4 @@
+vboxnetflt
+vboxnetadp
+vboxdrv
+vboxpci
diff --git a/app-emulation/virtualbox-modules/metadata.xml b/app-emulation/virtualbox-modules/metadata.xml
new file mode 100644
index 000000000000..b55a81b4e004
--- /dev/null
+++ b/app-emulation/virtualbox-modules/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ </maintainer>
+ <use>
+ <flag name="pax_kernel">Apply patch needed for pax enabled kernels</flag>
+ </use>
+</pkgmetadata>
+
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-5.1.36.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-5.1.36.ebuild
new file mode 100644
index 000000000000..ad4b2205685b
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-5.1.36.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from virtualbox-bin
+
+EAPI=6
+
+inherit eutils linux-mod user
+
+MY_P=vbox-kernel-module-src-${PV}
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="pax_kernel"
+
+RDEPEND="!=app-emulation/virtualbox-9999"
+
+S=${WORKDIR}
+
+BUILD_TARGETS="all"
+BUILD_TARGET_ARCH="${ARCH}"
+MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})"
+
+pkg_setup() {
+ enewgroup vboxusers
+ linux-mod_pkg_setup
+ BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1"
+}
+
+src_prepare() {
+ if kernel_is -ge 2 6 33 ; then
+ # evil patch for new kernels - header moved
+ grep -lR linux/autoconf.h * | xargs sed -i -e 's:<linux/autoconf.h>:<generated/autoconf.h>:'
+ fi
+
+ if use pax_kernel && kernel_is -ge 3 0 0 ; then
+ eapply "${FILESDIR}"/${PN}-4.1.4-pax-const.patch
+ fi
+
+ if kernel_is -ge 4 14 0 ; then
+ eapply "${FILESDIR}"/${PN}-5.1.30-udp.patch
+ fi
+
+ default
+}
+
+src_install() {
+ linux-mod_src_install
+ insinto /usr/lib/modules-load.d/
+ doins "${FILESDIR}"/virtualbox.conf
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-5.1.38.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-5.1.38.ebuild
new file mode 100644
index 000000000000..027b2333e334
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-5.1.38.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from virtualbox-bin
+
+EAPI=6
+
+inherit eutils linux-mod user
+
+MY_P=vbox-kernel-module-src-${PV}
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="pax_kernel"
+
+RDEPEND="!=app-emulation/virtualbox-9999"
+
+S=${WORKDIR}
+
+BUILD_TARGETS="all"
+BUILD_TARGET_ARCH="${ARCH}"
+MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})"
+
+pkg_setup() {
+ enewgroup vboxusers
+ linux-mod_pkg_setup
+ BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1"
+}
+
+src_prepare() {
+ if kernel_is -ge 2 6 33 ; then
+ # evil patch for new kernels - header moved
+ grep -lR linux/autoconf.h * | xargs sed -i -e 's:<linux/autoconf.h>:<generated/autoconf.h>:'
+ fi
+
+ if use pax_kernel && kernel_is -ge 3 0 0 ; then
+ eapply "${FILESDIR}"/${PN}-4.1.4-pax-const.patch
+ fi
+
+ default
+}
+
+src_install() {
+ linux-mod_src_install
+ insinto /usr/lib/modules-load.d/
+ doins "${FILESDIR}"/virtualbox.conf
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-5.2.12.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-5.2.12.ebuild
new file mode 100644
index 000000000000..0fd483ae195e
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-5.2.12.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from virtualbox-bin
+
+EAPI=6
+
+inherit eutils linux-mod user
+
+MY_P=vbox-kernel-module-src-${PV}
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="pax_kernel"
+
+RDEPEND="!=app-emulation/virtualbox-9999"
+
+S=${WORKDIR}
+
+BUILD_TARGETS="all"
+BUILD_TARGET_ARCH="${ARCH}"
+MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})"
+
+pkg_setup() {
+ enewgroup vboxusers
+ linux-mod_pkg_setup
+ BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1"
+}
+
+src_prepare() {
+ if use pax_kernel && kernel_is -ge 3 0 0 ; then
+ eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch
+ fi
+
+ default
+}
+
+src_install() {
+ linux-mod_src_install
+ insinto /usr/lib/modules-load.d/
+ doins "${FILESDIR}"/virtualbox.conf
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-5.2.14.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-5.2.14.ebuild
new file mode 100644
index 000000000000..89e331b6d043
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-5.2.14.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from virtualbox-bin
+
+EAPI=6
+
+inherit eutils linux-mod user
+
+MY_P="vbox-kernel-module-src-${PV}"
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="pax_kernel"
+
+RDEPEND="!=app-emulation/virtualbox-9999"
+
+S="${WORKDIR}"
+
+BUILD_TARGETS="all"
+BUILD_TARGET_ARCH="${ARCH}"
+MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})"
+
+pkg_setup() {
+ enewgroup vboxusers
+ linux-mod_pkg_setup
+ BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1"
+}
+
+src_prepare() {
+ if use pax_kernel && kernel_is -ge 3 0 0 ; then
+ eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch
+ fi
+
+ default
+}
+
+src_install() {
+ linux-mod_src_install
+ insinto /usr/lib/modules-load.d/
+ doins "${FILESDIR}"/virtualbox.conf
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+}