summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorWinston Wu2017-09-16 02:26:56 +0000
committerWinston Wu2017-09-16 02:26:56 +0000
commit25cb856de2bec271927643ba0721745c34dacc0b (patch)
tree1343b41463ec3ce2a372d0630f52972e706a1e1a
downloadaur-25cb856de2bec271927643ba0721745c34dacc0b.tar.gz
Initial commit
-rw-r--r--.SRCINFO202
-rw-r--r--002-dri-driver-path.patch28
-rw-r--r--003-ogl-include-path.patch35
-rw-r--r--005-gsoap-build.patch11
-rw-r--r--006-rdesktop-vrdp-keymap-path.patch12
-rw-r--r--007-python2-path.patch9
-rw-r--r--008-no-vboxvideo.patch12
-rw-r--r--009-glibc-2.26.patch27
-rw-r--r--60-vboxdrv.rules8
-rw-r--r--60-vboxguest.rules2
-rw-r--r--LocalConfig.kmk32
-rw-r--r--PKGBUILD399
-rwxr-xr-xbuild.sh3
-rwxr-xr-xvboxreload37
-rw-r--r--vboxservice-nox.service11
-rw-r--r--vboxservice.service12
-rw-r--r--vboxweb.service11
-rw-r--r--virtualbox-ext-vnc.install27
-rw-r--r--virtualbox-guest-dkms.conf37
-rw-r--r--virtualbox-guest-dkms.install15
-rw-r--r--virtualbox-guest-utils.sysusers1
-rw-r--r--virtualbox-host-dkms.conf43
-rw-r--r--virtualbox-host-dkms.install15
-rw-r--r--virtualbox.install12
-rw-r--r--virtualbox.sysusers1
25 files changed, 1002 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..1b5a85ee7a53
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,202 @@
+# Generated by mksrcinfo v8
+# Sat Sep 16 02:26:42 UTC 2017
+pkgbase = virtualbox-svn
+ pkgver = 68769
+ pkgrel = 1
+ url = http://virtualbox.org
+ arch = i686
+ arch = x86_64
+ license = GPL
+ license = custom
+ makedepends = alsa-lib
+ makedepends = bin86
+ makedepends = cdrkit
+ makedepends = curl
+ makedepends = dev86
+ makedepends = device-mapper
+ makedepends = glu
+ makedepends = gsoap
+ makedepends = iasl
+ makedepends = jdk7-openjdk
+ makedepends = libidl2
+ makedepends = libpulse
+ makedepends = libstdc++5
+ makedepends = libvncserver
+ makedepends = libvpx
+ makedepends = libxcomposite
+ makedepends = libxcursor
+ makedepends = libxinerama
+ makedepends = libxml2
+ makedepends = libxmu
+ makedepends = libxrandr
+ makedepends = libxslt
+ makedepends = libxtst
+ makedepends = linux-headers
+ makedepends = mesa
+ makedepends = python2
+ makedepends = qt5-base
+ makedepends = qt5-x11extras
+ makedepends = qt5-tools
+ makedepends = sdl
+ makedepends = sdl_ttf
+ makedepends = vde2
+ makedepends = xalan-c
+ makedepends = xf86driproto
+ makedepends = xorg-server-devel
+ makedepends = subversion
+ source = VirtualBox::svn+http://www.virtualbox.org/svn/vbox/trunk
+ source = virtualbox-host-dkms.conf
+ source = virtualbox-guest-dkms.conf
+ source = virtualbox.sysusers
+ source = virtualbox-guest-utils.sysusers
+ source = 60-vboxdrv.rules
+ source = 60-vboxguest.rules
+ source = LocalConfig.kmk
+ source = vboxservice.service
+ source = vboxservice-nox.service
+ source = vboxweb.service
+ source = vboxreload
+ source = 002-dri-driver-path.patch
+ source = 003-ogl-include-path.patch
+ source = 005-gsoap-build.patch
+ source = 006-rdesktop-vrdp-keymap-path.patch
+ source = 007-python2-path.patch
+ source = 008-no-vboxvideo.patch
+ source = 009-glibc-2.26.patch
+ sha256sums = SKIP
+ sha256sums = 292fa3a414c125cf9119c8f2d866f3bd3a36c37842c9f68e6bbf74801860cd8a
+ sha256sums = f4c4ec1b2d25c64d3b334d487d4fbf6e06e072d252a0979f73a47a41e4afdcf7
+ sha256sums = 2101ebb58233bbfadf3aa74381f22f7e7e508559d2b46387114bc2d8e308554c
+ sha256sums = da4c49f6ca94e047e196cdbcba2c321199f4760056ea66e0fbc659353e128c9e
+ sha256sums = 9c5238183019f9ebc7d92a8582cad232f471eab9d3278786225abc1a1c7bf66e
+ sha256sums = 033c597e0f5285d2ddb0490868e5b6f945f45c7b1b1152a02a9e6fea438b2c95
+ sha256sums = 0105ce26b79dbe533085423decf042ac0f5e6aa28edb5e6a9bc713cca2ab04c5
+ sha256sums = 94a808f46909a51b2d0cf2c6e0a6c9dea792034943e6413bf9649a036c921b21
+ sha256sums = 01dbb921bd57a852919cc78be5b73580a564f28ebab2fe8d6c9b8301265cbfce
+ sha256sums = e6e875ef186578b53106d7f6af48e426cdaf1b4e86834f01696b8ef1c685787f
+ sha256sums = 2a9d7748dc58f9d091f791da06b733a696943114f7c0d580fa00a0752eb1d2ac
+ sha256sums = ee54fe188e27b6e80e2044ea9ba1874db2ca2c026ad04f393be1be69c18d440d
+ sha256sums = a094a37ce710452e45f14eaec3e10bd71054aa910cf463b36a8b3ec42be466a1
+ sha256sums = 7d2da8fe10a90f76bbfc80ad1f55df4414f118cd10e10abfb76070326abebd46
+ sha256sums = 5d5af2de5b1f1c61ec793503350f2440661cf8fd640f11b8a86f10bce499c0dc
+ sha256sums = 6bdb017459532537199c399eefd3d84d8dc7f1786e79997caebd3b6eb5c75d9f
+ sha256sums = 8b7f241107863f82a5b0ae336aead0b3366a40103ff72dbebf33f54b512a0cbc
+ sha256sums = 3b6ad08a80f9f8c02c0c3625b7c96150056b466b8f32740b242a55736c282ec7
+ makedepends_x86_64 = gcc-multilib
+ makedepends_x86_64 = lib32-glibc
+
+pkgname = virtualbox-svn
+ pkgdesc = Powerful x86 virtualization for enterprise as well as home use
+ install = virtualbox.install
+ depends = glibc
+ depends = openssl
+ depends = curl
+ depends = gcc-libs
+ depends = libpng
+ depends = python2
+ depends = sdl
+ depends = libvpx
+ depends = libxml2
+ depends = procps-ng
+ depends = shared-mime-info
+ depends = zlib
+ depends = libxcursor
+ depends = libxinerama
+ depends = libx11
+ depends = libxext
+ depends = libxmu
+ depends = libxt
+ depends = qt5-base
+ depends = qt5-x11extras
+ depends = VIRTUALBOX-HOST-MODULES-SVN
+ optdepends = vde2: Virtual Distributed Ethernet support
+ optdepends = virtualbox-guest-iso: Guest Additions CD image
+ optdepends = virtualbox-ext-vnc: VNC server support
+ optdepends = virtualbox-sdk: Developer kit
+ provides = virtualbox
+ conflicts = virtualbox-ose
+ conflicts = virtualbox
+ replaces = virtualbox-ose
+ backup = etc/vbox/vbox.cfg
+
+pkgname = virtualbox-host-dkms-svn
+ pkgdesc = VirtualBox Host kernel modules sources
+ install = virtualbox-host-dkms.install
+ depends = dkms
+ depends = gcc
+ depends = make
+ optdepends = linux-headers: build modules against Arch kernel
+ optdepends = linux-lts-headers: build modules against LTS kernel
+ optdepends = linux-zen-headers: build modules against ZEN kernel
+ provides = VIRTUALBOX-HOST-MODULES-SVN
+ provides = virtualbox-host-dkms
+ conflicts = virtualbox-source
+ conflicts = virtualbox-host-source
+ conflicts = virtualbox-host-dkms
+ replaces = virtualbox-source
+ replaces = virtualbox-host-source
+ replaces = virtualbox-host-modules-lts
+
+pkgname = virtualbox-guest-dkms-svn
+ pkgdesc = VirtualBox Guest kernel modules sources
+ install = virtualbox-guest-dkms.install
+ depends = dkms
+ depends = gcc
+ depends = make
+ optdepends = linux-headers: build modules against Arch kernel
+ optdepends = linux-lts-headers: build modules against LTS kernel
+ optdepends = linux-zen-headers: build modules against ZEN kernel
+ provides = VIRTUALBOX-GUEST-MODULES-SVN
+ provides = virtualbox-guest-dkms
+ conflicts = virtualbox-archlinux-source
+ conflicts = virtualbox-guest-source
+ conflicts = virtualbox-guest-dkms
+ replaces = virtualbox-archlinux-source
+ replaces = virtualbox-guest-source
+ replaces = virtualbox-guest-modules-lts
+
+pkgname = virtualbox-sdk-svn
+ pkgdesc = VirtualBox Software Developer Kit (SDK)
+ depends = python2
+ provides = virtualbox-sdk
+ conflicts = virtualbox-sdk
+
+pkgname = virtualbox-guest-utils-svn
+ pkgdesc = VirtualBox Guest userspace utilities
+ depends = glibc
+ depends = pam
+ depends = libx11
+ depends = libxcomposite
+ depends = libxdamage
+ depends = libxext
+ depends = libxfixes
+ depends = libxmu
+ depends = libxt
+ depends = xorg-xrandr
+ depends = VIRTUALBOX-GUEST-MODULES-SVN
+ provides = virtualbox-guest-utils
+ conflicts = virtualbox-archlinux-additions
+ conflicts = virtualbox-guest-additions
+ conflicts = virtualbox-guest-utils-nox
+ conflicts = virtualbox-guest-utils
+ replaces = virtualbox-archlinux-additions
+ replaces = virtualbox-guest-additions
+
+pkgname = virtualbox-guest-utils-nox-svn
+ pkgdesc = VirtualBox Guest userspace utilities without X support
+ depends = glibc
+ depends = pam
+ depends = VIRTUALBOX-GUEST-MODULES-SVN
+ provides = virtualbox-guest-utils-nox
+ conflicts = virtualbox-guest-utils
+ conflicts = virtualbox-guest-utils-nox
+
+pkgname = virtualbox-ext-vnc-svn
+ pkgdesc = VirtualBox VNC extension pack
+ install = virtualbox-ext-vnc.install
+ depends = virtualbox
+ depends = libvncserver
+ optdepends = tigervnc: vnc client
+ provides = virtualbox-ext-vnc
+ conflicts = virtualbox-ext-vnc
+
diff --git a/002-dri-driver-path.patch b/002-dri-driver-path.patch
new file mode 100644
index 000000000000..777e8e73b8b2
--- /dev/null
+++ b/002-dri-driver-path.patch
@@ -0,0 +1,28 @@
+# 2013 © Sébastien Luttringer
+--- a/src/VBox/Additions/common/crOpenGL/fakedri_drv.c 2013-09-04 21:03:47.040743507 +0200
++++ b/src/VBox/Additions/common/crOpenGL/fakedri_drv.c 2013-10-20 23:23:49.705371815 +0200
+@@ -58,23 +58,8 @@
+ //#define DEBUG_DRI_CALLS
+
+ //@todo this could be different...
+-#ifdef RT_ARCH_AMD64
+-# ifdef RT_OS_FREEBSD
+-# define DRI_DEFAULT_DRIVER_DIR "/usr/local/lib/dri"
+-# define DRI_XORG_DRV_DIR "/usr/local/lib/xorg/modules/drivers/"
+-# else
+-# define DRI_DEFAULT_DRIVER_DIR "/usr/lib64/dri:/usr/lib/dri:/usr/lib/x86_64-linux-gnu/dri:/usr/lib/xorg/modules/dri"
++# define DRI_DEFAULT_DRIVER_DIR "/usr/lib/xorg/modules/dri"
+ # define DRI_XORG_DRV_DIR "/usr/lib/xorg/modules/drivers/"
+-# endif
+-#else
+-# ifdef RT_OS_FREEBSD
+-# define DRI_DEFAULT_DRIVER_DIR "/usr/local/lib/dri"
+-# define DRI_XORG_DRV_DIR "/usr/local/lib/xorg/modules/drivers/"
+-# else
+-# define DRI_DEFAULT_DRIVER_DIR "/usr/lib/dri:/usr/lib/i386-linux-gnu/dri:/usr/lib/xorg/modules/dri"
+-# define DRI_XORG_DRV_DIR "/usr/lib/xorg/modules/drivers/"
+-# endif
+-#endif
+
+ #ifdef DEBUG_DRI_CALLS
+ #define SWDRI_SHOWNAME(pext, func) \
diff --git a/003-ogl-include-path.patch b/003-ogl-include-path.patch
new file mode 100644
index 000000000000..cce1079cd3af
--- /dev/null
+++ b/003-ogl-include-path.patch
@@ -0,0 +1,35 @@
+--- VirtualBox/src/VBox/Additions/common/crOpenGL/Makefile.kmk.orig 2017-09-14 23:57:58.834458822 +0000
++++ VirtualBox/src/VBox/Additions/common/crOpenGL/Makefile.kmk 2017-09-14 23:59:49.918241816 +0000
+@@ -69,16 +69,9 @@ VBoxOGL_INCS = . $(VBOX_GRAPHI
+ if1of ($(KBUILD_TARGET), linux solaris freebsd)
+ ifndef VBOX_USE_SYSTEM_GL_HEADERS
+ VBoxOGL_INCS += \
+- $(VBOX_PATH_X11_ROOT)/libXdamage-1.1 \
+- $(VBOX_PATH_X11_ROOT)/libXcomposite-0.4.0 \
+- $(VBOX_PATH_X11_ROOT)/libXext-1.3.1 \
+- $(VBOX_PATH_X11_ROOT)/libXfixes-4.0.3 \
+- $(VBOX_PATH_X11_ROOT)/damageproto-1.1.0 \
+- $(VBOX_PATH_X11_ROOT)/compositeproto-0.4 \
+- $(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \
+- $(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \
+- $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \
+- $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \
++ /usr/include/x11 \
++ /usr/include/xorg \
++ /usr/include/pixman-1 \
+ $(VBOX_GL_INCS)
+ endif
+ VBoxOGL_DEFS += VBOX_NO_NATIVEGL
+@@ -218,11 +211,7 @@ if1of ($(KBUILD_TARGET), linux solaris f
+ ifdef VBOX_USE_SYSTEM_GL_HEADERS
+ VBoxOGL_LIBS += Xcomposite Xdamage Xfixes Xext
+ else
+- VBoxOGL_LIBS += \
+- $(PATH_STAGE_LIB)/libXcomposite.so \
+- $(PATH_STAGE_LIB)/libXdamage.so \
+- $(PATH_STAGE_LIB)/libXfixes.so \
+- $(PATH_STAGE_LIB)/libXext.so
++ VBoxOGL_LIBS += Xcomposite Xdamage Xfixes Xext
+ endif
+ ifdef VBoxOGL_FAKEDRI
+ ifeq ($(KBUILD_TARGET), freebsd)
diff --git a/005-gsoap-build.patch b/005-gsoap-build.patch
new file mode 100644
index 000000000000..bba4f0ec7557
--- /dev/null
+++ b/005-gsoap-build.patch
@@ -0,0 +1,11 @@
+--- a/src/VBox/Main/webservice/Makefile.kmk 2013-11-21 19:00:46.812761628 +0100
++++ b/src/VBox/Main/webservice/Makefile.kmk 2016-08-18 15:16:05.803599026 +0100
+@@ -724,7 +724,7 @@ $(VBOXWEB_OUT_DIR)/gsoap_generate_all_ts \
+ $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@)
+ $(call MSG_GENERATE,,lots of files,$(GSOAPH_RELEVANT))
+ $(RM) -f $@
+- $(REDIRECT) -C $(VBOXWEB_OUT_DIR) -- $(VBOX_SOAPCPP2) $(VBOXWEB_SOAPCPP2_SKIP_FILES) -L -2 -w -I$(VBOX_PATH_GSOAP_IMPORT) $(GSOAPH_RELEVANT)
++ $(REDIRECT) -C $(VBOXWEB_OUT_DIR) -- $(VBOX_SOAPCPP2) $(VBOXWEB_SOAPCPP2_SKIP_FILES) -z1 -L -2 -w -I$(VBOX_PATH_GSOAP_IMPORT) $(GSOAPH_RELEVANT)
+ ifeq ($(KBUILD_TARGET),win) # MSC -Wall workaround.
+ $(CP) -f "$(VBOXWEB_SOAP_CLIENT_H)" "$(VBOXWEB_SOAP_CLIENT_H).tmp"
+ $(SED) -f $(VBOX_PATH_WEBSERVICE)/stdsoap2.sed --output "$(VBOXWEB_SOAP_CLIENT_H)" "$(VBOXWEB_SOAP_CLIENT_H).tmp"
diff --git a/006-rdesktop-vrdp-keymap-path.patch b/006-rdesktop-vrdp-keymap-path.patch
new file mode 100644
index 000000000000..46c72c1ccf87
--- /dev/null
+++ b/006-rdesktop-vrdp-keymap-path.patch
@@ -0,0 +1,12 @@
+# 2015 © Sébastien Luttringer
+--- a/src/VBox/RDP/client-1.8.3/Makefile.kmk 2013-02-19 23:12:20.207464901 +0100
++++ b/src/VBox/RDP/client-1.8.3/Makefile.kmk 2014-01-04 04:17:26.700618600 +0100
+@@ -41,7 +41,7 @@
+ EGD_SOCKET=\"/var/run/egd-pool\" WITH_RDPSND=1 HAVE_DIRENT_H=1 \
+ HAVE_ICONV=1 HAVE_SYS_STATVFS_H=1 \
+ HAVE_SYS_PARAM_H=1 HAVE_SYS_MOUNT_H=1 HAVE_STRUCT_STATVFS_F_NAMEMAX=1 \
+- KEYMAP_PATH=$(if $(findstring RTPATH_APP_PRIVATE,$(CDEFS)),RTPATH_APP_PRIVATE,\"/opt/VirtualBox\")\"/rdesktop-vrdp-keymaps\" \
++ KEYMAP_PATH=$(if $(findstring RTPATH_APP_PRIVATE,$(CDEFS)),RTPATH_APP_PRIVATE,\"/usr/share/virtualbox\")\"/rdesktop-vrdp-keymaps\" \
+ RDESKTOP=1
+ ifdef WITH_BIRD_VD_HACKS
+ rdesktop-vrdp_DEFS += WITH_BIRD_VD_HACKS
diff --git a/007-python2-path.patch b/007-python2-path.patch
new file mode 100644
index 000000000000..d11e75dd9f40
--- /dev/null
+++ b/007-python2-path.patch
@@ -0,0 +1,9 @@
+# 2013 © Sébastien Luttringer
+--- a/src/VBox/Frontends/VBoxShell/vboxshell.py 2014-01-03 01:38:41.831615590 +0100
++++ b/src/VBox/Frontends/VBoxShell/vboxshell.py 2014-01-04 04:23:33.884544420 +0100
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python2
+ # -*- coding: utf-8 -*-
+ # $Id: vboxshell.py 49841 2013-12-09 13:32:33Z vboxsync $
+ """
diff --git a/008-no-vboxvideo.patch b/008-no-vboxvideo.patch
new file mode 100644
index 000000000000..60b721a8c281
--- /dev/null
+++ b/008-no-vboxvideo.patch
@@ -0,0 +1,12 @@
+Fix FTBFS by not compile X.org-1.19 drv, we don't use it, just need in el <= 7
+--- ./src/VBox/Additions/x11/vboxvideo/Makefile.kmk.orig 2016-10-11 02:49:23.184986182 +0100
++++ ./src/VBox/Additions/x11/vboxvideo/Makefile.kmk 2016-10-11 02:49:39.879176964 +0100
+@@ -376,7 +376,7 @@ vboxvideo_drv_118_SOURCES := $(vboxvideo
+
+ ifdef VBOX_USE_SYSTEM_XORG_HEADERS
+ # Build using local X.Org headers. We assume X.Org Server 1.7 or later.
+- DLLS := $(filter-out vboxvideo_drv_%,$(DLLS)) vboxvideo_drv_system
++ DLLS := $(filter-out vboxvideo_drv_%,$(DLLS))
+ SYSMODS := $(filter-out vboxvideo_drv%,$(SYSMODS))
+ vboxvideo_drv_system_TEMPLATE = VBOXGUESTR3XORGMOD
+ vboxvideo_drv_system_CFLAGS := \
diff --git a/009-glibc-2.26.patch b/009-glibc-2.26.patch
new file mode 100644
index 000000000000..81d149e703bd
--- /dev/null
+++ b/009-glibc-2.26.patch
@@ -0,0 +1,27 @@
+From 4d1e01e1df513666642d4ddbb24625c5bcc12d84 Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail@eworm.de>
+Date: Thu, 14 Sep 2017 23:14:36 +0200
+Subject: [PATCH 1/1] fix compilation with glibc 2.26
+
+Signed-off-by: Christian Hesse <mail@eworm.de>
+---
+ src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceTypes.h | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceTypes.h b/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceTypes.h
+index 9032e6d..0d1770e 100644
+--- a/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceTypes.h
++++ b/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceTypes.h
+@@ -55,11 +55,11 @@ typedef uint64_t hrtime_t;
+ typedef uint32_t id_t;
+ typedef uint32_t zoneid_t;
+ #endif
+-#if !defined(NGREG) || !defined(RT_OS_LINUX)
++#if !defined(__NGREG) || !defined(RT_OS_LINUX)
+ typedef RTCCINTREG greg_t;
+ #else
+ AssertCompileSize(greg_t, sizeof(RTCCINTREG));
+ #endif
+ typedef uintptr_t pc_t;
+ typedef unsigned int model_t;
+ typedef RTCPUID processorid_t;
diff --git a/60-vboxdrv.rules b/60-vboxdrv.rules
new file mode 100644
index 000000000000..95d515b06bc5
--- /dev/null
+++ b/60-vboxdrv.rules
@@ -0,0 +1,8 @@
+KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
+KERNEL=="vboxdrvu", NAME="vboxdrvu", OWNER="root", GROUP="root", MODE="0666"
+KERNEL=="vboxnetctl", NAME="vboxnetctl", OWNER="root", GROUP="root", MODE="0600"
+
+SUBSYSTEM=="usb_device", ACTION=="add", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
+SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
+SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
+SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
diff --git a/60-vboxguest.rules b/60-vboxguest.rules
new file mode 100644
index 000000000000..6285f724994b
--- /dev/null
+++ b/60-vboxguest.rules
@@ -0,0 +1,2 @@
+ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
+ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
diff --git a/LocalConfig.kmk b/LocalConfig.kmk
new file mode 100644
index 000000000000..deeed2f0b237
--- /dev/null
+++ b/LocalConfig.kmk
@@ -0,0 +1,32 @@
+# do not build test cases
+VBOX_WITH_TESTCASES :=
+VBOX_WITH_TESTSUITE :=
+VBOX_WITH_VALIDATIONKIT :=
+
+# no legacy X.org - use KMS
+VBOX_USE_SYSTEM_XORG_HEADERS = 1
+VBOX_NO_LEGACY_XORG_X11 = 1
+
+# archlinux path
+VBOX_WITH_ORIGIN :=
+VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
+VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
+VBOX_PATH_APP_DOCS := /usr/share/doc/virtualbox
+VBOX_PATH_PACKAGE_DOCS := $(VBOX_PATH_APP_DOCS)
+VBOX_BLD_PYTHON = python2
+VBOX_JAVA_HOME = /usr/lib/jvm/java-7-openjdk
+
+# do not fail on warning
+VBOX_GCC_WERR =
+VBOX_GCC_WARN =
+
+# fix gsoap missing zlib include and produce errors with --as-needed
+VBOX_GSOAP_CXX_LIBS := gsoapssl++ z
+
+# use system xorg
+VBOX_USE_SYSTEM_XORG_HEADERS = 1
+
+# no update request. update are handled via pacman
+VBOX_WITH_UPDATE_REQUEST := 0
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..a30ae46561f5
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,399 @@
+# $Id$
+# Maintainer: Sébastien "Seblu" Luttringer
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+
+pkgbase=virtualbox-svn
+pkgname=('virtualbox-svn'
+ 'virtualbox-host-dkms-svn'
+ 'virtualbox-guest-dkms-svn'
+ 'virtualbox-sdk-svn'
+ 'virtualbox-guest-utils-svn'
+ 'virtualbox-guest-utils-nox-svn'
+ 'virtualbox-ext-vnc-svn')
+pkgver=68769
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://virtualbox.org'
+license=('GPL' 'custom')
+makedepends=('alsa-lib'
+ 'bin86'
+ 'cdrkit'
+ 'curl'
+ 'dev86'
+ 'device-mapper'
+ 'glu'
+ 'gsoap'
+ 'iasl'
+ 'jdk7-openjdk'
+ 'libidl2'
+ 'libpulse'
+ 'libstdc++5'
+ 'libvncserver'
+ 'libvpx'
+ 'libxcomposite'
+ 'libxcursor'
+ 'libxinerama'
+ 'libxml2'
+ 'libxmu'
+ 'libxrandr'
+ 'libxslt'
+ 'libxtst'
+ 'linux-headers'
+ 'mesa'
+ 'python2'
+ 'qt5-base'
+ 'qt5-x11extras'
+ 'qt5-tools'
+ 'sdl'
+ 'sdl_ttf'
+ 'vde2'
+ 'xalan-c'
+ 'xf86driproto'
+ 'xorg-server-devel'
+ 'subversion')
+makedepends_x86_64=('gcc-multilib' 'lib32-glibc')
+source=("VirtualBox::svn+http://www.virtualbox.org/svn/vbox/trunk"
+ 'virtualbox-host-dkms.conf'
+ 'virtualbox-guest-dkms.conf'
+ 'virtualbox.sysusers'
+ 'virtualbox-guest-utils.sysusers'
+ '60-vboxdrv.rules'
+ '60-vboxguest.rules'
+ 'LocalConfig.kmk'
+ 'vboxservice.service'
+ 'vboxservice-nox.service'
+ 'vboxweb.service'
+ 'vboxreload'
+ '002-dri-driver-path.patch'
+ '003-ogl-include-path.patch'
+ '005-gsoap-build.patch'
+ '006-rdesktop-vrdp-keymap-path.patch'
+ '007-python2-path.patch'
+ '008-no-vboxvideo.patch'
+ '009-glibc-2.26.patch'
+ )
+sha256sums=('SKIP'
+ '292fa3a414c125cf9119c8f2d866f3bd3a36c37842c9f68e6bbf74801860cd8a'
+ 'f4c4ec1b2d25c64d3b334d487d4fbf6e06e072d252a0979f73a47a41e4afdcf7'
+ '2101ebb58233bbfadf3aa74381f22f7e7e508559d2b46387114bc2d8e308554c'
+ 'da4c49f6ca94e047e196cdbcba2c321199f4760056ea66e0fbc659353e128c9e'
+ '9c5238183019f9ebc7d92a8582cad232f471eab9d3278786225abc1a1c7bf66e'
+ '033c597e0f5285d2ddb0490868e5b6f945f45c7b1b1152a02a9e6fea438b2c95'
+ '0105ce26b79dbe533085423decf042ac0f5e6aa28edb5e6a9bc713cca2ab04c5'
+ '94a808f46909a51b2d0cf2c6e0a6c9dea792034943e6413bf9649a036c921b21'
+ '01dbb921bd57a852919cc78be5b73580a564f28ebab2fe8d6c9b8301265cbfce'
+ 'e6e875ef186578b53106d7f6af48e426cdaf1b4e86834f01696b8ef1c685787f'
+ '2a9d7748dc58f9d091f791da06b733a696943114f7c0d580fa00a0752eb1d2ac'
+ 'ee54fe188e27b6e80e2044ea9ba1874db2ca2c026ad04f393be1be69c18d440d'
+ 'a094a37ce710452e45f14eaec3e10bd71054aa910cf463b36a8b3ec42be466a1'
+ '7d2da8fe10a90f76bbfc80ad1f55df4414f118cd10e10abfb76070326abebd46'
+ '5d5af2de5b1f1c61ec793503350f2440661cf8fd640f11b8a86f10bce499c0dc'
+ '6bdb017459532537199c399eefd3d84d8dc7f1786e79997caebd3b6eb5c75d9f'
+ '8b7f241107863f82a5b0ae336aead0b3366a40103ff72dbebf33f54b512a0cbc'
+ '3b6ad08a80f9f8c02c0c3625b7c96150056b466b8f32740b242a55736c282ec7')
+
+pkgver() {
+ cd "VirtualBox"
+ local ver="$(svnversion)"
+ printf "%s" "${ver//[[:alpha:]]}"
+}
+
+prepare() {
+ cd "VirtualBox"
+
+ # apply patch from the source array (should be a pacman feature)
+ local filename
+ for filename in "${source[@]}"; do
+ if [[ "$filename" =~ \.patch$ ]]; then
+ msg2 "Applying patch ${filename##*/}"
+ patch -p1 -N -i "$srcdir/${filename##*/}"
+ fi
+ done
+
+ msg2 'Applying local config'
+ cp "$srcdir/LocalConfig.kmk" .
+
+ msg2 'Use our CFLAGS'
+ echo "VBOX_GCC_OPT=$CXXFLAGS" >> LocalConfig.kmk
+
+ msg2 'Remove gcc version censorship'
+ sed -i 's/^check_gcc$/#check_gcc/' configure
+}
+
+build() {
+ cd "VirtualBox"
+
+ msg2 'Build virtualbox'
+ ./configure \
+ --disable-docs \
+ --enable-webservice \
+ --enable-vde \
+ --enable-vnc \
+ --disable-kmods \
+ --with-makeself=/usr/bin/echo
+ # fake makeself binary to compile without nofatal
+ # makeself is used by linux installer. we don't need it.
+ source ./env.sh
+ kmk
+
+ msg2 'Build rdesktop-vrdp'
+ kmk -C src/VBox/RDP/client-1.8.3
+
+ msg2 'Build VNC extension pack'
+ kmk -C src/VBox/ExtPacks/VNC packing
+}
+
+package_virtualbox-svn() {
+ _pkgname=virtualbox
+ pkgdesc='Powerful x86 virtualization for enterprise as well as home use'
+ depends=('glibc' 'openssl' 'curl' 'gcc-libs' 'libpng' 'python2' 'sdl'
+ 'libvpx' 'libxml2' 'procps-ng' 'shared-mime-info' 'zlib'
+ 'libxcursor' 'libxinerama' 'libx11' 'libxext' 'libxmu' 'libxt'
+ 'qt5-base' 'qt5-x11extras' 'VIRTUALBOX-HOST-MODULES-SVN')
+ optdepends=('vde2: Virtual Distributed Ethernet support'
+ 'virtualbox-guest-iso: Guest Additions CD image'
+ 'virtualbox-ext-vnc: VNC server support'
+ 'virtualbox-sdk: Developer kit')
+ backup=('etc/vbox/vbox.cfg')
+ replaces=('virtualbox-ose')
+ conflicts=('virtualbox-ose' 'virtualbox')
+ provides=('virtualbox')
+ install=virtualbox.install
+
+ source "VirtualBox/env.sh"
+ cd "VirtualBox/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+
+ # binaries
+ install -dm755 "$pkgdir/usr/bin"
+ install -m755 VBox.sh "$pkgdir/usr/bin/VBox"
+ for i in VBoxHeadless VBoxManage VBoxSDL VirtualBox vboxwebsrv VBoxBalloonCtrl; do
+ ln -sf VBox "$pkgdir/usr/bin/$i"
+ ln -sf VBox "$pkgdir/usr/bin/${i,,}"
+ done
+ install -m755 VBoxTunctl "$pkgdir/usr/bin"
+ install -m755 rdesktop-vrdp "$pkgdir/usr/bin"
+
+ # libraries
+ install -dm755 "$pkgdir/usr/lib/virtualbox"
+ install -m755 *.so "$pkgdir/usr/lib/virtualbox"
+ install -m644 *.rc *.r0 VBoxEFI*.fd "$pkgdir/usr/lib/virtualbox"
+ ## setuid root binaries
+ install -m4755 VBoxSDL VirtualBox VBoxHeadless VBoxNetDHCP VBoxNetAdpCtl VBoxNetNAT -t "$pkgdir/usr/lib/virtualbox"
+ ## other binaries
+ install -m755 VBoxManage VBoxSVC VBoxExtPackHelperApp VBoxXPCOMIPCD VBoxTestOGL VBoxBalloonCtrl vboxwebsrv webtest -t "$pkgdir/usr/lib/virtualbox"
+
+ # components
+ install -dm755 "$pkgdir/usr/lib/virtualbox/components"
+ install -m755 components/* -t "$pkgdir/usr/lib/virtualbox/components"
+
+ # extensions packs
+ ## as virtualbox install itself stuff in this directory, move it to /var and
+ ## trick it with a symlink
+ ## FIXME: trick is disabled for now
+ #install -dm755 "$pkgdir/var/lib/virtualbox/extensions"
+ #install -dm755 "$pkgdir/usr/share/virtualbox/extensions"
+ #ln -s ../../../var/lib/virtualbox/extensions "$pkgdir/usr/lib/virtualbox/ExtensionPacks"
+ install -dm755 "$pkgdir/usr/lib/virtualbox/ExtensionPacks"
+
+ # languages
+ install -dm755 "$pkgdir/usr/share/virtualbox/nls"
+ install -m755 nls/*.qm -t "$pkgdir/usr/share/virtualbox/nls"
+
+ # rdesktop keymaps
+ install -dm755 "$pkgdir/usr/share/virtualbox/rdesktop-vrdp-keymaps"
+ install -m644 rdesktop-vrdp-keymaps/* "$pkgdir/usr/share/virtualbox/rdesktop-vrdp-keymaps"
+
+ # useless scripts
+ install -m755 VBoxCreateUSBNode.sh VBoxSysInfo.sh -t "$pkgdir/usr/share/virtualbox"
+
+ # icons
+ install -Dm644 VBox.png "$pkgdir/usr/share/pixmaps/VBox.png"
+
+ pushd icons >/dev/null
+ for i in *; do
+ install -d "$pkgdir/usr/share/icons/hicolor/$i/mimetypes"
+ cp $i/* "$pkgdir/usr/share/icons/hicolor/$i/mimetypes"
+ done
+ popd >/dev/null
+
+ #desktop
+ install -Dm644 virtualbox.desktop "$pkgdir/usr/share/applications/virtualbox.desktop"
+ install -Dm644 virtualbox.xml "$pkgdir/usr/share/mime/packages/virtualbox.xml"
+
+ #install configuration
+ install -dm755 "$pkgdir/etc/vbox"
+ echo 'INSTALL_DIR=/usr/lib/virtualbox' > "$pkgdir/etc/vbox/vbox.cfg"
+
+ # back to srcdir
+ cd "$srcdir"
+
+ #licence
+ install -Dm644 VirtualBox/COPYING "$pkgdir/usr/share/licenses/$_pkgname/LICENSE"
+
+ # install systemd stuff
+ install -Dm644 60-vboxdrv.rules "$pkgdir/usr/lib/udev/rules.d/60-vboxdrv.rules"
+ install -Dm644 vboxweb.service "$pkgdir/usr/lib/systemd/system/vboxweb.service"
+ install -Dm644 virtualbox.sysusers "$pkgdir/usr/lib/sysusers.d/virtualbox.conf"
+
+ # install module reloading shortcut (with a symlink with default helper)
+ install -Dm755 vboxreload "$pkgdir/usr/bin"
+ ln -s vboxreload "$pkgdir/usr/bin/rcvboxdrv"
+}
+
+package_virtualbox-sdk-svn() {
+ _pkgname=virtualbox-sdk
+ pkgdesc='VirtualBox Software Developer Kit (SDK)'
+ depends=('python2')
+ provides=('virtualbox-sdk')
+ conflicts=('virtualbox-sdk')
+
+ install -dm755 "$pkgdir/usr/lib/virtualbox"
+
+ source "VirtualBox/env.sh"
+ cd "VirtualBox/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+
+ install -Dm755 vboxshell.py "$pkgdir/usr/lib/virtualbox/vboxshell.py"
+ # python sdk
+ pushd sdk/installer
+ VBOX_INSTALL_PATH="/usr/lib/virtualbox" python2 vboxapisetup.py install --root "$pkgdir"
+ popd
+ rm -rf sdk/installer
+ cp -r sdk "$pkgdir/usr/lib/virtualbox"
+ # licence
+ install -Dm644 "$srcdir/VirtualBox/COPYING" \
+ "$pkgdir/usr/share/licenses/$_pkgname/LICENSE"
+}
+
+package_virtualbox-host-dkms-svn() {
+ _pkgname=virtualbox-host-dkms
+ pkgdesc='VirtualBox Host kernel modules sources'
+ depends=('dkms' 'gcc' 'make')
+ replaces=('virtualbox-source'
+ 'virtualbox-host-source'
+ 'virtualbox-host-modules-lts')
+ conflicts=('virtualbox-source' 'virtualbox-host-source' 'virtualbox-host-dkms')
+ provides=('VIRTUALBOX-HOST-MODULES-SVN' 'virtualbox-host-dkms')
+ optdepends=('linux-headers: build modules against Arch kernel'
+ 'linux-lts-headers: build modules against LTS kernel'
+ 'linux-zen-headers: build modules against ZEN kernel')
+ install=virtualbox-host-dkms.install
+
+ install -dm755 "$pkgdir/usr/src"
+ source "VirtualBox/env.sh"
+ cd "VirtualBox/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+ cp -r src "$pkgdir/usr/src/vboxhost-svn_OSE"
+ # licence
+ install -Dm644 "$srcdir/VirtualBox/COPYING" \
+ "$pkgdir/usr/share/licenses/$_pkgname/LICENSE"
+ # module loading
+ local _p="$pkgdir/usr/lib/modules-load.d/$_pkgname.conf"
+ install -Dm644 /dev/null "$_p"
+ printf "vboxdrv\nvboxpci\nvboxnetadp\nvboxnetflt\n" > "$_p"
+ # starting vbox 5.1, dkms.conf file was dropped
+ local _p="$pkgdir/usr/src/vboxhost-svn_OSE/dkms.conf"
+ install -Dm644 "$srcdir/$_pkgname.conf" "$_p"
+ sed -i "s,@VERSION@,svn," "$_p"
+}
+
+package_virtualbox-guest-dkms-svn() {
+ _pkgname=virtualbox-guest-dkms
+ pkgdesc='VirtualBox Guest kernel modules sources'
+ depends=('dkms' 'gcc' 'make')
+ replaces=('virtualbox-archlinux-source'
+ 'virtualbox-guest-source'
+ 'virtualbox-guest-modules-lts')
+ provides=('VIRTUALBOX-GUEST-MODULES-SVN' 'virtualbox-guest-dkms')
+ conflicts=('virtualbox-archlinux-source' 'virtualbox-guest-source' 'virtualbox-guest-dkms')
+ optdepends=('linux-headers: build modules against Arch kernel'
+ 'linux-lts-headers: build modules against LTS kernel'
+ 'linux-zen-headers: build modules against ZEN kernel')
+ install=virtualbox-guest-dkms.install
+
+ install -dm755 "$pkgdir/usr/src"
+ source "VirtualBox/env.sh"
+ cd "VirtualBox/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+ cp -r src "$pkgdir/usr/src/vboxguest-svn_OSE"
+ # licence
+ install -Dm644 "$srcdir/VirtualBox/COPYING" \
+ "$pkgdir/usr/share/licenses/$_pkgname/LICENSE"
+ # module loading
+ local _p="$pkgdir/usr/lib/modules-load.d/$_pkgname.conf"
+ install -Dm644 /dev/null "$_p"
+ printf "vboxguest\nvboxsf\nvboxvideo\n" > "$_p"
+ # starting vbox 5.1, dkms.conf file was dropped
+ local _p="$pkgdir/usr/src/vboxguest-svn_OSE/dkms.conf"
+ install -Dm644 "$srcdir/$_pkgname.conf" "$_p"
+ sed -i "s,@VERSION@,svn," "$_p"
+}
+
+package_virtualbox-guest-utils-svn() {
+ _pkgname=virtualbox-guest-utils
+ pkgdesc='VirtualBox Guest userspace utilities'
+ depends=('glibc' 'pam' 'libx11' 'libxcomposite'
+ 'libxdamage' 'libxext' 'libxfixes' 'libxmu' 'libxt' 'xorg-xrandr'
+ 'VIRTUALBOX-GUEST-MODULES-SVN')
+ replaces=('virtualbox-archlinux-additions' 'virtualbox-guest-additions')
+ conflicts=('virtualbox-archlinux-additions' 'virtualbox-guest-additions' 'virtualbox-guest-utils-nox' 'virtualbox-guest-utils')
+ provides=('virtualbox-guest-utils')
+
+ source "VirtualBox/env.sh"
+ pushd "VirtualBox/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+ install -d "$pkgdir/usr/bin"
+ install -m755 VBoxClient VBoxControl VBoxService mount.vboxsf "$pkgdir/usr/bin"
+ install -m755 -D "$srcdir"/VirtualBox/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ "$pkgdir"/usr/bin/VBoxClient-all
+ install -m644 -D "$srcdir"/VirtualBox/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ "$pkgdir"/etc/xdg/autostart/vboxclient.desktop
+ install -d "$pkgdir/usr/lib/xorg/modules/dri"
+ install -m755 VBoxOGL*.so "$pkgdir/usr/lib"
+ ln -s /usr/lib/VBoxOGL.so "$pkgdir/usr/lib/xorg/modules/dri/vboxvideo_dri.so"
+ install -m755 -D pam_vbox.so "$pkgdir/usr/lib/security/pam_vbox.so"
+ popd
+ # systemd stuff
+ install -Dm644 60-vboxguest.rules "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules"
+ install -Dm644 vboxservice.service "$pkgdir/usr/lib/systemd/system/vboxservice.service"
+ install -Dm644 virtualbox-guest-utils.sysusers "$pkgdir/usr/lib/sysusers.d/virtualbox-guest-utils.conf"
+ # licence
+ install -Dm644 VirtualBox/COPYING "$pkgdir/usr/share/licenses/$_pkgname/LICENSE"
+}
+
+package_virtualbox-guest-utils-nox-svn() {
+ _pkgname=virtualbox-guest-utils-nox
+ pkgdesc='VirtualBox Guest userspace utilities without X support'
+ depends=('glibc' 'pam' 'VIRTUALBOX-GUEST-MODULES-SVN')
+ provides=('virtualbox-guest-utils-nox')
+ conflicts=('virtualbox-guest-utils' 'virtualbox-guest-utils-nox')
+
+ source "VirtualBox/env.sh"
+ pushd "VirtualBox/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+ install -d "$pkgdir/usr/bin"
+ install -m755 VBoxControl VBoxService mount.vboxsf "$pkgdir/usr/bin"
+ install -m755 -D pam_vbox.so "$pkgdir/usr/lib/security/pam_vbox.so"
+ popd
+ # systemd stuff
+ install -Dm644 60-vboxguest.rules "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules"
+ install -Dm644 vboxservice-nox.service "$pkgdir/usr/lib/systemd/system/vboxservice.service"
+ install -Dm644 virtualbox-guest-utils.sysusers "$pkgdir/usr/lib/sysusers.d/virtualbox-guest-utils.conf"
+ # licence
+ install -Dm644 "$srcdir/VirtualBox/COPYING" \
+ "$pkgdir/usr/share/licenses/$_pkgname/LICENSE"
+}
+
+package_virtualbox-ext-vnc-svn() {
+ _pkgname=virtualbox-ext-vnc
+ pkgdesc='VirtualBox VNC extension pack'
+ depends=('virtualbox' 'libvncserver')
+ optdepends=('tigervnc: vnc client')
+ provides=('virtualbox-ext-vnc')
+ conflicts=('virtualbox-ext-vnc')
+ install=virtualbox-ext-vnc.install
+
+ source "VirtualBox/env.sh"
+ cd "VirtualBox/out/linux.$BUILD_PLATFORM_ARCH/release/packages"
+ install -Dm644 VNC-*.vbox-extpack "$pkgdir/usr/share/virtualbox/extensions/VNC-svn.vbox-extpack"
+ # licence
+ install -Dm644 "$srcdir/VirtualBox/COPYING" \
+ "$pkgdir/usr/share/licenses/$_pkgname/LICENSE"
+}
+
+# vim:set ts=4 sw=4 et:
diff --git a/build.sh b/build.sh
new file mode 100755
index 000000000000..11c0aac7e228
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+multilib-build "$@" && extra-i686-build "$@"
diff --git a/vboxreload b/vboxreload
new file mode 100755
index 000000000000..04b6e7b9e381
--- /dev/null
+++ b/vboxreload
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+# vboxreload: shortcut to reload virtualbox host modules
+#
+# Copyright © 2016 Sébastien Luttringer
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+(( UID > 0 )) && { echo 'You must be root' >&2; exit 1; }
+
+modules=(vboxnetadp vboxnetflt vboxpci vboxdrv)
+
+echo -n 'Unloading modules: '
+for _m in "${modules[@]}"; do
+ lsmod|grep -q "$_m" && rmmod "$_m" && echo -n "$_m "
+done
+echo
+
+echo -n 'Loading modules: '
+for _m in "${modules[@]}"; do
+ modprobe "$_m" && echo -n "$_m "
+done
+echo
+
+# vim:set ts=2 sw=2 ai et:
diff --git a/vboxservice-nox.service b/vboxservice-nox.service
new file mode 100644
index 000000000000..7204fda119b7
--- /dev/null
+++ b/vboxservice-nox.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=VirtualBox Guest Service
+ConditionVirtualization=oracle
+
+[Service]
+ExecStartPre=-/usr/bin/modprobe vboxguest
+ExecStartPre=-/usr/bin/modprobe vboxsf
+ExecStart=/usr/bin/VBoxService -f
+
+[Install]
+WantedBy=multi-user.target
diff --git a/vboxservice.service b/vboxservice.service
new file mode 100644
index 000000000000..7e0c87f0b5fa
--- /dev/null
+++ b/vboxservice.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=VirtualBox Guest Service
+ConditionVirtualization=oracle
+
+[Service]
+ExecStartPre=-/usr/bin/modprobe vboxguest
+ExecStartPre=-/usr/bin/modprobe vboxvideo
+ExecStartPre=-/usr/bin/modprobe vboxsf
+ExecStart=/usr/bin/VBoxService -f
+
+[Install]
+WantedBy=multi-user.target
diff --git a/vboxweb.service b/vboxweb.service
new file mode 100644
index 000000000000..303381597a40
--- /dev/null
+++ b/vboxweb.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=VirtualBox Web Service
+After=network.target
+
+[Service]
+Type=forking
+PIDFile=/run/vboxweb.pid
+ExecStart=/usr/bin/vboxwebsrv --pidfile /run/vboxweb.pid --background
+
+[Install]
+WantedBy=multi-user.target
diff --git a/virtualbox-ext-vnc.install b/virtualbox-ext-vnc.install
new file mode 100644
index 000000000000..7dc3cedbcb80
--- /dev/null
+++ b/virtualbox-ext-vnc.install
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# arg 1: the new package version
+post_install() {
+ EXTPACK="/usr/share/virtualbox/extensions/VNC-svn.vbox-extpack"
+ ACCEPT="$(bsdtar --to-stdout -xf "${EXTPACK}" ./ExtPack-license.txt | sha256sum | head --bytes=64)"
+ VBoxManage extpack install "${EXTPACK}" --accept-license="${ACCEPT}" >/dev/null
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ pre_remove "$2"
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install "$1"
+}
+
+# arg 1: the old package version
+pre_remove() {
+ VBoxManage extpack uninstall 'VNC' >/dev/null
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/virtualbox-guest-dkms.conf b/virtualbox-guest-dkms.conf
new file mode 100644
index 000000000000..3b2cb11bcc73
--- /dev/null
+++ b/virtualbox-guest-dkms.conf
@@ -0,0 +1,37 @@
+## @file
+# Linux DKMS config script for the VirtualBox guest kernel modules
+#
+
+#
+# Copyright (C) 2006-2015 Oracle Corporation
+#
+# This file is part of VirtualBox Open Source Edition (OSE), as
+# available from http://www.virtualbox.org. This file is free software;
+# you can redistribute it and/or modify it under the terms of the GNU
+# General Public License (GPL) as published by the Free Software
+# Foundation, in version 2 as it comes in the "COPYING" file of the
+# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+#
+
+PACKAGE_NAME="vboxguest"
+PACKAGE_VERSION=@VERSION@_OSE
+AUTOINSTALL=yes
+
+BUILT_MODULE_NAME[0]="vboxguest"
+MAKE[0]="make"
+CLEAN[0]="make clean"
+BUILT_MODULE_LOCATION[0]="vboxguest"
+DEST_MODULE_LOCATION[0]="/kernel/misc"
+
+BUILT_MODULE_NAME[1]="vboxsf"
+MAKE[1]="make"
+CLEAN[1]="make clean"
+BUILT_MODULE_LOCATION[1]="vboxsf"
+DEST_MODULE_LOCATION[1]="/kernel/misc"
+
+BUILT_MODULE_NAME[2]="vboxvideo"
+MAKE[2]="make"
+CLEAN[2]="make clean"
+BUILT_MODULE_LOCATION[2]="vboxvideo"
+DEST_MODULE_LOCATION[2]="/kernel/misc"
diff --git a/virtualbox-guest-dkms.install b/virtualbox-guest-dkms.install
new file mode 100644
index 000000000000..b82d87b5e467
--- /dev/null
+++ b/virtualbox-guest-dkms.install
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ dkms remove vboxguest/svn_OSE --all
+}
+post_upgrade() {
+ if (( $(vercmp $2 5.0.16-3) < 0 )); then
+ echo '==> Since version 5.0.16-2 kernel modules are loaded at boot by systemd-modules-load.'
+ echo '==> Read modules-load.d man page to disable them.'
+ fi
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/virtualbox-guest-utils.sysusers b/virtualbox-guest-utils.sysusers
new file mode 100644
index 000000000000..12453ad8b923
--- /dev/null
+++ b/virtualbox-guest-utils.sysusers
@@ -0,0 +1 @@
+g vboxsf 109 -
diff --git a/virtualbox-host-dkms.conf b/virtualbox-host-dkms.conf
new file mode 100644
index 000000000000..f00a1f49d982
--- /dev/null
+++ b/virtualbox-host-dkms.conf
@@ -0,0 +1,43 @@
+## @file
+# Linux DKMS config script for the VirtualBox guest kernel modules
+#
+
+#
+# Copyright (C) 2006-2015 Oracle Corporation
+#
+# This file is part of VirtualBox Open Source Edition (OSE), as
+# available from http://www.virtualbox.org. This file is free software;
+# you can redistribute it and/or modify it under the terms of the GNU
+# General Public License (GPL) as published by the Free Software
+# Foundation, in version 2 as it comes in the "COPYING" file of the
+# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+#
+
+PACKAGE_NAME="vboxhost"
+PACKAGE_VERSION=@VERSION@_OSE
+AUTOINSTALL=yes
+
+BUILT_MODULE_NAME[0]="vboxdrv"
+MAKE[0]="make"
+CLEAN[0]="make clean"
+BUILT_MODULE_LOCATION[0]="vboxdrv"
+DEST_MODULE_LOCATION[0]="/kernel/misc"
+
+BUILT_MODULE_NAME[1]="vboxnetflt"
+MAKE[1]="make"
+CLEAN[1]="make clean"
+BUILT_MODULE_LOCATION[1]="vboxnetflt"
+DEST_MODULE_LOCATION[1]="/kernel/misc"
+
+BUILT_MODULE_NAME[2]="vboxnetadp"
+MAKE[2]="make"
+CLEAN[2]="make clean"
+BUILT_MODULE_LOCATION[2]="vboxnetadp"
+DEST_MODULE_LOCATION[2]="/kernel/misc"
+
+BUILT_MODULE_NAME[3]="vboxpci"
+MAKE[3]="make"
+CLEAN[3]="make clean"
+BUILT_MODULE_LOCATION[3]="vboxpci"
+DEST_MODULE_LOCATION[3]="/kernel/misc"
diff --git a/virtualbox-host-dkms.install b/virtualbox-host-dkms.install
new file mode 100644
index 000000000000..c6934b6388c8
--- /dev/null
+++ b/virtualbox-host-dkms.install
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ dkms remove vboxhost/svn_OSE --all
+}
+post_upgrade() {
+ if (( $(vercmp $2 5.0.16-3) < 0 )); then
+ echo '==> Since version 5.0.16-2 kernel modules are loaded at boot by systemd-modules-load.'
+ echo '==> Read modules-load.d man page to disable them.'
+ fi
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/virtualbox.install b/virtualbox.install
new file mode 100644
index 000000000000..ca39579b2a73
--- /dev/null
+++ b/virtualbox.install
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if (( $(vercmp $2 5.0.16-1) < 0 )); then
+ echo '==> Since version 5.0.14-2 kernel modules are provided via dkms'
+ echo '==> Check you have the headers matching your kernel installed'
+ fi
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/virtualbox.sysusers b/virtualbox.sysusers
new file mode 100644
index 000000000000..4d4caeb27936
--- /dev/null
+++ b/virtualbox.sysusers
@@ -0,0 +1 @@
+g vboxusers 108 -