summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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.patch48
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-5.1.8.ebuild46
-rw-r--r--sys-kernel/virtualbox-modules-dkms/Manifest1
-rw-r--r--sys-kernel/virtualbox-modules-dkms/files/dkms.conf15
-rw-r--r--sys-kernel/virtualbox-modules-dkms/virtualbox-modules-dkms-5.1.8.ebuild45
6 files changed, 70 insertions, 114 deletions
diff --git a/app-emulation/virtualbox-modules/files/create_vbox_modules_tarball.sh b/app-emulation/virtualbox-modules/files/create_vbox_modules_tarball.sh
deleted file mode 100755
index 756d2435..00000000
--- a/app-emulation/virtualbox-modules/files/create_vbox_modules_tarball.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/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
deleted file mode 100644
index 4e4cde06..00000000
--- a/app-emulation/virtualbox-modules/files/virtualbox-modules-4.1.4-pax-const.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -urp vboxdrv.orig/SUPDrvIDC.h vboxdrv/SUPDrvIDC.h
---- vboxdrv.orig/SUPDrvIDC.h 2011-09-06 15:53:27.852567531 +0200
-+++ vboxdrv/SUPDrvIDC.h 2011-09-06 15:54:05.420565524 +0200
-@@ -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. */
-diff -urp vboxnetflt.orig/include/VBox/intnet.h vboxnetflt/include/VBox/intnet.h
---- vboxnetflt.orig/include/VBox/intnet.h 2011-09-06 15:53:27.852567531 +0200
-+++ vboxnetflt/include/VBox/intnet.h 2011-09-06 15:54:05.424565524 +0200
-@@ -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;
-
-diff -urp vboxnetflt.orig/linux/VBoxNetFlt-linux.c vboxnetflt/linux/VBoxNetFlt-linux.c
---- vboxnetflt.orig/linux/VBoxNetFlt-linux.c 2011-07-19 12:15:22.000000000 +0200
-+++ vboxnetflt/linux/VBoxNetFlt-linux.c 2011-09-06 15:56:00.516559379 +0200
-@@ -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
-
-diff -urp vboxpci.orig/include/VBox/rawpci.h vboxpci/include/VBox/rawpci.h
---- vboxpci.orig/include/VBox/rawpci.h 2011-04-18 17:01:12.000000000 +0200
-+++ vboxpci/include/VBox/rawpci.h 2011-09-06 15:57:17.340555277 +0200
-@@ -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/virtualbox-modules-5.1.8.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-5.1.8.ebuild
index 5a8bf08d..f7b579d4 100644
--- a/app-emulation/virtualbox-modules/virtualbox-modules-5.1.8.ebuild
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-5.1.8.ebuild
@@ -2,12 +2,9 @@
# Distributed under the terms of the GNU General Public License v2
# $Id$
-# XXX: the tarball here is just the kernel modules split out of the binary
-# package that comes from virtualbox-bin
+EAPI=5
-EAPI=6
-
-inherit eutils linux-mod user
+inherit eutils user
MY_P=vbox-kernel-module-src-${PV}
DESCRIPTION="Kernel Modules for Virtualbox"
@@ -16,50 +13,25 @@ SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="pax_kernel"
+KEYWORDS="amd64 x86"
+IUSE=""
-RDEPEND="!=app-emulation/virtualbox-9999"
+DEPEND="=sys-kernel/${PN}-dkms-${PV}"
+RDEPEND="${DEPEND}
+ !=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() {
- linux-mod_pkg_setup
-
- BUILD_PARAMS="KERN_DIR=${KV_DIR} KERNOUT=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1"
enewgroup vboxusers
-
- CONFIG_CHECK="!TRIM_UNUSED_KSYMS"
- ERROR_TRIM_UNUSED_KSYMS="This option removed kernel symbols that are needed by ${PN} to load correctly."
-
}
-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
- epatch "${FILESDIR}"/${PN}-4.1.4-pax-const.patch
- fi
-
- default
+src_compile() {
+ :
}
src_install() {
- linux-mod_src_install
insinto /usr/lib/modules-load.d/
doins "${FILESDIR}"/virtualbox.conf
}
-
-pkg_postinst() {
- linux-mod_pkg_postinst
- elog "If you are using sys-apps/openrc, please add \"vboxdrv\", \"vboxnetflt\","
- elog "\"vboxnetadp\" and \"vboxpci\" to:"
- elog " /etc/conf.d/modules"
-}
diff --git a/sys-kernel/virtualbox-modules-dkms/Manifest b/sys-kernel/virtualbox-modules-dkms/Manifest
new file mode 100644
index 00000000..76141d3a
--- /dev/null
+++ b/sys-kernel/virtualbox-modules-dkms/Manifest
@@ -0,0 +1 @@
+DIST vbox-kernel-module-src-5.1.8.tar.xz 612740 SHA256 a9448ae2cb0468b9dbc94cbcdafc7d8c49787bc6246e69d9cc905dfe61d0f3c8 SHA512 56ebaaab238d1a4b9b632cea9a9653849c88af23fff64bf6fb7b96b9a0890108f83fca33562abbad51358dd5757c57b619beb466f703bb2bf1d103631655ec45 WHIRLPOOL 396a44167f337e9a0acd1cee2cd325d493486786976ce9a34f44eee7fb2443730fc57a07a7e89f0f190a8cc6f5bc89692066af44a34a86a61b63a5c20e112cba
diff --git a/sys-kernel/virtualbox-modules-dkms/files/dkms.conf b/sys-kernel/virtualbox-modules-dkms/files/dkms.conf
new file mode 100644
index 00000000..428afdb1
--- /dev/null
+++ b/sys-kernel/virtualbox-modules-dkms/files/dkms.conf
@@ -0,0 +1,15 @@
+PACKAGE_NAME="virtualbox-drivers-dkms"
+PACKAGE_VERSION="5.1.8"
+AUTOINSTALL="yes"
+
+MAKE[0]="'make' -j`nproc` KERNEL_UNAME=${kernelver}"
+
+BUILT_MODULE_NAME[0]="vboxdrv"
+DEST_MODULE_LOCATION[0]="/kernel/misc"
+BUILT_MODULE_NAME[1]="vboxnetflt"
+DEST_MODULE_LOCATION[1]="/kernel/misc"
+BUILT_MODULE_NAME[2]="vboxnetadp"
+DEST_MODULE_LOCATION[2]="/kernel/misc"
+BUILT_MODULE_NAME[3]="vboxpci"
+DEST_MODULE_LOCATION[3]="/kernel/misc"
+
diff --git a/sys-kernel/virtualbox-modules-dkms/virtualbox-modules-dkms-5.1.8.ebuild b/sys-kernel/virtualbox-modules-dkms/virtualbox-modules-dkms-5.1.8.ebuild
new file mode 100644
index 00000000..00923566
--- /dev/null
+++ b/sys-kernel/virtualbox-modules-dkms/virtualbox-modules-dkms-5.1.8.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+MY_P=vbox-kernel-module-src-${PV}
+DESCRIPTION="Kernel Modules source for Virtualbox"
+HOMEPAGE="http://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=""
+
+DEPEND="sys-kernel/dkms"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}
+
+src_prepare() {
+ grep -lR linux/autoconf.h * | xargs sed -i -e 's:<linux/autoconf.h>:<generated/autoconf.h>:'
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ cp ${FILESDIR}/dkms.conf ${S}
+ dodir /usr/src/${P}
+ insinto /usr/src/${P}
+ doins -r ${S}/*
+}
+
+pkg_postinst() {
+ dkms add ${PN}/${PV}
+}
+
+pkg_prerm() {
+ dkms remove ${PN}/${PV} --all
+}