summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO90
-rw-r--r--013-Makefile.patch2
-rw-r--r--10-vboxdrv.rules5
-rw-r--r--60-vboxdrv.rules8
-rw-r--r--LICENSE.sdk13
-rw-r--r--PKGBUILD285
-rw-r--r--VBoxFixUSB16
-rw-r--r--do_dkms67
-rw-r--r--vboxreload37
-rw-r--r--vboxweb.conf11
-rw-r--r--vboxweb.rc86
-rw-r--r--vboxweb.service11
-rw-r--r--virtualbox-bin.install47
-rw-r--r--virtualbox.sysusers1
14 files changed, 252 insertions, 427 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b0383ec41b6e..4a10c9b3a3ad 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,16 +1,41 @@
pkgbase = virtualbox-bin
- pkgdesc = Oracle VM VirtualBox Binary Edition (Oracle branded non-OSE version)
+ pkgdesc = Powerful x86 virtualization for enterprise as well as home use (Oracle branded non-OSE)
pkgver = 6.1.12
- pkgrel = 1
+ pkgrel = 2
url = https://www.virtualbox.org/
- install = virtualbox-bin.install
arch = x86_64
license = GPL2
- makedepends = linux-headers
+ makedepends = python
+ noextract = VirtualBoxSDK-6.1.12-139181.zip
+ source = http://download.virtualbox.org/virtualbox/6.1.12/VirtualBox-6.1.12-139181-Linux_amd64.run
+ source = https://download.virtualbox.org/virtualbox/6.1.12/VirtualBoxSDK-6.1.12-139181.zip
+ source = VBoxAuth-r83509.h::https://www.virtualbox.org/svn/vbox/trunk/include/VBox/VBoxAuth.h?p=83509
+ source = VBoxAuthPAM-r83509.c::https://www.virtualbox.org/svn/vbox/trunk/src/VBox/HostServices/auth/pam/VBoxAuthPAM.c?p=83509
+ source = VBoxAuthSimple-r83509.cpp::https://www.virtualbox.org/svn/vbox/trunk/src/VBox/HostServices/auth/simple/VBoxAuthSimple.cpp?p=83509
+ source = dkms.conf
+ source = vboxreload
+ source = 60-vboxdrv.rules
+ source = vboxweb.service
+ source = virtualbox.sysusers
+ source = LICENSE.sdk
+ source = 013-Makefile.patch
+ sha256sums = 0a99475b1eac8c9e343305ecad4a6b14d5db5cc2869be7b0803fbccc52dec675
+ sha256sums = 7c2bca541d380236c504205497a6eb2a7fb33051b5f7ebfcbd1dcf8b68f0f22f
+ sha256sums = 61eab70173ec0c4959ec3b8bf9fa19cfac49bb223a0bb041fe12aa14742db15a
+ sha256sums = f54c38e2d112e0221daa1ddd563a260d18d7d510c485a7d27c317d379e06ff79
+ sha256sums = 2ef58e7f24ed9114dbf29dfa77372b5e15962a2244315ffbfb592cdc10920ad8
+ sha256sums = 63f1e9eabedec2170bd0589aaa2bf5025ff8f8ec1764cc4823cbe446e9ce1388
+ sha256sums = 4001b5927348fe669a541e80526d4f9ea91b883805f102f7d571edbb482a9b9d
+ sha256sums = 9c5238183019f9ebc7d92a8582cad232f471eab9d3278786225abc1a1c7bf66e
+ sha256sums = e6e875ef186578b53106d7f6af48e426cdaf1b4e86834f01696b8ef1c685787f
+ sha256sums = 2101ebb58233bbfadf3aa74381f22f7e7e508559d2b46387114bc2d8e308554c
+ sha256sums = 09335d7d1075df02d29cec13119538134efdf43ea73a93b0f89d0d7d4b6625a1
+ sha256sums = 8ec385a28455734a7ee6fc42083a977edf39b3ae22468b486842ab72904b287b
+
+pkgname = virtualbox-bin
depends = device-mapper
depends = dkms
depends = fontconfig
- depends = gcc
depends = hicolor-icon-theme
depends = libgl
depends = libidl2
@@ -19,50 +44,35 @@ pkgbase = virtualbox-bin
depends = libxmu
depends = python
depends = sdl
- optdepends = virtualbox-ext-oracle: for Oracle extensions
- optdepends = java-runtime: for webservice sdk java bindings
- optdepends = linux-headers: build the module for Arch kernel
- optdepends = linux-lts-headers: build the module for LTS Arch kernel
+ optdepends = virtualbox-bin-guest-iso: for guest additions CD image
+ optdepends = virtualbox-bin-sdk: for the software developer kit
+ optdepends = virtualbox-ext-oracle: for Oracle extensions pack
provides = virtualbox=6.1.12
- provides = virtualbox-sdk
- provides = VIRTUALBOX-HOST-MODULES
provides = virtualbox-host-dkms
- provides = virtualbox-guest-iso
+ provides = VIRTUALBOX-HOST-MODULES
conflicts = virtualbox
- conflicts = virtualbox-sdk
conflicts = virtualbox-host-dkms
conflicts = virtualbox-host-modules-arch
replaces = virtualbox_bin
replaces = virtualbox-sun
- noextract = VirtualBoxSDK-6.1.12-139181.zip
options = !strip
options = !emptydirs
backup = etc/vbox/vbox.cfg
- backup = etc/conf.d/vboxweb
- source = http://download.virtualbox.org/virtualbox/6.1.12/VirtualBox-6.1.12-139181-Linux_amd64.run
- source = https://download.virtualbox.org/virtualbox/6.1.12/VirtualBoxSDK-6.1.12-139181.zip
- source = VBoxAuth-r83509.h::https://www.virtualbox.org/svn/vbox/trunk/include/VBox/VBoxAuth.h?p=83509
- source = VBoxAuthPAM-r83509.c::https://www.virtualbox.org/svn/vbox/trunk/src/VBox/HostServices/auth/pam/VBoxAuthPAM.c?p=83509
- source = VBoxAuthSimple-r83509.cpp::https://www.virtualbox.org/svn/vbox/trunk/src/VBox/HostServices/auth/simple/VBoxAuthSimple.cpp?p=83509
- source = VBoxFixUSB
- source = 10-vboxdrv.rules
- source = vboxweb.rc
- source = vboxweb.conf
- source = do_dkms
- source = dkms.conf
- source = 013-Makefile.patch
- sha256sums = 0a99475b1eac8c9e343305ecad4a6b14d5db5cc2869be7b0803fbccc52dec675
- sha256sums = 7c2bca541d380236c504205497a6eb2a7fb33051b5f7ebfcbd1dcf8b68f0f22f
- sha256sums = 61eab70173ec0c4959ec3b8bf9fa19cfac49bb223a0bb041fe12aa14742db15a
- sha256sums = f54c38e2d112e0221daa1ddd563a260d18d7d510c485a7d27c317d379e06ff79
- sha256sums = 2ef58e7f24ed9114dbf29dfa77372b5e15962a2244315ffbfb592cdc10920ad8
- sha256sums = 0aebe22abab402ea6b6573af637a99d8056a904920a52d84fb97729219219c23
- sha256sums = 69417a9e8855cab8e4878886abe138f559fd17ae487d4cd19c8a24974a8bbec2
- sha256sums = 656905de981ffa24f6f921c920538854a235225053f44baedacc07b46ca0cf56
- sha256sums = 12dbba3b59991f2b68cddeeeda20236aeff63e11b7e2d1b08d9d6a82225f6651
- sha256sums = cc1c0500ab07bc13563d99037f776bf64bdc90bb521e31e2e0b04e42ea5bb36a
- sha256sums = 63f1e9eabedec2170bd0589aaa2bf5025ff8f8ec1764cc4823cbe446e9ce1388
- sha256sums = 268e794de9d66a2751006b2ca3810fc6a05da4af2ffa8b58c56c94b292f1f424
-pkgname = virtualbox-bin
+pkgname = virtualbox-bin-guest-iso
+ pkgdesc = VirtualBox guest additions ISO image for use with virtualbox-bin package
+ arch = any
+ provides = virtualbox-guest-iso
+
+pkgname = virtualbox-bin-sdk
+ pkgdesc = VirtualBox software developer kit for use with virtualbox-bin package
+ arch = any
+ license = LGPL2.1
+ license = GPL2
+ license = BSD
+ license = custom
+ depends = python
+ optdepends = java-runtime: for webservice java bindings
+ provides = virtualbox-sdk
+ conflicts = virtualbox-sdk
diff --git a/013-Makefile.patch b/013-Makefile.patch
index 351f2f36a3fd..556350253afe 100644
--- a/013-Makefile.patch
+++ b/013-Makefile.patch
@@ -1,5 +1,3 @@
-diff --git a/src/vboxhost/Makefile b/src/vboxhost/Makefile
-index 18466b48..7c7de4e5 100644
--- a/src/vboxhost/Makefile
+++ b/src/vboxhost/Makefile
@@ -23,25 +23,25 @@
diff --git a/10-vboxdrv.rules b/10-vboxdrv.rules
deleted file mode 100644
index 12b7ab57afc6..000000000000
--- a/10-vboxdrv.rules
+++ /dev/null
@@ -1,5 +0,0 @@
-KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
-SUBSYSTEM=="usb_device", ACTION=="add", RUN="VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
-SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
-SUBSYSTEM=="usb_device", ACTION=="remove", RUN="VBoxCreateUSBNode.sh --remove $major $minor"
-SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="VBoxCreateUSBNode.sh --remove $major $minor"
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/LICENSE.sdk b/LICENSE.sdk
new file mode 100644
index 000000000000..8dcb4c295697
--- /dev/null
+++ b/LICENSE.sdk
@@ -0,0 +1,13 @@
+License information
+
+The sample code files shipped with the SDK are generally licensed liberally
+to make it easy for anyone to use this code for their own application code.
+
+The Java files under /opt/VirtualBox/sdk/bindings/webservice/java/jax-ws/
+(library files for the object-oriented web service) are, by contrast,
+licensed under the GNU Lesser General Public License (LGPL) V2.1.
+See /opt/VirtualBox/sdk/bindings/webservice/java/jax-ws/COPYING.LIB for
+the full text of the LGPL 2.1.
+
+When in doubt, please refer to the individual source code files shipped
+with this SDK.
diff --git a/PKGBUILD b/PKGBUILD
index 250af1c95bd6..2c79d124e205 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,40 +4,29 @@
# Contributor: khomutsky <bogdan@khomutsky.com>
# Contributor: M0Rf30
-pkgname=virtualbox-bin
+pkgbase=virtualbox-bin
+pkgname=('virtualbox-bin' 'virtualbox-bin-guest-iso' 'virtualbox-bin-sdk')
pkgver=6.1.12
_build=139181
_rev=83509
-pkgrel=1
-pkgdesc='Oracle VM VirtualBox Binary Edition (Oracle branded non-OSE version)'
+pkgrel=2
+pkgdesc='Powerful x86 virtualization for enterprise as well as home use (Oracle branded non-OSE)'
arch=('x86_64')
url='https://www.virtualbox.org/'
license=('GPL2')
-depends=('device-mapper' 'dkms' 'fontconfig' 'gcc' 'hicolor-icon-theme' 'libgl'
- 'libidl2' 'libxcursor' 'libxinerama' 'libxmu' 'python' 'sdl')
-makedepends=('linux-headers')
-optdepends=('virtualbox-ext-oracle: for Oracle extensions'
- 'java-runtime: for webservice sdk java bindings'
- 'linux-headers: build the module for Arch kernel'
- 'linux-lts-headers: build the module for LTS Arch kernel')
-provides=("virtualbox=${pkgver}" 'virtualbox-sdk' 'VIRTUALBOX-HOST-MODULES'
- 'virtualbox-host-dkms' 'virtualbox-guest-iso')
-conflicts=('virtualbox' 'virtualbox-sdk' 'virtualbox-host-dkms' 'virtualbox-host-modules-arch')
-replaces=('virtualbox_bin' 'virtualbox-sun')
-backup=('etc/vbox/vbox.cfg' 'etc/conf.d/vboxweb')
-options=('!strip' '!emptydirs')
-install="${pkgname}.install"
+makedepends=('python')
+_rdeskver=1.8.4
source=("http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}-${_build}-Linux_amd64.run"
"https://download.virtualbox.org/virtualbox/${pkgver}/VirtualBoxSDK-${pkgver}-${_build}.zip"
"VBoxAuth-r${_rev}.h"::"https://www.virtualbox.org/svn/vbox/trunk/include/VBox/VBoxAuth.h?p=${_rev}"
"VBoxAuthPAM-r${_rev}.c"::"https://www.virtualbox.org/svn/vbox/trunk/src/VBox/HostServices/auth/pam/VBoxAuthPAM.c?p=${_rev}"
"VBoxAuthSimple-r${_rev}.cpp"::"https://www.virtualbox.org/svn/vbox/trunk/src/VBox/HostServices/auth/simple/VBoxAuthSimple.cpp?p=${_rev}"
- 'VBoxFixUSB'
- '10-vboxdrv.rules'
- 'vboxweb.rc'
- 'vboxweb.conf'
- 'do_dkms'
'dkms.conf'
+ 'vboxreload'
+ '60-vboxdrv.rules'
+ 'vboxweb.service'
+ 'virtualbox.sysusers'
+ 'LICENSE.sdk'
'013-Makefile.patch')
noextract=("VirtualBoxSDK-${pkgver}-${_build}.zip")
sha256sums=('0a99475b1eac8c9e343305ecad4a6b14d5db5cc2869be7b0803fbccc52dec675'
@@ -45,172 +34,162 @@ sha256sums=('0a99475b1eac8c9e343305ecad4a6b14d5db5cc2869be7b0803fbccc52dec675'
'61eab70173ec0c4959ec3b8bf9fa19cfac49bb223a0bb041fe12aa14742db15a'
'f54c38e2d112e0221daa1ddd563a260d18d7d510c485a7d27c317d379e06ff79'
'2ef58e7f24ed9114dbf29dfa77372b5e15962a2244315ffbfb592cdc10920ad8'
- '0aebe22abab402ea6b6573af637a99d8056a904920a52d84fb97729219219c23'
- '69417a9e8855cab8e4878886abe138f559fd17ae487d4cd19c8a24974a8bbec2'
- '656905de981ffa24f6f921c920538854a235225053f44baedacc07b46ca0cf56'
- '12dbba3b59991f2b68cddeeeda20236aeff63e11b7e2d1b08d9d6a82225f6651'
- 'cc1c0500ab07bc13563d99037f776bf64bdc90bb521e31e2e0b04e42ea5bb36a'
'63f1e9eabedec2170bd0589aaa2bf5025ff8f8ec1764cc4823cbe446e9ce1388'
- '268e794de9d66a2751006b2ca3810fc6a05da4af2ffa8b58c56c94b292f1f424')
+ '4001b5927348fe669a541e80526d4f9ea91b883805f102f7d571edbb482a9b9d'
+ '9c5238183019f9ebc7d92a8582cad232f471eab9d3278786225abc1a1c7bf66e'
+ 'e6e875ef186578b53106d7f6af48e426cdaf1b4e86834f01696b8ef1c685787f'
+ '2101ebb58233bbfadf3aa74381f22f7e7e508559d2b46387114bc2d8e308554c'
+ '09335d7d1075df02d29cec13119538134efdf43ea73a93b0f89d0d7d4b6625a1'
+ '8ec385a28455734a7ee6fc42083a977edf39b3ae22468b486842ab72904b287b')
prepare() {
- mkdir -p "${pkgname}-${pkgver}/VirtualBox-extracted"
+ local _extractdir="${pkgname}-${pkgver}/VirtualBox-extracted"
- # extract the main source file
- yes 2>/dev/null | sh "VirtualBox-${pkgver}-${_build}-Linux_amd64.run" \
- --target "${pkgname}-${pkgver}" --nox11 --noexec &> /dev/null
- tar -jxf "${pkgname}-${pkgver}/VirtualBox.tar.bz2" -C "${pkgname}-${pkgver}/VirtualBox-extracted"
-
- # extract sdk
+ # extract files
+ mkdir -p "$_extractdir"
+ sh "VirtualBox-${pkgver}-${_build}-Linux_amd64.run" --noexec --nox11 --target "${pkgname}-${pkgver}"
+ bsdtar -xf "${pkgname}-${pkgver}/VirtualBox.tar.bz2" -C "$_extractdir"
bsdtar -xf "VirtualBoxSDK-${pkgver}-${_build}.zip" -C "${pkgname}-${pkgver}"
+ bsdtar -xf "${_extractdir}/rdesktop-vrdp.tar.gz" -C "${pkgname}-${pkgver}" --include='*.1'
+
+ # dkms configuration
+ install -D -m644 dkms.conf -t "${_extractdir}/src/vboxhost"
+ sed -i "s/^\(PACKAGE_VERSION\)=.*/\1=${pkgver}/" "${_extractdir}/src/vboxhost/dkms.conf"
# fix dkms build
- patch -d "${pkgname}-${pkgver}/VirtualBox-extracted" -Np1 -i "${srcdir}/013-Makefile.patch"
+ patch -d "$_extractdir" -Np1 -i "${srcdir}/013-Makefile.patch"
}
build() {
- local _installdir='opt/VirtualBox'
-
cd "${pkgname}-${pkgver}/sdk/installer"
- VBOX_INSTALL_PATH="/${_installdir}" python vboxapisetup.py build
+ VBOX_INSTALL_PATH='/opt/VirtualBox' python vboxapisetup.py build
}
-package() {
+package_virtualbox-bin() {
+ depends=('device-mapper' 'dkms' 'fontconfig' 'hicolor-icon-theme' 'libgl'
+ 'libidl2' 'libxcursor' 'libxinerama' 'libxmu' 'python' 'sdl')
+ optdepends=('virtualbox-bin-guest-iso: for guest additions CD image'
+ 'virtualbox-bin-sdk: for the software developer kit'
+ 'virtualbox-ext-oracle: for Oracle extensions pack')
+ provides=("virtualbox=${pkgver}" 'virtualbox-host-dkms' 'VIRTUALBOX-HOST-MODULES')
+ conflicts=('virtualbox' 'virtualbox-host-dkms' 'virtualbox-host-modules-arch')
+ replaces=('virtualbox_bin' 'virtualbox-sun')
+ backup=('etc/vbox/vbox.cfg')
+ options=('!strip' '!emptydirs')
+
local _installdir='opt/VirtualBox'
# install bundled files
- printf '%s\n' ' -> Installing bundled files...'
- install -d "${pkgdir}/opt"
+ mkdir -p "${pkgdir}/opt"
cp -pr "${pkgname}-${pkgver}/VirtualBox-extracted" "${pkgdir}/${_installdir}"
- # hardened build: mark binaries suid root, and make sure the
- # directory is only writable by the user
- printf '%s\n' ' -> Fixing permissions...'
- cd "${pkgdir}/${_installdir}"
- chmod 4755 VirtualBoxVM VBox{Headless,Net{AdpCtl,DHCP,NAT},SDL,VolInfo}
+ # mark binaries suid root, and make sure the directory is only writable by the user
+ chmod 4755 "${pkgdir}/${_installdir}"/{VirtualBoxVM,VBox{Headless,Net{AdpCtl,DHCP,NAT},SDL,VolInfo}}
chmod go-w "${pkgdir}/${_installdir}"
- # install SDK
- printf '%s\n' ' -> Installing SDK...'
- cd "${srcdir}/${pkgname}-${pkgver}"
- pushd 'sdk/installer' >/dev/null
- VBOX_INSTALL_PATH="/${_installdir}" python vboxapisetup.py install --root "$pkgdir" --skip-build --optimize='1'
- popd >/dev/null
- rm -r "${pkgdir}/${_installdir}/sdk"
- mkdir -p "${pkgdir}/${_installdir}/sdk"
- cp -a sdk/bindings "${pkgdir}/${_installdir}/sdk"
- cp -a sdk/docs "${pkgdir}/${_installdir}"
- install -D -m644 "${srcdir}/VBoxAuth-r${_rev}.h" "${pkgdir}/${_installdir}/sdk/bindings/auth/include/VBoxAuth.h"
- install -D -m644 "${srcdir}/VBoxAuthPAM-r${_rev}.c" "${pkgdir}/${_installdir}/sdk/bindings/auth/VBoxAuthPAM.cpp"
- install -D -m644 "${srcdir}/VBoxAuthSimple-r${_rev}.cpp" "${pkgdir}/${_installdir}/sdk/bindings/auth/VBoxAuthSimple.cpp"
-
- # install udev rules
- printf '%s\n' ' -> Installing udev rules...'
- cd "${pkgdir}/${_installdir}"
- install -D -m0644 "${srcdir}/10-vboxdrv.rules" "${pkgdir}/usr/lib/udev/rules.d/10-vboxdrv.rules"
+ # remove guest iso, rdesktop-vrdp packed sources and bundled sdk files
+ rm -r "${pkgdir}/${_installdir}"/{additions/VBoxGuestAdditions.iso,rdesktop-vrdp.tar.gz,sdk}
+
+ # module sources
+ mkdir -p "${pkgdir}/usr/src"
+ mv "${pkgdir}/${_installdir}/src/vboxhost" "${pkgdir}/usr/src/vboxhost-${pkgver}_non_OSE"
+
+ # module reloading shortcut (with a symlink with default helper)
+ install -D -m755 vboxreload -t "${pkgdir}/usr/bin"
+ ln -s vboxreload "${pkgdir}/usr/bin/rcvboxdrv"
+
+ # udev rules
## we need to copy and not symlink VBoxCreateUSBNode.sh in /usr/lib/udev to avoid udevd
## to look /opt when /opt is not mounted. This can be done until VBoxCreateUSBNode.sh doesn't
## need more stuff from /opt
- cp -a VBoxCreateUSBNode.sh "${pkgdir}/usr/lib/udev/"
-
- printf '%s\n' ' -> Installing scripts...'
+ install -D -m644 60-vboxdrv.rules -t "${pkgdir}/usr/lib/udev/rules.d"
+ install -D -m755 "${pkgdir}/${_installdir}/VBoxCreateUSBNode.sh" -t "${pkgdir}/usr/lib/udev"
+ install -D -m755 "${pkgdir}/${_installdir}/VBoxCreateUSBNode.sh" -t "${pkgdir}/usr/share/virtualbox"
- # install VBoxFixUSB script
- install -D -m0755 "${srcdir}/VBoxFixUSB" VBoxFixUSB
+ # configuration file
+ printf '%s\n' "INSTALL_DIR=/${_installdir}" | install -D -m644 /dev/stdin "${pkgdir}/etc/vbox/vbox.cfg"
- # install vboxweb initscript
- install -D -m0755 "${srcdir}/vboxweb.rc" "${pkgdir}/etc/rc.d/vboxweb"
- install -D -m0644 "${srcdir}/vboxweb.conf" "${pkgdir}/etc/conf.d/vboxweb"
+ # modules-load.d configuration
+ printf 'vboxdrv\nvboxnetadp\nvboxnetflt\n' |
+ install -D -m644 /dev/stdin "${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
- printf '%s\n' ' -> Creating needed symlinks...'
+ # systemd
+ install -D -m644 vboxweb.service -t "${pkgdir}/usr/lib/systemd/system"
+ install -D -m644 virtualbox.sysusers "${pkgdir}/usr/lib/sysusers.d/virtualbox.conf"
- # symlinks for working around unsupported $ORIGIN/.. in VBoxC.so
- local _lib
- for _lib in VBox{RT,XPCOM}.so
- do
- ln -s "../${_lib}" "components/${_lib}"
- done
+ # man page for rdesktop-vrdp
+ install -D -m644 "${pkgname}-${pkgver}/rdesktop-${_rdeskver}-vrdp/doc/rdesktop.1" -t "${pkgdir}/usr/share/man/man1"
- # symlink the launchers
- local _bin
- install -d -m0755 "${pkgdir}/usr/bin"
- for _bin in VirtualBox{,VM} VBox{Headless,Manage,SDL,SVC,Tunctl,NetAdpCtl,FixUSB}
+ # symlinks
+ local _dir
+ local _file
+ mkdir -p "${pkgdir}/usr/share"/{applications,{doc,licenses}/"$pkgname",mime/packages,pixmaps}
+ for _file in vboxwebsrv VirtualBox{,VM} VBox{Manage,SDL,VRDP,Headless,Autostart,BalloonCtrl,BugReport,DTrace}
do
- ln -s "../../${_installdir}/${_bin}" "${pkgdir}/usr/bin/${_bin}"
- ln -s "../../${_installdir}/${_bin}" "${pkgdir}/usr/bin/${_bin,,}"
+ ln -s "../../${_installdir}/VBox.sh" "${pkgdir}/usr/bin/${_file}"
+ [ "$_file" != 'vboxwebsrv' ] && ln -s "../../${_installdir}/VBox.sh" "${pkgdir}/usr/bin/${_file,,}"
done
+ ln -s "../../${_installdir}/VBoxTunctl" "${pkgdir}/usr/bin/VBoxTunctl"
ln -s "../../${_installdir}/rdesktop-vrdp" "${pkgdir}/usr/bin/rdesktop-vrdp"
-
- # symlink the desktop icon and .desktop files
- install -d -m0755 "${pkgdir}/usr/"{share/applications,share/pixmaps}
- ln -s "../../../${_installdir}/VBox.png" "${pkgdir}/usr/share/pixmaps/VBox.png"
- ln -s "../../../${_installdir}/icons/128x128/virtualbox.png" "${pkgdir}/usr/share/pixmaps/virtualbox.png"
- ln -s "../../../${_installdir}/virtualbox.desktop" "${pkgdir}/usr/share/applications/virtualbox.desktop"
-
- # symlink mime info
- install -d -m0755 "${pkgdir}/usr/share/mime/packages"
+ ln -s "../../../${_installdir}/VBoxSysInfo.sh" "${pkgdir}/usr/share/virtualbox/VBoxSysInfo.sh"
+ ln -s "../../../usr/src/vboxhost-${pkgver}_non_OSE" "${pkgdir}/${_installdir}/src/vboxhost"
+ ln -s "../../../${_installdir}/VBox.png" "${pkgdir}/usr/share/pixmaps/VBox.png"
+ ln -s "../../../${_installdir}/virtualbox.desktop" "${pkgdir}/usr/share/applications/virtualbox.desktop"
ln -s "../../../../${_installdir}/virtualbox.xml" "${pkgdir}/usr/share/mime/packages/virtualbox.xml"
-
- # symlink doc
- install -d -m0755 "${pkgdir}/usr/share/doc/${pkgname}"
- ln -s "../../../../${_installdir}/VirtualBox.chm" "${pkgdir}/usr/share/doc/${pkgname}/virtualbox.chm"
-
- # symlink icons
- local _dir
- local _icon
- pushd icons >/dev/null
- for _dir in *
+ ln -s "../../../../${_installdir}/UserManual.pdf" "${pkgdir}/usr/share/doc/${pkgname}/UserManual.pdf"
+ ln -s "../../../../${_installdir}/VirtualBox.chm" "${pkgdir}/usr/share/doc/${pkgname}/VirtualBox.chm"
+ ln -s "../../../../${_installdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ ## hicolor icons
+ while read -r -d '' _file
do
- cd "$_dir"
- install -d -m0755 "${pkgdir}/usr/share/icons/hicolor/${_dir}/"{apps,mimetypes}
- for _icon in *
- do
- if [ "$_icon" = 'virtualbox.png' ]
- then
- ln -s "../../../../../../${_installdir}/icons/${_dir}/${_icon}" "${pkgdir}/usr/share/icons/hicolor/${_dir}/apps/${_icon}"
- else
- ln -s "../../../../../../${_installdir}/icons/${_dir}/${_icon}" "${pkgdir}/usr/share/icons/hicolor/${_dir}/mimetypes/${_icon}"
- fi
- done
- cd - >/dev/null
+ if printf '%s' "$_file" | grep -Eq '/virtualbox\.(png|svg)$'
+ then
+ _dir="${_file%/*}/apps"
+ else
+ _dir="${_file%/*}/mimetypes"
+ fi
+ mkdir -p "${pkgdir}/usr/share/icons/hicolor/${_dir}"
+ ln -s "../../../../../../${_installdir}/icons/${_dir%/*}/${_file##*/}" \
+ "${pkgdir}/usr/share/icons/hicolor/${_dir}/${_file##*/}"
+ done < <(find "${pkgdir}/${_installdir}/icons" -type f -print0 | sed -z "s|${pkgdir}/${_installdir}/icons/||")
+ ## workaround for unsupported $ORIGIN/.. in VBoxC.so
+ for _file in VBox{RT,XPCOM}.so
+ do
+ ln -s "../${_file}" "${pkgdir}/${_installdir}/components/${_file}"
done
- popd >/dev/null
-
- # with the relase of VirtualBox 5.1.0, Oracle dropped DKMS support from their package
- # we will restore DKMS with the use of these config files
- printf '%s\n' ' -> Installing DKMS support...'
- install -D -m0755 "${srcdir}/do_dkms" -t "${pkgdir}/${_installdir}/src/vboxhost"
- ## update module version
- cd "$srcdir"
- cp -a dkms.conf "${pkgname}-${pkgver}"
- sed -i "s/^\(PACKAGE_VERSION\)=/\1=${pkgver}/" "${pkgname}-${pkgver}/dkms.conf"
- install -D -m0644 "${pkgname}-${pkgver}/dkms.conf" -t "${pkgdir}/${_installdir}/src/vboxhost"
+}
- # module sources in /usr/src
- printf '%s\n' ' -> Installing module sources...'
- install -d -m0755 "${pkgdir}/usr/src"
- mv "${pkgdir}/${_installdir}/src/vboxhost" "${pkgdir}/usr/src/vboxhost-${pkgver}_non_OSE"
+package_virtualbox-bin-guest-iso() {
+ pkgdesc='VirtualBox guest additions ISO image for use with virtualbox-bin package'
+ arch=('any')
+ provides=('virtualbox-guest-iso')
- # write the configuration file
- printf '%s\n' ' -> Writing the configuration file...'
- install -D -m0644 /dev/null "${pkgdir}/etc/vbox/vbox.cfg"
- cat > "${pkgdir}/etc/vbox/vbox.cfg" << __EOF__
-# VirtualBox installation directory
-INSTALL_DIR='/${_installdir}'
+ install -t "${pkgdir}/opt/VirtualBox/additions" \
+ -D -m644 "${pkgbase}-${pkgver}/VirtualBox-extracted/additions/VBoxGuestAdditions.iso"
+}
-# VirtualBox version
-INSTALL_VER='${pkgver}'
-INSTALL_REV='${_build}'
-__EOF__
-
- # write modules-load.d configuration to ensure that modules are loaded at boot
- printf '%s\n' " -> Writing 'modules-load.d' configuration..."
- install -D -m644 /dev/null "${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
- cat > "${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf" << __EOF__
-# Load virtualbox kernel modules at boot
-# This file was installed by the ${pkgname} AUR package
-vboxdrv
-vboxnetadp
-vboxnetflt
-__EOF__
+package_virtualbox-bin-sdk() {
+ pkgdesc='VirtualBox software developer kit for use with virtualbox-bin package'
+ arch=('any')
+ license=('LGPL2.1' 'GPL2' 'BSD' 'custom')
+ depends=('python')
+ optdepends=('java-runtime: for webservice java bindings')
+ provides=('virtualbox-sdk')
+ conflicts=('virtualbox-sdk')
+
+ local _dir
+ local _installdir='opt/VirtualBox'
+
+ mkdir -p "${pkgdir}/${_installdir}/sdk"
+ while read -r -d '' _dir
+ do
+ cp -pr "$_dir" "${pkgdir}/${_installdir}/sdk"
+ done < <(find "${pkgbase}-${pkgver}/sdk" -mindepth 1 -maxdepth 1 -type d ! -name 'installer' -print0)
+ install -D -m644 "VBoxAuth-r${_rev}.h" "${pkgdir}/${_installdir}/sdk/bindings/auth/include/VBoxAuth.h"
+ install -D -m644 "VBoxAuthPAM-r${_rev}.c" "${pkgdir}/${_installdir}/sdk/bindings/auth/VBoxAuthPAM.cpp"
+ install -D -m644 "VBoxAuthSimple-r${_rev}.cpp" "${pkgdir}/${_installdir}/sdk/bindings/auth/VBoxAuthSimple.cpp"
+ install -D -m644 LICENSE.sdk "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ cd "${pkgbase}-${pkgver}/sdk/installer"
+ VBOX_INSTALL_PATH="/${_installdir}" python vboxapisetup.py install --root "$pkgdir" --skip-build --optimize='1'
}
diff --git a/VBoxFixUSB b/VBoxFixUSB
deleted file mode 100644
index f4c1ebe6f015..000000000000
--- a/VBoxFixUSB
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-# 2012: Seblu was here
-
-. /etc/vbox/vbox.cfg
-
-# Build our device tree
-for i in /sys/bus/usb/devices/*; do
- if test -r "$i/dev"; then
- dev="`cat "$i/dev" 2> /dev/null`"
- major="`expr "$dev" : '\(.*\):' 2> /dev/null`"
- minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null`"
- class="`cat $i/bDeviceClass 2> /dev/null`"
- sh "$INSTALL_DIR/VBoxCreateUSBNode.sh" "$major" "$minor" "$class" 2>/dev/null
- fi
-done
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/do_dkms b/do_dkms
deleted file mode 100644
index cc9c7d676051..000000000000
--- a/do_dkms
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/sh
-
-#
-# Script to register/build/unregister a kernel module with DKMS.
-#
-# Copyright (C) 2010-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.
-#
-
-ACTION=
-if [ "$1" = "install" ]; then
- ACTION="install"
- MODULE="$2"
- VERSION="$3"
-elif [ "$1" = "uninstall" ]; then
- shift
- ACTION="uninstall"
- OLDMODULES="$*"
- break
-fi
-
-DKMS=`which dkms 2>/dev/null`
-if [ -n "$DKMS" ]
-then
- if [ "$ACTION" = "uninstall" ]; then
-
- echo "Uninstalling modules from DKMS"
- for m in $OLDMODULES
- do
- $DKMS status -m $m | while read line
- # first, remove _any_ old module
- do
- if echo "$line" | grep -q added > /dev/null ||
- echo "$line" | grep -q built > /dev/null ||
- echo "$line" | grep -q installed > /dev/null; then
- # either 'vboxvideo, <version>: added'
- # or 'vboxvideo, <version>, ...: installed'
- version=`echo "$line" | sed "s/$m,\([^,]*\)[,:].*/\1/;t;d"`
- echo " removing old DKMS module $m version $version"
- $DKMS remove -m $m -v $version --all
- fi
- done
- done
- exit 0
-
- elif [ "$ACTION" = "install" ]; then
-
- echo "Attempting to install using DKMS"
- if $DKMS add -m $MODULE -v $VERSION &&
- $DKMS build -m $MODULE -v $VERSION &&
- $DKMS install -m $MODULE -v $VERSION --force
- then
- exit 0
- fi
- echo "Failed to install using DKMS, attempting to install without"
-
- fi
-fi
-
-exit 1
diff --git a/vboxreload b/vboxreload
new file mode 100644
index 000000000000..d21aa627fc4f
--- /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 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/vboxweb.conf b/vboxweb.conf
deleted file mode 100644
index 49d82d828ead..000000000000
--- a/vboxweb.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-# WebService Mandatory Variables
-#VBOXWEB_USER=
-
-# WebService Variables
-#VBOXWEB_LOGFILE=
-#$VBOXWEB_HOST=
-#$VBOXWEB_PORT=
-#$VBOXWEB_TIMEOUT=
-#$VBOXWEB_CHECK_INTERVAL=
-#$VBOXWEB_THREADS=
-#$VBOXWEB_KEEPALIVE=
diff --git a/vboxweb.rc b/vboxweb.rc
deleted file mode 100644
index 97273e3c7391..000000000000
--- a/vboxweb.rc
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/vbox/vbox.cfg
-. /etc/conf.d/vboxweb
-
-BINARY="$INSTALL_DIR/vboxwebsrv"
-
-start() {
- stat_busy "Starting VirtualBox Web Service";
- if ! pidof -o %PPID $BINARY >/dev/null; then
- [[ "$VBOXWEB_USER" ]] || stat_die
- lsmod | grep -q "vboxdrv[^_-]" || stat_die
- PARAMS="--background"
- [[ "$VBOXWEB_HOST" ]] && PARAMS+=" -H $VBOXWEB_HOST"
- [[ "$VBOXWEB_PORT" ]] && PARAMS+=" -p $VBOXWEB_PORT"
- [[ "$VBOXWEB_TIMEOUT" ]] && PARAMS+=" -t $VBOXWEB_TIMEOUT"
- [[ "$VBOXWEB_CHECK_INTERVAL" ]] && PARAMS+=" -i $VBOXWEB_CHECK_INTERVAL"
- [[ "$VBOXWEB_THREADS" ]] && PARAMS+=" -T $VBOXWEB_THREADS"
- [[ "$VBOXWEB_KEEPALIVE" ]] && PARAMS+=" -k $VBOXWEB_KEEPALIVE"
- [[ "$VBOXWEB_LOGFILE" ]] && PARAMS+=" -F $VBOXWEB_LOGFILE"
- # prevent inheriting this setting to VBoxSVC
- unset VBOX_RELEASE_LOG_DEST
- su - $VBOXWEB_USER -c "$BINARY $PARAMS" &>/dev/null
- # ugly: wait until the final process has forked
- sleep .2
- if pidof -o %PPID $BINARY >/dev/null; then
- add_daemon vboxweb
- stat_done
- else
- stat_die
- fi
- else
- stat_die
- fi
-}
-
-stop() {
- stat_busy "Stopping VirtualBox Web Service"
- PID=$(pidof -o %PPID $BINARY)
- [[ $PID ]] && kill $PID &>/dev/null
- if ! pidof -o %PPID $BINARY >/dev/null; then
- rm_daemon vboxweb
- stat_done
- else
- stat_die
- fi
-}
-
-restart() {
- stop && start
-}
-
-status() {
- stat_busy "Checking for VirtualBox Web Service"
- if pidof -o %PPID $BINARY >/dev/null; then
- stat_done
- else
- stat_fail
- false
- fi
-}
-
-case "$1" in
-start)
- start
- ;;
-stop)
- stop
- ;;
-restart)
- restart
- ;;
-force-reload)
- restart
- ;;
-status)
- status
- ;;
-*)
- echo "Usage: $0 {start|stop|restart|status}"
- exit 1
-esac
-
-# vim:set ts=2 sw=2 ft=sh et:
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-bin.install b/virtualbox-bin.install
deleted file mode 100644
index d64b47cbf0d7..000000000000
--- a/virtualbox-bin.install
+++ /dev/null
@@ -1,47 +0,0 @@
-# arg 1: the new package version
-post_install() {
- # Add vboxusers group, GID 108 is reserved (http://wiki.archlinux.org/index.php/UID_and_GID_list),
- getent group vboxusers &> /dev/null || groupadd -f -g 108 vboxusers
-
- # Load new udev rule for module vboxdrv
- udevadm control --reload-rules
-
- # Show warnings
- cat <<EOF
-
-==> Remember to add allowed users to the vboxusers group:
-==> # gpasswd -a USERNAME vboxusers
-EOF
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-pre_upgrade() {
- # Remove any stuff remaining from the module compilation
- rm -Rf "/opt/VirtualBox"
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- post_install "$1"
- (($(vercmp $2 '4.1.14-2') < 0 )) && cat <<EOF || true
-
-==> **Warning**
-==> This version drop vboxdrv initscript.
-==> Please change to dkms instead of vboxdrv in DAEMONS in rc.conf.
-==>
-EOF
-}
-
-# arg 1: the old package version
-post_remove() {
- # Remove any stuff remaining from the module compilation
- rm -Rf "/opt/VirtualBox"
-
- # Remove any run files
- rm -Rf "/var/run/VirtualBox"
-
- # remove vboxusers group
- groupdel vboxusers &>/dev/null || true
-}
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 -