diff options
author | Ben Allen <bensallen@me.com> | 2016-01-22 04:40:25 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2016-08-15 16:30:06 +0000 |
commit | 59e71adbea0f889c3ffb7188fa4b9f988d6b5535 (patch) | |
tree | e123bb9c4787d2024dd3043d920131f6bcc8b5f1 | |
parent | a696503b386fcb8b9f521af3693f85752f0e9b4a (diff) | |
download | aports-59e71adbea0f889c3ffb7188fa4b9f988d6b5535.tar.bz2 aports-59e71adbea0f889c3ffb7188fa4b9f988d6b5535.tar.xz |
testing/virtualbox-guest-additions: new aport
- Userland components to VirtualBox's guest additions, eg. VBoxService, VBoxControl, mount.vboxsf, and a basic init script.
- Creates vboxsf group on install to allow VBoxService to auto-mount shared folders.
12 files changed, 332 insertions, 0 deletions
diff --git a/testing/virtualbox-guest-additions/APKBUILD b/testing/virtualbox-guest-additions/APKBUILD new file mode 100644 index 0000000000..88911148c8 --- /dev/null +++ b/testing/virtualbox-guest-additions/APKBUILD @@ -0,0 +1,95 @@ +# Maintainer: Ben Allen <bensallen@me.com> +# Contributor: Ben Allen <bensallen@me.com> + +_flavor=${FLAVOR:-grsec} + +pkgname=virtualbox-guest-additions +pkgver=5.0.14 + +pkgrel=0 +pkgdesc="VirtualBox Addtions userland components" +arch='x86_64' +url='http://virtualbox.org' +license="GPL custom" +install="$pkgname.pre-install" +makedepends="sed kbuild lvm2-dev yasm zlib-dev openssl-dev curl-dev" +depends="virtualbox-guest-modules-$_flavor" +source="http://download.virtualbox.org/virtualbox/$pkgver/VirtualBox-$pkgver.tar.bz2 + futimens.patch + musl-fix-headers.patch + musl-no-glibc.patch + musl-fix-stat-nsec.patch + musl-sched_yield.patch + uclibc-gnu_linux.patch + vboxguestlib-makefile-nox11.patch + virtualbox-guest-additions-localconfig + $pkgname.initd + " + +_builddir="$srcdir"/VirtualBox-$pkgver + +prepare() { + cd "$_builddir" + rm -rf $_builddir/kBuild/bin $_builddir/tools + local i + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done + cp $srcdir/$pkgname-localconfig LocalConfig.kmk +} + +build() { + cd "$_builddir" + ./configure --nofatal \ + --disable-dbus \ + --disable-xpcom \ + --disable-sdl-ttf \ + --disable-pulse \ + --disable-alsa \ + --disable-kmods \ + --build-headless + source env.sh + # Build Guest Additions + kmk KBUILD_VERBOSE=2 +} + +package() { + cd "$_builddir" + install -v -Dm755 "$_builddir/out/linux.amd64/release/bin/additions/VBoxService" "$pkgdir/usr/sbin/VBoxService" + install -v -Dm755 "$_builddir/out/linux.amd64/release/bin/additions/VBoxControl" "$pkgdir/usr/bin/VBoxControl" + install -v -Dm755 "$_builddir/out/linux.amd64/release/bin/additions/mount.vboxsf" "$pkgdir/usr/sbin/mount.vboxsf" + install -v -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname +} + +md5sums="e0a02426ad09b475e630881efe911423 VirtualBox-5.0.14.tar.bz2 +10f65154d3ff17d88fad5ed384e20276 futimens.patch +81a2ebe27e166219a03858f87eb57518 musl-fix-headers.patch +2d8119cc2bb88a1dc8e1bcd2a6abf36e musl-no-glibc.patch +9b6a45f250956232f33911ea26d1355e musl-fix-stat-nsec.patch +00f38b765810aaa7f8c652ca81106126 musl-sched_yield.patch +072ee2114b3771e7bdbff5211f342755 uclibc-gnu_linux.patch +b5e6069e20db86cb2e00f1431b202ca4 vboxguestlib-makefile-nox11.patch +8a6525395f4791b8261f245be1eec552 virtualbox-guest-additions-localconfig +867c31d95544f25deb3dfbac038d4cb0 virtualbox-guest-additions.initd" +sha256sums="69abac7255b2251a18fd73c0b7c200d5f8ce72a59fa019b53a5cdbf7f2843002 VirtualBox-5.0.14.tar.bz2 +deaa739129ec23a05d5aa43ad8af3e93086ca340696fde3e5d1539e1c7347adb futimens.patch +d5085e8921b5fa7dca26d2a8da6d1174f7971491c356b6bea5126e6dda0d863c musl-fix-headers.patch +d0bc2e84675741a54b42b59c9746f255799264512b11a565ce3d435f1398a874 musl-no-glibc.patch +aab58b5dd854551c52063876e8b4186892ba0b3cf9d907c3abe9cff93b8be7fc musl-fix-stat-nsec.patch +a7cb381cdf405d25112fd245e7cdb6728a87361896ce545be3cb8e2d234e4d9d musl-sched_yield.patch +1bf547f849bf325e443f74ce7fbfb3657d9b2918b4c888efac304eac929a0fae uclibc-gnu_linux.patch +19d156225f205245abeca94aac72b90d6dec2d830b4fb30b6c6ce790011e97ac vboxguestlib-makefile-nox11.patch +555a92cc4741419f7ffd6b9698600b85dc14ddfc6fed6df792d13caf7116e2af virtualbox-guest-additions-localconfig +f1c39ecf58e6dc8162066adbda6d5cec5a5fe4f5f1f6003b6201269b3f52f456 virtualbox-guest-additions.initd" +sha512sums="5547da58b50c9cf5d096f81c005134e1f56c4fb55d4d40a6fbd1efe1fe1fbeebc0747f0903933da9238a24c63eeed2c6c15bfc5cae5ce6e3e2eb4a18511d6258 VirtualBox-5.0.14.tar.bz2 +1da850bc30399ecde501eba5403ef1add1ae108d38394b01cd7f5cdf0462b855793d564d3adc1f770983b36529d77f3f7b0269fb65152468084a0a44c38e1638 futimens.patch +0169a620d62aa3de8124e0084f4b747b602fbdcab7892fe075606459e0200d412321c86da4c5d98309f4d7479ae1b5267ed28bea6c6e64fd8be88cab74f8e94c musl-fix-headers.patch +b1c47cb910ac751df7bd4bc10c5501e91d88a9b3e4fe181b02755d433df8e89a160a38422912266f0cc51ba0c09854dad513ba6f2634fc76c59cee7989b259eb musl-no-glibc.patch +2c329085915f0ffa43828a14d8b29d0d876e48e18a0190ad146cd0731af7eca11cdf41d2e533c9cc73aa75506b9b91e3a08f2272cd8884e0d929722730b99862 musl-fix-stat-nsec.patch +31cd99ccb5e609ec598d78f0402a5c6522731ce3e84e52c4318441acdc27d3537abfcb2ab136bf8de1f614a1c81bff1200fbed986daebd5d30b8590d115c4edb musl-sched_yield.patch +d2bba9de80c40bc258b025a8e3395a4b0b7781d70d5528993f0fff57e9fc015306b483d4da14e22aed3f188ffda8685aa51e13943f48c17ae18a2a66d15d7bbb uclibc-gnu_linux.patch +0ced8df03a354e211fd0631d3971246d75de3a60c2347b5fe33236405d55911422d53eb7c679ae6fc18dc8f57c245d5701fa02ae740d1f0bd1e1cbb0b715bf2f vboxguestlib-makefile-nox11.patch +1b14e0239e91d2d1515250272eb485b442d785dac98bdd7b1cca2fad123f853fe138b6cfad2566c8cb35cab3b77151a49a9422fbad3c13489fa12f3f43d550b9 virtualbox-guest-additions-localconfig +fba476784d6660333c97b443eadb3d426ffc6fa39cdf0df79a82f3039c6a45b7c3203a4870c09f44aa5c4cf3e32eb495281a7b14e325fdea077a2268b59af827 virtualbox-guest-additions.initd" diff --git a/testing/virtualbox-guest-additions/futimens.patch b/testing/virtualbox-guest-additions/futimens.patch new file mode 100644 index 0000000000..f85e1ae6e2 --- /dev/null +++ b/testing/virtualbox-guest-additions/futimens.patch @@ -0,0 +1,16 @@ +--- ./src/VBox/Runtime/r3/posix/fileio2-posix.cpp.orig ++++ ./src/VBox/Runtime/r3/posix/fileio2-posix.cpp +@@ -165,7 +165,12 @@ + + /* XXX this falls back to utimes("/proc/self/fd/...",...) for older kernels/glibcs and this + * will not work for hardened builds where this directory is owned by root.root and mode 0500 */ +- if (futimes(RTFileToNative(hFile), aTimevals)) ++ struct timespec aTimespecs[2] = { ++ { aTimevals[0].tv_sec, aTimevals[0].tv_usec * 1000 }, ++ { aTimevals[1].tv_sec, aTimevals[1].tv_usec * 1000 }, ++ }; ++ ++ if (futimens(RTFileToNative(hFile), aTimespecs)) + { + int rc = RTErrConvertFromErrno(errno); + Log(("RTFileSetTimes(%RTfile,%p,%p,,): returns %Rrc\n", hFile, pAccessTime, pModificationTime, rc)); diff --git a/testing/virtualbox-guest-additions/musl-fix-headers.patch b/testing/virtualbox-guest-additions/musl-fix-headers.patch new file mode 100644 index 0000000000..8eaa63c1f8 --- /dev/null +++ b/testing/virtualbox-guest-additions/musl-fix-headers.patch @@ -0,0 +1,10 @@ +--- ./src/VBox/Runtime/r3/linux/sysfs.cpp.orig ++++ ./src/VBox/Runtime/r3/linux/sysfs.cpp +@@ -40,7 +40,6 @@ + + #include <unistd.h> + #include <stdio.h> +-#include <sys/sysctl.h> + #include <sys/stat.h> + #include <sys/fcntl.h> + #include <errno.h> diff --git a/testing/virtualbox-guest-additions/musl-fix-stat-nsec.patch b/testing/virtualbox-guest-additions/musl-fix-stat-nsec.patch new file mode 100644 index 0000000000..d0d073e651 --- /dev/null +++ b/testing/virtualbox-guest-additions/musl-fix-stat-nsec.patch @@ -0,0 +1,11 @@ +--- VirtualBox-5.0.12/src/VBox/Runtime/include/internal/fs.h.orig ++++ VirtualBox-5.0.12/src/VBox/Runtime/include/internal/fs.h +@@ -49,8 +49,6 @@ + #ifdef RT_OS_LINUX + # ifdef __USE_MISC + # define HAVE_STAT_TIMESPEC_BRIEF +-# else +-# define HAVE_STAT_NSEC + # endif + #endif + diff --git a/testing/virtualbox-guest-additions/musl-no-glibc.patch b/testing/virtualbox-guest-additions/musl-no-glibc.patch new file mode 100644 index 0000000000..fe4cc79379 --- /dev/null +++ b/testing/virtualbox-guest-additions/musl-no-glibc.patch @@ -0,0 +1,45 @@ +--- ./src/VBox/Runtime/r3/linux/thread-affinity-linux.cpp.orig ++++ ./src/VBox/Runtime/r3/linux/thread-affinity-linux.cpp +@@ -32,6 +32,8 @@ + # define _GNU_SOURCE + #endif + #include <features.h> ++ ++#if defined(__GLIBC__) + #if __GLIBC_PREREQ(2,4) + + #include <sched.h> +@@ -87,6 +89,11 @@ + + return VINF_SUCCESS; + } ++ ++#else ++# include "../../generic/RTThreadGetAffinity-stub-generic.cpp" ++# include "../../generic/RTThreadSetAffinity-stub-generic.cpp" ++#endif + + #else + # include "../../generic/RTThreadGetAffinity-stub-generic.cpp" +--- ./src/VBox/Runtime/r3/linux/semeventmulti-linux.cpp.orig ++++ ./src/VBox/Runtime/r3/linux/semeventmulti-linux.cpp +@@ -26,7 +26,7 @@ + + + #include <features.h> +-#if __GLIBC_PREREQ(2,6) && !defined(IPRT_WITH_FUTEX_BASED_SEMS) ++#if defined(__GLIBC__) && !defined(IPRT_WITH_FUTEX_BASED_SEMS) + + /* + * glibc 2.6 fixed a serious bug in the mutex implementation. We wrote this +--- ./src/VBox/Runtime/r3/linux/semevent-linux.cpp.orig ++++ ./src/VBox/Runtime/r3/linux/semevent-linux.cpp +@@ -25,7 +25,7 @@ + */ + + #include <features.h> +-#if __GLIBC_PREREQ(2,6) && !defined(IPRT_WITH_FUTEX_BASED_SEMS) ++#if defined(__GLIBC__) && !defined(IPRT_WITH_FUTEX_BASED_SEMS) + + /* + * glibc 2.6 fixed a serious bug in the mutex implementation. We wrote this diff --git a/testing/virtualbox-guest-additions/musl-sched_yield.patch b/testing/virtualbox-guest-additions/musl-sched_yield.patch new file mode 100644 index 0000000000..9a807ac8f6 --- /dev/null +++ b/testing/virtualbox-guest-additions/musl-sched_yield.patch @@ -0,0 +1,32 @@ +--- VirtualBox-5.0.12/src/VBox/Runtime/r3/posix/thread2-posix.cpp.orig ++++ VirtualBox-5.0.12/src/VBox/Runtime/r3/posix/thread2-posix.cpp +@@ -65,7 +65,7 @@ + #elif defined(RT_OS_SOLARIS) || defined(RT_OS_HAIKU) + sched_yield(); + #else +- if (!pthread_yield()) ++ if (!sched_yield()) + #endif + { + LogFlow(("RTThreadSleep: returning %Rrc (cMillies=%d)\n", VINF_SUCCESS, cMillies)); +@@ -104,7 +104,7 @@ + #elif defined(RT_OS_SOLARIS) || defined(RT_OS_HAIKU) + sched_yield(); + #else +- if (!pthread_yield()) ++ if (!sched_yield()) + #endif + return VINF_SUCCESS; + } +@@ -130,10 +130,8 @@ + #endif + #ifdef RT_OS_DARWIN + pthread_yield_np(); +-#elif defined(RT_OS_SOLARIS) || defined(RT_OS_HAIKU) +- sched_yield(); + #else +- pthread_yield(); ++ sched_yield(); + #endif + #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86) + u64TS = ASMReadTSC() - u64TS; diff --git a/testing/virtualbox-guest-additions/uclibc-gnu_linux.patch b/testing/virtualbox-guest-additions/uclibc-gnu_linux.patch new file mode 100644 index 0000000000..b227d55b1d --- /dev/null +++ b/testing/virtualbox-guest-additions/uclibc-gnu_linux.patch @@ -0,0 +1,11 @@ +--- ./src/libs/kStuff/kStuff/include/k/kDefs.h.orig ++++ ./src/libs/kStuff/kStuff/include/k/kDefs.h +@@ -82,7 +82,7 @@ + # define K_OS K_OS_DRAGONFLY + # elif defined(__FreeBSD__) /*??*/ + # define K_OS K_OS_FREEBSD +-# elif defined(__gnu_linux__) ++# elif defined(__linux__) + # define K_OS K_OS_LINUX + # elif defined(__NetBSD__) /*??*/ + # define K_OS K_OS_NETBSD diff --git a/testing/virtualbox-guest-additions/uclibc-spawn.patch b/testing/virtualbox-guest-additions/uclibc-spawn.patch new file mode 100644 index 0000000000..98b4e8ad6e --- /dev/null +++ b/testing/virtualbox-guest-additions/uclibc-spawn.patch @@ -0,0 +1,26 @@ +--- ./src/VBox/Runtime/r3/posix/process-creation-posix.cpp.orig ++++ ./src/VBox/Runtime/r3/posix/process-creation-posix.cpp +@@ -48,6 +48,9 @@ + * whether it is started detached or not. */ + # define HAVE_POSIX_SPAWN 1 + #endif ++#if defined(__UCLIBC__) ++#undef HAVE_POSIX_SPAWN ++#endif + #ifdef HAVE_POSIX_SPAWN + # include <spawn.h> + #endif +@@ -103,11 +106,9 @@ + if (spwd) + pw->pw_passwd = spwd->sp_pwdp; + +- /* be reentrant */ +- struct crypt_data *data = (struct crypt_data*)RTMemTmpAllocZ(sizeof(*data)); +- char *pszEncPasswd = crypt_r(pszPasswd, pw->pw_passwd, data); ++ /* NOT reentrant */ ++ char *pszEncPasswd = crypt(pszPasswd, pw->pw_passwd); + int fCorrect = !strcmp(pszEncPasswd, pw->pw_passwd); +- RTMemTmpFree(data); + if (!fCorrect) + return VERR_PERMISSION_DENIED; + diff --git a/testing/virtualbox-guest-additions/vboxguestlib-makefile-nox11.patch b/testing/virtualbox-guest-additions/vboxguestlib-makefile-nox11.patch new file mode 100644 index 0000000000..44b2efddbf --- /dev/null +++ b/testing/virtualbox-guest-additions/vboxguestlib-makefile-nox11.patch @@ -0,0 +1,19 @@ +--- ./src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk.orig ++++ ./src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk +@@ -38,16 +38,6 @@ + LIBRARIES += \ + VBoxGuestR3Lib \ + VBoxGuestR3LibShared +-ifndef VBOX_ONLY_VALIDATIONKIT +- if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd) +- LIBRARIES += \ +- VBoxGuestR3LibXFree86 +- endif +- if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) +- LIBRARIES += \ +- VBoxGuestR3LibXOrg +- endif +-endif + LIBRARIES.win.amd64 += VBoxGuestR3Lib-x86 VBoxGuestR3LibShared-x86 + + diff --git a/testing/virtualbox-guest-additions/virtualbox-guest-additions-localconfig b/testing/virtualbox-guest-additions/virtualbox-guest-additions-localconfig new file mode 100644 index 0000000000..bcc7972528 --- /dev/null +++ b/testing/virtualbox-guest-additions/virtualbox-guest-additions-localconfig @@ -0,0 +1,37 @@ +# -*- Makefile -*- +# +# Overwrite some default kBuild settings +# + +# +# Copyright (C) 2006-2008 Sun Microsystems, Inc. +# +# 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 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. +# + +# don't build testcases to save time, they are not needed for the package +VBOX_WITH_TESTCASES := +VBOX_WITH_VALIDATIONKIT := + +KBUILD_MSG_STYLE := brief + +## paths, origin, hardening +VBOX_WITH_HARDENING := 2 +VBOX_WITH_ORIGIN := +VBOX_ONLY_ADDITIONS := 1 + +## don't build with -Werror +VBOX_WITH_WARNINGS_AS_ERRORS := + +## Disable anything X11 related +VBOX_X11_SEAMLESS_GUEST := +VBOX_WITH_X11_ADDITIONS := +WITH_X11 := +VBOX_WITH_DRAG_AND_DROP := +VBOX_WITH_PAM := diff --git a/testing/virtualbox-guest-additions/virtualbox-guest-additions.initd b/testing/virtualbox-guest-additions/virtualbox-guest-additions.initd new file mode 100644 index 0000000000..5f990ecdff --- /dev/null +++ b/testing/virtualbox-guest-additions/virtualbox-guest-additions.initd @@ -0,0 +1,25 @@ +#!/sbin/openrc-run +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +pidfile="/var/run/vboxguest-service.pid" +command="/usr/sbin/VBoxService" +command_args="--foreground" +start_stop_daemon_args="--make-pidfile --pidfile ${pidfile} --background" + +depend() { + need localmount +} + +start_pre() { + einfo "Loading kernel modules" + /sbin/modprobe vboxguest 2>&1 + /sbin/modprobe vboxsf 2>&1 +} + +stop_post() { + einfo "Removing kernel modules" + /sbin/modprobe -r vboxsf 2>&1 + /sbin/modprobe -r vboxguest 2>&1 +} diff --git a/testing/virtualbox-guest-additions/virtualbox-guest-additions.pre-install b/testing/virtualbox-guest-additions/virtualbox-guest-additions.pre-install new file mode 100644 index 0000000000..dc2d87d9cf --- /dev/null +++ b/testing/virtualbox-guest-additions/virtualbox-guest-additions.pre-install @@ -0,0 +1,5 @@ +#!/bin/sh + +addgroup -S vboxsf 2>/dev/null + +exit 0 |