summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Turner2020-06-03 14:32:08 -0400
committerWilliam Turner2020-06-03 14:32:08 -0400
commit8a658cbb07ec0940b9d49690999125bb83fa29a6 (patch)
tree4c3ede3b88c58894c4255fe0fced175817a1de65
downloadaur-8a658cbb07ec0940b9d49690999125bb83fa29a6.tar.gz
Initial version
-rw-r--r--.SRCINFO35
-rw-r--r--LocalConfig.kmk36
-rw-r--r--PKGBUILD75
-rw-r--r--vboxvmsvga.service10
-rw-r--r--virtualbox-guest-dkms-vmsvga.conf15
-rw-r--r--virtualbox-guest-dkms-vmsvga.install9
6 files changed, 180 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..4162c46c87e1
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,35 @@
+pkgbase = virtualbox-guest-dkms-vmsvga
+ pkgdesc = VirtualBox Guest kernel modules sources (VMSVGA fix)
+ pkgver = 6.1.8
+ pkgrel = 1
+ url = https://virtualbox.org/
+ install = virtualbox-guest-dkms-vmsvga.install
+ arch = x86_64
+ license = GPL
+ license = custom
+ depends = dkms
+ depends = gcc
+ depends = make
+ depends = virtualbox-guest-utils
+ 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
+ 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
+ replaces = virtualbox-guest-dkms
+ source = https://download.virtualbox.org/virtualbox/6.1.8/VirtualBox-6.1.8.tar.bz2
+ source = LocalConfig.kmk
+ source = virtualbox-guest-dkms-vmsvga.conf
+ source = vboxvmsvga.service
+ sha256sums = 426888f83036b6b1f79c272d317a4e8ecf43781f6a266fd7209c03dca504eefc
+ sha256sums = 2be313b98bffde482aad93b00c419f1d5f7645fd9e6053175ffb0d925067f96a
+ sha256sums = edd0492f0706e03169cdf3654658ea650687c30967ca5e32fde19d43e3dd4e5e
+ sha256sums = b6da21bfbc2d452aa8e2ae5c118ec8ed8b87ad6d86000e6b27f28c098b9871ca
+
+pkgname = virtualbox-guest-dkms-vmsvga
+
diff --git a/LocalConfig.kmk b/LocalConfig.kmk
new file mode 100644
index 000000000000..b413859931a9
--- /dev/null
+++ b/LocalConfig.kmk
@@ -0,0 +1,36 @@
+# 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 = python
+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 and gl headers
+VBOX_USE_SYSTEM_XORG_HEADERS = 1
+VBOX_USE_SYSTEM_GL_HEADERS = 1
+
+# no update request. update are handled via pacman
+VBOX_WITH_UPDATE_REQUEST := 0
+
+# build shared library
+VBOX_GUI_WITH_SHARED_LIBRARY = 1
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..290fe2f7c672
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,75 @@
+# Maintainer: William Turner <willtur.will@gmail.com>
+
+pkgname=virtualbox-guest-dkms-vmsvga
+pkgver=6.1.8
+pkgrel=1
+pkgdesc='VirtualBox Guest kernel modules sources (VMSVGA fix)'
+arch=('x86_64')
+url='https://virtualbox.org/'
+license=('GPL' 'custom')
+depends=('dkms' 'gcc' 'make' 'virtualbox-guest-utils')
+optdepends=('linux-headers: build modules against Arch kernel'
+ 'linux-lts-headers: build modules against LTS kernel'
+ 'linux-zen-headers: build modules against ZEN kernel')
+provides=('VIRTUALBOX-GUEST-MODULES')
+conflicts=('virtualbox-archlinux-source'
+ 'virtualbox-guest-source'
+ 'virtualbox-guest-dkms')
+replaces=('virtualbox-archlinux-source'
+ 'virtualbox-guest-source'
+ 'virtualbox-guest-modules-lts'
+ '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-vmsvga.install
+source=("https://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2"
+ 'LocalConfig.kmk'
+ 'virtualbox-guest-dkms-vmsvga.conf'
+ 'vboxvmsvga.service')
+sha256sums=('426888f83036b6b1f79c272d317a4e8ecf43781f6a266fd7209c03dca504eefc'
+ '2be313b98bffde482aad93b00c419f1d5f7645fd9e6053175ffb0d925067f96a'
+ 'edd0492f0706e03169cdf3654658ea650687c30967ca5e32fde19d43e3dd4e5e'
+ 'b6da21bfbc2d452aa8e2ae5c118ec8ed8b87ad6d86000e6b27f28c098b9871ca')
+
+prepare() {
+ cd "VirtualBox-$pkgver"
+
+ cp "$srcdir/LocalConfig.kmk" .
+ echo "VBOX_GCC_OPT=$CXXFLAGS" >> LocalConfig.kmk
+}
+
+build() {
+ cd "VirtualBox-$pkgver"
+
+ echo 'Build virtualbox'
+ ./configure \
+ --only-additions \
+ --with-makeself=/usr/bin/echo
+
+ source ./env.sh
+ kmk
+}
+
+package() {
+ source "VirtualBox-$pkgver/env.sh"
+ cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+
+ # dkms modules
+ install -d -m0755 "$pkgdir/usr/src"
+ cp -r src "$pkgdir/usr/src/vboxguest-${pkgver}_OSE"
+ echo 'obj-m = vboxguest/ vboxsf/ vboxvideo/' > "$pkgdir/usr/src/vboxguest-${pkgver}_OSE/Makefile"
+ sed "s/@VERSION@/$pkgver/" "$srcdir/$pkgname.conf" > "$pkgdir/usr/src/vboxguest-${pkgver}_OSE/dkms.conf"
+
+ # module loading
+ install -d -m0755 "$pkgdir/usr/lib/depmod.d"
+ printf 'override vboxguest * kernel/misc\noverride vboxsf * kernel/misc\noverride vboxvideo * kernel/misc\n' > "$pkgdir/usr/lib/depmod.d/$pkgname.conf"
+ install -d -m0755 "$pkgdir/usr/lib/modules-load.d"
+ printf 'vboxguest\nvboxsf\nvboxvideo\n' > "$pkgdir/usr/lib/modules-load.d/$pkgname.conf"
+
+ # systemd unit
+ install -D -m0644 "$srcdir/vboxvmsvga.service" "$pkgdir/usr/lib/systemd/system/vboxvmsvga.service"
+
+ # license
+ install -D -m0644 "$srcdir/VirtualBox-$pkgver/COPYING" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/vboxvmsvga.service b/vboxvmsvga.service
new file mode 100644
index 000000000000..8a48a4043cad
--- /dev/null
+++ b/vboxvmsvga.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=VirtualBox VMSVGA Service
+ConditionVirtualization=oracle
+After=vboxservice.service
+
+[Service]
+ExecStart=/usr/bin/VBoxClient -f --vmsvga
+
+[Install]
+WantedBy=graphical.target
diff --git a/virtualbox-guest-dkms-vmsvga.conf b/virtualbox-guest-dkms-vmsvga.conf
new file mode 100644
index 000000000000..be69afae28d7
--- /dev/null
+++ b/virtualbox-guest-dkms-vmsvga.conf
@@ -0,0 +1,15 @@
+PACKAGE_NAME="vboxguest"
+PACKAGE_VERSION=@VERSION@_OSE
+AUTOINSTALL=yes
+
+BUILT_MODULE_NAME[0]="vboxguest"
+BUILT_MODULE_LOCATION[0]="vboxguest"
+DEST_MODULE_LOCATION[0]="/kernel/misc"
+
+BUILT_MODULE_NAME[1]="vboxsf"
+BUILT_MODULE_LOCATION[1]="vboxsf"
+DEST_MODULE_LOCATION[1]="/kernel/misc"
+
+BUILT_MODULE_NAME[2]="vboxvideo"
+BUILT_MODULE_LOCATION[2]="vboxvideo"
+DEST_MODULE_LOCATION[2]="/kernel/misc"
diff --git a/virtualbox-guest-dkms-vmsvga.install b/virtualbox-guest-dkms-vmsvga.install
new file mode 100644
index 000000000000..8bbc2d1edda3
--- /dev/null
+++ b/virtualbox-guest-dkms-vmsvga.install
@@ -0,0 +1,9 @@
+#! /bin/bash
+
+post_install() {
+ echo '==> The vboxvmsvga service must be started for auto-resize to work with the VMSVGA adapter.'
+}
+
+post_upgrade() {
+ post_install $1
+}