diff options
Diffstat (limited to 'unmaintained/xf86-video-virtualbox')
11 files changed, 253 insertions, 0 deletions
diff --git a/unmaintained/xf86-video-virtualbox/APKBUILD b/unmaintained/xf86-video-virtualbox/APKBUILD new file mode 100644 index 0000000000..a87c439903 --- /dev/null +++ b/unmaintained/xf86-video-virtualbox/APKBUILD @@ -0,0 +1,85 @@ +# Maintainer: Natanael Copa <ncopa@alpinelinux.org> +pkgname=xf86-video-virtualbox +pkgdesc="Xorg Virtual box video driver" +pkgver=4.3.8 +_ver=${pkgver/_rc/_RC} +pkgrel=0 +arch="all" +url='http://virtualbox.org' +license="GPL custom" +makedepends=" + dev86 iasl kbuild>=0.1.9998_pre20120806-r1 yasm zlib-dev sed + libxinerama-dev libxrandr-dev libxmu-dev libxdmcp-dev libxau-dev + libxext-dev libxfixes-dev libiconv-dev libx11-dev xorg-server-dev + mesa-dev" +source="http://download.virtualbox.org/virtualbox/$_ver/VirtualBox-$_ver.tar.bz2 + uclibc-gnu_linux.patch + futimens.patch + xf86-video-virtualbox-4-makeself-check.patch + musl-no-glibc.patch + LocalConfig.kmk + " +# uclibc-spawn.patch + +_builddir="$srcdir/VirtualBox-${_ver}" + +prepare() { + cd "$_builddir" + local i + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done + + # the kmk_sed they ship and use is linked to glibc... + sed -i -e 's:KBUILD_SED=.*:KBUILD_SED="busybox sed":' configure + rm -r kBuild/bin tools + cp "$srcdir"/LocalConfig.kmk . +} + +build() { + cd "$_builddir" + cp "$srcdir/LocalConfig.kmk" . + ./configure --disable-docs \ + --nofatal \ + --disable-java \ + --disable-pulse \ + --disable-opengl \ + --disable-kmods \ + --disable-xpcom \ + --disable-sdl-ttf \ + --build-headless \ + || return 1 + . ./env.sh + for i in Runtime Additions/common/VBoxGuestLib \ + Additions/x11/x11stubs Additions/x11/vboxvideo; do + cd "$_builddir"/src/VBox/$i + kmk TOOL_YASM_AS=yasm || return 1 + done +} + +package() { + cd "$_builddir"/out/linux.*/release/bin/additions + install -Dm755 vboxvideo_drv_112.so \ + "$pkgdir"/usr/lib/xorg/modules/drivers/vboxvideo_drv.so +} + +md5sums="422ab09b7eb9c0564b55a6a0a6e6678f VirtualBox-4.3.8.tar.bz2 +072ee2114b3771e7bdbff5211f342755 uclibc-gnu_linux.patch +10f65154d3ff17d88fad5ed384e20276 futimens.patch +44efb3c4be214daa453a317d527f1f30 xf86-video-virtualbox-4-makeself-check.patch +a66c27f91349d9c9ae8304905b855fd6 musl-no-glibc.patch +eedb57172f97829c2ad53fdb970a1c68 LocalConfig.kmk" +sha256sums="ffabd8735bdc80753cec29d01b499769f41e083f37a3f58b3055f19d3b1b9641 VirtualBox-4.3.8.tar.bz2 +1bf547f849bf325e443f74ce7fbfb3657d9b2918b4c888efac304eac929a0fae uclibc-gnu_linux.patch +deaa739129ec23a05d5aa43ad8af3e93086ca340696fde3e5d1539e1c7347adb futimens.patch +31ddafbeef6d35696d76de06988412f888fd5403854952bb00ceab99f5ed4966 xf86-video-virtualbox-4-makeself-check.patch +3f1c59fbd4e9fb2a6d2777c9f5979735fe77cd564293bde1edb3017255e5b164 musl-no-glibc.patch +5ec9b53a113af1c37edf320be8a2f5f688b4afce7c5a065d785bea8c95645d8b LocalConfig.kmk" +sha512sums="0bc00254733befee6ba864b9c88e0ddedb5949fff884313b72bbedeaefb572fd129a8d16b179612acef9b53fc3d2203ac775656d6c941d94a77bb944fdd66903 VirtualBox-4.3.8.tar.bz2 +d2bba9de80c40bc258b025a8e3395a4b0b7781d70d5528993f0fff57e9fc015306b483d4da14e22aed3f188ffda8685aa51e13943f48c17ae18a2a66d15d7bbb uclibc-gnu_linux.patch +1da850bc30399ecde501eba5403ef1add1ae108d38394b01cd7f5cdf0462b855793d564d3adc1f770983b36529d77f3f7b0269fb65152468084a0a44c38e1638 futimens.patch +7f60a857213b1b045247f5a041ebed60099f0f634b7d843bd85062eb4cf8504e8d5907b43df852dc49465248e2cbe3d998acefeb676113ca9a38e72da6d926a7 xf86-video-virtualbox-4-makeself-check.patch +d79032d0a7a098e5e63c9a11cce278322cc2ecd75a996dc11096a738d43cecc84abb5de25b32b4409164d08a77541bcc00a53e7e62624880756c7e8fb238b447 musl-no-glibc.patch +a126ef0182caca3fcbe5d12947cd63a6a729280127f5ead874b5ae0d1fe5f3aadd538b639bfd0d738f95048c25027761f47374e91b585b78e1d5a65ec98a5c23 LocalConfig.kmk" diff --git a/unmaintained/xf86-video-virtualbox/LocalConfig.kmk b/unmaintained/xf86-video-virtualbox/LocalConfig.kmk new file mode 100644 index 0000000000..ce47ec7854 --- /dev/null +++ b/unmaintained/xf86-video-virtualbox/LocalConfig.kmk @@ -0,0 +1,14 @@ +VBOX_WITH_TESTCASES := +VBOX_WITH_TESTSUITE := +VBOX_GCC_WERR := + +KBUILD_MSG_STYLE := brief + +## paths, origin, hardening +VBOX_WITH_HARDENING := 2 +VBOX_WITH_ORIGIN := +VBOX_ONLY_ADDITIONS := 1 + +TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.release = +TEMPLATE_VBOXGUESTR3XORGMOD_LDFLAGS = $(TEMPLATE_VBOXGUESTR3DLL_LDFLAGS) + diff --git a/unmaintained/xf86-video-virtualbox/futimens.patch b/unmaintained/xf86-video-virtualbox/futimens.patch new file mode 100644 index 0000000000..f85e1ae6e2 --- /dev/null +++ b/unmaintained/xf86-video-virtualbox/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/unmaintained/xf86-video-virtualbox/musl-fix-headers.patch b/unmaintained/xf86-video-virtualbox/musl-fix-headers.patch new file mode 100644 index 0000000000..8eaa63c1f8 --- /dev/null +++ b/unmaintained/xf86-video-virtualbox/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/unmaintained/xf86-video-virtualbox/musl-no-glibc.patch b/unmaintained/xf86-video-virtualbox/musl-no-glibc.patch new file mode 100644 index 0000000000..65372f5d9d --- /dev/null +++ b/unmaintained/xf86-video-virtualbox/musl-no-glibc.patch @@ -0,0 +1,23 @@ +--- ./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" diff --git a/unmaintained/xf86-video-virtualbox/musl-sched_yield.patch b/unmaintained/xf86-video-virtualbox/musl-sched_yield.patch new file mode 100644 index 0000000000..08ca79cb9b --- /dev/null +++ b/unmaintained/xf86-video-virtualbox/musl-sched_yield.patch @@ -0,0 +1,32 @@ +--- ./src/VBox/Runtime/r3/posix/thread2-posix.cpp.orig ++++ ./src/VBox/Runtime/r3/posix/thread2-posix.cpp +@@ -66,7 +66,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)); +@@ -105,7 +105,7 @@ + #elif defined(RT_OS_SOLARIS) || defined(RT_OS_HAIKU) + sched_yield(); + #else +- if (!pthread_yield()) ++ if (!sched_yield()) + #endif + return VINF_SUCCESS; + } +@@ -131,10 +131,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/unmaintained/xf86-video-virtualbox/uclibc-gnu_linux.patch b/unmaintained/xf86-video-virtualbox/uclibc-gnu_linux.patch new file mode 100644 index 0000000000..b227d55b1d --- /dev/null +++ b/unmaintained/xf86-video-virtualbox/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/unmaintained/xf86-video-virtualbox/uclibc-spawn.patch b/unmaintained/xf86-video-virtualbox/uclibc-spawn.patch new file mode 100644 index 0000000000..98b4e8ad6e --- /dev/null +++ b/unmaintained/xf86-video-virtualbox/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/unmaintained/xf86-video-virtualbox/virtualbox-4-makeself-check.patch b/unmaintained/xf86-video-virtualbox/virtualbox-4-makeself-check.patch new file mode 100644 index 0000000000..e1fcb8c2f4 --- /dev/null +++ b/unmaintained/xf86-video-virtualbox/virtualbox-4-makeself-check.patch @@ -0,0 +1,10 @@ +--- VirtualBox-4.0.0_OSE/configure ++++ VirtualBox-4.0.0_OSE/configure +@@ -2527,7 +2527,6 @@ + check_compiler_h + [ "$BUILD_MACHINE" = "amd64" -a $WITH_VMMRAW -eq 1 ] && check_32bit + # tools/common/makeself* +- [ $OSE -ge 1 ] && check_makeself + fi + + [ -n "$SETUP_WINE" ] && setup_wine diff --git a/unmaintained/xf86-video-virtualbox/xf86-video-virtualbox-4-makeself-check.patch b/unmaintained/xf86-video-virtualbox/xf86-video-virtualbox-4-makeself-check.patch new file mode 100644 index 0000000000..e1fcb8c2f4 --- /dev/null +++ b/unmaintained/xf86-video-virtualbox/xf86-video-virtualbox-4-makeself-check.patch @@ -0,0 +1,10 @@ +--- VirtualBox-4.0.0_OSE/configure ++++ VirtualBox-4.0.0_OSE/configure +@@ -2527,7 +2527,6 @@ + check_compiler_h + [ "$BUILD_MACHINE" = "amd64" -a $WITH_VMMRAW -eq 1 ] && check_32bit + # tools/common/makeself* +- [ $OSE -ge 1 ] && check_makeself + fi + + [ -n "$SETUP_WINE" ] && setup_wine diff --git a/unmaintained/xf86-video-virtualbox/xf86-video-virtualbox-link-lazy.patch b/unmaintained/xf86-video-virtualbox/xf86-video-virtualbox-link-lazy.patch new file mode 100644 index 0000000000..5bb605419c --- /dev/null +++ b/unmaintained/xf86-video-virtualbox/xf86-video-virtualbox-link-lazy.patch @@ -0,0 +1,16 @@ +2012-02-26 Magnus Granberg <zorry@gentoo.org> + + #394757 + * Config.kmk TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.linux add -Wl,-z,lazy + +--- ./Config.kmk 2011-12-19 13:58:30.000000000 +0100 ++++ ./Config.kmk 2012-02-26 12:40:07.497810044 +0100 +@@ -4429,7 +4429,7 @@ else # the gcc guys + TEMPLATE_VBOXGUESTR3EXE_TOOL := $(subst GXX,GCC,$(TEMPLATE_VBOXR3EXE_TOOL)) + TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS = $(TEMPLATE_VBOXR3EXE_CXXFLAGS) -fno-exceptions + TEMPLATE_VBOXGUESTR3EXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) +- TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) ++ TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) -Wl,-z,lazy + endif + TEMPLATE_VBOXGUESTR3EXE_INST = $(INST_ADDITIONS) + TEMPLATE_VBOXGUESTR3EXE_DEFS := $(filter-out $(ARCH_BITS_DEFS), $(TEMPLATE_VBOXR3EXE_DEFS)) IN_GUEST IN_GUEST_R3 IN_RT_R3 $(VBOX_GC_ARCH_BITS_DEFS) |