aboutsummaryrefslogtreecommitdiffstats
path: root/emulators
diff options
context:
space:
mode:
authorbeat <beat@FreeBSD.org>2009-09-11 07:16:56 +0800
committerbeat <beat@FreeBSD.org>2009-09-11 07:16:56 +0800
commitf8eaa3536a7c84b2d9d1d31308ed5625893f6094 (patch)
tree8522e1c12b851c607b7b9bfb341008e12e1b2e1e /emulators
parent289c6b27dace3c4a89f3946f2fb58858fe887650 (diff)
downloadfreebsd-ports-gnome-f8eaa3536a7c84b2d9d1d31308ed5625893f6094.tar.gz
freebsd-ports-gnome-f8eaa3536a7c84b2d9d1d31308ed5625893f6094.tar.zst
freebsd-ports-gnome-f8eaa3536a7c84b2d9d1d31308ed5625893f6094.zip
- Update to 3.0.51r22683. This version adds support for tap interface
networking done by nox@, working VT-x, ACPI and Host DVD/CD access support and several FreeBSD related bugfixes. - Update Guest Additions to 3.0.6. - Respect CC and CXX variables. [1] - Add support for WITHOUT_X11 build. [2] - Fix pkg-plist for WITHOUT_NLS. [2] - Use LocalConfig.kmk to simplify configuration. [2] - Install vboxapi module and fix xpcom.vboxxpcom python api. [2] PR: ports/138063 [1] Submitted by: Anonymous <swell dot k at gmail dot com> [1], Bernhard Froehlich <decke AT bluelife.at> [2] On behalf of: vbox@ (decke, dhn, miwi, nox)
Diffstat (limited to 'emulators')
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/Makefile63
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/distinfo12
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/files/patch-Config.kmk10
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/files/patch-include-iprt-types.h14
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c14
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c41
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c14
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c41
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/pkg-plist88
-rw-r--r--emulators/virtualbox-ose-kmod/Makefile63
-rw-r--r--emulators/virtualbox-ose-kmod/distinfo12
-rw-r--r--emulators/virtualbox-ose-kmod/files/patch-Config.kmk10
-rw-r--r--emulators/virtualbox-ose-kmod/files/patch-include-iprt-types.h14
-rw-r--r--emulators/virtualbox-ose-kmod/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c14
-rw-r--r--emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c41
-rw-r--r--emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c14
-rw-r--r--emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c41
-rw-r--r--emulators/virtualbox-ose-kmod/pkg-plist88
-rw-r--r--emulators/virtualbox-ose-legacy/Makefile63
-rw-r--r--emulators/virtualbox-ose-legacy/distinfo12
-rw-r--r--emulators/virtualbox-ose-legacy/files/patch-Config.kmk10
-rw-r--r--emulators/virtualbox-ose-legacy/files/patch-include-iprt-types.h14
-rw-r--r--emulators/virtualbox-ose-legacy/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c14
-rw-r--r--emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c41
-rw-r--r--emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c14
-rw-r--r--emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c41
-rw-r--r--emulators/virtualbox-ose-legacy/pkg-plist88
-rw-r--r--emulators/virtualbox-ose/Makefile63
-rw-r--r--emulators/virtualbox-ose/distinfo12
-rw-r--r--emulators/virtualbox-ose/files/patch-Config.kmk10
-rw-r--r--emulators/virtualbox-ose/files/patch-include-iprt-types.h14
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c14
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c41
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c14
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c41
-rw-r--r--emulators/virtualbox-ose/pkg-plist88
-rw-r--r--emulators/virtualbox/Makefile63
-rw-r--r--emulators/virtualbox/distinfo12
-rw-r--r--emulators/virtualbox/files/patch-Config.kmk10
-rw-r--r--emulators/virtualbox/files/patch-include-iprt-types.h14
-rw-r--r--emulators/virtualbox/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c14
-rw-r--r--emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c41
-rw-r--r--emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c14
-rw-r--r--emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c41
-rw-r--r--emulators/virtualbox/pkg-plist88
45 files changed, 1040 insertions, 445 deletions
diff --git a/emulators/virtualbox-ose-kmod-legacy/Makefile b/emulators/virtualbox-ose-kmod-legacy/Makefile
index 44e56c9856b0..47087d293298 100644
--- a/emulators/virtualbox-ose-kmod-legacy/Makefile
+++ b/emulators/virtualbox-ose-kmod-legacy/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= virtualbox
-DISTVERSION= 3.0.51r22226
+DISTVERSION= 3.0.51r22683
CATEGORIES= emulators kld
MASTER_SITES= http://tmp.chruetertee.ch/ \
http://freebsd.unixfreunde.de/sources/ \
@@ -29,22 +29,25 @@ LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \
curl.5:${PORTSDIR}/ftp/curl
ONLY_FOR_ARCHS= i386 amd64
-USE_XORG= xcursor xmu
USE_GNOME= libidl
-USE_SDL= sdl
USE_CDRTOOLS= yes
-USE_PYTHON= yes
USE_BZIP2= yes
+USE_PYTHON= yes
+USE_PYDISTUTILS= easy_install
+PYDISTUTILS_PKGNAME= vboxapi
+PYDISTUTILS_PKGVERSION= 1.0
+PYDISTUTILS_NOEGGINFO= yes
HAS_CONFIGURE= yes
+CONFIGURE_ARGS+=--with-gcc="${CC}" --with-g++="${CXX}"
USE_LDCONFIG= ${PREFIX}/lib/virtualbox
CONFLICTS= bcc-[0-9]*
VBOXGROUP?= vboxusers
VBOXGID?= 920
-VBOX_FRONTENDS= VBoxBFE VBoxHeadless VBoxSDL
-VBOX_GUEST_VER= 3.0.4
+VBOX_FRONTENDS= VBoxHeadless
+VBOX_GUEST_VER= 3.0.6
SUB_FILES= pkg-install
@@ -57,22 +60,37 @@ OPTIONS= QT4 "Build with QT4 Frontend" on \
GUESTADDITIONS "Build with Guest Additions" off \
DBUS "Build with D-Bus and HAL support" on \
PULSEAUDIO "Build with PulseAudio" off \
+ X11 "Build with X11 support" on \
NLS "Native language support" on
.include <bsd.port.options.mk>
+PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,} \
+ PYTHON_VER=${PYTHON_VER} \
+ PYTHON_VERU=${PYTHON_VER:S/./_/} \
+ GUEST_VER=${VBOX_GUEST_VER}
+
KMODDIR= /boot/modules
-PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,}
KMK_BUILDTYPE= release
KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys
KMK_FLAGS=
+.if !defined(WITHOUT_X11)
+USE_SDL= sdl
+USE_XORG= xcursor xmu
+VBOX_FRONTENDS+=VBoxBFE VBoxSDL VBoxTestOGL
+PLIST_SUB+= X11=""
+.else
+CONFIGURE_ARGS+=--build-headless
+PLIST_SUB+= X11="@comment "
+.endif
+
.if !defined(WITHOUT_QT4)
USE_QT_VER= 4
QT_NONSTANDARD= yes
QT_COMPONENTS= gui network moc_build uic_build rcc_build linguist
INSTALLS_ICONS= yes
-VBOX_FRONTENDS+= VirtualBox
+VBOX_FRONTENDS+=VirtualBox
PLIST_SUB+= QT4=""
.else
CONFIGURE_ARGS+=--disable-qt4
@@ -134,16 +152,15 @@ PLIST_SUB+= I386="@comment "
.include <bsd.port.pre.mk>
post-patch:
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_PRIVATE_ARCH = /usr/lib/virtualbox|VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox|'\
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_SHARED_LIBS = /usr/lib|VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_WITH_RUNPATH = /usr/lib/virtualbox|VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_PRIVATE = /usr/lib/virtualbox|VBOX_PATH_APP_PRIVATE = ${DATADIR}|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_DOCS = /usr/share/doc/virtualbox|VBOX_PATH_APP_DOCS = ${DOCSDIR}|' \
- ${WRKSRC}/Config.kmk
+ @${ECHO} 'VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox' > ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk
+.if defined(WITHOUT_X11)
+ @${ECHO} 'VBOX_WITH_X11_ADDITIONS=' >> ${WRKSRC}/LocalConfig.kmk
+.endif
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/Config.kmk ${WRKSRC}/configure \
${WRKSRC}/kBuild/units/qt3.kmk ${WRKSRC}/kBuild/units/qt4.kmk \
@@ -176,7 +193,7 @@ do-install:
.endif
${MKDIR} ${PREFIX}/bin
-.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS} VBoxTestOGL
+.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS}
${INSTALL_PROGRAM} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/$f ${PREFIX}/lib/virtualbox/
${LN} -sf ${PREFIX}/lib/virtualbox/${f} ${PREFIX}/bin/
.endfor
@@ -194,8 +211,12 @@ do-install:
${LN} -sf ${PREFIX}/lib/virtualbox/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/VBoxGuestAdditions.iso
.endif
- @${MKDIR} ${PYTHONPREFIX_SITELIBDIR}/virtualbox
- (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${PYTHONPREFIX_SITELIBDIR}/virtualbox)
+ cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/installer && \
+ VBOX_INSTALL_PATH="${PREFIX}/lib/virtualbox" ${PYTHON_CMD} vboxapisetup.py install
+
+ @${MKDIR} ${PYTHON_SITELIBDIR}
+ (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${PYTHON_SITELIBDIR})
+ ${PYTHON_CMD} -mcompileall ${PYTHON_SITELIBDIR}/xpcom/
post-install:
@${SETENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
diff --git a/emulators/virtualbox-ose-kmod-legacy/distinfo b/emulators/virtualbox-ose-kmod-legacy/distinfo
index d72ab50597c2..882273f7defb 100644
--- a/emulators/virtualbox-ose-kmod-legacy/distinfo
+++ b/emulators/virtualbox-ose-kmod-legacy/distinfo
@@ -1,6 +1,6 @@
-MD5 (virtualbox-3.0.51r22226.tar.bz2) = bb4bbefdc7635a339629ed2ec790d638
-SHA256 (virtualbox-3.0.51r22226.tar.bz2) = 277967c68ddde036d7a8fb47e343dee8f7389002a89c3fd282e59b351dbf7e06
-SIZE (virtualbox-3.0.51r22226.tar.bz2) = 51353921
-MD5 (VBoxGuestAdditions_3.0.4.iso) = f1347c8dd9323c3d4850462abfaafc08
-SHA256 (VBoxGuestAdditions_3.0.4.iso) = 85ea4675c8960940db05799523314c99e8538439404573d97355d1fc3284e0ba
-SIZE (VBoxGuestAdditions_3.0.4.iso) = 32380928
+MD5 (virtualbox-3.0.51r22683.tar.bz2) = d3bc041395ef61f239e2b24ce35029d5
+SHA256 (virtualbox-3.0.51r22683.tar.bz2) = 94ed1c92d9b3a635b759ee86311c4d4bca77b4409d209c14e158493ace2bc4a4
+SIZE (virtualbox-3.0.51r22683.tar.bz2) = 52073583
+MD5 (VBoxGuestAdditions_3.0.6.iso) = 8d033b4f66db1a3e5b914da1717e9c21
+SHA256 (VBoxGuestAdditions_3.0.6.iso) = d6a8b61ef1004637c8be3a70612bb0e101f552d7eb0a9a376ff1ad264baf6a3c
+SIZE (VBoxGuestAdditions_3.0.6.iso) = 32786432
diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-Config.kmk b/emulators/virtualbox-ose-kmod-legacy/files/patch-Config.kmk
new file mode 100644
index 000000000000..2ce55eb8a12d
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-legacy/files/patch-Config.kmk
@@ -0,0 +1,10 @@
+--- Config.kmk.bak 2009-09-02 18:34:01.000000000 +0200
++++ Config.kmk 2009-09-02 19:19:09.000000000 +0200
+@@ -781,6 +781,7 @@
+ VBOX_WITH_VBOXBFE=
+ VBOX_WITH_OGL=
+ VBOX_WITH_KCHMVIEWER=
++ VBOX_WITH_HGSMI=
+ endif
+
+ #
diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-include-iprt-types.h b/emulators/virtualbox-ose-kmod-legacy/files/patch-include-iprt-types.h
deleted file mode 100644
index 35f253a391e7..000000000000
--- a/emulators/virtualbox-ose-kmod-legacy/files/patch-include-iprt-types.h
+++ /dev/null
@@ -1,14 +0,0 @@
---- include/iprt/types.h.orig 2009-07-12 21:17:13.000000000 +0200
-+++ include/iprt/types.h 2009-08-12 21:38:17.000000000 +0200
-@@ -92,6 +92,11 @@
- # undef true
- # undef bool
-
-+# elif defined(RT_OS_FREEBSD)
-+# define _UINT64_T_DECLARED
-+# define _INT64_T_DECLARED
-+# include <stddef.h>
-+# include <sys/types.h>
- # else
- # include <stddef.h>
- # include <sys/types.h>
diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
deleted file mode 100644
index 670495c87b8c..000000000000
--- a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
+++ /dev/null
@@ -1,14 +0,0 @@
---- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.old 2009-05-04 20:29:23.000000000 +0200
-+++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c 2009-05-04 20:30:28.000000000 +0200
-@@ -162,7 +162,11 @@
- if (rc)
- {
- *ppDev = make_dev(&g_VBoxGuestFreeBSDChrDevSW,
-+#if __FreeBSD_version < 800062
- unit2minor(iUnit),
-+#else
-+ iUnit,
-+#endif
- UID_ROOT,
- GID_WHEEL,
- 0644,
diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
new file mode 100644
index 000000000000..f5db6a393cf7
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
@@ -0,0 +1,41 @@
+Index: src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c
+@@ -215,15 +215,23 @@ static int rtSemEventMultiWait(RTSEMEVEN
+
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_timedwait_sig(pEventMultiInt, 0);
+ else
+ rc = sleepq_timedwait(pEventMultiInt, 0);
++#else
++ if (fInterruptible)
++ rc = sleepq_timedwait_sig(pEventMultiInt);
++ else
++ rc = sleepq_timedwait(pEventMultiInt);
++#endif
+ }
+ else
+ {
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_wait_sig(pEventMultiInt, 0);
+ else
+@@ -231,6 +239,15 @@ static int rtSemEventMultiWait(RTSEMEVEN
+ rc = 0;
+ sleepq_wait(pEventMultiInt, 0);
+ }
++#else
++ if (fInterruptible)
++ rc = sleepq_wait_sig(pEventMultiInt);
++ else
++ {
++ rc = 0;
++ sleepq_wait(pEventMultiInt);
++ }
++#endif
+ }
+
+ RTSpinlockAcquire(pEventMultiInt->hSpinLock, &Tmp);
diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c
new file mode 100644
index 000000000000..c7c56d5814ee
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c
@@ -0,0 +1,14 @@
+Index: src/VBox/Runtime/r0drv/freebsd/spinlock-r0drv-freebsd.c
+@@ -171,7 +171,12 @@ RTDECL(void) RTSpinlockAcquire(RTSPINLOC
+ AssertPtr(pThis);
+ Assert(pThis->u32Magic == RTSPINLOCK_MAGIC);
+ #ifdef RT_STRICT
++#if 0
++ /* This can't work because at least RTPowerNotificationRegister calls
++ * RTSpinlockAcquire with *pTmp allocated on the stack.
++ */
+ Assert(pTmp->uFlags == 0);
++#endif
+ pTmp->uFlags = 42;
+ #endif
+
diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c
new file mode 100644
index 000000000000..c2cdf7963fd7
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c
@@ -0,0 +1,41 @@
+Index: src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c
+@@ -205,15 +205,23 @@ static int rtSemEventWait(RTSEMEVENT Eve
+
+ RTSpinlockRelease(pEventInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_timedwait_sig(pEventInt, 0);
+ else
+ rc = sleepq_timedwait(pEventInt, 0);
++#else
++ if (fInterruptible)
++ rc = sleepq_timedwait_sig(pEventInt);
++ else
++ rc = sleepq_timedwait(pEventInt);
++#endif
+ }
+ else
+ {
+ RTSpinlockRelease(pEventInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_wait_sig(pEventInt, 0);
+ else
+@@ -221,6 +229,15 @@ static int rtSemEventWait(RTSEMEVENT Eve
+ rc = 0;
+ sleepq_wait(pEventInt, 0);
+ }
++#else
++ if (fInterruptible)
++ rc = sleepq_wait_sig(pEventInt);
++ else
++ {
++ rc = 0;
++ sleepq_wait(pEventInt);
++ }
++#endif
+ }
+
+ RTSpinlockAcquire(pEventInt->hSpinLock, &Tmp);
diff --git a/emulators/virtualbox-ose-kmod-legacy/pkg-plist b/emulators/virtualbox-ose-kmod-legacy/pkg-plist
index 611a88294b9d..00012310ba7c 100644
--- a/emulators/virtualbox-ose-kmod-legacy/pkg-plist
+++ b/emulators/virtualbox-ose-kmod-legacy/pkg-plist
@@ -1,14 +1,14 @@
-bin/VBoxBFE
+%%X11%%bin/VBoxBFE
bin/VBoxHeadless
bin/VBoxManage
bin/VBoxNetDHCP
-bin/VBoxSDL
+%%X11%%bin/VBoxSDL
bin/VBoxSVC
-bin/VBoxTestOGL
+%%X11%%bin/VBoxTestOGL
bin/VBoxXPCOMIPCD
%%QT4%%bin/VirtualBox
-lib/virtualbox/VBoxBFE
-lib/virtualbox/VBoxBFE.so
+%%X11%%lib/virtualbox/VBoxBFE
+%%X11%%lib/virtualbox/VBoxBFE.so
lib/virtualbox/VBoxDD.so
lib/virtualbox/VBoxDD2.so
lib/virtualbox/VBoxDDU.so
@@ -19,20 +19,20 @@ lib/virtualbox/VBoxHeadless.so
lib/virtualbox/VBoxManage
lib/virtualbox/VBoxNetDHCP
lib/virtualbox/VBoxNetDHCP.so
-lib/virtualbox/VBoxOGLhostcrutil.so
-lib/virtualbox/VBoxOGLhosterrorspu.so
-lib/virtualbox/VBoxOGLrenderspu.so
+%%X11%%lib/virtualbox/VBoxOGLhostcrutil.so
+%%X11%%lib/virtualbox/VBoxOGLhosterrorspu.so
+%%X11%%lib/virtualbox/VBoxOGLrenderspu.so
lib/virtualbox/VBoxPython.so
lib/virtualbox/VBoxREM.so
-lib/virtualbox/VBoxTestOGL
+%%X11%%lib/virtualbox/VBoxTestOGL
%%I386%%lib/virtualbox/VBoxREM32.so
%%I386%%lib/virtualbox/VBoxREM64.so
lib/virtualbox/VBoxRT.so
-lib/virtualbox/VBoxSDL
-lib/virtualbox/VBoxSDL.so
+%%X11%%lib/virtualbox/VBoxSDL
+%%X11%%lib/virtualbox/VBoxSDL.so
lib/virtualbox/VBoxSVC
lib/virtualbox/VBoxSharedClipboard.so
-lib/virtualbox/VBoxSharedCrOpenGL.so
+%%X11%%lib/virtualbox/VBoxSharedCrOpenGL.so
lib/virtualbox/VBoxSharedFolders.so
lib/virtualbox/VBoxVMM.so
lib/virtualbox/VBoxXPCOM.so
@@ -47,8 +47,8 @@ lib/virtualbox/tstMicroGC.gc
lib/virtualbox/VBoxDD2R0.r0
lib/virtualbox/VBoxDDR0.r0
%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions.iso
-%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions_3.0.4.iso
-lib/virtualbox/VBoxPython2_6.so
+%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions_%%GUEST_VER%%.iso
+lib/virtualbox/VBoxPython%%PYTHON_VERU%%.so
lib/virtualbox/VMMR0.r0
lib/virtualbox/components/VirtualBox_XPCOM.xpt
lib/virtualbox/components/VBoxXPCOMIPCC.so
@@ -533,25 +533,45 @@ include/virtualbox/xpcom/nsTraceRefcnt.h
include/virtualbox/xpcom/nsWeakReference.h
include/virtualbox/xpcom/nsXPCOMGlue.h
include/virtualbox/xpcom/xpcom-config.h
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/vboxxpcom.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/components.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/file.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/nsError.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/primitives.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/xpcom_consts.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/xpt.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/client/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/enumerator.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/factory.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/loader.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/module.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/policy.py
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom/client
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox
+%%PYTHON_SITELIBDIR%%/vboxapi/__init__.py
+%%PYTHON_SITELIBDIR%%/vboxapi/__init__.pyc
+%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.py
+%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.pyc
+%%PYTHON_SITELIBDIR%%/vboxapi-1.0-py%%PYTHON_VER%%.egg-info
+%%PYTHON_SITELIBDIR%%/xpcom/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/components.py
+%%PYTHON_SITELIBDIR%%/xpcom/components.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/file.py
+%%PYTHON_SITELIBDIR%%/xpcom/file.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/nsError.py
+%%PYTHON_SITELIBDIR%%/xpcom/nsError.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/primitives.py
+%%PYTHON_SITELIBDIR%%/xpcom/primitives.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.py
+%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.py
+%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/xpt.py
+%%PYTHON_SITELIBDIR%%/xpcom/xpt.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/factory.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/factory.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/loader.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/loader.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/module.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/module.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/policy.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/policy.pyc
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom/server
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom/client
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom
+@dirrm %%PYTHON_SITELIBDIR%%/vboxapi
@dirrm include/virtualbox/xpcom
@dirrm include/virtualbox/string
@dirrm include/virtualbox/nsprpub/private
@@ -568,7 +588,7 @@ include/virtualbox/xpcom/xpcom-config.h
%%QT4%%@dirrmtry share/icons/hicolor
%%QT4%%@dirrmtry share/icons
%%QT4%%@dirrmtry share/applications
-@dirrm lib/virtualbox/nls
+%%NLS%%@dirrm lib/virtualbox/nls
@dirrm lib/virtualbox/components
@dirrm lib/virtualbox
@cwd /
diff --git a/emulators/virtualbox-ose-kmod/Makefile b/emulators/virtualbox-ose-kmod/Makefile
index 44e56c9856b0..47087d293298 100644
--- a/emulators/virtualbox-ose-kmod/Makefile
+++ b/emulators/virtualbox-ose-kmod/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= virtualbox
-DISTVERSION= 3.0.51r22226
+DISTVERSION= 3.0.51r22683
CATEGORIES= emulators kld
MASTER_SITES= http://tmp.chruetertee.ch/ \
http://freebsd.unixfreunde.de/sources/ \
@@ -29,22 +29,25 @@ LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \
curl.5:${PORTSDIR}/ftp/curl
ONLY_FOR_ARCHS= i386 amd64
-USE_XORG= xcursor xmu
USE_GNOME= libidl
-USE_SDL= sdl
USE_CDRTOOLS= yes
-USE_PYTHON= yes
USE_BZIP2= yes
+USE_PYTHON= yes
+USE_PYDISTUTILS= easy_install
+PYDISTUTILS_PKGNAME= vboxapi
+PYDISTUTILS_PKGVERSION= 1.0
+PYDISTUTILS_NOEGGINFO= yes
HAS_CONFIGURE= yes
+CONFIGURE_ARGS+=--with-gcc="${CC}" --with-g++="${CXX}"
USE_LDCONFIG= ${PREFIX}/lib/virtualbox
CONFLICTS= bcc-[0-9]*
VBOXGROUP?= vboxusers
VBOXGID?= 920
-VBOX_FRONTENDS= VBoxBFE VBoxHeadless VBoxSDL
-VBOX_GUEST_VER= 3.0.4
+VBOX_FRONTENDS= VBoxHeadless
+VBOX_GUEST_VER= 3.0.6
SUB_FILES= pkg-install
@@ -57,22 +60,37 @@ OPTIONS= QT4 "Build with QT4 Frontend" on \
GUESTADDITIONS "Build with Guest Additions" off \
DBUS "Build with D-Bus and HAL support" on \
PULSEAUDIO "Build with PulseAudio" off \
+ X11 "Build with X11 support" on \
NLS "Native language support" on
.include <bsd.port.options.mk>
+PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,} \
+ PYTHON_VER=${PYTHON_VER} \
+ PYTHON_VERU=${PYTHON_VER:S/./_/} \
+ GUEST_VER=${VBOX_GUEST_VER}
+
KMODDIR= /boot/modules
-PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,}
KMK_BUILDTYPE= release
KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys
KMK_FLAGS=
+.if !defined(WITHOUT_X11)
+USE_SDL= sdl
+USE_XORG= xcursor xmu
+VBOX_FRONTENDS+=VBoxBFE VBoxSDL VBoxTestOGL
+PLIST_SUB+= X11=""
+.else
+CONFIGURE_ARGS+=--build-headless
+PLIST_SUB+= X11="@comment "
+.endif
+
.if !defined(WITHOUT_QT4)
USE_QT_VER= 4
QT_NONSTANDARD= yes
QT_COMPONENTS= gui network moc_build uic_build rcc_build linguist
INSTALLS_ICONS= yes
-VBOX_FRONTENDS+= VirtualBox
+VBOX_FRONTENDS+=VirtualBox
PLIST_SUB+= QT4=""
.else
CONFIGURE_ARGS+=--disable-qt4
@@ -134,16 +152,15 @@ PLIST_SUB+= I386="@comment "
.include <bsd.port.pre.mk>
post-patch:
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_PRIVATE_ARCH = /usr/lib/virtualbox|VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox|'\
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_SHARED_LIBS = /usr/lib|VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_WITH_RUNPATH = /usr/lib/virtualbox|VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_PRIVATE = /usr/lib/virtualbox|VBOX_PATH_APP_PRIVATE = ${DATADIR}|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_DOCS = /usr/share/doc/virtualbox|VBOX_PATH_APP_DOCS = ${DOCSDIR}|' \
- ${WRKSRC}/Config.kmk
+ @${ECHO} 'VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox' > ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk
+.if defined(WITHOUT_X11)
+ @${ECHO} 'VBOX_WITH_X11_ADDITIONS=' >> ${WRKSRC}/LocalConfig.kmk
+.endif
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/Config.kmk ${WRKSRC}/configure \
${WRKSRC}/kBuild/units/qt3.kmk ${WRKSRC}/kBuild/units/qt4.kmk \
@@ -176,7 +193,7 @@ do-install:
.endif
${MKDIR} ${PREFIX}/bin
-.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS} VBoxTestOGL
+.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS}
${INSTALL_PROGRAM} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/$f ${PREFIX}/lib/virtualbox/
${LN} -sf ${PREFIX}/lib/virtualbox/${f} ${PREFIX}/bin/
.endfor
@@ -194,8 +211,12 @@ do-install:
${LN} -sf ${PREFIX}/lib/virtualbox/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/VBoxGuestAdditions.iso
.endif
- @${MKDIR} ${PYTHONPREFIX_SITELIBDIR}/virtualbox
- (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${PYTHONPREFIX_SITELIBDIR}/virtualbox)
+ cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/installer && \
+ VBOX_INSTALL_PATH="${PREFIX}/lib/virtualbox" ${PYTHON_CMD} vboxapisetup.py install
+
+ @${MKDIR} ${PYTHON_SITELIBDIR}
+ (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${PYTHON_SITELIBDIR})
+ ${PYTHON_CMD} -mcompileall ${PYTHON_SITELIBDIR}/xpcom/
post-install:
@${SETENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
diff --git a/emulators/virtualbox-ose-kmod/distinfo b/emulators/virtualbox-ose-kmod/distinfo
index d72ab50597c2..882273f7defb 100644
--- a/emulators/virtualbox-ose-kmod/distinfo
+++ b/emulators/virtualbox-ose-kmod/distinfo
@@ -1,6 +1,6 @@
-MD5 (virtualbox-3.0.51r22226.tar.bz2) = bb4bbefdc7635a339629ed2ec790d638
-SHA256 (virtualbox-3.0.51r22226.tar.bz2) = 277967c68ddde036d7a8fb47e343dee8f7389002a89c3fd282e59b351dbf7e06
-SIZE (virtualbox-3.0.51r22226.tar.bz2) = 51353921
-MD5 (VBoxGuestAdditions_3.0.4.iso) = f1347c8dd9323c3d4850462abfaafc08
-SHA256 (VBoxGuestAdditions_3.0.4.iso) = 85ea4675c8960940db05799523314c99e8538439404573d97355d1fc3284e0ba
-SIZE (VBoxGuestAdditions_3.0.4.iso) = 32380928
+MD5 (virtualbox-3.0.51r22683.tar.bz2) = d3bc041395ef61f239e2b24ce35029d5
+SHA256 (virtualbox-3.0.51r22683.tar.bz2) = 94ed1c92d9b3a635b759ee86311c4d4bca77b4409d209c14e158493ace2bc4a4
+SIZE (virtualbox-3.0.51r22683.tar.bz2) = 52073583
+MD5 (VBoxGuestAdditions_3.0.6.iso) = 8d033b4f66db1a3e5b914da1717e9c21
+SHA256 (VBoxGuestAdditions_3.0.6.iso) = d6a8b61ef1004637c8be3a70612bb0e101f552d7eb0a9a376ff1ad264baf6a3c
+SIZE (VBoxGuestAdditions_3.0.6.iso) = 32786432
diff --git a/emulators/virtualbox-ose-kmod/files/patch-Config.kmk b/emulators/virtualbox-ose-kmod/files/patch-Config.kmk
new file mode 100644
index 000000000000..2ce55eb8a12d
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod/files/patch-Config.kmk
@@ -0,0 +1,10 @@
+--- Config.kmk.bak 2009-09-02 18:34:01.000000000 +0200
++++ Config.kmk 2009-09-02 19:19:09.000000000 +0200
+@@ -781,6 +781,7 @@
+ VBOX_WITH_VBOXBFE=
+ VBOX_WITH_OGL=
+ VBOX_WITH_KCHMVIEWER=
++ VBOX_WITH_HGSMI=
+ endif
+
+ #
diff --git a/emulators/virtualbox-ose-kmod/files/patch-include-iprt-types.h b/emulators/virtualbox-ose-kmod/files/patch-include-iprt-types.h
deleted file mode 100644
index 35f253a391e7..000000000000
--- a/emulators/virtualbox-ose-kmod/files/patch-include-iprt-types.h
+++ /dev/null
@@ -1,14 +0,0 @@
---- include/iprt/types.h.orig 2009-07-12 21:17:13.000000000 +0200
-+++ include/iprt/types.h 2009-08-12 21:38:17.000000000 +0200
-@@ -92,6 +92,11 @@
- # undef true
- # undef bool
-
-+# elif defined(RT_OS_FREEBSD)
-+# define _UINT64_T_DECLARED
-+# define _INT64_T_DECLARED
-+# include <stddef.h>
-+# include <sys/types.h>
- # else
- # include <stddef.h>
- # include <sys/types.h>
diff --git a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
deleted file mode 100644
index 670495c87b8c..000000000000
--- a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
+++ /dev/null
@@ -1,14 +0,0 @@
---- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.old 2009-05-04 20:29:23.000000000 +0200
-+++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c 2009-05-04 20:30:28.000000000 +0200
-@@ -162,7 +162,11 @@
- if (rc)
- {
- *ppDev = make_dev(&g_VBoxGuestFreeBSDChrDevSW,
-+#if __FreeBSD_version < 800062
- unit2minor(iUnit),
-+#else
-+ iUnit,
-+#endif
- UID_ROOT,
- GID_WHEEL,
- 0644,
diff --git a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
new file mode 100644
index 000000000000..f5db6a393cf7
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
@@ -0,0 +1,41 @@
+Index: src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c
+@@ -215,15 +215,23 @@ static int rtSemEventMultiWait(RTSEMEVEN
+
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_timedwait_sig(pEventMultiInt, 0);
+ else
+ rc = sleepq_timedwait(pEventMultiInt, 0);
++#else
++ if (fInterruptible)
++ rc = sleepq_timedwait_sig(pEventMultiInt);
++ else
++ rc = sleepq_timedwait(pEventMultiInt);
++#endif
+ }
+ else
+ {
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_wait_sig(pEventMultiInt, 0);
+ else
+@@ -231,6 +239,15 @@ static int rtSemEventMultiWait(RTSEMEVEN
+ rc = 0;
+ sleepq_wait(pEventMultiInt, 0);
+ }
++#else
++ if (fInterruptible)
++ rc = sleepq_wait_sig(pEventMultiInt);
++ else
++ {
++ rc = 0;
++ sleepq_wait(pEventMultiInt);
++ }
++#endif
+ }
+
+ RTSpinlockAcquire(pEventMultiInt->hSpinLock, &Tmp);
diff --git a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c
new file mode 100644
index 000000000000..c7c56d5814ee
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c
@@ -0,0 +1,14 @@
+Index: src/VBox/Runtime/r0drv/freebsd/spinlock-r0drv-freebsd.c
+@@ -171,7 +171,12 @@ RTDECL(void) RTSpinlockAcquire(RTSPINLOC
+ AssertPtr(pThis);
+ Assert(pThis->u32Magic == RTSPINLOCK_MAGIC);
+ #ifdef RT_STRICT
++#if 0
++ /* This can't work because at least RTPowerNotificationRegister calls
++ * RTSpinlockAcquire with *pTmp allocated on the stack.
++ */
+ Assert(pTmp->uFlags == 0);
++#endif
+ pTmp->uFlags = 42;
+ #endif
+
diff --git a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c
new file mode 100644
index 000000000000..c2cdf7963fd7
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c
@@ -0,0 +1,41 @@
+Index: src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c
+@@ -205,15 +205,23 @@ static int rtSemEventWait(RTSEMEVENT Eve
+
+ RTSpinlockRelease(pEventInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_timedwait_sig(pEventInt, 0);
+ else
+ rc = sleepq_timedwait(pEventInt, 0);
++#else
++ if (fInterruptible)
++ rc = sleepq_timedwait_sig(pEventInt);
++ else
++ rc = sleepq_timedwait(pEventInt);
++#endif
+ }
+ else
+ {
+ RTSpinlockRelease(pEventInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_wait_sig(pEventInt, 0);
+ else
+@@ -221,6 +229,15 @@ static int rtSemEventWait(RTSEMEVENT Eve
+ rc = 0;
+ sleepq_wait(pEventInt, 0);
+ }
++#else
++ if (fInterruptible)
++ rc = sleepq_wait_sig(pEventInt);
++ else
++ {
++ rc = 0;
++ sleepq_wait(pEventInt);
++ }
++#endif
+ }
+
+ RTSpinlockAcquire(pEventInt->hSpinLock, &Tmp);
diff --git a/emulators/virtualbox-ose-kmod/pkg-plist b/emulators/virtualbox-ose-kmod/pkg-plist
index 611a88294b9d..00012310ba7c 100644
--- a/emulators/virtualbox-ose-kmod/pkg-plist
+++ b/emulators/virtualbox-ose-kmod/pkg-plist
@@ -1,14 +1,14 @@
-bin/VBoxBFE
+%%X11%%bin/VBoxBFE
bin/VBoxHeadless
bin/VBoxManage
bin/VBoxNetDHCP
-bin/VBoxSDL
+%%X11%%bin/VBoxSDL
bin/VBoxSVC
-bin/VBoxTestOGL
+%%X11%%bin/VBoxTestOGL
bin/VBoxXPCOMIPCD
%%QT4%%bin/VirtualBox
-lib/virtualbox/VBoxBFE
-lib/virtualbox/VBoxBFE.so
+%%X11%%lib/virtualbox/VBoxBFE
+%%X11%%lib/virtualbox/VBoxBFE.so
lib/virtualbox/VBoxDD.so
lib/virtualbox/VBoxDD2.so
lib/virtualbox/VBoxDDU.so
@@ -19,20 +19,20 @@ lib/virtualbox/VBoxHeadless.so
lib/virtualbox/VBoxManage
lib/virtualbox/VBoxNetDHCP
lib/virtualbox/VBoxNetDHCP.so
-lib/virtualbox/VBoxOGLhostcrutil.so
-lib/virtualbox/VBoxOGLhosterrorspu.so
-lib/virtualbox/VBoxOGLrenderspu.so
+%%X11%%lib/virtualbox/VBoxOGLhostcrutil.so
+%%X11%%lib/virtualbox/VBoxOGLhosterrorspu.so
+%%X11%%lib/virtualbox/VBoxOGLrenderspu.so
lib/virtualbox/VBoxPython.so
lib/virtualbox/VBoxREM.so
-lib/virtualbox/VBoxTestOGL
+%%X11%%lib/virtualbox/VBoxTestOGL
%%I386%%lib/virtualbox/VBoxREM32.so
%%I386%%lib/virtualbox/VBoxREM64.so
lib/virtualbox/VBoxRT.so
-lib/virtualbox/VBoxSDL
-lib/virtualbox/VBoxSDL.so
+%%X11%%lib/virtualbox/VBoxSDL
+%%X11%%lib/virtualbox/VBoxSDL.so
lib/virtualbox/VBoxSVC
lib/virtualbox/VBoxSharedClipboard.so
-lib/virtualbox/VBoxSharedCrOpenGL.so
+%%X11%%lib/virtualbox/VBoxSharedCrOpenGL.so
lib/virtualbox/VBoxSharedFolders.so
lib/virtualbox/VBoxVMM.so
lib/virtualbox/VBoxXPCOM.so
@@ -47,8 +47,8 @@ lib/virtualbox/tstMicroGC.gc
lib/virtualbox/VBoxDD2R0.r0
lib/virtualbox/VBoxDDR0.r0
%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions.iso
-%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions_3.0.4.iso
-lib/virtualbox/VBoxPython2_6.so
+%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions_%%GUEST_VER%%.iso
+lib/virtualbox/VBoxPython%%PYTHON_VERU%%.so
lib/virtualbox/VMMR0.r0
lib/virtualbox/components/VirtualBox_XPCOM.xpt
lib/virtualbox/components/VBoxXPCOMIPCC.so
@@ -533,25 +533,45 @@ include/virtualbox/xpcom/nsTraceRefcnt.h
include/virtualbox/xpcom/nsWeakReference.h
include/virtualbox/xpcom/nsXPCOMGlue.h
include/virtualbox/xpcom/xpcom-config.h
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/vboxxpcom.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/components.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/file.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/nsError.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/primitives.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/xpcom_consts.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/xpt.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/client/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/enumerator.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/factory.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/loader.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/module.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/policy.py
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom/client
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox
+%%PYTHON_SITELIBDIR%%/vboxapi/__init__.py
+%%PYTHON_SITELIBDIR%%/vboxapi/__init__.pyc
+%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.py
+%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.pyc
+%%PYTHON_SITELIBDIR%%/vboxapi-1.0-py%%PYTHON_VER%%.egg-info
+%%PYTHON_SITELIBDIR%%/xpcom/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/components.py
+%%PYTHON_SITELIBDIR%%/xpcom/components.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/file.py
+%%PYTHON_SITELIBDIR%%/xpcom/file.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/nsError.py
+%%PYTHON_SITELIBDIR%%/xpcom/nsError.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/primitives.py
+%%PYTHON_SITELIBDIR%%/xpcom/primitives.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.py
+%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.py
+%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/xpt.py
+%%PYTHON_SITELIBDIR%%/xpcom/xpt.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/factory.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/factory.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/loader.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/loader.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/module.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/module.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/policy.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/policy.pyc
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom/server
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom/client
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom
+@dirrm %%PYTHON_SITELIBDIR%%/vboxapi
@dirrm include/virtualbox/xpcom
@dirrm include/virtualbox/string
@dirrm include/virtualbox/nsprpub/private
@@ -568,7 +588,7 @@ include/virtualbox/xpcom/xpcom-config.h
%%QT4%%@dirrmtry share/icons/hicolor
%%QT4%%@dirrmtry share/icons
%%QT4%%@dirrmtry share/applications
-@dirrm lib/virtualbox/nls
+%%NLS%%@dirrm lib/virtualbox/nls
@dirrm lib/virtualbox/components
@dirrm lib/virtualbox
@cwd /
diff --git a/emulators/virtualbox-ose-legacy/Makefile b/emulators/virtualbox-ose-legacy/Makefile
index 44e56c9856b0..47087d293298 100644
--- a/emulators/virtualbox-ose-legacy/Makefile
+++ b/emulators/virtualbox-ose-legacy/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= virtualbox
-DISTVERSION= 3.0.51r22226
+DISTVERSION= 3.0.51r22683
CATEGORIES= emulators kld
MASTER_SITES= http://tmp.chruetertee.ch/ \
http://freebsd.unixfreunde.de/sources/ \
@@ -29,22 +29,25 @@ LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \
curl.5:${PORTSDIR}/ftp/curl
ONLY_FOR_ARCHS= i386 amd64
-USE_XORG= xcursor xmu
USE_GNOME= libidl
-USE_SDL= sdl
USE_CDRTOOLS= yes
-USE_PYTHON= yes
USE_BZIP2= yes
+USE_PYTHON= yes
+USE_PYDISTUTILS= easy_install
+PYDISTUTILS_PKGNAME= vboxapi
+PYDISTUTILS_PKGVERSION= 1.0
+PYDISTUTILS_NOEGGINFO= yes
HAS_CONFIGURE= yes
+CONFIGURE_ARGS+=--with-gcc="${CC}" --with-g++="${CXX}"
USE_LDCONFIG= ${PREFIX}/lib/virtualbox
CONFLICTS= bcc-[0-9]*
VBOXGROUP?= vboxusers
VBOXGID?= 920
-VBOX_FRONTENDS= VBoxBFE VBoxHeadless VBoxSDL
-VBOX_GUEST_VER= 3.0.4
+VBOX_FRONTENDS= VBoxHeadless
+VBOX_GUEST_VER= 3.0.6
SUB_FILES= pkg-install
@@ -57,22 +60,37 @@ OPTIONS= QT4 "Build with QT4 Frontend" on \
GUESTADDITIONS "Build with Guest Additions" off \
DBUS "Build with D-Bus and HAL support" on \
PULSEAUDIO "Build with PulseAudio" off \
+ X11 "Build with X11 support" on \
NLS "Native language support" on
.include <bsd.port.options.mk>
+PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,} \
+ PYTHON_VER=${PYTHON_VER} \
+ PYTHON_VERU=${PYTHON_VER:S/./_/} \
+ GUEST_VER=${VBOX_GUEST_VER}
+
KMODDIR= /boot/modules
-PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,}
KMK_BUILDTYPE= release
KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys
KMK_FLAGS=
+.if !defined(WITHOUT_X11)
+USE_SDL= sdl
+USE_XORG= xcursor xmu
+VBOX_FRONTENDS+=VBoxBFE VBoxSDL VBoxTestOGL
+PLIST_SUB+= X11=""
+.else
+CONFIGURE_ARGS+=--build-headless
+PLIST_SUB+= X11="@comment "
+.endif
+
.if !defined(WITHOUT_QT4)
USE_QT_VER= 4
QT_NONSTANDARD= yes
QT_COMPONENTS= gui network moc_build uic_build rcc_build linguist
INSTALLS_ICONS= yes
-VBOX_FRONTENDS+= VirtualBox
+VBOX_FRONTENDS+=VirtualBox
PLIST_SUB+= QT4=""
.else
CONFIGURE_ARGS+=--disable-qt4
@@ -134,16 +152,15 @@ PLIST_SUB+= I386="@comment "
.include <bsd.port.pre.mk>
post-patch:
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_PRIVATE_ARCH = /usr/lib/virtualbox|VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox|'\
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_SHARED_LIBS = /usr/lib|VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_WITH_RUNPATH = /usr/lib/virtualbox|VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_PRIVATE = /usr/lib/virtualbox|VBOX_PATH_APP_PRIVATE = ${DATADIR}|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_DOCS = /usr/share/doc/virtualbox|VBOX_PATH_APP_DOCS = ${DOCSDIR}|' \
- ${WRKSRC}/Config.kmk
+ @${ECHO} 'VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox' > ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk
+.if defined(WITHOUT_X11)
+ @${ECHO} 'VBOX_WITH_X11_ADDITIONS=' >> ${WRKSRC}/LocalConfig.kmk
+.endif
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/Config.kmk ${WRKSRC}/configure \
${WRKSRC}/kBuild/units/qt3.kmk ${WRKSRC}/kBuild/units/qt4.kmk \
@@ -176,7 +193,7 @@ do-install:
.endif
${MKDIR} ${PREFIX}/bin
-.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS} VBoxTestOGL
+.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS}
${INSTALL_PROGRAM} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/$f ${PREFIX}/lib/virtualbox/
${LN} -sf ${PREFIX}/lib/virtualbox/${f} ${PREFIX}/bin/
.endfor
@@ -194,8 +211,12 @@ do-install:
${LN} -sf ${PREFIX}/lib/virtualbox/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/VBoxGuestAdditions.iso
.endif
- @${MKDIR} ${PYTHONPREFIX_SITELIBDIR}/virtualbox
- (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${PYTHONPREFIX_SITELIBDIR}/virtualbox)
+ cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/installer && \
+ VBOX_INSTALL_PATH="${PREFIX}/lib/virtualbox" ${PYTHON_CMD} vboxapisetup.py install
+
+ @${MKDIR} ${PYTHON_SITELIBDIR}
+ (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${PYTHON_SITELIBDIR})
+ ${PYTHON_CMD} -mcompileall ${PYTHON_SITELIBDIR}/xpcom/
post-install:
@${SETENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
diff --git a/emulators/virtualbox-ose-legacy/distinfo b/emulators/virtualbox-ose-legacy/distinfo
index d72ab50597c2..882273f7defb 100644
--- a/emulators/virtualbox-ose-legacy/distinfo
+++ b/emulators/virtualbox-ose-legacy/distinfo
@@ -1,6 +1,6 @@
-MD5 (virtualbox-3.0.51r22226.tar.bz2) = bb4bbefdc7635a339629ed2ec790d638
-SHA256 (virtualbox-3.0.51r22226.tar.bz2) = 277967c68ddde036d7a8fb47e343dee8f7389002a89c3fd282e59b351dbf7e06
-SIZE (virtualbox-3.0.51r22226.tar.bz2) = 51353921
-MD5 (VBoxGuestAdditions_3.0.4.iso) = f1347c8dd9323c3d4850462abfaafc08
-SHA256 (VBoxGuestAdditions_3.0.4.iso) = 85ea4675c8960940db05799523314c99e8538439404573d97355d1fc3284e0ba
-SIZE (VBoxGuestAdditions_3.0.4.iso) = 32380928
+MD5 (virtualbox-3.0.51r22683.tar.bz2) = d3bc041395ef61f239e2b24ce35029d5
+SHA256 (virtualbox-3.0.51r22683.tar.bz2) = 94ed1c92d9b3a635b759ee86311c4d4bca77b4409d209c14e158493ace2bc4a4
+SIZE (virtualbox-3.0.51r22683.tar.bz2) = 52073583
+MD5 (VBoxGuestAdditions_3.0.6.iso) = 8d033b4f66db1a3e5b914da1717e9c21
+SHA256 (VBoxGuestAdditions_3.0.6.iso) = d6a8b61ef1004637c8be3a70612bb0e101f552d7eb0a9a376ff1ad264baf6a3c
+SIZE (VBoxGuestAdditions_3.0.6.iso) = 32786432
diff --git a/emulators/virtualbox-ose-legacy/files/patch-Config.kmk b/emulators/virtualbox-ose-legacy/files/patch-Config.kmk
new file mode 100644
index 000000000000..2ce55eb8a12d
--- /dev/null
+++ b/emulators/virtualbox-ose-legacy/files/patch-Config.kmk
@@ -0,0 +1,10 @@
+--- Config.kmk.bak 2009-09-02 18:34:01.000000000 +0200
++++ Config.kmk 2009-09-02 19:19:09.000000000 +0200
+@@ -781,6 +781,7 @@
+ VBOX_WITH_VBOXBFE=
+ VBOX_WITH_OGL=
+ VBOX_WITH_KCHMVIEWER=
++ VBOX_WITH_HGSMI=
+ endif
+
+ #
diff --git a/emulators/virtualbox-ose-legacy/files/patch-include-iprt-types.h b/emulators/virtualbox-ose-legacy/files/patch-include-iprt-types.h
deleted file mode 100644
index 35f253a391e7..000000000000
--- a/emulators/virtualbox-ose-legacy/files/patch-include-iprt-types.h
+++ /dev/null
@@ -1,14 +0,0 @@
---- include/iprt/types.h.orig 2009-07-12 21:17:13.000000000 +0200
-+++ include/iprt/types.h 2009-08-12 21:38:17.000000000 +0200
-@@ -92,6 +92,11 @@
- # undef true
- # undef bool
-
-+# elif defined(RT_OS_FREEBSD)
-+# define _UINT64_T_DECLARED
-+# define _INT64_T_DECLARED
-+# include <stddef.h>
-+# include <sys/types.h>
- # else
- # include <stddef.h>
- # include <sys/types.h>
diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
deleted file mode 100644
index 670495c87b8c..000000000000
--- a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
+++ /dev/null
@@ -1,14 +0,0 @@
---- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.old 2009-05-04 20:29:23.000000000 +0200
-+++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c 2009-05-04 20:30:28.000000000 +0200
-@@ -162,7 +162,11 @@
- if (rc)
- {
- *ppDev = make_dev(&g_VBoxGuestFreeBSDChrDevSW,
-+#if __FreeBSD_version < 800062
- unit2minor(iUnit),
-+#else
-+ iUnit,
-+#endif
- UID_ROOT,
- GID_WHEEL,
- 0644,
diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
new file mode 100644
index 000000000000..f5db6a393cf7
--- /dev/null
+++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
@@ -0,0 +1,41 @@
+Index: src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c
+@@ -215,15 +215,23 @@ static int rtSemEventMultiWait(RTSEMEVEN
+
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_timedwait_sig(pEventMultiInt, 0);
+ else
+ rc = sleepq_timedwait(pEventMultiInt, 0);
++#else
++ if (fInterruptible)
++ rc = sleepq_timedwait_sig(pEventMultiInt);
++ else
++ rc = sleepq_timedwait(pEventMultiInt);
++#endif
+ }
+ else
+ {
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_wait_sig(pEventMultiInt, 0);
+ else
+@@ -231,6 +239,15 @@ static int rtSemEventMultiWait(RTSEMEVEN
+ rc = 0;
+ sleepq_wait(pEventMultiInt, 0);
+ }
++#else
++ if (fInterruptible)
++ rc = sleepq_wait_sig(pEventMultiInt);
++ else
++ {
++ rc = 0;
++ sleepq_wait(pEventMultiInt);
++ }
++#endif
+ }
+
+ RTSpinlockAcquire(pEventMultiInt->hSpinLock, &Tmp);
diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c
new file mode 100644
index 000000000000..c7c56d5814ee
--- /dev/null
+++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c
@@ -0,0 +1,14 @@
+Index: src/VBox/Runtime/r0drv/freebsd/spinlock-r0drv-freebsd.c
+@@ -171,7 +171,12 @@ RTDECL(void) RTSpinlockAcquire(RTSPINLOC
+ AssertPtr(pThis);
+ Assert(pThis->u32Magic == RTSPINLOCK_MAGIC);
+ #ifdef RT_STRICT
++#if 0
++ /* This can't work because at least RTPowerNotificationRegister calls
++ * RTSpinlockAcquire with *pTmp allocated on the stack.
++ */
+ Assert(pTmp->uFlags == 0);
++#endif
+ pTmp->uFlags = 42;
+ #endif
+
diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c
new file mode 100644
index 000000000000..c2cdf7963fd7
--- /dev/null
+++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c
@@ -0,0 +1,41 @@
+Index: src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c
+@@ -205,15 +205,23 @@ static int rtSemEventWait(RTSEMEVENT Eve
+
+ RTSpinlockRelease(pEventInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_timedwait_sig(pEventInt, 0);
+ else
+ rc = sleepq_timedwait(pEventInt, 0);
++#else
++ if (fInterruptible)
++ rc = sleepq_timedwait_sig(pEventInt);
++ else
++ rc = sleepq_timedwait(pEventInt);
++#endif
+ }
+ else
+ {
+ RTSpinlockRelease(pEventInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_wait_sig(pEventInt, 0);
+ else
+@@ -221,6 +229,15 @@ static int rtSemEventWait(RTSEMEVENT Eve
+ rc = 0;
+ sleepq_wait(pEventInt, 0);
+ }
++#else
++ if (fInterruptible)
++ rc = sleepq_wait_sig(pEventInt);
++ else
++ {
++ rc = 0;
++ sleepq_wait(pEventInt);
++ }
++#endif
+ }
+
+ RTSpinlockAcquire(pEventInt->hSpinLock, &Tmp);
diff --git a/emulators/virtualbox-ose-legacy/pkg-plist b/emulators/virtualbox-ose-legacy/pkg-plist
index 611a88294b9d..00012310ba7c 100644
--- a/emulators/virtualbox-ose-legacy/pkg-plist
+++ b/emulators/virtualbox-ose-legacy/pkg-plist
@@ -1,14 +1,14 @@
-bin/VBoxBFE
+%%X11%%bin/VBoxBFE
bin/VBoxHeadless
bin/VBoxManage
bin/VBoxNetDHCP
-bin/VBoxSDL
+%%X11%%bin/VBoxSDL
bin/VBoxSVC
-bin/VBoxTestOGL
+%%X11%%bin/VBoxTestOGL
bin/VBoxXPCOMIPCD
%%QT4%%bin/VirtualBox
-lib/virtualbox/VBoxBFE
-lib/virtualbox/VBoxBFE.so
+%%X11%%lib/virtualbox/VBoxBFE
+%%X11%%lib/virtualbox/VBoxBFE.so
lib/virtualbox/VBoxDD.so
lib/virtualbox/VBoxDD2.so
lib/virtualbox/VBoxDDU.so
@@ -19,20 +19,20 @@ lib/virtualbox/VBoxHeadless.so
lib/virtualbox/VBoxManage
lib/virtualbox/VBoxNetDHCP
lib/virtualbox/VBoxNetDHCP.so
-lib/virtualbox/VBoxOGLhostcrutil.so
-lib/virtualbox/VBoxOGLhosterrorspu.so
-lib/virtualbox/VBoxOGLrenderspu.so
+%%X11%%lib/virtualbox/VBoxOGLhostcrutil.so
+%%X11%%lib/virtualbox/VBoxOGLhosterrorspu.so
+%%X11%%lib/virtualbox/VBoxOGLrenderspu.so
lib/virtualbox/VBoxPython.so
lib/virtualbox/VBoxREM.so
-lib/virtualbox/VBoxTestOGL
+%%X11%%lib/virtualbox/VBoxTestOGL
%%I386%%lib/virtualbox/VBoxREM32.so
%%I386%%lib/virtualbox/VBoxREM64.so
lib/virtualbox/VBoxRT.so
-lib/virtualbox/VBoxSDL
-lib/virtualbox/VBoxSDL.so
+%%X11%%lib/virtualbox/VBoxSDL
+%%X11%%lib/virtualbox/VBoxSDL.so
lib/virtualbox/VBoxSVC
lib/virtualbox/VBoxSharedClipboard.so
-lib/virtualbox/VBoxSharedCrOpenGL.so
+%%X11%%lib/virtualbox/VBoxSharedCrOpenGL.so
lib/virtualbox/VBoxSharedFolders.so
lib/virtualbox/VBoxVMM.so
lib/virtualbox/VBoxXPCOM.so
@@ -47,8 +47,8 @@ lib/virtualbox/tstMicroGC.gc
lib/virtualbox/VBoxDD2R0.r0
lib/virtualbox/VBoxDDR0.r0
%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions.iso
-%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions_3.0.4.iso
-lib/virtualbox/VBoxPython2_6.so
+%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions_%%GUEST_VER%%.iso
+lib/virtualbox/VBoxPython%%PYTHON_VERU%%.so
lib/virtualbox/VMMR0.r0
lib/virtualbox/components/VirtualBox_XPCOM.xpt
lib/virtualbox/components/VBoxXPCOMIPCC.so
@@ -533,25 +533,45 @@ include/virtualbox/xpcom/nsTraceRefcnt.h
include/virtualbox/xpcom/nsWeakReference.h
include/virtualbox/xpcom/nsXPCOMGlue.h
include/virtualbox/xpcom/xpcom-config.h
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/vboxxpcom.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/components.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/file.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/nsError.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/primitives.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/xpcom_consts.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/xpt.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/client/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/enumerator.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/factory.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/loader.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/module.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/policy.py
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom/client
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox
+%%PYTHON_SITELIBDIR%%/vboxapi/__init__.py
+%%PYTHON_SITELIBDIR%%/vboxapi/__init__.pyc
+%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.py
+%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.pyc
+%%PYTHON_SITELIBDIR%%/vboxapi-1.0-py%%PYTHON_VER%%.egg-info
+%%PYTHON_SITELIBDIR%%/xpcom/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/components.py
+%%PYTHON_SITELIBDIR%%/xpcom/components.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/file.py
+%%PYTHON_SITELIBDIR%%/xpcom/file.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/nsError.py
+%%PYTHON_SITELIBDIR%%/xpcom/nsError.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/primitives.py
+%%PYTHON_SITELIBDIR%%/xpcom/primitives.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.py
+%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.py
+%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/xpt.py
+%%PYTHON_SITELIBDIR%%/xpcom/xpt.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/factory.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/factory.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/loader.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/loader.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/module.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/module.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/policy.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/policy.pyc
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom/server
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom/client
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom
+@dirrm %%PYTHON_SITELIBDIR%%/vboxapi
@dirrm include/virtualbox/xpcom
@dirrm include/virtualbox/string
@dirrm include/virtualbox/nsprpub/private
@@ -568,7 +588,7 @@ include/virtualbox/xpcom/xpcom-config.h
%%QT4%%@dirrmtry share/icons/hicolor
%%QT4%%@dirrmtry share/icons
%%QT4%%@dirrmtry share/applications
-@dirrm lib/virtualbox/nls
+%%NLS%%@dirrm lib/virtualbox/nls
@dirrm lib/virtualbox/components
@dirrm lib/virtualbox
@cwd /
diff --git a/emulators/virtualbox-ose/Makefile b/emulators/virtualbox-ose/Makefile
index 44e56c9856b0..47087d293298 100644
--- a/emulators/virtualbox-ose/Makefile
+++ b/emulators/virtualbox-ose/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= virtualbox
-DISTVERSION= 3.0.51r22226
+DISTVERSION= 3.0.51r22683
CATEGORIES= emulators kld
MASTER_SITES= http://tmp.chruetertee.ch/ \
http://freebsd.unixfreunde.de/sources/ \
@@ -29,22 +29,25 @@ LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \
curl.5:${PORTSDIR}/ftp/curl
ONLY_FOR_ARCHS= i386 amd64
-USE_XORG= xcursor xmu
USE_GNOME= libidl
-USE_SDL= sdl
USE_CDRTOOLS= yes
-USE_PYTHON= yes
USE_BZIP2= yes
+USE_PYTHON= yes
+USE_PYDISTUTILS= easy_install
+PYDISTUTILS_PKGNAME= vboxapi
+PYDISTUTILS_PKGVERSION= 1.0
+PYDISTUTILS_NOEGGINFO= yes
HAS_CONFIGURE= yes
+CONFIGURE_ARGS+=--with-gcc="${CC}" --with-g++="${CXX}"
USE_LDCONFIG= ${PREFIX}/lib/virtualbox
CONFLICTS= bcc-[0-9]*
VBOXGROUP?= vboxusers
VBOXGID?= 920
-VBOX_FRONTENDS= VBoxBFE VBoxHeadless VBoxSDL
-VBOX_GUEST_VER= 3.0.4
+VBOX_FRONTENDS= VBoxHeadless
+VBOX_GUEST_VER= 3.0.6
SUB_FILES= pkg-install
@@ -57,22 +60,37 @@ OPTIONS= QT4 "Build with QT4 Frontend" on \
GUESTADDITIONS "Build with Guest Additions" off \
DBUS "Build with D-Bus and HAL support" on \
PULSEAUDIO "Build with PulseAudio" off \
+ X11 "Build with X11 support" on \
NLS "Native language support" on
.include <bsd.port.options.mk>
+PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,} \
+ PYTHON_VER=${PYTHON_VER} \
+ PYTHON_VERU=${PYTHON_VER:S/./_/} \
+ GUEST_VER=${VBOX_GUEST_VER}
+
KMODDIR= /boot/modules
-PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,}
KMK_BUILDTYPE= release
KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys
KMK_FLAGS=
+.if !defined(WITHOUT_X11)
+USE_SDL= sdl
+USE_XORG= xcursor xmu
+VBOX_FRONTENDS+=VBoxBFE VBoxSDL VBoxTestOGL
+PLIST_SUB+= X11=""
+.else
+CONFIGURE_ARGS+=--build-headless
+PLIST_SUB+= X11="@comment "
+.endif
+
.if !defined(WITHOUT_QT4)
USE_QT_VER= 4
QT_NONSTANDARD= yes
QT_COMPONENTS= gui network moc_build uic_build rcc_build linguist
INSTALLS_ICONS= yes
-VBOX_FRONTENDS+= VirtualBox
+VBOX_FRONTENDS+=VirtualBox
PLIST_SUB+= QT4=""
.else
CONFIGURE_ARGS+=--disable-qt4
@@ -134,16 +152,15 @@ PLIST_SUB+= I386="@comment "
.include <bsd.port.pre.mk>
post-patch:
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_PRIVATE_ARCH = /usr/lib/virtualbox|VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox|'\
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_SHARED_LIBS = /usr/lib|VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_WITH_RUNPATH = /usr/lib/virtualbox|VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_PRIVATE = /usr/lib/virtualbox|VBOX_PATH_APP_PRIVATE = ${DATADIR}|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_DOCS = /usr/share/doc/virtualbox|VBOX_PATH_APP_DOCS = ${DOCSDIR}|' \
- ${WRKSRC}/Config.kmk
+ @${ECHO} 'VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox' > ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk
+.if defined(WITHOUT_X11)
+ @${ECHO} 'VBOX_WITH_X11_ADDITIONS=' >> ${WRKSRC}/LocalConfig.kmk
+.endif
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/Config.kmk ${WRKSRC}/configure \
${WRKSRC}/kBuild/units/qt3.kmk ${WRKSRC}/kBuild/units/qt4.kmk \
@@ -176,7 +193,7 @@ do-install:
.endif
${MKDIR} ${PREFIX}/bin
-.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS} VBoxTestOGL
+.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS}
${INSTALL_PROGRAM} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/$f ${PREFIX}/lib/virtualbox/
${LN} -sf ${PREFIX}/lib/virtualbox/${f} ${PREFIX}/bin/
.endfor
@@ -194,8 +211,12 @@ do-install:
${LN} -sf ${PREFIX}/lib/virtualbox/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/VBoxGuestAdditions.iso
.endif
- @${MKDIR} ${PYTHONPREFIX_SITELIBDIR}/virtualbox
- (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${PYTHONPREFIX_SITELIBDIR}/virtualbox)
+ cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/installer && \
+ VBOX_INSTALL_PATH="${PREFIX}/lib/virtualbox" ${PYTHON_CMD} vboxapisetup.py install
+
+ @${MKDIR} ${PYTHON_SITELIBDIR}
+ (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${PYTHON_SITELIBDIR})
+ ${PYTHON_CMD} -mcompileall ${PYTHON_SITELIBDIR}/xpcom/
post-install:
@${SETENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
diff --git a/emulators/virtualbox-ose/distinfo b/emulators/virtualbox-ose/distinfo
index d72ab50597c2..882273f7defb 100644
--- a/emulators/virtualbox-ose/distinfo
+++ b/emulators/virtualbox-ose/distinfo
@@ -1,6 +1,6 @@
-MD5 (virtualbox-3.0.51r22226.tar.bz2) = bb4bbefdc7635a339629ed2ec790d638
-SHA256 (virtualbox-3.0.51r22226.tar.bz2) = 277967c68ddde036d7a8fb47e343dee8f7389002a89c3fd282e59b351dbf7e06
-SIZE (virtualbox-3.0.51r22226.tar.bz2) = 51353921
-MD5 (VBoxGuestAdditions_3.0.4.iso) = f1347c8dd9323c3d4850462abfaafc08
-SHA256 (VBoxGuestAdditions_3.0.4.iso) = 85ea4675c8960940db05799523314c99e8538439404573d97355d1fc3284e0ba
-SIZE (VBoxGuestAdditions_3.0.4.iso) = 32380928
+MD5 (virtualbox-3.0.51r22683.tar.bz2) = d3bc041395ef61f239e2b24ce35029d5
+SHA256 (virtualbox-3.0.51r22683.tar.bz2) = 94ed1c92d9b3a635b759ee86311c4d4bca77b4409d209c14e158493ace2bc4a4
+SIZE (virtualbox-3.0.51r22683.tar.bz2) = 52073583
+MD5 (VBoxGuestAdditions_3.0.6.iso) = 8d033b4f66db1a3e5b914da1717e9c21
+SHA256 (VBoxGuestAdditions_3.0.6.iso) = d6a8b61ef1004637c8be3a70612bb0e101f552d7eb0a9a376ff1ad264baf6a3c
+SIZE (VBoxGuestAdditions_3.0.6.iso) = 32786432
diff --git a/emulators/virtualbox-ose/files/patch-Config.kmk b/emulators/virtualbox-ose/files/patch-Config.kmk
new file mode 100644
index 000000000000..2ce55eb8a12d
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-Config.kmk
@@ -0,0 +1,10 @@
+--- Config.kmk.bak 2009-09-02 18:34:01.000000000 +0200
++++ Config.kmk 2009-09-02 19:19:09.000000000 +0200
+@@ -781,6 +781,7 @@
+ VBOX_WITH_VBOXBFE=
+ VBOX_WITH_OGL=
+ VBOX_WITH_KCHMVIEWER=
++ VBOX_WITH_HGSMI=
+ endif
+
+ #
diff --git a/emulators/virtualbox-ose/files/patch-include-iprt-types.h b/emulators/virtualbox-ose/files/patch-include-iprt-types.h
deleted file mode 100644
index 35f253a391e7..000000000000
--- a/emulators/virtualbox-ose/files/patch-include-iprt-types.h
+++ /dev/null
@@ -1,14 +0,0 @@
---- include/iprt/types.h.orig 2009-07-12 21:17:13.000000000 +0200
-+++ include/iprt/types.h 2009-08-12 21:38:17.000000000 +0200
-@@ -92,6 +92,11 @@
- # undef true
- # undef bool
-
-+# elif defined(RT_OS_FREEBSD)
-+# define _UINT64_T_DECLARED
-+# define _INT64_T_DECLARED
-+# include <stddef.h>
-+# include <sys/types.h>
- # else
- # include <stddef.h>
- # include <sys/types.h>
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
deleted file mode 100644
index 670495c87b8c..000000000000
--- a/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
+++ /dev/null
@@ -1,14 +0,0 @@
---- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.old 2009-05-04 20:29:23.000000000 +0200
-+++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c 2009-05-04 20:30:28.000000000 +0200
-@@ -162,7 +162,11 @@
- if (rc)
- {
- *ppDev = make_dev(&g_VBoxGuestFreeBSDChrDevSW,
-+#if __FreeBSD_version < 800062
- unit2minor(iUnit),
-+#else
-+ iUnit,
-+#endif
- UID_ROOT,
- GID_WHEEL,
- 0644,
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
new file mode 100644
index 000000000000..f5db6a393cf7
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
@@ -0,0 +1,41 @@
+Index: src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c
+@@ -215,15 +215,23 @@ static int rtSemEventMultiWait(RTSEMEVEN
+
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_timedwait_sig(pEventMultiInt, 0);
+ else
+ rc = sleepq_timedwait(pEventMultiInt, 0);
++#else
++ if (fInterruptible)
++ rc = sleepq_timedwait_sig(pEventMultiInt);
++ else
++ rc = sleepq_timedwait(pEventMultiInt);
++#endif
+ }
+ else
+ {
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_wait_sig(pEventMultiInt, 0);
+ else
+@@ -231,6 +239,15 @@ static int rtSemEventMultiWait(RTSEMEVEN
+ rc = 0;
+ sleepq_wait(pEventMultiInt, 0);
+ }
++#else
++ if (fInterruptible)
++ rc = sleepq_wait_sig(pEventMultiInt);
++ else
++ {
++ rc = 0;
++ sleepq_wait(pEventMultiInt);
++ }
++#endif
+ }
+
+ RTSpinlockAcquire(pEventMultiInt->hSpinLock, &Tmp);
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c
new file mode 100644
index 000000000000..c7c56d5814ee
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c
@@ -0,0 +1,14 @@
+Index: src/VBox/Runtime/r0drv/freebsd/spinlock-r0drv-freebsd.c
+@@ -171,7 +171,12 @@ RTDECL(void) RTSpinlockAcquire(RTSPINLOC
+ AssertPtr(pThis);
+ Assert(pThis->u32Magic == RTSPINLOCK_MAGIC);
+ #ifdef RT_STRICT
++#if 0
++ /* This can't work because at least RTPowerNotificationRegister calls
++ * RTSpinlockAcquire with *pTmp allocated on the stack.
++ */
+ Assert(pTmp->uFlags == 0);
++#endif
+ pTmp->uFlags = 42;
+ #endif
+
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c
new file mode 100644
index 000000000000..c2cdf7963fd7
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c
@@ -0,0 +1,41 @@
+Index: src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c
+@@ -205,15 +205,23 @@ static int rtSemEventWait(RTSEMEVENT Eve
+
+ RTSpinlockRelease(pEventInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_timedwait_sig(pEventInt, 0);
+ else
+ rc = sleepq_timedwait(pEventInt, 0);
++#else
++ if (fInterruptible)
++ rc = sleepq_timedwait_sig(pEventInt);
++ else
++ rc = sleepq_timedwait(pEventInt);
++#endif
+ }
+ else
+ {
+ RTSpinlockRelease(pEventInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_wait_sig(pEventInt, 0);
+ else
+@@ -221,6 +229,15 @@ static int rtSemEventWait(RTSEMEVENT Eve
+ rc = 0;
+ sleepq_wait(pEventInt, 0);
+ }
++#else
++ if (fInterruptible)
++ rc = sleepq_wait_sig(pEventInt);
++ else
++ {
++ rc = 0;
++ sleepq_wait(pEventInt);
++ }
++#endif
+ }
+
+ RTSpinlockAcquire(pEventInt->hSpinLock, &Tmp);
diff --git a/emulators/virtualbox-ose/pkg-plist b/emulators/virtualbox-ose/pkg-plist
index 611a88294b9d..00012310ba7c 100644
--- a/emulators/virtualbox-ose/pkg-plist
+++ b/emulators/virtualbox-ose/pkg-plist
@@ -1,14 +1,14 @@
-bin/VBoxBFE
+%%X11%%bin/VBoxBFE
bin/VBoxHeadless
bin/VBoxManage
bin/VBoxNetDHCP
-bin/VBoxSDL
+%%X11%%bin/VBoxSDL
bin/VBoxSVC
-bin/VBoxTestOGL
+%%X11%%bin/VBoxTestOGL
bin/VBoxXPCOMIPCD
%%QT4%%bin/VirtualBox
-lib/virtualbox/VBoxBFE
-lib/virtualbox/VBoxBFE.so
+%%X11%%lib/virtualbox/VBoxBFE
+%%X11%%lib/virtualbox/VBoxBFE.so
lib/virtualbox/VBoxDD.so
lib/virtualbox/VBoxDD2.so
lib/virtualbox/VBoxDDU.so
@@ -19,20 +19,20 @@ lib/virtualbox/VBoxHeadless.so
lib/virtualbox/VBoxManage
lib/virtualbox/VBoxNetDHCP
lib/virtualbox/VBoxNetDHCP.so
-lib/virtualbox/VBoxOGLhostcrutil.so
-lib/virtualbox/VBoxOGLhosterrorspu.so
-lib/virtualbox/VBoxOGLrenderspu.so
+%%X11%%lib/virtualbox/VBoxOGLhostcrutil.so
+%%X11%%lib/virtualbox/VBoxOGLhosterrorspu.so
+%%X11%%lib/virtualbox/VBoxOGLrenderspu.so
lib/virtualbox/VBoxPython.so
lib/virtualbox/VBoxREM.so
-lib/virtualbox/VBoxTestOGL
+%%X11%%lib/virtualbox/VBoxTestOGL
%%I386%%lib/virtualbox/VBoxREM32.so
%%I386%%lib/virtualbox/VBoxREM64.so
lib/virtualbox/VBoxRT.so
-lib/virtualbox/VBoxSDL
-lib/virtualbox/VBoxSDL.so
+%%X11%%lib/virtualbox/VBoxSDL
+%%X11%%lib/virtualbox/VBoxSDL.so
lib/virtualbox/VBoxSVC
lib/virtualbox/VBoxSharedClipboard.so
-lib/virtualbox/VBoxSharedCrOpenGL.so
+%%X11%%lib/virtualbox/VBoxSharedCrOpenGL.so
lib/virtualbox/VBoxSharedFolders.so
lib/virtualbox/VBoxVMM.so
lib/virtualbox/VBoxXPCOM.so
@@ -47,8 +47,8 @@ lib/virtualbox/tstMicroGC.gc
lib/virtualbox/VBoxDD2R0.r0
lib/virtualbox/VBoxDDR0.r0
%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions.iso
-%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions_3.0.4.iso
-lib/virtualbox/VBoxPython2_6.so
+%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions_%%GUEST_VER%%.iso
+lib/virtualbox/VBoxPython%%PYTHON_VERU%%.so
lib/virtualbox/VMMR0.r0
lib/virtualbox/components/VirtualBox_XPCOM.xpt
lib/virtualbox/components/VBoxXPCOMIPCC.so
@@ -533,25 +533,45 @@ include/virtualbox/xpcom/nsTraceRefcnt.h
include/virtualbox/xpcom/nsWeakReference.h
include/virtualbox/xpcom/nsXPCOMGlue.h
include/virtualbox/xpcom/xpcom-config.h
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/vboxxpcom.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/components.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/file.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/nsError.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/primitives.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/xpcom_consts.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/xpt.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/client/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/enumerator.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/factory.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/loader.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/module.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/policy.py
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom/client
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox
+%%PYTHON_SITELIBDIR%%/vboxapi/__init__.py
+%%PYTHON_SITELIBDIR%%/vboxapi/__init__.pyc
+%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.py
+%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.pyc
+%%PYTHON_SITELIBDIR%%/vboxapi-1.0-py%%PYTHON_VER%%.egg-info
+%%PYTHON_SITELIBDIR%%/xpcom/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/components.py
+%%PYTHON_SITELIBDIR%%/xpcom/components.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/file.py
+%%PYTHON_SITELIBDIR%%/xpcom/file.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/nsError.py
+%%PYTHON_SITELIBDIR%%/xpcom/nsError.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/primitives.py
+%%PYTHON_SITELIBDIR%%/xpcom/primitives.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.py
+%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.py
+%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/xpt.py
+%%PYTHON_SITELIBDIR%%/xpcom/xpt.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/factory.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/factory.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/loader.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/loader.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/module.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/module.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/policy.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/policy.pyc
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom/server
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom/client
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom
+@dirrm %%PYTHON_SITELIBDIR%%/vboxapi
@dirrm include/virtualbox/xpcom
@dirrm include/virtualbox/string
@dirrm include/virtualbox/nsprpub/private
@@ -568,7 +588,7 @@ include/virtualbox/xpcom/xpcom-config.h
%%QT4%%@dirrmtry share/icons/hicolor
%%QT4%%@dirrmtry share/icons
%%QT4%%@dirrmtry share/applications
-@dirrm lib/virtualbox/nls
+%%NLS%%@dirrm lib/virtualbox/nls
@dirrm lib/virtualbox/components
@dirrm lib/virtualbox
@cwd /
diff --git a/emulators/virtualbox/Makefile b/emulators/virtualbox/Makefile
index 44e56c9856b0..47087d293298 100644
--- a/emulators/virtualbox/Makefile
+++ b/emulators/virtualbox/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= virtualbox
-DISTVERSION= 3.0.51r22226
+DISTVERSION= 3.0.51r22683
CATEGORIES= emulators kld
MASTER_SITES= http://tmp.chruetertee.ch/ \
http://freebsd.unixfreunde.de/sources/ \
@@ -29,22 +29,25 @@ LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \
curl.5:${PORTSDIR}/ftp/curl
ONLY_FOR_ARCHS= i386 amd64
-USE_XORG= xcursor xmu
USE_GNOME= libidl
-USE_SDL= sdl
USE_CDRTOOLS= yes
-USE_PYTHON= yes
USE_BZIP2= yes
+USE_PYTHON= yes
+USE_PYDISTUTILS= easy_install
+PYDISTUTILS_PKGNAME= vboxapi
+PYDISTUTILS_PKGVERSION= 1.0
+PYDISTUTILS_NOEGGINFO= yes
HAS_CONFIGURE= yes
+CONFIGURE_ARGS+=--with-gcc="${CC}" --with-g++="${CXX}"
USE_LDCONFIG= ${PREFIX}/lib/virtualbox
CONFLICTS= bcc-[0-9]*
VBOXGROUP?= vboxusers
VBOXGID?= 920
-VBOX_FRONTENDS= VBoxBFE VBoxHeadless VBoxSDL
-VBOX_GUEST_VER= 3.0.4
+VBOX_FRONTENDS= VBoxHeadless
+VBOX_GUEST_VER= 3.0.6
SUB_FILES= pkg-install
@@ -57,22 +60,37 @@ OPTIONS= QT4 "Build with QT4 Frontend" on \
GUESTADDITIONS "Build with Guest Additions" off \
DBUS "Build with D-Bus and HAL support" on \
PULSEAUDIO "Build with PulseAudio" off \
+ X11 "Build with X11 support" on \
NLS "Native language support" on
.include <bsd.port.options.mk>
+PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,} \
+ PYTHON_VER=${PYTHON_VER} \
+ PYTHON_VERU=${PYTHON_VER:S/./_/} \
+ GUEST_VER=${VBOX_GUEST_VER}
+
KMODDIR= /boot/modules
-PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,}
KMK_BUILDTYPE= release
KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys
KMK_FLAGS=
+.if !defined(WITHOUT_X11)
+USE_SDL= sdl
+USE_XORG= xcursor xmu
+VBOX_FRONTENDS+=VBoxBFE VBoxSDL VBoxTestOGL
+PLIST_SUB+= X11=""
+.else
+CONFIGURE_ARGS+=--build-headless
+PLIST_SUB+= X11="@comment "
+.endif
+
.if !defined(WITHOUT_QT4)
USE_QT_VER= 4
QT_NONSTANDARD= yes
QT_COMPONENTS= gui network moc_build uic_build rcc_build linguist
INSTALLS_ICONS= yes
-VBOX_FRONTENDS+= VirtualBox
+VBOX_FRONTENDS+=VirtualBox
PLIST_SUB+= QT4=""
.else
CONFIGURE_ARGS+=--disable-qt4
@@ -134,16 +152,15 @@ PLIST_SUB+= I386="@comment "
.include <bsd.port.pre.mk>
post-patch:
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_PRIVATE_ARCH = /usr/lib/virtualbox|VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox|'\
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_SHARED_LIBS = /usr/lib|VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_WITH_RUNPATH = /usr/lib/virtualbox|VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_PRIVATE = /usr/lib/virtualbox|VBOX_PATH_APP_PRIVATE = ${DATADIR}|' \
- ${WRKSRC}/Config.kmk
- @${REINPLACE_CMD} -e 's|#VBOX_PATH_APP_DOCS = /usr/share/doc/virtualbox|VBOX_PATH_APP_DOCS = ${DOCSDIR}|' \
- ${WRKSRC}/Config.kmk
+ @${ECHO} 'VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox' > ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk
+.if defined(WITHOUT_X11)
+ @${ECHO} 'VBOX_WITH_X11_ADDITIONS=' >> ${WRKSRC}/LocalConfig.kmk
+.endif
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/Config.kmk ${WRKSRC}/configure \
${WRKSRC}/kBuild/units/qt3.kmk ${WRKSRC}/kBuild/units/qt4.kmk \
@@ -176,7 +193,7 @@ do-install:
.endif
${MKDIR} ${PREFIX}/bin
-.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS} VBoxTestOGL
+.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS}
${INSTALL_PROGRAM} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/$f ${PREFIX}/lib/virtualbox/
${LN} -sf ${PREFIX}/lib/virtualbox/${f} ${PREFIX}/bin/
.endfor
@@ -194,8 +211,12 @@ do-install:
${LN} -sf ${PREFIX}/lib/virtualbox/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/VBoxGuestAdditions.iso
.endif
- @${MKDIR} ${PYTHONPREFIX_SITELIBDIR}/virtualbox
- (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${PYTHONPREFIX_SITELIBDIR}/virtualbox)
+ cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/installer && \
+ VBOX_INSTALL_PATH="${PREFIX}/lib/virtualbox" ${PYTHON_CMD} vboxapisetup.py install
+
+ @${MKDIR} ${PYTHON_SITELIBDIR}
+ (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${PYTHON_SITELIBDIR})
+ ${PYTHON_CMD} -mcompileall ${PYTHON_SITELIBDIR}/xpcom/
post-install:
@${SETENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
diff --git a/emulators/virtualbox/distinfo b/emulators/virtualbox/distinfo
index d72ab50597c2..882273f7defb 100644
--- a/emulators/virtualbox/distinfo
+++ b/emulators/virtualbox/distinfo
@@ -1,6 +1,6 @@
-MD5 (virtualbox-3.0.51r22226.tar.bz2) = bb4bbefdc7635a339629ed2ec790d638
-SHA256 (virtualbox-3.0.51r22226.tar.bz2) = 277967c68ddde036d7a8fb47e343dee8f7389002a89c3fd282e59b351dbf7e06
-SIZE (virtualbox-3.0.51r22226.tar.bz2) = 51353921
-MD5 (VBoxGuestAdditions_3.0.4.iso) = f1347c8dd9323c3d4850462abfaafc08
-SHA256 (VBoxGuestAdditions_3.0.4.iso) = 85ea4675c8960940db05799523314c99e8538439404573d97355d1fc3284e0ba
-SIZE (VBoxGuestAdditions_3.0.4.iso) = 32380928
+MD5 (virtualbox-3.0.51r22683.tar.bz2) = d3bc041395ef61f239e2b24ce35029d5
+SHA256 (virtualbox-3.0.51r22683.tar.bz2) = 94ed1c92d9b3a635b759ee86311c4d4bca77b4409d209c14e158493ace2bc4a4
+SIZE (virtualbox-3.0.51r22683.tar.bz2) = 52073583
+MD5 (VBoxGuestAdditions_3.0.6.iso) = 8d033b4f66db1a3e5b914da1717e9c21
+SHA256 (VBoxGuestAdditions_3.0.6.iso) = d6a8b61ef1004637c8be3a70612bb0e101f552d7eb0a9a376ff1ad264baf6a3c
+SIZE (VBoxGuestAdditions_3.0.6.iso) = 32786432
diff --git a/emulators/virtualbox/files/patch-Config.kmk b/emulators/virtualbox/files/patch-Config.kmk
new file mode 100644
index 000000000000..2ce55eb8a12d
--- /dev/null
+++ b/emulators/virtualbox/files/patch-Config.kmk
@@ -0,0 +1,10 @@
+--- Config.kmk.bak 2009-09-02 18:34:01.000000000 +0200
++++ Config.kmk 2009-09-02 19:19:09.000000000 +0200
+@@ -781,6 +781,7 @@
+ VBOX_WITH_VBOXBFE=
+ VBOX_WITH_OGL=
+ VBOX_WITH_KCHMVIEWER=
++ VBOX_WITH_HGSMI=
+ endif
+
+ #
diff --git a/emulators/virtualbox/files/patch-include-iprt-types.h b/emulators/virtualbox/files/patch-include-iprt-types.h
deleted file mode 100644
index 35f253a391e7..000000000000
--- a/emulators/virtualbox/files/patch-include-iprt-types.h
+++ /dev/null
@@ -1,14 +0,0 @@
---- include/iprt/types.h.orig 2009-07-12 21:17:13.000000000 +0200
-+++ include/iprt/types.h 2009-08-12 21:38:17.000000000 +0200
-@@ -92,6 +92,11 @@
- # undef true
- # undef bool
-
-+# elif defined(RT_OS_FREEBSD)
-+# define _UINT64_T_DECLARED
-+# define _INT64_T_DECLARED
-+# include <stddef.h>
-+# include <sys/types.h>
- # else
- # include <stddef.h>
- # include <sys/types.h>
diff --git a/emulators/virtualbox/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
deleted file mode 100644
index 670495c87b8c..000000000000
--- a/emulators/virtualbox/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
+++ /dev/null
@@ -1,14 +0,0 @@
---- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.old 2009-05-04 20:29:23.000000000 +0200
-+++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c 2009-05-04 20:30:28.000000000 +0200
-@@ -162,7 +162,11 @@
- if (rc)
- {
- *ppDev = make_dev(&g_VBoxGuestFreeBSDChrDevSW,
-+#if __FreeBSD_version < 800062
- unit2minor(iUnit),
-+#else
-+ iUnit,
-+#endif
- UID_ROOT,
- GID_WHEEL,
- 0644,
diff --git a/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c b/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
new file mode 100644
index 000000000000..f5db6a393cf7
--- /dev/null
+++ b/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
@@ -0,0 +1,41 @@
+Index: src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c
+@@ -215,15 +215,23 @@ static int rtSemEventMultiWait(RTSEMEVEN
+
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_timedwait_sig(pEventMultiInt, 0);
+ else
+ rc = sleepq_timedwait(pEventMultiInt, 0);
++#else
++ if (fInterruptible)
++ rc = sleepq_timedwait_sig(pEventMultiInt);
++ else
++ rc = sleepq_timedwait(pEventMultiInt);
++#endif
+ }
+ else
+ {
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_wait_sig(pEventMultiInt, 0);
+ else
+@@ -231,6 +239,15 @@ static int rtSemEventMultiWait(RTSEMEVEN
+ rc = 0;
+ sleepq_wait(pEventMultiInt, 0);
+ }
++#else
++ if (fInterruptible)
++ rc = sleepq_wait_sig(pEventMultiInt);
++ else
++ {
++ rc = 0;
++ sleepq_wait(pEventMultiInt);
++ }
++#endif
+ }
+
+ RTSpinlockAcquire(pEventMultiInt->hSpinLock, &Tmp);
diff --git a/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c b/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c
new file mode 100644
index 000000000000..c7c56d5814ee
--- /dev/null
+++ b/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c
@@ -0,0 +1,14 @@
+Index: src/VBox/Runtime/r0drv/freebsd/spinlock-r0drv-freebsd.c
+@@ -171,7 +171,12 @@ RTDECL(void) RTSpinlockAcquire(RTSPINLOC
+ AssertPtr(pThis);
+ Assert(pThis->u32Magic == RTSPINLOCK_MAGIC);
+ #ifdef RT_STRICT
++#if 0
++ /* This can't work because at least RTPowerNotificationRegister calls
++ * RTSpinlockAcquire with *pTmp allocated on the stack.
++ */
+ Assert(pTmp->uFlags == 0);
++#endif
+ pTmp->uFlags = 42;
+ #endif
+
diff --git a/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c b/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c
new file mode 100644
index 000000000000..c2cdf7963fd7
--- /dev/null
+++ b/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd.semevent-r0drv-freebsd.c
@@ -0,0 +1,41 @@
+Index: src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c
+@@ -205,15 +205,23 @@ static int rtSemEventWait(RTSEMEVENT Eve
+
+ RTSpinlockRelease(pEventInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_timedwait_sig(pEventInt, 0);
+ else
+ rc = sleepq_timedwait(pEventInt, 0);
++#else
++ if (fInterruptible)
++ rc = sleepq_timedwait_sig(pEventInt);
++ else
++ rc = sleepq_timedwait(pEventInt);
++#endif
+ }
+ else
+ {
+ RTSpinlockRelease(pEventInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_wait_sig(pEventInt, 0);
+ else
+@@ -221,6 +229,15 @@ static int rtSemEventWait(RTSEMEVENT Eve
+ rc = 0;
+ sleepq_wait(pEventInt, 0);
+ }
++#else
++ if (fInterruptible)
++ rc = sleepq_wait_sig(pEventInt);
++ else
++ {
++ rc = 0;
++ sleepq_wait(pEventInt);
++ }
++#endif
+ }
+
+ RTSpinlockAcquire(pEventInt->hSpinLock, &Tmp);
diff --git a/emulators/virtualbox/pkg-plist b/emulators/virtualbox/pkg-plist
index 611a88294b9d..00012310ba7c 100644
--- a/emulators/virtualbox/pkg-plist
+++ b/emulators/virtualbox/pkg-plist
@@ -1,14 +1,14 @@
-bin/VBoxBFE
+%%X11%%bin/VBoxBFE
bin/VBoxHeadless
bin/VBoxManage
bin/VBoxNetDHCP
-bin/VBoxSDL
+%%X11%%bin/VBoxSDL
bin/VBoxSVC
-bin/VBoxTestOGL
+%%X11%%bin/VBoxTestOGL
bin/VBoxXPCOMIPCD
%%QT4%%bin/VirtualBox
-lib/virtualbox/VBoxBFE
-lib/virtualbox/VBoxBFE.so
+%%X11%%lib/virtualbox/VBoxBFE
+%%X11%%lib/virtualbox/VBoxBFE.so
lib/virtualbox/VBoxDD.so
lib/virtualbox/VBoxDD2.so
lib/virtualbox/VBoxDDU.so
@@ -19,20 +19,20 @@ lib/virtualbox/VBoxHeadless.so
lib/virtualbox/VBoxManage
lib/virtualbox/VBoxNetDHCP
lib/virtualbox/VBoxNetDHCP.so
-lib/virtualbox/VBoxOGLhostcrutil.so
-lib/virtualbox/VBoxOGLhosterrorspu.so
-lib/virtualbox/VBoxOGLrenderspu.so
+%%X11%%lib/virtualbox/VBoxOGLhostcrutil.so
+%%X11%%lib/virtualbox/VBoxOGLhosterrorspu.so
+%%X11%%lib/virtualbox/VBoxOGLrenderspu.so
lib/virtualbox/VBoxPython.so
lib/virtualbox/VBoxREM.so
-lib/virtualbox/VBoxTestOGL
+%%X11%%lib/virtualbox/VBoxTestOGL
%%I386%%lib/virtualbox/VBoxREM32.so
%%I386%%lib/virtualbox/VBoxREM64.so
lib/virtualbox/VBoxRT.so
-lib/virtualbox/VBoxSDL
-lib/virtualbox/VBoxSDL.so
+%%X11%%lib/virtualbox/VBoxSDL
+%%X11%%lib/virtualbox/VBoxSDL.so
lib/virtualbox/VBoxSVC
lib/virtualbox/VBoxSharedClipboard.so
-lib/virtualbox/VBoxSharedCrOpenGL.so
+%%X11%%lib/virtualbox/VBoxSharedCrOpenGL.so
lib/virtualbox/VBoxSharedFolders.so
lib/virtualbox/VBoxVMM.so
lib/virtualbox/VBoxXPCOM.so
@@ -47,8 +47,8 @@ lib/virtualbox/tstMicroGC.gc
lib/virtualbox/VBoxDD2R0.r0
lib/virtualbox/VBoxDDR0.r0
%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions.iso
-%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions_3.0.4.iso
-lib/virtualbox/VBoxPython2_6.so
+%%GUESTADDITIONS%%lib/virtualbox/VBoxGuestAdditions_%%GUEST_VER%%.iso
+lib/virtualbox/VBoxPython%%PYTHON_VERU%%.so
lib/virtualbox/VMMR0.r0
lib/virtualbox/components/VirtualBox_XPCOM.xpt
lib/virtualbox/components/VBoxXPCOMIPCC.so
@@ -533,25 +533,45 @@ include/virtualbox/xpcom/nsTraceRefcnt.h
include/virtualbox/xpcom/nsWeakReference.h
include/virtualbox/xpcom/nsXPCOMGlue.h
include/virtualbox/xpcom/xpcom-config.h
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/vboxxpcom.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/components.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/file.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/nsError.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/primitives.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/xpcom_consts.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/xpt.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/client/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/__init__.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/enumerator.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/factory.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/loader.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/module.py
-%%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server/policy.py
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom/server
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom/client
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox/xpcom
-@dirrm %%PYTHON_SITELIBDIR%%/virtualbox
+%%PYTHON_SITELIBDIR%%/vboxapi/__init__.py
+%%PYTHON_SITELIBDIR%%/vboxapi/__init__.pyc
+%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.py
+%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.pyc
+%%PYTHON_SITELIBDIR%%/vboxapi-1.0-py%%PYTHON_VER%%.egg-info
+%%PYTHON_SITELIBDIR%%/xpcom/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/components.py
+%%PYTHON_SITELIBDIR%%/xpcom/components.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/file.py
+%%PYTHON_SITELIBDIR%%/xpcom/file.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/nsError.py
+%%PYTHON_SITELIBDIR%%/xpcom/nsError.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/primitives.py
+%%PYTHON_SITELIBDIR%%/xpcom/primitives.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.py
+%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.py
+%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/xpt.py
+%%PYTHON_SITELIBDIR%%/xpcom/xpt.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/factory.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/factory.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/loader.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/loader.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/module.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/module.pyc
+%%PYTHON_SITELIBDIR%%/xpcom/server/policy.py
+%%PYTHON_SITELIBDIR%%/xpcom/server/policy.pyc
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom/server
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom/client
+@dirrm %%PYTHON_SITELIBDIR%%/xpcom
+@dirrm %%PYTHON_SITELIBDIR%%/vboxapi
@dirrm include/virtualbox/xpcom
@dirrm include/virtualbox/string
@dirrm include/virtualbox/nsprpub/private
@@ -568,7 +588,7 @@ include/virtualbox/xpcom/xpcom-config.h
%%QT4%%@dirrmtry share/icons/hicolor
%%QT4%%@dirrmtry share/icons
%%QT4%%@dirrmtry share/applications
-@dirrm lib/virtualbox/nls
+%%NLS%%@dirrm lib/virtualbox/nls
@dirrm lib/virtualbox/components
@dirrm lib/virtualbox
@cwd /