diff options
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 +} |