diff options
author | beat <beat@FreeBSD.org> | 2010-01-13 16:03:17 +0800 |
---|---|---|
committer | beat <beat@FreeBSD.org> | 2010-01-13 16:03:17 +0800 |
commit | df6b4f8a6394791dac7dfb423a14e43c6684472f (patch) | |
tree | a0e7161d12255dc140ca379fef26d0ae0eadf805 /emulators | |
parent | ab9e6e0fb797430703f4aeaa7e0e5c7957f384db (diff) | |
download | freebsd-ports-gnome-df6b4f8a6394791dac7dfb423a14e43c6684472f.tar.gz freebsd-ports-gnome-df6b4f8a6394791dac7dfb423a14e43c6684472f.tar.zst freebsd-ports-gnome-df6b4f8a6394791dac7dfb423a14e43c6684472f.zip |
emulators/virtualbox:
- Remove emulators/virtualbox port. Renamed to emulators/virtualbox-ose
and seperate port for the kernel modules created:
emulators/virtualbox-ose-kmod.
emulators/virtualbox-ose:
- Update to 3.1.2
- Update guest additions to 3.1.2
- Port has been renamed to virtualbox-ose to reflect that we are using
the OSE version. [1]
- Added proper PulseAudio support for FreeBSD [2]
- procfs is not required anymore because vbox uses sysctl(3) now [3]
- Update pkg-message to reflect recent changes
- Add nox's FreeBSD host networking patches that are now also in the
upstream vbox svn (modulo vbox variable naming style adjustments:)
http://lists.freebsd.org/pipermail/freebsd-emulation/2010-January/007260.html
http://www.virtualbox.org/changeset/25698
1. Allow direct tap networking again (for users that need the best
network performance and/or need more complex network setups, like when
they want to use routing instead of bridging to e.g. protect from guests
messing with the lan's arp tables; a tap + routing + proxy arp example
is in the above freebsd-emulation posting.)
2. Enable vbox' shared mac feature when using bridged mode on a wifi
interface, together with the virtualbox-ose-kmod change this
should fix bridged mode for wifi users. [4]
emulators/virtualbox-ose-kmod:
- Update to 3.1.2
- Add rc.d script to load kernel modules
- Fix build with a non-standard location for the system source [5]
- Merge aeichner's vboxnetflt fix committed to upstream vbox svn
(thanks!) that makes the shared mac feature enabled above actually work
on FreeBSD hosts. [6]
Please see http://wiki.freebsd.org/VirtualBox for update instructions.
Many thanks to the VirtualBox developers, all tester, patch submitter and
the whole vbox@ team.
PR: ports/141630 [2]
Noticed by: mm@ [1]
Submitted by: Noriyoshi Kawano <bowie AT nrik.jp> [2],
Baptiste Daroussin <baptiste.daroussin AT gmail.com> [3]
and Bernhard Froehlich <decke AT bluelife.at> [3],
nox@ [4], scf@ [5]
Obtained from: http://www.virtualbox.org/changeset/25699 [6]
On behalf of: vbox@ (decke, dhn, itetcu, miwi, nox)
Diffstat (limited to 'emulators')
97 files changed, 1418 insertions, 6208 deletions
diff --git a/emulators/Makefile b/emulators/Makefile index 44b12161150c..27630c0b0cd4 100644 --- a/emulators/Makefile +++ b/emulators/Makefile @@ -175,7 +175,8 @@ SUBDIR += vgb-bin SUBDIR += vgba-bin SUBDIR += vice - SUBDIR += virtualbox + SUBDIR += virtualbox-ose + SUBDIR += virtualbox-ose-kmod SUBDIR += visualos SUBDIR += vmips SUBDIR += vmsbackup diff --git a/emulators/virtualbox-ose-kmod-legacy/Makefile b/emulators/virtualbox-ose-kmod-legacy/Makefile index 46617a1b64b8..a0da9cfeac2c 100644 --- a/emulators/virtualbox-ose-kmod-legacy/Makefile +++ b/emulators/virtualbox-ose-kmod-legacy/Makefile @@ -1,186 +1,83 @@ -# New ports collection makefile for: virtualbox -# Date created: 2009-05-02 +# New ports collection makefile for: virtualbox-ose-kmod +# Date created: 2009-09-21 # Whom: Bernhard Froehlich <decke@bluelife.at> # # $FreeBSD$ # -PORTNAME= virtualbox -DISTVERSION= 3.0.51r22902 -PORTREVISION= 3 +PORTNAME= virtualbox-ose +DISTVERSION= 3.1.2 CATEGORIES= emulators kld MASTER_SITES= http://tmp.chruetertee.ch/ \ http://freebsd.unixfreunde.de/sources/ \ http://disasterarea.chruetertee.ch/ \ - http://mirror.4bit.ws/ \ - http://dlc.sun.com/virtualbox/${VBOX_GUEST_VER}/:guestadditions -DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${GADISTFILES} -EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} + http://mirror.4bit.ws/ +PKGNAMESUFFIX= -kmod +DISTNAME= VirtualBox-${DISTVERSION}-OSE -#for discussion please use emulation@FreeBSD.org MAINTAINER= vbox@FreeBSD.org -COMMENT= A general-purpose full virtualizer for x86 hardware +COMMENT= VirtualBox kernel module for FreeBSD BUILD_DEPENDS= yasm:${PORTSDIR}/devel/yasm \ as86:${PORTSDIR}/devel/dev86 \ - xsltproc:${PORTSDIR}/textproc/libxslt \ kmk:${PORTSDIR}/devel/kBuild -LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \ - xslt.2:${PORTSDIR}/textproc/libxslt \ - curl.5:${PORTSDIR}/ftp/curl +WRKSRC= ${WRKDIR}/VirtualBox-${PORTVERSION}_OSE +USE_RC_SUBR= vboxnet ONLY_FOR_ARCHS= i386 amd64 -USE_GNOME= libidl -USE_CDRTOOLS= 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 +CONFIGURE_ARGS+=--with-gcc="${CC}" --with-g++="${CXX}" --nofatal \ + --disable-xpcom --disable-sdl-ttf --disable-pulse \ + --disable-alsa --disable-dbus --disable-python \ + --build-headless CONFLICTS= bcc-[0-9]* -VBOXGROUP?= vboxusers -VBOXGID?= 920 -VBOX_FRONTENDS= VBoxHeadless -VBOX_GUEST_VER= 3.0.6 - -SUB_FILES= pkg-install - -SUB_LIST= PREFIX=${PREFIX} \ - VBOXGROUP=${VBOXGROUP} \ - VBOXGID=${VBOXGID} - -OPTIONS= QT4 "Build with QT4 Frontend" on \ - DEBUG "Build with debugging symbols" off \ - 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 +OPTIONS= DEBUG "Build with debugging symbols" off .include <bsd.port.options.mk> -PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,} \ - PYTHON_VER=${PYTHON_VER} \ - PYTHON_VERU=${PYTHON_VER:S/./_/} \ - GUEST_VER=${VBOX_GUEST_VER} +PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,} KMODDIR= /boot/modules -KMK_BUILDTYPE= release -KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys -KMK_FLAGS= - -.if defined(WITHOUT_QT4) && !defined(WITHOUT_NLS) -BROKEN= NLS support requires QT4 frontend. Run 'make config' again! -.endif -.if defined(WITHOUT_X11) && !defined(WITHOUT_QT4) -BROKEN= QT4 frontend requires X11 support. Run 'make config' again! -.endif - -.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 -PLIST_SUB+= QT4="" -.else -CONFIGURE_ARGS+=--disable-qt4 -PLIST_SUB+= QT4="@comment " -.endif +VBOX_BIN= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/src -.if defined(WITH_GUESTADDITIONS) -GUESTADDITIONS= VBoxGuestAdditions_${VBOX_GUEST_VER}.iso -GADISTFILES= ${GUESTADDITIONS}:guestadditions -RESTRICTED= for personal use only -RESTRICTED_FILES= ${GUESTADDITIONS} -FETCH_ARGS= -pRr -PLIST_SUB+= GUESTADDITIONS="" -.else -PLIST_SUB+= GUESTADDITIONS="@comment " -.endif +KMK_BUILDTYPE= release +KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys +KMK_FLAGS= HostDrivers-src vboxdrv-mod VBoxNetFlt-src VBoxNetAdp-src .if defined(WITH_DEBUG) KMK_FLAGS+= BUILD_TYPE=debug KMK_BUILDTYPE= debug .endif -.if !defined(WITHOUT_DBUS) -LIB_DEPENDS+= dbus-1.3:${PORTSDIR}/devel/dbus -.else -CONFIGURE_ARGS+=--disable-dbus -.endif - -.if !defined(WITH_PULSEAUDIO) -CONFIGURE_ARGS+=--disable-pulse -.endif - -.if !defined(WITHOUT_NLS) -PLIST_SUB+= NLS="" -.else -PLIST_SUB+= NLS="@comment " -.endif - -.if !exists(${SRC_BASE}/sys/kern/bus_if.m) -IGNORE= requires kernel sources for the kernel module -.endif - .if ${OSVERSION} < 700000 BROKEN= Does not compile on FreeBSD 6.X .endif .if ${ARCH} == i386 KMK_ARCH= freebsd.x86 -PLIST_SUB+= I386="" .else KMK_ARCH= freebsd.${ARCH} -PLIST_SUB+= I386="@comment " .endif -.include <bsd.port.pre.mk> - -pre-everything:: -.if ${ARCH} == "amd64" -.if !exists(/usr/lib32) - @${ECHO} 'Requires 32-bit libraries installed under /usr/lib32.' - @${ECHO} 'Do: cd /usr/src; make build32 install32; ldconfig -v -m -R /usr/lib32' - @${FALSE} -.endif +.if !exists(${SRC_BASE}/sys/kern/bus_if.m) +IGNORE= requires kernel sources .endif +.include <bsd.port.pre.mk> + post-patch: - @${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 - @${ECHO} 'VBOX_WITH_TESTCASES=' >> ${WRKSRC}/LocalConfig.kmk -.if defined(WITHOUT_X11) - @${ECHO} 'VBOX_WITH_X11_ADDITIONS=' >> ${WRKSRC}/LocalConfig.kmk -.endif + @${ECHO} 'VBOX_WITH_VBOXDRV = 1' > ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_NETFLT = 1' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_NETADP = 1' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ - ${WRKSRC}/Config.kmk ${WRKSRC}/configure \ - ${WRKSRC}/kBuild/units/qt3.kmk ${WRKSRC}/kBuild/units/qt4.kmk \ - ${WRKSRC}/kBuild/sdks/LIBSDL.kmk \ - ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py + ${WRKSRC}/Config.kmk \ + ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|\$$KBUILDDIR_BIN/kmk_sed|${PREFIX}/bin/kmk_sed|g' ${WRKSRC}/configure pre-build: @@ -188,72 +85,13 @@ pre-build: ${WRKSRC}/env.sh do-build: - cd ${WRKSRC} && ${SH} env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS} + cd ${WRKSRC} && ${SH} env.sh && cd ${WRKSRC}/src/VBox/HostDrivers && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS} + cd ${VBOX_BIN} && make do-install: ${MKDIR} ${KMODDIR} -.for f in vboxdrv.ko vboxnetadp.ko vboxnetflt.ko - ${INSTALL_KLD} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/${f} ${KMODDIR} -.endfor - - ${MKDIR} ${DATADIR} - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom && ${COPYTREE_SHARE} "idl samples" ${DATADIR}) - - ${MKDIR} ${PREFIX}/include/virtualbox - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/include && ${COPYTREE_SHARE} "*" ${PREFIX}/include/virtualbox) - - ${MKDIR} ${PREFIX}/lib/virtualbox - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin && ${COPYTREE_SHARE} "*.so *.gc *.r0 components" ${PREFIX}/lib/virtualbox) - -.if !defined(WITHOUT_NLS) - ${MKDIR} ${DATADIR}/nls - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/obj/VirtualBox/qtnls && ${COPYTREE_SHARE} "*.qm" ${DATADIR}/nls) -.endif - - ${MKDIR} ${PREFIX}/bin -.for f in VBoxManage VBoxNetAdpCtl 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 - -.for f in VBoxNetAdpCtl VBoxNetDHCP ${VBOX_FRONTENDS} - ${CHMOD} 4511 ${PREFIX}/lib/virtualbox/${f} -.endfor - -.for f in VBoxManage VBoxSVC VBoxXPCOMIPCD - ${CHMOD} 0711 ${PREFIX}/lib/virtualbox/${f} -.endfor - -.if defined(WITH_GUESTADDITIONS) - ${MKDIR} ${PREFIX}/lib/virtualbox/additions - ${INSTALL_DATA} ${DISTDIR}/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/additions/ - ${LN} -sf ${PREFIX}/lib/virtualbox/additions/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/additions/VBoxGuestAdditions.iso -.endif - - 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 - -.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS} - ${CHOWN} root:${VBOXGROUP} ${PREFIX}/lib/virtualbox/${f} -.endfor - - @${FIND} ${DATADIR} -type d -print0 | ${XARGS} -0 ${CHMOD} 755 - @${FIND} ${PREFIX}/include/virtualbox -type d -print0 | ${XARGS} -0 ${CHMOD} 755 - @${FIND} ${PREFIX}/lib/virtualbox -type d -print0 | ${XARGS} -0 ${CHMOD} 755 - -.if !defined(WITHOUT_QT4) - ${MKDIR} ${PREFIX}/share/icons/hicolor/48x48/apps/ - ${INSTALL_DATA} ${WRKSRC}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_48px.png ${PREFIX}/share/icons/hicolor/48x48/apps/VBox.png - ${MKDIR} ${PREFIX}/share/applications/ - ${INSTALL_DATA} ${WRKSRC}/src/VBox/Installer/solaris/virtualbox.desktop ${PREFIX}/share/applications/virtualbox.desktop -.endif - @${CAT} ${PKGMESSAGE} + ${INSTALL_KLD} ${VBOX_BIN}/vboxdrv/vboxdrv.ko ${KMODDIR} + ${INSTALL_KLD} ${VBOX_BIN}/vboxnetadp/vboxnetadp.ko ${KMODDIR} + ${INSTALL_KLD} ${VBOX_BIN}/vboxnetflt/vboxnetflt.ko ${KMODDIR} .include <bsd.port.post.mk> diff --git a/emulators/virtualbox-ose-kmod-legacy/distinfo b/emulators/virtualbox-ose-kmod-legacy/distinfo index 492de57d1c4a..af7117996821 100644 --- a/emulators/virtualbox-ose-kmod-legacy/distinfo +++ b/emulators/virtualbox-ose-kmod-legacy/distinfo @@ -1,6 +1,3 @@ -MD5 (virtualbox-3.0.51r22902.tar.bz2) = c2fbfd0eca2d2c9e6ad5f029cf75def0 -SHA256 (virtualbox-3.0.51r22902.tar.bz2) = ccbc88276f9e1944005d1c2f3661ec6d7113b22801ecbbb72d422aa0ab2b0a2a -SIZE (virtualbox-3.0.51r22902.tar.bz2) = 51742256 -MD5 (VBoxGuestAdditions_3.0.6.iso) = 8d033b4f66db1a3e5b914da1717e9c21 -SHA256 (VBoxGuestAdditions_3.0.6.iso) = d6a8b61ef1004637c8be3a70612bb0e101f552d7eb0a9a376ff1ad264baf6a3c -SIZE (VBoxGuestAdditions_3.0.6.iso) = 32786432 +MD5 (VirtualBox-3.1.2-OSE.tar.bz2) = e7808f16114f5b1a65aa2df1aa33e1a7 +SHA256 (VirtualBox-3.1.2-OSE.tar.bz2) = 293f582e37eda29efdb53c6468481b446e1964592f5728656b74664f4d32f2b1 +SIZE (VirtualBox-3.1.2-OSE.tar.bz2) = 55553394 diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-Config.kmk b/emulators/virtualbox-ose-kmod-legacy/files/patch-Config.kmk deleted file mode 100644 index 2ce55eb8a12d..000000000000 --- a/emulators/virtualbox-ose-kmod-legacy/files/patch-Config.kmk +++ /dev/null @@ -1,10 +0,0 @@ ---- 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-configure b/emulators/virtualbox-ose-kmod-legacy/files/patch-configure deleted file mode 100644 index c6532c3db606..000000000000 --- a/emulators/virtualbox-ose-kmod-legacy/files/patch-configure +++ /dev/null @@ -1,20 +0,0 @@ ---- configure.orgi 2009-05-31 13:43:50.000000000 +0200 -+++ configure 2009-05-31 13:45:47.000000000 +0200 -@@ -102,7 +102,7 @@ - XSLTPROC="xsltproc" - GENISOIMAGE="genisoimage" - MKISOFS="mkisofs" --LIBCRYPTO="-lcrypto" -+LIBCRYPTO="-lcrypto -lssl" - LIBPTHREAD="-lpthread" - LIBCAP="-lcap" - GSOAP="" -@@ -1698,7 +1698,7 @@ - cat $ODIR.tmp_src.cc >> $LOG - echo "using the following command line:" >> $LOG - echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so" >> $LOG -- $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so >> $LOG 2>&1 -+ $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so -pthread >> $LOG 2>&1 - if [ $? -eq 0 ]; then - found=1 - break diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Devices-Makefile.kmk b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Devices-Makefile.kmk deleted file mode 100644 index d404c8aee176..000000000000 --- a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Devices-Makefile.kmk +++ /dev/null @@ -1,15 +0,0 @@ ---- src/VBox/Devices/Makefile.kmk.orig 2009-11-01 22:50:39.000000000 +0100 -+++ src/VBox/Devices/Makefile.kmk 2009-11-01 22:50:52.000000000 +0100 -@@ -31,8 +31,10 @@ - include $(PATH_SUB_CURRENT)/PC/VMI/Makefile.kmk - endif - include $(PATH_SUB_CURRENT)/Graphics/BIOS/Makefile.kmk --include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk --include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk -+ifdef VBOX_WITH_TESTCASES -+ include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk -+ include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk -+endif - ifndef VBOX_OSE - include $(PATH_SUB_CURRENT)/Storage/VBoxHDDFormats/Makefile.kmk - endif diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Frontends-VBoxManage-VBoxInternalManage.cpp b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Frontends-VBoxManage-VBoxInternalManage.cpp deleted file mode 100644 index 0a1f735fb79a..000000000000 --- a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Frontends-VBoxManage-VBoxInternalManage.cpp +++ /dev/null @@ -1,50 +0,0 @@ -Index: src/VBox/Frontends/VBoxManage/VBoxInternalManage.cpp -@@ -54,7 +54,8 @@ - #ifdef RT_OS_WINDOWS - # include <windows.h> - # include <winioctl.h> --#elif defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) || defined(RT_OS_SOLARIS) -+#elif defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) \ -+ || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD) - # include <errno.h> - # include <sys/ioctl.h> - # include <sys/types.h> -@@ -76,6 +77,9 @@ - # include <sys/dkio.h> - # include <sys/vtoc.h> - #endif /* RT_OS_SOLARIS */ -+#ifdef RT_OS_FREEBSD -+# include <sys/disk.h> -+#endif /* RT_OS_FREEBSD */ - - using namespace com; - -@@ -1013,6 +1017,28 @@ - vrc = VERR_INVALID_PARAMETER; - goto out; - } -+#elif defined(RT_OS_FREEBSD) -+ struct stat DevStat; -+ if (!fstat(RawFile, &DevStat) && S_ISCHR(DevStat.st_mode)) -+ { -+ off_t cMediasize = 0; -+ if (!ioctl(RawFile, DIOCGMEDIASIZE, &cMediasize)) -+ { -+ cbSize = cMediasize; -+ } -+ else -+ { -+ vrc = RTErrConvertFromErrno(errno); -+ RTPrintf("Cannot get the block count for file '%s': %Rrc", rawdisk.raw(), vrc); -+ goto out; -+ } -+ } -+ else -+ { -+ RTPrintf("File '%s' is no character device\n", rawdisk.raw()); -+ vrc = VERR_INVALID_PARAMETER; -+ goto out; -+ } - #else /* all unrecognized OSes */ - /* Hopefully this works on all other hosts. If it doesn't, it'll just fail - * creating the VMDK, so no real harm done. */ diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h deleted file mode 100644 index 250a1960a7f4..000000000000 --- a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h +++ /dev/null @@ -1,28 +0,0 @@ -Index: src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h -=================================================================== ---- src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h (revision 23391) -+++ src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h (working copy) -@@ -206,6 +206,14 @@ - hook_p output; - /** Original interface flags */ - unsigned int flags; -+ /** Input queue */ -+ struct ifqueue inq; -+ /** Output queue */ -+ struct ifqueue outq; -+ /** Input task */ -+ struct task tskin; -+ /** Output task */ -+ struct task tskout; - /** The MAC address of the interface. */ - RTMAC Mac; - /** @} */ -@@ -241,6 +249,8 @@ - # endif - #elif defined(RT_OS_LINUX) - uint8_t abPadding[320]; -+#elif defined(RT_OS_FREEBSD) -+ uint8_t abPadding[320]; - #else - uint8_t abPadding[128]; - #endif diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c index f23fedbf0ec0..ac0ba0eee28c 100644 --- a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c +++ b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c @@ -2,35 +2,6 @@ Index: src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c =================================================================== --- src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c (revision 23391) +++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c (working copy) -@@ -43,6 +43,8 @@ - #include <sys/socket.h> - #include <sys/sockio.h> - #include <sys/syscallsubr.h> -+#include <sys/queue.h> -+#include <sys/taskqueue.h> - - #include <net/if.h> - #include <net/if_var.h> -@@ -78,8 +80,6 @@ - static ng_rcvdata_t ng_vboxnetflt_rcvdata; - static ng_disconnect_t ng_vboxnetflt_disconnect; - static int ng_vboxnetflt_mod_event(module_t mod, int event, void *data); --static int ng_vboxnetflt_rcv_in(hook_p node, item_p item); --static int ng_vboxnetflt_rcv_out(hook_p node, item_p item); - - /** Netgraph node type */ - #define NG_VBOXNETFLT_NODE_TYPE "vboxnetflt" -@@ -112,8 +112,8 @@ - { - .version = NG_ABI_VERSION, - .name = NG_VBOXNETFLT_NODE_TYPE, -- .mod_event = vboxnetflt_modevent, -- .constructor = ng_vboxnetflt_constructor, -+ .mod_event = vboxnetflt_modevent, -+ .constructor = ng_vboxnetflt_constructor, - .rcvmsg = ng_vboxnetflt_rcvmsg, - .shutdown = ng_vboxnetflt_shutdown, - .newhook = ng_vboxnetflt_newhook, @@ -122,7 +122,7 @@ .cmdlist = ng_vboxnetflt_cmdlist, }; @@ -40,345 +11,12 @@ Index: src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c MODULE_DEPEND(ng_vboxnetflt, vboxdrv, 1, 1, 1); /** -@@ -267,16 +267,12 @@ - if (strcmp(name, NG_VBOXNETFLT_HOOK_IN) == 0) - { - #if __FreeBSD_version >= 800000 -- NG_HOOK_SET_RCVDATA(hook, ng_vboxnetflt_rcv_in); - NG_HOOK_SET_TO_INBOUND(hook); - #endif - pThis->u.s.input = hook; - } - else if (strcmp(name, NG_VBOXNETFLT_HOOK_OUT) == 0) - { --#if __FreeBSD_version >= 800000 -- NG_HOOK_SET_RCVDATA(hook, ng_vboxnetflt_rcv_out); --#endif - pThis->u.s.output = hook; - } - else -@@ -310,161 +306,171 @@ - - /** - * Handle data on netgraph hooks. -+ * Frames processing is deferred to a taskqueue because this might -+ * be called with non-sleepable locks held and code paths inside -+ * the virtual switch might sleep. - */ - static int ng_vboxnetflt_rcvdata(hook_p hook, item_p item) - { - const node_p node = NG_HOOK_NODE(hook); - PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -+ struct ifnet *ifp = pThis->u.s.ifp; - struct mbuf *m; -+ struct m_tag *mtag; -+ bool fActive; - -+ fActive = ASMAtomicUoReadBool(&pThis->fActive); -+ -+ NGI_GET_M(item, m); -+ NG_FREE_ITEM(item); -+ -+ /* Locate tag to see if processing should be skipped for this frame */ -+ mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -+ if (mtag != NULL) -+ { -+ m_tag_unlink(m, mtag); -+ m_tag_free(mtag); -+ } -+ -+ /* -+ * Handle incoming hook. This is connected to the -+ * input path of the interface, thus handling incoming frames. -+ */ - if (pThis->u.s.input == hook) -- return ng_vboxnetflt_rcv_in(hook, item); -+ { -+ if (mtag != NULL || !fActive) -+ { -+ ether_demux(ifp, m); -+ return (0); -+ } -+ mtx_lock_spin(&pThis->u.s.inq.ifq_mtx); -+ _IF_ENQUEUE(&pThis->u.s.inq, m); -+ mtx_unlock_spin(&pThis->u.s.inq.ifq_mtx); -+ taskqueue_enqueue_fast(taskqueue_fast, &pThis->u.s.tskin); -+ } -+ /** -+ * Handle mbufs on the outgoing hook, frames going to the interface -+ */ - else if (pThis->u.s.output == hook) -- return ng_vboxnetflt_rcv_out(hook, item); -+ { -+ if (mtag != NULL || !fActive) -+ return ether_output_frame(ifp, m); -+ mtx_lock_spin(&pThis->u.s.outq.ifq_mtx); -+ _IF_ENQUEUE(&pThis->u.s.outq, m); -+ mtx_unlock_spin(&pThis->u.s.outq.ifq_mtx); -+ taskqueue_enqueue_fast(taskqueue_fast, &pThis->u.s.tskout); -+ } - else - { -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -+ m_freem(m); - } - return (0); - } - -+static int ng_vboxnetflt_shutdown(node_p node) -+{ -+ PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -+ bool fActive; -+ -+ /* Prevent node shutdown if we're active */ -+ fActive = ASMAtomicUoReadBool(&pThis->fActive); -+ if (fActive) -+ return (EBUSY); -+ NG_NODE_UNREF(node); -+ return (0); -+} -+ -+static int ng_vboxnetflt_disconnect(hook_p hook) -+{ -+ return (0); -+} -+ - /** -- * Handle incoming hook. This is connected to the -- * input path of the interface, thus handling incoming frames. -+ * Input processing task, handles incoming frames - */ --static int ng_vboxnetflt_rcv_in(hook_p hook, item_p item) -+static void vboxNetFltFreeBSDinput(void *arg, int pending) - { -+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; - struct mbuf *m, *m0; -- struct m_tag *mtag; -- const node_p node = NG_HOOK_NODE(hook); -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); - struct ifnet *ifp = pThis->u.s.ifp; -- bool fActive, fDropIt = false; - unsigned int cSegs = 0; -+ bool fDropIt = false, fActive; - PINTNETSG pSG; - -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -- -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (!fActive) -- goto out; -- -- mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -- if (mtag != NULL) -- { -- m_tag_unlink(m, mtag); -- m_tag_free(mtag); -- goto out; -- } - vboxNetFltRetain(pThis, true /* fBusy */); -- -- for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ for (;;) - { -- if (m0->m_len > 0) -- cSegs++; -- } -+ mtx_lock_spin(&pThis->u.s.inq.ifq_mtx); -+ _IF_DEQUEUE(&pThis->u.s.inq, m); -+ mtx_unlock_spin(&pThis->u.s.inq.ifq_mtx); -+ if (m == NULL) -+ break; - -+ for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ if (m0->m_len > 0) -+ cSegs++; -+ - #ifdef PADD_RUNT_FRAMES_FROM_HOST -- if (m_length(m, NULL) < 60) -- cSegs++; -+ if (m_length(m, NULL) < 60) -+ cSegs++; - #endif - -- /* Create a copy of the mbuf and hand it to the virtual switch */ -- pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -- vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_WIRE); -- RTMemTmpFree(pSG); -+ /* Create a copy and deliver to the virtual switch */ -+ pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -+ vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -+ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -+ RTMemTmpFree(pSG); -+ if (fDropIt) -+ m_freem(m); -+ else -+ ether_demux(ifp, m); -+ } - vboxNetFltRelease(pThis, true /* fBusy */); -- --out: -- /* Only deliver it to the host stack if the destination weren't a guest */ -- if (fDropIt) -- { -- m_freem(m); -- return (0); -- } -- ether_demux(ifp, m); -- return (0); - } - - /** -- * Handle mbufs on the outgoing hook, frames going to the interface -+ * Output processing task, handles outgoing frames - */ --static int ng_vboxnetflt_rcv_out(hook_p hook, item_p item) -+static void vboxNetFltFreeBSDoutput(void *arg, int pending) - { -+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; - struct mbuf *m, *m0; -- struct m_tag *mtag; -- const node_p node = NG_HOOK_NODE(hook); -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); - struct ifnet *ifp = pThis->u.s.ifp; - unsigned int cSegs = 0; - bool fDropIt = false, fActive; - PINTNETSG pSG; - -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -- -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (!fActive) -- return ether_output_frame(ifp, m); -- - vboxNetFltRetain(pThis, true /* fBusy */); -- /* Pass directly to interface if the packet originated from us */ -- mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -- if (mtag != NULL) -+ for (;;) - { -- m_tag_unlink(m, mtag); -- m_tag_free(mtag); -- goto out; -- } -+ mtx_lock_spin(&pThis->u.s.outq.ifq_mtx); -+ _IF_DEQUEUE(&pThis->u.s.outq, m); -+ mtx_unlock_spin(&pThis->u.s.outq.ifq_mtx); -+ if (m == NULL) -+ break; - -- for (m0 = m; m0 != NULL; m0 = m0->m_next) -- { -- if (m0->m_len > 0) -- cSegs++; -- } -+ for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ if (m0->m_len > 0) -+ cSegs++; - - #ifdef PADD_RUNT_FRAMES_FROM_HOST -- if (m_length(m, NULL) < 60) -- cSegs++; -+ if (m_length(m, NULL) < 60) -+ cSegs++; - #endif -- /* Create a copy and deliver to the virtual switch */ -- pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -- vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -- RTMemTmpFree(pSG); -+ /* Create a copy and deliver to the virtual switch */ -+ pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -+ vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -+ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -+ RTMemTmpFree(pSG); - --out: -+ if (fDropIt) -+ m_freem(m); -+ else -+ ether_output_frame(ifp, m); -+ } - vboxNetFltRelease(pThis, true /* fBusy */); -- if (fDropIt) -- { -- m_freem(m); -- return (0); -- } -- -- return ether_output_frame(ifp, m); - } - --static int ng_vboxnetflt_shutdown(node_p node) --{ -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -- bool fActive; -- -- /* Prevent node shutdown if we're active */ -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (fActive) -- return (EBUSY); -- NG_NODE_UNREF(node); -- return (0); --} -- --static int ng_vboxnetflt_disconnect(hook_p hook) --{ -- return (0); --} -- - /** - * Called to deliver a frame to either the host, the wire or both. - */ -@@ -536,13 +542,23 @@ - - /* Create a new netgraph node for this instance */ - if (ng_make_node_common(&ng_vboxnetflt_typestruct, &node) != 0) -- return VERR_INTERNAL_ERROR; -+ return VERR_INTERNAL_ERROR; - - RTSpinlockAcquire(pThis->hSpinlock, &Tmp); - ASMAtomicUoWritePtr((void * volatile *)&pThis->u.s.ifp, ifp); - pThis->u.s.node = node; - bcopy(IF_LLADDR(ifp), &pThis->u.s.Mac, ETHER_ADDR_LEN); - ASMAtomicUoWriteBool(&pThis->fDisconnectedFromHost, false); -+ /* Initialize deferred input queue */ -+ bzero(&pThis->u.s.inq, sizeof(struct ifqueue)); -+ mtx_init(&pThis->u.s.inq.ifq_mtx, "vboxnetflt inq", NULL, MTX_SPIN); -+ TASK_INIT(&pThis->u.s.tskin, 0, vboxNetFltFreeBSDinput, pThis); -+ -+ /* Initialize deferred output queue */ -+ bzero(&pThis->u.s.outq, sizeof(struct ifqueue)); -+ mtx_init(&pThis->u.s.outq.ifq_mtx, "vboxnetflt outq", NULL, MTX_SPIN); -+ TASK_INIT(&pThis->u.s.tskout, 0, vboxNetFltFreeBSDoutput, pThis); -+ - RTSpinlockRelease(pThis->hSpinlock, &Tmp); - - NG_NODE_SET_PRIVATE(node, pThis); -@@ -571,7 +587,10 @@ - } - - if (ifp0 != NULL) -+ { -+ vboxNetFltOsDeleteInstance(pThis); - vboxNetFltOsInitInstance(pThis, NULL); -+ } - - return !ASMAtomicUoReadBool(&pThis->fDisconnectedFromHost); - } -@@ -579,6 +598,12 @@ - void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis) - { - -+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskin); -+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskout); -+ -+ mtx_destroy(&pThis->u.s.inq.ifq_mtx); -+ mtx_destroy(&pThis->u.s.outq.ifq_mtx); -+ - if (pThis->u.s.node != NULL) - ng_rmnode_self(pThis->u.s.node); - pThis->u.s.node = NULL; +@@ -418,7 +418,7 @@ + /* Create a copy and deliver to the virtual switch */ + pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); + vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); +- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); ++ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_WIRE); + RTMemTmpFree(pSG); + if (fDropIt) + m_freem(m); diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h deleted file mode 100644 index 4332049487c3..000000000000 --- a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h +++ /dev/null @@ -1,11 +0,0 @@ ---- src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h.orig 2009-09-11 14:48:47.000000000 +0200 -+++ src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h 2009-09-11 14:48:54.000000000 +0200 -@@ -76,7 +76,7 @@ - # define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt, 0) - # define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt, 0) - # define SLEEPQ_WAIT_SIG(EventInt) sleepq_wait_sig(EventInt, 0) --#elif -+#else - # define SLEEPQ_TIMEDWAIT(EventInt) sleepq_timedwait(EventInt) - # define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt) - # define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt) diff --git a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp b/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp deleted file mode 100644 index 955bf7a3a151..000000000000 --- a/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp +++ /dev/null @@ -1,207 +0,0 @@ ---- src/apps/adpctl/VBoxNetAdpCtl.cpp.r22902 2009-04-10 14:03:59.000000000 +0200 -+++ src/apps/adpctl/VBoxNetAdpCtl.cpp 2009-09-16 14:07:11.000000000 +0200 -@@ -1,4 +1,4 @@ --/* $Id: VBoxNetAdpCtl.cpp 18864 2009-04-10 12:03:59Z vboxsync $ */ -+/* $Id: VBoxNetAdpCtl.cpp 23064 2009-09-16 12:07:11Z vboxsync $ */ - /** @file - * Apps - VBoxAdpCtl, Configuration tool for vboxnetX adapters. - */ -@@ -24,7 +24,6 @@ - /******************************************************************************* - * Header Files * - *******************************************************************************/ --#include <assert.h> - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -@@ -36,11 +35,12 @@ - # include <sys/ioccom.h> - #endif - --/* @todo Error codes must be moved to some header file */ --#define ADPCTLERR_NO_CTL_DEV 3 --#define ADPCTLERR_IOCTL_FAILED 4 -+/** @todo Error codes must be moved to some header file */ -+#define ADPCTLERR_BAD_NAME 2 -+#define ADPCTLERR_NO_CTL_DEV 3 -+#define ADPCTLERR_IOCTL_FAILED 4 - --/* @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */ -+/** @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */ - #define VBOXNETADP_CTL_DEV_NAME "/dev/vboxnetctl" - #define VBOXNETADP_NAME "vboxnet" - #define VBOXNETADP_MAX_NAME_LEN 32 -@@ -85,6 +85,7 @@ - pcszArg5, /* [network mask] */ - NULL /* terminator */ - }; -+ char * const envp[] = { (char*)"LC_ALL=C", NULL }; - int rc = EXIT_SUCCESS; - pid_t childPid = fork(); - switch (childPid) -@@ -94,7 +95,7 @@ - rc = EXIT_FAILURE; - break; - case 0: /* Child process. */ -- if (execv(VBOXADPCTL_IFCONFIG_PATH, (char * const*)argv) == -1) -+ if (execve(VBOXADPCTL_IFCONFIG_PATH, (char * const*)argv, envp) == -1) - rc = EXIT_FAILURE; - break; - default: /* Parent process. */ -@@ -108,15 +109,39 @@ - #define MAX_ADDRESSES 128 - #define MAX_ADDRLEN 64 - --static bool removeAddresses(const char *pszAdapterName) -+static bool removeAddresses(char *pszAdapterName) - { -- char szCmd[1024], szBuf[1024]; -+ char szBuf[1024]; - char aszAddresses[MAX_ADDRESSES][MAX_ADDRLEN]; -+ int rc; -+ int fds[2]; -+ char * const argv[] = { VBOXADPCTL_IFCONFIG_PATH, pszAdapterName, NULL }; -+ char * const envp[] = { (char*)"LC_ALL=C", NULL }; - - memset(aszAddresses, 0, sizeof(aszAddresses)); -- snprintf(szCmd, sizeof(szCmd), VBOXADPCTL_IFCONFIG_PATH " %s", pszAdapterName); -- FILE *fp = popen(szCmd, "r"); - -+ rc = pipe(fds); -+ if (rc < 0) -+ return false; -+ -+ pid_t pid = fork(); -+ if (pid < 0) -+ return false; -+ -+ if (pid == 0) -+ { -+ /* child */ -+ close(fds[0]); -+ close(STDOUT_FILENO); -+ rc = dup2(fds[1], STDOUT_FILENO); -+ if (rc >= 0) -+ execve(VBOXADPCTL_IFCONFIG_PATH, argv, envp); -+ return false; -+ } -+ -+ /* parent */ -+ close(fds[1]); -+ FILE *fp = fdopen(fds[0], "r"); - if (!fp) - return false; - -@@ -124,9 +149,6 @@ - for (cAddrs = 0; cAddrs < MAX_ADDRESSES && fgets(szBuf, sizeof(szBuf), fp);) - { - int cbSkipWS = strspn(szBuf, " \t"); --#if 0 /* Don't use this! assert() breaks the mac build. Use IPRT or be a rectangular building thing. */ -- assert(cbSkipWS < 20); --#endif - char *pszWord = strtok(szBuf + cbSkipWS, " "); - /* We are concerned with IPv6 address lines only. */ - if (!pszWord || strcmp(pszWord, "inet6")) -@@ -143,11 +165,12 @@ - continue; - strncpy(aszAddresses[cAddrs++], pszWord, MAX_ADDRLEN-1); - } -- pclose(fp); -+ fclose(fp); - - for (int i = 0; i < cAddrs; i++) - { -- if (executeIfconfig(pszAdapterName, "inet6", VBOXADPCTL_DEL_CMD, aszAddresses[i]) != EXIT_SUCCESS) -+ if (executeIfconfig(pszAdapterName, "inet6", -+ VBOXADPCTL_DEL_CMD, aszAddresses[i]) != EXIT_SUCCESS) - return false; - } - -@@ -166,19 +189,41 @@ - int rc = ioctl(fd, uCmd, pData); - if (rc == -1) - { -- perror("VBoxNetAdpCtl: ioctl failed for " VBOXNETADP_CTL_DEV_NAME); -+ perror("VBoxNetAdpCtl: ioctl failed for " VBOXNETADP_CTL_DEV_NAME); - rc = ADPCTLERR_IOCTL_FAILED; - } -- -+ - close(fd); -- -+ - return rc; - } - -+int checkAdapterName(const char *pcszNameIn, char *pszNameOut) -+{ -+ int iAdapterIndex = -1; -+ -+ if ( strlen(pcszNameIn) >= VBOXNETADP_MAX_NAME_LEN -+ || sscanf(pcszNameIn, "vboxnet%d", &iAdapterIndex) != 1 -+ || iAdapterIndex < 0 || iAdapterIndex > 99 ) -+ { -+ fprintf(stderr, "Setting configuration for %s is not supported.\n", pcszNameIn); -+ return ADPCTLERR_BAD_NAME; -+ } -+ sprintf(pszNameOut, "vboxnet%d", iAdapterIndex); -+ if (strcmp(pszNameOut, pcszNameIn)) -+ { -+ fprintf(stderr, "Invalid adapter name %s.\n", pcszNameIn); -+ return ADPCTLERR_BAD_NAME; -+ } -+ -+ return 0; -+} -+ - int main(int argc, char *argv[]) - - { -- const char *pszAdapterName; -+ char szAdapterName[VBOXNETADP_MAX_NAME_LEN]; -+ char *pszAdapterName; - const char *pszAddress; - const char *pszNetworkMask = NULL; - const char *pszOption = NULL; -@@ -216,13 +261,18 @@ - pszAddress = argv[2]; - if (strcmp("remove", pszAddress) == 0) - { -- strncpy(Req.szName, pszAdapterName, sizeof(Req.szName)); -+ rc = checkAdapterName(pszAdapterName, szAdapterName); -+ if (rc) -+ return rc; -+ memset(&Req, '\0', sizeof(Req)); -+ snprintf(Req.szName, sizeof(Req.szName), "%s", szAdapterName); - return doIOCtl(VBOXNETADP_CTL_REMOVE, &Req); - } - break; - case 2: - if (strcmp("add", argv[1]) == 0) - { -+ memset(&Req, '\0', sizeof(Req)); - rc = doIOCtl(VBOXNETADP_CTL_ADD, &Req); - if (rc == 0) - puts(Req.szName); -@@ -237,11 +287,11 @@ - return 1; - } - -- if (strncmp("vboxnet", pszAdapterName, 7)) -- { -- fprintf(stderr, "Setting configuration for %s is not supported.\n", pszAdapterName); -- return 2; -- } -+ rc = checkAdapterName(pszAdapterName, szAdapterName); -+ if (rc) -+ return rc; -+ -+ pszAdapterName = szAdapterName; - - if (fRemove) - { -@@ -276,3 +326,4 @@ - } - return rc; - } -+ diff --git a/emulators/virtualbox-ose-kmod-legacy/files/pkg-install.in b/emulators/virtualbox-ose-kmod-legacy/files/pkg-install.in deleted file mode 100644 index 5d5268d8e8ce..000000000000 --- a/emulators/virtualbox-ose-kmod-legacy/files/pkg-install.in +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -case $2 in -POST-INSTALL) - GROUP=%%VBOXGROUP%% - GID=%%VBOXGID%% - PW=/usr/sbin/pw - - if ${PW} group show "${GROUP}" 2>/dev/null; then - echo "You already have a group \"${GROUP}\", so I will use it." - else - if ${PW} groupadd ${GROUP} -g ${GID}; then - echo "Added group \"${GROUP}\"." - else - echo "Adding group \"${GROUP}\" failed..." - exit 1 - fi - fi - - exit 0 - ;; -esac diff --git a/emulators/virtualbox-ose-kmod-legacy/files/vboxnet.in b/emulators/virtualbox-ose-kmod-legacy/files/vboxnet.in new file mode 100644 index 000000000000..69cb0e402521 --- /dev/null +++ b/emulators/virtualbox-ose-kmod-legacy/files/vboxnet.in @@ -0,0 +1,71 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: vboxnet +# REQUIRE: FILESYSTEMS +# BEFORE: netif +# KEYWORD: nojail + +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# vboxnet_enable (bool): Set to NO by default. +# Set it to YES to load network related kernel modules on startup + +. %%RC_SUBR%% + +name="vboxnet" +rcvar=${name}_enable +start_cmd="vboxnet_start" +stop_cmd="vboxnet_stop" + +vboxnet_start() +{ + if ! kldstat -q -m ng_vboxnetflt; + then + if ! kldload vboxnetflt > /dev/null 2>&1; + then + warn "Can't load vboxnetflt module." + return 1 + fi + fi + + if ! kldstat -q -m vboxnetadp; + then + if ! kldload vboxnetadp > /dev/null 2>&1; + then + warn "Can't load vboxnetadp module." + return 1 + fi + fi +} + +vboxnet_stop() +{ + if kldstat -q -m vboxnetadp; + then + if ! kldunload vboxnetadp > /dev/null 2>&1; + then + warn "Can't unload vboxnetadp module." + return 1 + fi + fi + + if kldstat -q -m ng_vboxnetflt; + then + if ! kldunload vboxnetflt > /dev/null 2>&1; + then + warn "Can't unload vboxnetflt module." + return 1 + fi + fi +} + +load_rc_config $name + +: ${vboxnet_enable="NO"} + +run_rc_command "$1" diff --git a/emulators/virtualbox-ose-kmod-legacy/pkg-message b/emulators/virtualbox-ose-kmod-legacy/pkg-message deleted file mode 100644 index 91b8b16427cd..000000000000 --- a/emulators/virtualbox-ose-kmod-legacy/pkg-message +++ /dev/null @@ -1,26 +0,0 @@ -============================================================================= - -VirtualBox was installed. - -You need to load the vboxdrv kernel module and a mounted /proc filesystem. - -% mount -t procfs proc /proc -% kldload vboxdrv - -For bridged networking you also need to load the vboxnetflt kernel module. - -% kldload vboxnetflt - -You also have to add all users to your vboxusers group in order to use vbox. - -% pw groupmod vboxusers -m jerry - -Running VirtualBox as non-root user may fail with a fatal error -NS_ERROR_FACTORY_NOT_REGISTERED. In this case delete /tmp/.vbox-*-ipc file. - -Check wiki page for known issues and troubleshooting: -http://wiki.freebsd.org/VirtualBox - -Please report any problems to emulation@. Thanks! - -============================================================================= diff --git a/emulators/virtualbox-ose-kmod-legacy/pkg-plist b/emulators/virtualbox-ose-kmod-legacy/pkg-plist index f8ade22c00a7..f4567ba3fc9a 100644 --- a/emulators/virtualbox-ose-kmod-legacy/pkg-plist +++ b/emulators/virtualbox-ose-kmod-legacy/pkg-plist @@ -1,598 +1,4 @@ -%%X11%%bin/VBoxBFE -bin/VBoxHeadless -bin/VBoxManage -bin/VBoxNetAdpCtl -bin/VBoxNetDHCP -%%X11%%bin/VBoxSDL -bin/VBoxSVC -%%X11%%bin/VBoxTestOGL -bin/VBoxXPCOMIPCD -%%QT4%%bin/VirtualBox -%%X11%%lib/virtualbox/VBoxBFE -%%X11%%lib/virtualbox/VBoxBFE.so -lib/virtualbox/VBoxDD.so -lib/virtualbox/VBoxDD2.so -lib/virtualbox/VBoxDDU.so -lib/virtualbox/VBoxGuestPropSvc.so -lib/virtualbox/VBoxHeadless -lib/virtualbox/VBoxHeadless.so -%%QT4%%lib/virtualbox/VBoxKeyboard.so -lib/virtualbox/VBoxManage -lib/virtualbox/VBoxNetAdpCtl -lib/virtualbox/VBoxNetDHCP -lib/virtualbox/VBoxNetDHCP.so -%%X11%%lib/virtualbox/VBoxOGLhostcrutil.so -%%X11%%lib/virtualbox/VBoxOGLhosterrorspu.so -%%X11%%lib/virtualbox/VBoxOGLrenderspu.so -lib/virtualbox/VBoxPython.so -lib/virtualbox/VBoxREM.so -%%X11%%lib/virtualbox/VBoxTestOGL -%%I386%%lib/virtualbox/VBoxREM32.so -%%I386%%lib/virtualbox/VBoxREM64.so -lib/virtualbox/VBoxRT.so -%%X11%%lib/virtualbox/VBoxSDL -%%X11%%lib/virtualbox/VBoxSDL.so -lib/virtualbox/VBoxSVC -lib/virtualbox/VBoxSharedClipboard.so -%%X11%%lib/virtualbox/VBoxSharedCrOpenGL.so -lib/virtualbox/VBoxSharedFolders.so -lib/virtualbox/VBoxVMM.so -lib/virtualbox/VBoxXPCOM.so -lib/virtualbox/VBoxXPCOMC.so -lib/virtualbox/VBoxXPCOMIPCD -%%QT4%%lib/virtualbox/VirtualBox -%%QT4%%lib/virtualbox/VirtualBox.so -lib/virtualbox/VBoxDD2GC.gc -lib/virtualbox/VBoxDDGC.gc -lib/virtualbox/VMMGC.gc -lib/virtualbox/VBoxDD2R0.r0 -lib/virtualbox/VBoxDDR0.r0 -%%GUESTADDITIONS%%lib/virtualbox/additions/VBoxGuestAdditions.iso -%%GUESTADDITIONS%%lib/virtualbox/additions/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 -lib/virtualbox/components/VBoxSVCM.so -lib/virtualbox/components/VBoxC.so -lib/virtualbox/components/VBoxXPCOMBase.xpt -%%NLS%%%%DATADIR%%/nls/VirtualBox_ar.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_bg.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ca.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_cs.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_de.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_el.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_es.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_eu.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_fi.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_fr.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_hu.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_id.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_it.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ja.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_km_KH.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ko.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_nl.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_pl.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_pt.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_pt_BR.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ro.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ru.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_sk.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_sr.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_sv.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_tr.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_uk.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_zh_CN.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_zh_TW.qm -%%NLS%%%%DATADIR%%/nls/qt_ar.qm -%%NLS%%%%DATADIR%%/nls/qt_bg.qm -%%NLS%%%%DATADIR%%/nls/qt_ca.qm -%%NLS%%%%DATADIR%%/nls/qt_cs.qm -%%NLS%%%%DATADIR%%/nls/qt_de.qm -%%NLS%%%%DATADIR%%/nls/qt_el.qm -%%NLS%%%%DATADIR%%/nls/qt_es.qm -%%NLS%%%%DATADIR%%/nls/qt_eu.qm -%%NLS%%%%DATADIR%%/nls/qt_fi.qm -%%NLS%%%%DATADIR%%/nls/qt_fr.qm -%%NLS%%%%DATADIR%%/nls/qt_hu.qm -%%NLS%%%%DATADIR%%/nls/qt_id.qm -%%NLS%%%%DATADIR%%/nls/qt_it.qm -%%NLS%%%%DATADIR%%/nls/qt_ja.qm -%%NLS%%%%DATADIR%%/nls/qt_km_KH.qm -%%NLS%%%%DATADIR%%/nls/qt_ko.qm -%%NLS%%%%DATADIR%%/nls/qt_nl.qm -%%NLS%%%%DATADIR%%/nls/qt_pl.qm -%%NLS%%%%DATADIR%%/nls/qt_pt.qm -%%NLS%%%%DATADIR%%/nls/qt_pt_BR.qm -%%NLS%%%%DATADIR%%/nls/qt_ro.qm -%%NLS%%%%DATADIR%%/nls/qt_ru.qm -%%NLS%%%%DATADIR%%/nls/qt_sk.qm -%%NLS%%%%DATADIR%%/nls/qt_sr.qm -%%NLS%%%%DATADIR%%/nls/qt_sv.qm -%%NLS%%%%DATADIR%%/nls/qt_tr.qm -%%NLS%%%%DATADIR%%/nls/qt_uk.qm -%%NLS%%%%DATADIR%%/nls/qt_zh_CN.qm -%%NLS%%%%DATADIR%%/nls/qt_zh_TW.qm -%%QT4%%share/applications/virtualbox.desktop -%%QT4%%share/icons/hicolor/48x48/apps/VBox.png -%%DATADIR%%/idl/nsIDebug.idl -%%DATADIR%%/idl/nsIInterfaceRequestor.idl -%%DATADIR%%/idl/nsIMemory.idl -%%DATADIR%%/idl/nsIProgrammingLanguage.idl -%%DATADIR%%/idl/nsISupports.idl -%%DATADIR%%/idl/nsITraceRefcnt.idl -%%DATADIR%%/idl/nsIWeakReference.idl -%%DATADIR%%/idl/nsIConsoleMessage.idl -%%DATADIR%%/idl/nsIConsoleService.idl -%%DATADIR%%/idl/nsIConsoleListener.idl -%%DATADIR%%/idl/nsIErrorService.idl -%%DATADIR%%/idl/nsIException.idl -%%DATADIR%%/idl/nsIExceptionService.idl -%%DATADIR%%/idl/nsrootidl.idl -%%DATADIR%%/idl/nsIClassInfo.idl -%%DATADIR%%/idl/nsIFactory.idl -%%DATADIR%%/idl/nsIModule.idl -%%DATADIR%%/idl/nsIComponentRegistrar.idl -%%DATADIR%%/idl/nsIServiceManager.idl -%%DATADIR%%/idl/nsIComponentManager.idl -%%DATADIR%%/idl/nsICategoryManager.idl -%%DATADIR%%/idl/nsINativeComponentLoader.idl -%%DATADIR%%/idl/nsIComponentLoader.idl -%%DATADIR%%/idl/nsIComponentManagerObsolete.idl -%%DATADIR%%/idl/nsISupportsArray.idl -%%DATADIR%%/idl/nsIComponentLoaderManager.idl -%%DATADIR%%/idl/nsICollection.idl -%%DATADIR%%/idl/nsISerializable.idl -%%DATADIR%%/idl/nsIEnumerator.idl -%%DATADIR%%/idl/nsISimpleEnumerator.idl -%%DATADIR%%/idl/nsIObserverService.idl -%%DATADIR%%/idl/nsIObserver.idl -%%DATADIR%%/idl/nsIAtom.idl -%%DATADIR%%/idl/nsIAtomService.idl -%%DATADIR%%/idl/nsIProperties.idl -%%DATADIR%%/idl/nsIPersistentProperties2.idl -%%DATADIR%%/idl/nsIRecyclingAllocator.idl -%%DATADIR%%/idl/nsIStringEnumerator.idl -%%DATADIR%%/idl/nsISupportsPrimitives.idl -%%DATADIR%%/idl/nsISupportsIterators.idl -%%DATADIR%%/idl/nsITimelineService.idl -%%DATADIR%%/idl/nsIVariant.idl -%%DATADIR%%/idl/nsIArray.idl -%%DATADIR%%/idl/nsIPropertyBag.idl -%%DATADIR%%/idl/nsIHashable.idl -%%DATADIR%%/idl/nsIDirectoryService.idl -%%DATADIR%%/idl/nsIDirectoryEnumerator.idl -%%DATADIR%%/idl/nsIFile.idl -%%DATADIR%%/idl/nsILocalFile.idl -%%DATADIR%%/idl/nsIInputStream.idl -%%DATADIR%%/idl/nsILocalFileMac.idl -%%DATADIR%%/idl/nsIObjectInputStream.idl -%%DATADIR%%/idl/nsIBinaryInputStream.idl -%%DATADIR%%/idl/nsIObjectOutputStream.idl -%%DATADIR%%/idl/nsIBinaryOutputStream.idl -%%DATADIR%%/idl/nsIStreamBufferAccess.idl -%%DATADIR%%/idl/nsIOutputStream.idl -%%DATADIR%%/idl/nsIByteArrayInputStream.idl -%%DATADIR%%/idl/nsIFastLoadFileControl.idl -%%DATADIR%%/idl/nsISeekableStream.idl -%%DATADIR%%/idl/nsIInputStreamTee.idl -%%DATADIR%%/idl/nsIFastLoadService.idl -%%DATADIR%%/idl/nsIMultiplexInputStream.idl -%%DATADIR%%/idl/nsIPipe.idl -%%DATADIR%%/idl/nsIAsyncInputStream.idl -%%DATADIR%%/idl/nsIAsyncOutputStream.idl -%%DATADIR%%/idl/nsIScriptableInputStream.idl -%%DATADIR%%/idl/nsIStorageStream.idl -%%DATADIR%%/idl/nsILineInputStream.idl -%%DATADIR%%/idl/nsIStringStream.idl -%%DATADIR%%/idl/nsIProxyObjectManager.idl -%%DATADIR%%/idl/nsIEventQueue.idl -%%DATADIR%%/idl/nsIEventQueueService.idl -%%DATADIR%%/idl/nsIRunnable.idl -%%DATADIR%%/idl/nsIThread.idl -%%DATADIR%%/idl/nsIEventTarget.idl -%%DATADIR%%/idl/nsIEnvironment.idl -%%DATADIR%%/idl/nsITimer.idl -%%DATADIR%%/idl/nsITimerInternal.idl -%%DATADIR%%/idl/nsITimerManager.idl -%%DATADIR%%/idl/nsIInterfaceInfo.idl -%%DATADIR%%/idl/nsIProcess.idl -%%DATADIR%%/idl/nsIXPTLoader.idl -%%DATADIR%%/idl/nsIInterfaceInfoManager.idl -%%DATADIR%%/idl/ipcIMessageObserver.idl -%%DATADIR%%/idl/ipcIService.idl -%%DATADIR%%/idl/ipcIClientObserver.idl -%%DATADIR%%/idl/ipcILockService.idl -%%DATADIR%%/idl/ipcIDConnectService.idl -%%DATADIR%%/idl/ipcITransactionService.idl -%%DATADIR%%/idl/ipcITransactionObserver.idl -%%DATADIR%%/idl/VirtualBox_XPCOM.idl -%%DATADIR%%/samples/tstVBoxAPILinux.cpp -%%DATADIR%%/samples/Makefile -include/virtualbox/VBoxCAPI_v2_2.h -include/virtualbox/VBoxCAPI_v3_0.h -include/virtualbox/VBoxCAPI_v3_1.h -include/virtualbox/VirtualBox_XPCOM.h -include/virtualbox/ipcIClientObserver.h -include/virtualbox/ipcIDConnectService.h -include/virtualbox/ipcILockService.h -include/virtualbox/ipcIMessageObserver.h -include/virtualbox/ipcIService.h -include/virtualbox/ipcITransactionObserver.h -include/virtualbox/ipcITransactionService.h -include/virtualbox/ipcd/ipcCID.h -include/virtualbox/ipcd/ipcLockCID.h -include/virtualbox/ipcd/ipcMessageReader.h -include/virtualbox/ipcd/ipcMessageWriter.h -include/virtualbox/ipcd/ipcModule.h -include/virtualbox/ipcd/ipcModuleUtil.h -include/virtualbox/ipcd/ipcdclient.h -include/virtualbox/nsIArray.h -include/virtualbox/nsIAsyncInputStream.h -include/virtualbox/nsIAsyncOutputStream.h -include/virtualbox/nsIAtom.h -include/virtualbox/nsIAtomService.h -include/virtualbox/nsIBinaryInputStream.h -include/virtualbox/nsIBinaryOutputStream.h -include/virtualbox/nsIByteArrayInputStream.h -include/virtualbox/nsICategoryManager.h -include/virtualbox/nsIClassInfo.h -include/virtualbox/nsICollection.h -include/virtualbox/nsIComponentLoader.h -include/virtualbox/nsIComponentLoaderManager.h -include/virtualbox/nsIComponentManager.h -include/virtualbox/nsIComponentManagerObsolete.h -include/virtualbox/nsIComponentRegistrar.h -include/virtualbox/nsIConsoleListener.h -include/virtualbox/nsIConsoleMessage.h -include/virtualbox/nsIConsoleService.h -include/virtualbox/nsIDebug.h -include/virtualbox/nsIDirectoryEnumerator.h -include/virtualbox/nsIDirectoryService.h -include/virtualbox/nsIEnumerator.h -include/virtualbox/nsIEnvironment.h -include/virtualbox/nsIErrorService.h -include/virtualbox/nsIEventQueue.h -include/virtualbox/nsIEventQueueService.h -include/virtualbox/nsIEventTarget.h -include/virtualbox/nsIException.h -include/virtualbox/nsIExceptionService.h -include/virtualbox/nsIFactory.h -include/virtualbox/nsIFastLoadFileControl.h -include/virtualbox/nsIFastLoadService.h -include/virtualbox/nsIFile.h -include/virtualbox/nsIHashable.h -include/virtualbox/nsIInputStream.h -include/virtualbox/nsIInputStreamTee.h -include/virtualbox/nsIInterfaceInfo.h -include/virtualbox/nsIInterfaceInfoManager.h -include/virtualbox/nsIInterfaceRequestor.h -include/virtualbox/nsILineInputStream.h -include/virtualbox/nsILocalFile.h -include/virtualbox/nsILocalFileMac.h -include/virtualbox/nsIMemory.h -include/virtualbox/nsIModule.h -include/virtualbox/nsIMultiplexInputStream.h -include/virtualbox/nsINativeComponentLoader.h -include/virtualbox/nsIObjectInputStream.h -include/virtualbox/nsIObjectOutputStream.h -include/virtualbox/nsIObserver.h -include/virtualbox/nsIObserverService.h -include/virtualbox/nsIOutputStream.h -include/virtualbox/nsIPersistentProperties2.h -include/virtualbox/nsIPipe.h -include/virtualbox/nsIProcess.h -include/virtualbox/nsIProgrammingLanguage.h -include/virtualbox/nsIProperties.h -include/virtualbox/nsIPropertyBag.h -include/virtualbox/nsIProxyObjectManager.h -include/virtualbox/nsIRecyclingAllocator.h -include/virtualbox/nsIRunnable.h -include/virtualbox/nsIScriptableInputStream.h -include/virtualbox/nsISeekableStream.h -include/virtualbox/nsISerializable.h -include/virtualbox/nsIServiceManager.h -include/virtualbox/nsISimpleEnumerator.h -include/virtualbox/nsIStorageStream.h -include/virtualbox/nsIStreamBufferAccess.h -include/virtualbox/nsIStringEnumerator.h -include/virtualbox/nsIStringStream.h -include/virtualbox/nsISupports.h -include/virtualbox/nsISupportsArray.h -include/virtualbox/nsISupportsIterators.h -include/virtualbox/nsISupportsPrimitives.h -include/virtualbox/nsIThread.h -include/virtualbox/nsITimelineService.h -include/virtualbox/nsITimer.h -include/virtualbox/nsITimerInternal.h -include/virtualbox/nsITimerManager.h -include/virtualbox/nsITraceRefcnt.h -include/virtualbox/nsIVariant.h -include/virtualbox/nsIWeakReference.h -include/virtualbox/nsIXPTLoader.h -include/virtualbox/nsprpub/nspr.h -include/virtualbox/nsprpub/plarena.h -include/virtualbox/nsprpub/plarenas.h -include/virtualbox/nsprpub/plbase64.h -include/virtualbox/nsprpub/plerror.h -include/virtualbox/nsprpub/plgetopt.h -include/virtualbox/nsprpub/plhash.h -include/virtualbox/nsprpub/plresolv.h -include/virtualbox/nsprpub/plstr.h -include/virtualbox/nsprpub/pratom.h -include/virtualbox/nsprpub/prbit.h -include/virtualbox/nsprpub/prclist.h -include/virtualbox/nsprpub/prcmon.h -include/virtualbox/nsprpub/prcountr.h -include/virtualbox/nsprpub/prcvar.h -include/virtualbox/nsprpub/prdtoa.h -include/virtualbox/nsprpub/prenv.h -include/virtualbox/nsprpub/prerr.h -include/virtualbox/nsprpub/prerror.h -include/virtualbox/nsprpub/prinet.h -include/virtualbox/nsprpub/prinit.h -include/virtualbox/nsprpub/prinrval.h -include/virtualbox/nsprpub/prio.h -include/virtualbox/nsprpub/pripcsem.h -include/virtualbox/nsprpub/prlink.h -include/virtualbox/nsprpub/md/_iprt_atomic.h -include/virtualbox/nsprpub/md/_darwin.h -include/virtualbox/nsprpub/md/_freebsd.h -include/virtualbox/nsprpub/md/_l4v2.h -include/virtualbox/nsprpub/md/_linux.h -include/virtualbox/nsprpub/md/_macos.h -include/virtualbox/nsprpub/md/_netbsd.h -include/virtualbox/nsprpub/md/_openbsd.h -include/virtualbox/nsprpub/md/_os2_errors.h -include/virtualbox/nsprpub/md/_os2.h -include/virtualbox/nsprpub/md/_pcos.h -include/virtualbox/nsprpub/md/_solaris.h -include/virtualbox/nsprpub/md/_unix_errors.h -include/virtualbox/nsprpub/md/_unixos.h -include/virtualbox/nsprpub/md/_pth.h -include/virtualbox/nsprpub/md/prosdep.h -include/virtualbox/nsprpub/md/_freebsd.cfg -include/virtualbox/nsprpub/md/_linux.cfg -include/virtualbox/nsprpub/md/_darwin.cfg -include/virtualbox/nsprpub/md/_netbsd.cfg -include/virtualbox/nsprpub/md/_openbsd.cfg -include/virtualbox/nsprpub/md/_os2.cfg -include/virtualbox/nsprpub/md/_solaris32.cfg -include/virtualbox/nsprpub/md/_l4v2.cfg -include/virtualbox/nsprpub/md/_solaris64.cfg -include/virtualbox/nsprpub/prlock.h -include/virtualbox/nsprpub/prlog.h -include/virtualbox/nsprpub/prlong.h -include/virtualbox/nsprpub/prmem.h -include/virtualbox/nsprpub/prmon.h -include/virtualbox/nsprpub/prmwait.h -include/virtualbox/nsprpub/prnetdb.h -include/virtualbox/nsprpub/prolock.h -include/virtualbox/nsprpub/prpdce.h -include/virtualbox/nsprpub/prprf.h -include/virtualbox/nsprpub/prproces.h -include/virtualbox/nsprpub/prrng.h -include/virtualbox/nsprpub/prrwlock.h -include/virtualbox/nsprpub/prshm.h -include/virtualbox/nsprpub/prshma.h -include/virtualbox/nsprpub/prsystem.h -include/virtualbox/nsprpub/prthread.h -include/virtualbox/nsprpub/prtime.h -include/virtualbox/nsprpub/prtpool.h -include/virtualbox/nsprpub/prtrace.h -include/virtualbox/nsprpub/prtypes.h -include/virtualbox/nsprpub/prvrsion.h -include/virtualbox/nsprpub/prwin16.h -include/virtualbox/nsprpub/prcpucfg.h -include/virtualbox/nsprpub/obsolete/pralarm.h -include/virtualbox/nsprpub/obsolete/probslet.h -include/virtualbox/nsprpub/obsolete/protypes.h -include/virtualbox/nsprpub/obsolete/prsem.h -include/virtualbox/nsprpub/private/pprio.h -include/virtualbox/nsprpub/private/pprthred.h -include/virtualbox/nsprpub/private/prpriv.h -include/virtualbox/nsrootidl.h -include/virtualbox/string/nsAString.h -include/virtualbox/string/nsAlgorithm.h -include/virtualbox/string/nsCharTraits.h -include/virtualbox/string/nsDependentString.h -include/virtualbox/string/nsDependentSubstring.h -include/virtualbox/string/nsEmbedString.h -include/virtualbox/string/nsLiteralString.h -include/virtualbox/string/nsObsoleteAString.h -include/virtualbox/string/nsPrintfCString.h -include/virtualbox/string/nsPromiseFlatString.h -include/virtualbox/string/nsReadableUtils.h -include/virtualbox/string/nsString.h -include/virtualbox/string/nsStringAPI.h -include/virtualbox/string/nsStringFwd.h -include/virtualbox/string/nsStringIterator.h -include/virtualbox/string/nsSubstring.h -include/virtualbox/string/nsSubstringTuple.h -include/virtualbox/string/nsTAString.h -include/virtualbox/string/nsTString.h -include/virtualbox/string/nsTDependentString.h -include/virtualbox/string/nsTDependentSubstring.h -include/virtualbox/string/nsTObsoleteAString.h -include/virtualbox/string/nsTPromiseFlatString.h -include/virtualbox/string/nsTSubstring.h -include/virtualbox/string/nsTSubstringTuple.h -include/virtualbox/string/nsUTF8Utils.h -include/virtualbox/string/nsXPIDLString.h -include/virtualbox/string/string-template-def-char.h -include/virtualbox/string/string-template-def-unichar.h -include/virtualbox/string/string-template-undef.h -include/virtualbox/xpcom/nsAgg.h -include/virtualbox/xpcom/nsAppDirectoryServiceDefs.h -include/virtualbox/xpcom/nsArray.h -include/virtualbox/xpcom/nsArrayEnumerator.h -include/virtualbox/xpcom/nsAtomService.h -include/virtualbox/xpcom/nsAutoBuffer.h -include/virtualbox/xpcom/nsAutoLock.h -include/virtualbox/xpcom/nsAutoPtr.h -include/virtualbox/xpcom/nsBaseHashtable.h -include/virtualbox/xpcom/nsCOMArray.h -include/virtualbox/xpcom/nsCRT.h -include/virtualbox/xpcom/nsCategoryManagerUtils.h -include/virtualbox/xpcom/nsCheapSets.h -include/virtualbox/xpcom/nsClassHashtable.h -include/virtualbox/xpcom/nsCom.h -include/virtualbox/xpcom/nsComponentManagerObsolete.h -include/virtualbox/xpcom/nsComponentManagerUtils.h -include/virtualbox/xpcom/nsCppSharedAllocator.h -include/virtualbox/xpcom/nsID.h -include/virtualbox/xpcom/nsDataHashtable.h -include/virtualbox/xpcom/nsDebugImpl.h -include/virtualbox/xpcom/nsDeque.h -include/virtualbox/xpcom/nsDirectoryService.h -include/virtualbox/xpcom/nsDirectoryServiceDefs.h -include/virtualbox/xpcom/nsDirectoryServiceUtils.h -include/virtualbox/xpcom/nsDoubleHashtable.h -include/virtualbox/xpcom/nsEnumeratorUtils.h -include/virtualbox/xpcom/nsError.h -include/virtualbox/xpcom/nsEscape.h -include/virtualbox/xpcom/nsEventQueueUtils.h -include/virtualbox/xpcom/nsFastLoadPtr.h -include/virtualbox/xpcom/nsFastLoadService.h -include/virtualbox/xpcom/nsFixedSizeAllocator.h -include/virtualbox/xpcom/nsHashKeys.h -include/virtualbox/xpcom/nsHashSets.h -include/virtualbox/xpcom/nsHashtable.h -include/virtualbox/xpcom/nsIAllocator.h -include/virtualbox/xpcom/nsIByteBuffer.h -include/virtualbox/xpcom/nsIID.h -include/virtualbox/xpcom/nsIServiceManagerObsolete.h -include/virtualbox/xpcom/nsIServiceManagerUtils.h -include/virtualbox/xpcom/nsISupportsBase.h -include/virtualbox/xpcom/nsISupportsObsolete.h -include/virtualbox/xpcom/nsIUnicharBuffer.h -include/virtualbox/xpcom/nsIUnicharInputStream.h -include/virtualbox/xpcom/nsInt64.h -include/virtualbox/xpcom/nsInterfaceHashtable.h -include/virtualbox/xpcom/nsLinebreakConverter.h -include/virtualbox/xpcom/nsLocalFile.h -include/virtualbox/xpcom/nsLocalFileUnix.h -include/virtualbox/xpcom/nsLocalFileOS2.h -include/virtualbox/xpcom/nsLocalFileOSX.h -include/virtualbox/xpcom/nsModule.h -include/virtualbox/xpcom/nsMultiplexInputStream.h -include/virtualbox/xpcom/nsNativeCharsetUtils.h -include/virtualbox/xpcom/nsProcess.h -include/virtualbox/xpcom/nsNativeComponentLoader.h -include/virtualbox/xpcom/nsObserverService.h -include/virtualbox/xpcom/nsObsoleteModuleLoading.h -include/virtualbox/xpcom/nsProxiedService.h -include/virtualbox/xpcom/nsProxyEvent.h -include/virtualbox/xpcom/nsProxyRelease.h -include/virtualbox/xpcom/nsQuickSort.h -include/virtualbox/xpcom/nsRecyclingAllocator.h -include/virtualbox/xpcom/nsRefPtrHashtable.h -include/virtualbox/xpcom/nsScriptableInputStream.h -include/virtualbox/xpcom/nsStaticAtom.h -include/virtualbox/xpcom/nsStaticComponent.h -include/virtualbox/xpcom/nsStaticNameTable.h -include/virtualbox/xpcom/nsStorageStream.h -include/virtualbox/xpcom/nsStreamUtils.h -include/virtualbox/xpcom/nsStringEnumerator.h -include/virtualbox/xpcom/nsStringIO.h -include/virtualbox/xpcom/nsTHashtable.h -include/virtualbox/xpcom/nsStringStream.h -include/virtualbox/xpcom/nsSupportsArray.h -include/virtualbox/xpcom/nsSupportsPrimitives.h -include/virtualbox/xpcom/nsTextFormatter.h -include/virtualbox/xpcom/nsTime.h -include/virtualbox/xpcom/nsTraceRefcntImpl.h -include/virtualbox/xpcom/nsUnitConversion.h -include/virtualbox/xpcom/nsValueArray.h -include/virtualbox/xpcom/nsVariant.h -include/virtualbox/xpcom/nsVoidArray.h -include/virtualbox/xpcom/nsWeakPtr.h -include/virtualbox/xpcom/nsXPCOM.h -include/virtualbox/xpcom/nsXPCOMCID.h -include/virtualbox/xpcom/nscore.h -include/virtualbox/xpcom/pldhash.h -include/virtualbox/xpcom/plevent.h -include/virtualbox/xpcom/xcDll.h -include/virtualbox/xpcom/xpt_arena.h -include/virtualbox/xpcom/xpt_struct.h -include/virtualbox/xpcom/xpt_xdr.h -include/virtualbox/xpcom/xptcall.h -include/virtualbox/xpcom/xptcstubsdecl.inc -include/virtualbox/xpcom/xptcstubsdef.inc -include/virtualbox/xpcom/xptinfo.h -include/virtualbox/xpcom/nsIInterfaceRequestorUtils.h -include/virtualbox/xpcom/nsISupportsImpl.h -include/virtualbox/xpcom/nsISupportsUtils.h -include/virtualbox/xpcom/nsIWeakReferenceUtils.h -include/virtualbox/xpcom/nsCOMPtr.h -include/virtualbox/xpcom/nsDebug.h -include/virtualbox/xpcom/nsGenericFactory.h -include/virtualbox/xpcom/nsIGenericFactory.h -include/virtualbox/xpcom/nsMemory.h -include/virtualbox/xpcom/nsTraceRefcnt.h -include/virtualbox/xpcom/nsWeakReference.h -include/virtualbox/xpcom/nsXPCOMGlue.h -include/virtualbox/xpcom/xpcom-config.h -%%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 -@dirrm include/virtualbox/nsprpub/obsolete -@dirrm include/virtualbox/nsprpub/md -@dirrm include/virtualbox/nsprpub -@dirrm include/virtualbox/ipcd -@dirrm include/virtualbox -%%NLS%%@dirrm %%DATADIR%%/nls -@dirrm %%DATADIR%%/samples -@dirrm %%DATADIR%%/idl -@dirrm %%DATADIR%% -%%QT4%%@dirrmtry share/icons/hicolor/48x48/apps -%%QT4%%@dirrmtry share/icons/hicolor/48x48 -%%QT4%%@dirrmtry share/icons/hicolor -%%QT4%%@dirrmtry share/icons -%%QT4%%@dirrmtry share/applications -@dirrm lib/virtualbox/components -%%GUESTADDITIONS%%@dirrm lib/virtualbox/additions -@dirrm lib/virtualbox +@comment $FreeBSD$ @cwd / %%KMODDIR%%/vboxdrv.ko %%KMODDIR%%/vboxnetadp.ko diff --git a/emulators/virtualbox-ose-kmod/Makefile b/emulators/virtualbox-ose-kmod/Makefile index 46617a1b64b8..a0da9cfeac2c 100644 --- a/emulators/virtualbox-ose-kmod/Makefile +++ b/emulators/virtualbox-ose-kmod/Makefile @@ -1,186 +1,83 @@ -# New ports collection makefile for: virtualbox -# Date created: 2009-05-02 +# New ports collection makefile for: virtualbox-ose-kmod +# Date created: 2009-09-21 # Whom: Bernhard Froehlich <decke@bluelife.at> # # $FreeBSD$ # -PORTNAME= virtualbox -DISTVERSION= 3.0.51r22902 -PORTREVISION= 3 +PORTNAME= virtualbox-ose +DISTVERSION= 3.1.2 CATEGORIES= emulators kld MASTER_SITES= http://tmp.chruetertee.ch/ \ http://freebsd.unixfreunde.de/sources/ \ http://disasterarea.chruetertee.ch/ \ - http://mirror.4bit.ws/ \ - http://dlc.sun.com/virtualbox/${VBOX_GUEST_VER}/:guestadditions -DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${GADISTFILES} -EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} + http://mirror.4bit.ws/ +PKGNAMESUFFIX= -kmod +DISTNAME= VirtualBox-${DISTVERSION}-OSE -#for discussion please use emulation@FreeBSD.org MAINTAINER= vbox@FreeBSD.org -COMMENT= A general-purpose full virtualizer for x86 hardware +COMMENT= VirtualBox kernel module for FreeBSD BUILD_DEPENDS= yasm:${PORTSDIR}/devel/yasm \ as86:${PORTSDIR}/devel/dev86 \ - xsltproc:${PORTSDIR}/textproc/libxslt \ kmk:${PORTSDIR}/devel/kBuild -LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \ - xslt.2:${PORTSDIR}/textproc/libxslt \ - curl.5:${PORTSDIR}/ftp/curl +WRKSRC= ${WRKDIR}/VirtualBox-${PORTVERSION}_OSE +USE_RC_SUBR= vboxnet ONLY_FOR_ARCHS= i386 amd64 -USE_GNOME= libidl -USE_CDRTOOLS= 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 +CONFIGURE_ARGS+=--with-gcc="${CC}" --with-g++="${CXX}" --nofatal \ + --disable-xpcom --disable-sdl-ttf --disable-pulse \ + --disable-alsa --disable-dbus --disable-python \ + --build-headless CONFLICTS= bcc-[0-9]* -VBOXGROUP?= vboxusers -VBOXGID?= 920 -VBOX_FRONTENDS= VBoxHeadless -VBOX_GUEST_VER= 3.0.6 - -SUB_FILES= pkg-install - -SUB_LIST= PREFIX=${PREFIX} \ - VBOXGROUP=${VBOXGROUP} \ - VBOXGID=${VBOXGID} - -OPTIONS= QT4 "Build with QT4 Frontend" on \ - DEBUG "Build with debugging symbols" off \ - 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 +OPTIONS= DEBUG "Build with debugging symbols" off .include <bsd.port.options.mk> -PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,} \ - PYTHON_VER=${PYTHON_VER} \ - PYTHON_VERU=${PYTHON_VER:S/./_/} \ - GUEST_VER=${VBOX_GUEST_VER} +PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,} KMODDIR= /boot/modules -KMK_BUILDTYPE= release -KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys -KMK_FLAGS= - -.if defined(WITHOUT_QT4) && !defined(WITHOUT_NLS) -BROKEN= NLS support requires QT4 frontend. Run 'make config' again! -.endif -.if defined(WITHOUT_X11) && !defined(WITHOUT_QT4) -BROKEN= QT4 frontend requires X11 support. Run 'make config' again! -.endif - -.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 -PLIST_SUB+= QT4="" -.else -CONFIGURE_ARGS+=--disable-qt4 -PLIST_SUB+= QT4="@comment " -.endif +VBOX_BIN= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/src -.if defined(WITH_GUESTADDITIONS) -GUESTADDITIONS= VBoxGuestAdditions_${VBOX_GUEST_VER}.iso -GADISTFILES= ${GUESTADDITIONS}:guestadditions -RESTRICTED= for personal use only -RESTRICTED_FILES= ${GUESTADDITIONS} -FETCH_ARGS= -pRr -PLIST_SUB+= GUESTADDITIONS="" -.else -PLIST_SUB+= GUESTADDITIONS="@comment " -.endif +KMK_BUILDTYPE= release +KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys +KMK_FLAGS= HostDrivers-src vboxdrv-mod VBoxNetFlt-src VBoxNetAdp-src .if defined(WITH_DEBUG) KMK_FLAGS+= BUILD_TYPE=debug KMK_BUILDTYPE= debug .endif -.if !defined(WITHOUT_DBUS) -LIB_DEPENDS+= dbus-1.3:${PORTSDIR}/devel/dbus -.else -CONFIGURE_ARGS+=--disable-dbus -.endif - -.if !defined(WITH_PULSEAUDIO) -CONFIGURE_ARGS+=--disable-pulse -.endif - -.if !defined(WITHOUT_NLS) -PLIST_SUB+= NLS="" -.else -PLIST_SUB+= NLS="@comment " -.endif - -.if !exists(${SRC_BASE}/sys/kern/bus_if.m) -IGNORE= requires kernel sources for the kernel module -.endif - .if ${OSVERSION} < 700000 BROKEN= Does not compile on FreeBSD 6.X .endif .if ${ARCH} == i386 KMK_ARCH= freebsd.x86 -PLIST_SUB+= I386="" .else KMK_ARCH= freebsd.${ARCH} -PLIST_SUB+= I386="@comment " .endif -.include <bsd.port.pre.mk> - -pre-everything:: -.if ${ARCH} == "amd64" -.if !exists(/usr/lib32) - @${ECHO} 'Requires 32-bit libraries installed under /usr/lib32.' - @${ECHO} 'Do: cd /usr/src; make build32 install32; ldconfig -v -m -R /usr/lib32' - @${FALSE} -.endif +.if !exists(${SRC_BASE}/sys/kern/bus_if.m) +IGNORE= requires kernel sources .endif +.include <bsd.port.pre.mk> + post-patch: - @${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 - @${ECHO} 'VBOX_WITH_TESTCASES=' >> ${WRKSRC}/LocalConfig.kmk -.if defined(WITHOUT_X11) - @${ECHO} 'VBOX_WITH_X11_ADDITIONS=' >> ${WRKSRC}/LocalConfig.kmk -.endif + @${ECHO} 'VBOX_WITH_VBOXDRV = 1' > ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_NETFLT = 1' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_NETADP = 1' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ - ${WRKSRC}/Config.kmk ${WRKSRC}/configure \ - ${WRKSRC}/kBuild/units/qt3.kmk ${WRKSRC}/kBuild/units/qt4.kmk \ - ${WRKSRC}/kBuild/sdks/LIBSDL.kmk \ - ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py + ${WRKSRC}/Config.kmk \ + ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|\$$KBUILDDIR_BIN/kmk_sed|${PREFIX}/bin/kmk_sed|g' ${WRKSRC}/configure pre-build: @@ -188,72 +85,13 @@ pre-build: ${WRKSRC}/env.sh do-build: - cd ${WRKSRC} && ${SH} env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS} + cd ${WRKSRC} && ${SH} env.sh && cd ${WRKSRC}/src/VBox/HostDrivers && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS} + cd ${VBOX_BIN} && make do-install: ${MKDIR} ${KMODDIR} -.for f in vboxdrv.ko vboxnetadp.ko vboxnetflt.ko - ${INSTALL_KLD} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/${f} ${KMODDIR} -.endfor - - ${MKDIR} ${DATADIR} - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom && ${COPYTREE_SHARE} "idl samples" ${DATADIR}) - - ${MKDIR} ${PREFIX}/include/virtualbox - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/include && ${COPYTREE_SHARE} "*" ${PREFIX}/include/virtualbox) - - ${MKDIR} ${PREFIX}/lib/virtualbox - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin && ${COPYTREE_SHARE} "*.so *.gc *.r0 components" ${PREFIX}/lib/virtualbox) - -.if !defined(WITHOUT_NLS) - ${MKDIR} ${DATADIR}/nls - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/obj/VirtualBox/qtnls && ${COPYTREE_SHARE} "*.qm" ${DATADIR}/nls) -.endif - - ${MKDIR} ${PREFIX}/bin -.for f in VBoxManage VBoxNetAdpCtl 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 - -.for f in VBoxNetAdpCtl VBoxNetDHCP ${VBOX_FRONTENDS} - ${CHMOD} 4511 ${PREFIX}/lib/virtualbox/${f} -.endfor - -.for f in VBoxManage VBoxSVC VBoxXPCOMIPCD - ${CHMOD} 0711 ${PREFIX}/lib/virtualbox/${f} -.endfor - -.if defined(WITH_GUESTADDITIONS) - ${MKDIR} ${PREFIX}/lib/virtualbox/additions - ${INSTALL_DATA} ${DISTDIR}/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/additions/ - ${LN} -sf ${PREFIX}/lib/virtualbox/additions/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/additions/VBoxGuestAdditions.iso -.endif - - 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 - -.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS} - ${CHOWN} root:${VBOXGROUP} ${PREFIX}/lib/virtualbox/${f} -.endfor - - @${FIND} ${DATADIR} -type d -print0 | ${XARGS} -0 ${CHMOD} 755 - @${FIND} ${PREFIX}/include/virtualbox -type d -print0 | ${XARGS} -0 ${CHMOD} 755 - @${FIND} ${PREFIX}/lib/virtualbox -type d -print0 | ${XARGS} -0 ${CHMOD} 755 - -.if !defined(WITHOUT_QT4) - ${MKDIR} ${PREFIX}/share/icons/hicolor/48x48/apps/ - ${INSTALL_DATA} ${WRKSRC}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_48px.png ${PREFIX}/share/icons/hicolor/48x48/apps/VBox.png - ${MKDIR} ${PREFIX}/share/applications/ - ${INSTALL_DATA} ${WRKSRC}/src/VBox/Installer/solaris/virtualbox.desktop ${PREFIX}/share/applications/virtualbox.desktop -.endif - @${CAT} ${PKGMESSAGE} + ${INSTALL_KLD} ${VBOX_BIN}/vboxdrv/vboxdrv.ko ${KMODDIR} + ${INSTALL_KLD} ${VBOX_BIN}/vboxnetadp/vboxnetadp.ko ${KMODDIR} + ${INSTALL_KLD} ${VBOX_BIN}/vboxnetflt/vboxnetflt.ko ${KMODDIR} .include <bsd.port.post.mk> diff --git a/emulators/virtualbox-ose-kmod/distinfo b/emulators/virtualbox-ose-kmod/distinfo index 492de57d1c4a..af7117996821 100644 --- a/emulators/virtualbox-ose-kmod/distinfo +++ b/emulators/virtualbox-ose-kmod/distinfo @@ -1,6 +1,3 @@ -MD5 (virtualbox-3.0.51r22902.tar.bz2) = c2fbfd0eca2d2c9e6ad5f029cf75def0 -SHA256 (virtualbox-3.0.51r22902.tar.bz2) = ccbc88276f9e1944005d1c2f3661ec6d7113b22801ecbbb72d422aa0ab2b0a2a -SIZE (virtualbox-3.0.51r22902.tar.bz2) = 51742256 -MD5 (VBoxGuestAdditions_3.0.6.iso) = 8d033b4f66db1a3e5b914da1717e9c21 -SHA256 (VBoxGuestAdditions_3.0.6.iso) = d6a8b61ef1004637c8be3a70612bb0e101f552d7eb0a9a376ff1ad264baf6a3c -SIZE (VBoxGuestAdditions_3.0.6.iso) = 32786432 +MD5 (VirtualBox-3.1.2-OSE.tar.bz2) = e7808f16114f5b1a65aa2df1aa33e1a7 +SHA256 (VirtualBox-3.1.2-OSE.tar.bz2) = 293f582e37eda29efdb53c6468481b446e1964592f5728656b74664f4d32f2b1 +SIZE (VirtualBox-3.1.2-OSE.tar.bz2) = 55553394 diff --git a/emulators/virtualbox-ose-kmod/files/patch-Config.kmk b/emulators/virtualbox-ose-kmod/files/patch-Config.kmk deleted file mode 100644 index 2ce55eb8a12d..000000000000 --- a/emulators/virtualbox-ose-kmod/files/patch-Config.kmk +++ /dev/null @@ -1,10 +0,0 @@ ---- 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-configure b/emulators/virtualbox-ose-kmod/files/patch-configure deleted file mode 100644 index c6532c3db606..000000000000 --- a/emulators/virtualbox-ose-kmod/files/patch-configure +++ /dev/null @@ -1,20 +0,0 @@ ---- configure.orgi 2009-05-31 13:43:50.000000000 +0200 -+++ configure 2009-05-31 13:45:47.000000000 +0200 -@@ -102,7 +102,7 @@ - XSLTPROC="xsltproc" - GENISOIMAGE="genisoimage" - MKISOFS="mkisofs" --LIBCRYPTO="-lcrypto" -+LIBCRYPTO="-lcrypto -lssl" - LIBPTHREAD="-lpthread" - LIBCAP="-lcap" - GSOAP="" -@@ -1698,7 +1698,7 @@ - cat $ODIR.tmp_src.cc >> $LOG - echo "using the following command line:" >> $LOG - echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so" >> $LOG -- $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so >> $LOG 2>&1 -+ $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so -pthread >> $LOG 2>&1 - if [ $? -eq 0 ]; then - found=1 - break diff --git a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Devices-Makefile.kmk b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Devices-Makefile.kmk deleted file mode 100644 index d404c8aee176..000000000000 --- a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Devices-Makefile.kmk +++ /dev/null @@ -1,15 +0,0 @@ ---- src/VBox/Devices/Makefile.kmk.orig 2009-11-01 22:50:39.000000000 +0100 -+++ src/VBox/Devices/Makefile.kmk 2009-11-01 22:50:52.000000000 +0100 -@@ -31,8 +31,10 @@ - include $(PATH_SUB_CURRENT)/PC/VMI/Makefile.kmk - endif - include $(PATH_SUB_CURRENT)/Graphics/BIOS/Makefile.kmk --include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk --include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk -+ifdef VBOX_WITH_TESTCASES -+ include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk -+ include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk -+endif - ifndef VBOX_OSE - include $(PATH_SUB_CURRENT)/Storage/VBoxHDDFormats/Makefile.kmk - endif diff --git a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Frontends-VBoxManage-VBoxInternalManage.cpp b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Frontends-VBoxManage-VBoxInternalManage.cpp deleted file mode 100644 index 0a1f735fb79a..000000000000 --- a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Frontends-VBoxManage-VBoxInternalManage.cpp +++ /dev/null @@ -1,50 +0,0 @@ -Index: src/VBox/Frontends/VBoxManage/VBoxInternalManage.cpp -@@ -54,7 +54,8 @@ - #ifdef RT_OS_WINDOWS - # include <windows.h> - # include <winioctl.h> --#elif defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) || defined(RT_OS_SOLARIS) -+#elif defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) \ -+ || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD) - # include <errno.h> - # include <sys/ioctl.h> - # include <sys/types.h> -@@ -76,6 +77,9 @@ - # include <sys/dkio.h> - # include <sys/vtoc.h> - #endif /* RT_OS_SOLARIS */ -+#ifdef RT_OS_FREEBSD -+# include <sys/disk.h> -+#endif /* RT_OS_FREEBSD */ - - using namespace com; - -@@ -1013,6 +1017,28 @@ - vrc = VERR_INVALID_PARAMETER; - goto out; - } -+#elif defined(RT_OS_FREEBSD) -+ struct stat DevStat; -+ if (!fstat(RawFile, &DevStat) && S_ISCHR(DevStat.st_mode)) -+ { -+ off_t cMediasize = 0; -+ if (!ioctl(RawFile, DIOCGMEDIASIZE, &cMediasize)) -+ { -+ cbSize = cMediasize; -+ } -+ else -+ { -+ vrc = RTErrConvertFromErrno(errno); -+ RTPrintf("Cannot get the block count for file '%s': %Rrc", rawdisk.raw(), vrc); -+ goto out; -+ } -+ } -+ else -+ { -+ RTPrintf("File '%s' is no character device\n", rawdisk.raw()); -+ vrc = VERR_INVALID_PARAMETER; -+ goto out; -+ } - #else /* all unrecognized OSes */ - /* Hopefully this works on all other hosts. If it doesn't, it'll just fail - * creating the VMDK, so no real harm done. */ diff --git a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h deleted file mode 100644 index 250a1960a7f4..000000000000 --- a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h +++ /dev/null @@ -1,28 +0,0 @@ -Index: src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h -=================================================================== ---- src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h (revision 23391) -+++ src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h (working copy) -@@ -206,6 +206,14 @@ - hook_p output; - /** Original interface flags */ - unsigned int flags; -+ /** Input queue */ -+ struct ifqueue inq; -+ /** Output queue */ -+ struct ifqueue outq; -+ /** Input task */ -+ struct task tskin; -+ /** Output task */ -+ struct task tskout; - /** The MAC address of the interface. */ - RTMAC Mac; - /** @} */ -@@ -241,6 +249,8 @@ - # endif - #elif defined(RT_OS_LINUX) - uint8_t abPadding[320]; -+#elif defined(RT_OS_FREEBSD) -+ uint8_t abPadding[320]; - #else - uint8_t abPadding[128]; - #endif diff --git a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c index f23fedbf0ec0..ac0ba0eee28c 100644 --- a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c +++ b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c @@ -2,35 +2,6 @@ Index: src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c =================================================================== --- src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c (revision 23391) +++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c (working copy) -@@ -43,6 +43,8 @@ - #include <sys/socket.h> - #include <sys/sockio.h> - #include <sys/syscallsubr.h> -+#include <sys/queue.h> -+#include <sys/taskqueue.h> - - #include <net/if.h> - #include <net/if_var.h> -@@ -78,8 +80,6 @@ - static ng_rcvdata_t ng_vboxnetflt_rcvdata; - static ng_disconnect_t ng_vboxnetflt_disconnect; - static int ng_vboxnetflt_mod_event(module_t mod, int event, void *data); --static int ng_vboxnetflt_rcv_in(hook_p node, item_p item); --static int ng_vboxnetflt_rcv_out(hook_p node, item_p item); - - /** Netgraph node type */ - #define NG_VBOXNETFLT_NODE_TYPE "vboxnetflt" -@@ -112,8 +112,8 @@ - { - .version = NG_ABI_VERSION, - .name = NG_VBOXNETFLT_NODE_TYPE, -- .mod_event = vboxnetflt_modevent, -- .constructor = ng_vboxnetflt_constructor, -+ .mod_event = vboxnetflt_modevent, -+ .constructor = ng_vboxnetflt_constructor, - .rcvmsg = ng_vboxnetflt_rcvmsg, - .shutdown = ng_vboxnetflt_shutdown, - .newhook = ng_vboxnetflt_newhook, @@ -122,7 +122,7 @@ .cmdlist = ng_vboxnetflt_cmdlist, }; @@ -40,345 +11,12 @@ Index: src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c MODULE_DEPEND(ng_vboxnetflt, vboxdrv, 1, 1, 1); /** -@@ -267,16 +267,12 @@ - if (strcmp(name, NG_VBOXNETFLT_HOOK_IN) == 0) - { - #if __FreeBSD_version >= 800000 -- NG_HOOK_SET_RCVDATA(hook, ng_vboxnetflt_rcv_in); - NG_HOOK_SET_TO_INBOUND(hook); - #endif - pThis->u.s.input = hook; - } - else if (strcmp(name, NG_VBOXNETFLT_HOOK_OUT) == 0) - { --#if __FreeBSD_version >= 800000 -- NG_HOOK_SET_RCVDATA(hook, ng_vboxnetflt_rcv_out); --#endif - pThis->u.s.output = hook; - } - else -@@ -310,161 +306,171 @@ - - /** - * Handle data on netgraph hooks. -+ * Frames processing is deferred to a taskqueue because this might -+ * be called with non-sleepable locks held and code paths inside -+ * the virtual switch might sleep. - */ - static int ng_vboxnetflt_rcvdata(hook_p hook, item_p item) - { - const node_p node = NG_HOOK_NODE(hook); - PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -+ struct ifnet *ifp = pThis->u.s.ifp; - struct mbuf *m; -+ struct m_tag *mtag; -+ bool fActive; - -+ fActive = ASMAtomicUoReadBool(&pThis->fActive); -+ -+ NGI_GET_M(item, m); -+ NG_FREE_ITEM(item); -+ -+ /* Locate tag to see if processing should be skipped for this frame */ -+ mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -+ if (mtag != NULL) -+ { -+ m_tag_unlink(m, mtag); -+ m_tag_free(mtag); -+ } -+ -+ /* -+ * Handle incoming hook. This is connected to the -+ * input path of the interface, thus handling incoming frames. -+ */ - if (pThis->u.s.input == hook) -- return ng_vboxnetflt_rcv_in(hook, item); -+ { -+ if (mtag != NULL || !fActive) -+ { -+ ether_demux(ifp, m); -+ return (0); -+ } -+ mtx_lock_spin(&pThis->u.s.inq.ifq_mtx); -+ _IF_ENQUEUE(&pThis->u.s.inq, m); -+ mtx_unlock_spin(&pThis->u.s.inq.ifq_mtx); -+ taskqueue_enqueue_fast(taskqueue_fast, &pThis->u.s.tskin); -+ } -+ /** -+ * Handle mbufs on the outgoing hook, frames going to the interface -+ */ - else if (pThis->u.s.output == hook) -- return ng_vboxnetflt_rcv_out(hook, item); -+ { -+ if (mtag != NULL || !fActive) -+ return ether_output_frame(ifp, m); -+ mtx_lock_spin(&pThis->u.s.outq.ifq_mtx); -+ _IF_ENQUEUE(&pThis->u.s.outq, m); -+ mtx_unlock_spin(&pThis->u.s.outq.ifq_mtx); -+ taskqueue_enqueue_fast(taskqueue_fast, &pThis->u.s.tskout); -+ } - else - { -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -+ m_freem(m); - } - return (0); - } - -+static int ng_vboxnetflt_shutdown(node_p node) -+{ -+ PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -+ bool fActive; -+ -+ /* Prevent node shutdown if we're active */ -+ fActive = ASMAtomicUoReadBool(&pThis->fActive); -+ if (fActive) -+ return (EBUSY); -+ NG_NODE_UNREF(node); -+ return (0); -+} -+ -+static int ng_vboxnetflt_disconnect(hook_p hook) -+{ -+ return (0); -+} -+ - /** -- * Handle incoming hook. This is connected to the -- * input path of the interface, thus handling incoming frames. -+ * Input processing task, handles incoming frames - */ --static int ng_vboxnetflt_rcv_in(hook_p hook, item_p item) -+static void vboxNetFltFreeBSDinput(void *arg, int pending) - { -+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; - struct mbuf *m, *m0; -- struct m_tag *mtag; -- const node_p node = NG_HOOK_NODE(hook); -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); - struct ifnet *ifp = pThis->u.s.ifp; -- bool fActive, fDropIt = false; - unsigned int cSegs = 0; -+ bool fDropIt = false, fActive; - PINTNETSG pSG; - -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -- -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (!fActive) -- goto out; -- -- mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -- if (mtag != NULL) -- { -- m_tag_unlink(m, mtag); -- m_tag_free(mtag); -- goto out; -- } - vboxNetFltRetain(pThis, true /* fBusy */); -- -- for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ for (;;) - { -- if (m0->m_len > 0) -- cSegs++; -- } -+ mtx_lock_spin(&pThis->u.s.inq.ifq_mtx); -+ _IF_DEQUEUE(&pThis->u.s.inq, m); -+ mtx_unlock_spin(&pThis->u.s.inq.ifq_mtx); -+ if (m == NULL) -+ break; - -+ for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ if (m0->m_len > 0) -+ cSegs++; -+ - #ifdef PADD_RUNT_FRAMES_FROM_HOST -- if (m_length(m, NULL) < 60) -- cSegs++; -+ if (m_length(m, NULL) < 60) -+ cSegs++; - #endif - -- /* Create a copy of the mbuf and hand it to the virtual switch */ -- pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -- vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_WIRE); -- RTMemTmpFree(pSG); -+ /* Create a copy and deliver to the virtual switch */ -+ pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -+ vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -+ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -+ RTMemTmpFree(pSG); -+ if (fDropIt) -+ m_freem(m); -+ else -+ ether_demux(ifp, m); -+ } - vboxNetFltRelease(pThis, true /* fBusy */); -- --out: -- /* Only deliver it to the host stack if the destination weren't a guest */ -- if (fDropIt) -- { -- m_freem(m); -- return (0); -- } -- ether_demux(ifp, m); -- return (0); - } - - /** -- * Handle mbufs on the outgoing hook, frames going to the interface -+ * Output processing task, handles outgoing frames - */ --static int ng_vboxnetflt_rcv_out(hook_p hook, item_p item) -+static void vboxNetFltFreeBSDoutput(void *arg, int pending) - { -+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; - struct mbuf *m, *m0; -- struct m_tag *mtag; -- const node_p node = NG_HOOK_NODE(hook); -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); - struct ifnet *ifp = pThis->u.s.ifp; - unsigned int cSegs = 0; - bool fDropIt = false, fActive; - PINTNETSG pSG; - -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -- -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (!fActive) -- return ether_output_frame(ifp, m); -- - vboxNetFltRetain(pThis, true /* fBusy */); -- /* Pass directly to interface if the packet originated from us */ -- mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -- if (mtag != NULL) -+ for (;;) - { -- m_tag_unlink(m, mtag); -- m_tag_free(mtag); -- goto out; -- } -+ mtx_lock_spin(&pThis->u.s.outq.ifq_mtx); -+ _IF_DEQUEUE(&pThis->u.s.outq, m); -+ mtx_unlock_spin(&pThis->u.s.outq.ifq_mtx); -+ if (m == NULL) -+ break; - -- for (m0 = m; m0 != NULL; m0 = m0->m_next) -- { -- if (m0->m_len > 0) -- cSegs++; -- } -+ for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ if (m0->m_len > 0) -+ cSegs++; - - #ifdef PADD_RUNT_FRAMES_FROM_HOST -- if (m_length(m, NULL) < 60) -- cSegs++; -+ if (m_length(m, NULL) < 60) -+ cSegs++; - #endif -- /* Create a copy and deliver to the virtual switch */ -- pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -- vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -- RTMemTmpFree(pSG); -+ /* Create a copy and deliver to the virtual switch */ -+ pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -+ vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -+ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -+ RTMemTmpFree(pSG); - --out: -+ if (fDropIt) -+ m_freem(m); -+ else -+ ether_output_frame(ifp, m); -+ } - vboxNetFltRelease(pThis, true /* fBusy */); -- if (fDropIt) -- { -- m_freem(m); -- return (0); -- } -- -- return ether_output_frame(ifp, m); - } - --static int ng_vboxnetflt_shutdown(node_p node) --{ -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -- bool fActive; -- -- /* Prevent node shutdown if we're active */ -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (fActive) -- return (EBUSY); -- NG_NODE_UNREF(node); -- return (0); --} -- --static int ng_vboxnetflt_disconnect(hook_p hook) --{ -- return (0); --} -- - /** - * Called to deliver a frame to either the host, the wire or both. - */ -@@ -536,13 +542,23 @@ - - /* Create a new netgraph node for this instance */ - if (ng_make_node_common(&ng_vboxnetflt_typestruct, &node) != 0) -- return VERR_INTERNAL_ERROR; -+ return VERR_INTERNAL_ERROR; - - RTSpinlockAcquire(pThis->hSpinlock, &Tmp); - ASMAtomicUoWritePtr((void * volatile *)&pThis->u.s.ifp, ifp); - pThis->u.s.node = node; - bcopy(IF_LLADDR(ifp), &pThis->u.s.Mac, ETHER_ADDR_LEN); - ASMAtomicUoWriteBool(&pThis->fDisconnectedFromHost, false); -+ /* Initialize deferred input queue */ -+ bzero(&pThis->u.s.inq, sizeof(struct ifqueue)); -+ mtx_init(&pThis->u.s.inq.ifq_mtx, "vboxnetflt inq", NULL, MTX_SPIN); -+ TASK_INIT(&pThis->u.s.tskin, 0, vboxNetFltFreeBSDinput, pThis); -+ -+ /* Initialize deferred output queue */ -+ bzero(&pThis->u.s.outq, sizeof(struct ifqueue)); -+ mtx_init(&pThis->u.s.outq.ifq_mtx, "vboxnetflt outq", NULL, MTX_SPIN); -+ TASK_INIT(&pThis->u.s.tskout, 0, vboxNetFltFreeBSDoutput, pThis); -+ - RTSpinlockRelease(pThis->hSpinlock, &Tmp); - - NG_NODE_SET_PRIVATE(node, pThis); -@@ -571,7 +587,10 @@ - } - - if (ifp0 != NULL) -+ { -+ vboxNetFltOsDeleteInstance(pThis); - vboxNetFltOsInitInstance(pThis, NULL); -+ } - - return !ASMAtomicUoReadBool(&pThis->fDisconnectedFromHost); - } -@@ -579,6 +598,12 @@ - void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis) - { - -+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskin); -+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskout); -+ -+ mtx_destroy(&pThis->u.s.inq.ifq_mtx); -+ mtx_destroy(&pThis->u.s.outq.ifq_mtx); -+ - if (pThis->u.s.node != NULL) - ng_rmnode_self(pThis->u.s.node); - pThis->u.s.node = NULL; +@@ -418,7 +418,7 @@ + /* Create a copy and deliver to the virtual switch */ + pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); + vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); +- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); ++ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_WIRE); + RTMemTmpFree(pSG); + if (fDropIt) + m_freem(m); diff --git a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h deleted file mode 100644 index 4332049487c3..000000000000 --- a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h +++ /dev/null @@ -1,11 +0,0 @@ ---- src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h.orig 2009-09-11 14:48:47.000000000 +0200 -+++ src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h 2009-09-11 14:48:54.000000000 +0200 -@@ -76,7 +76,7 @@ - # define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt, 0) - # define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt, 0) - # define SLEEPQ_WAIT_SIG(EventInt) sleepq_wait_sig(EventInt, 0) --#elif -+#else - # define SLEEPQ_TIMEDWAIT(EventInt) sleepq_timedwait(EventInt) - # define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt) - # define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt) diff --git a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp deleted file mode 100644 index 955bf7a3a151..000000000000 --- a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp +++ /dev/null @@ -1,207 +0,0 @@ ---- src/apps/adpctl/VBoxNetAdpCtl.cpp.r22902 2009-04-10 14:03:59.000000000 +0200 -+++ src/apps/adpctl/VBoxNetAdpCtl.cpp 2009-09-16 14:07:11.000000000 +0200 -@@ -1,4 +1,4 @@ --/* $Id: VBoxNetAdpCtl.cpp 18864 2009-04-10 12:03:59Z vboxsync $ */ -+/* $Id: VBoxNetAdpCtl.cpp 23064 2009-09-16 12:07:11Z vboxsync $ */ - /** @file - * Apps - VBoxAdpCtl, Configuration tool for vboxnetX adapters. - */ -@@ -24,7 +24,6 @@ - /******************************************************************************* - * Header Files * - *******************************************************************************/ --#include <assert.h> - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -@@ -36,11 +35,12 @@ - # include <sys/ioccom.h> - #endif - --/* @todo Error codes must be moved to some header file */ --#define ADPCTLERR_NO_CTL_DEV 3 --#define ADPCTLERR_IOCTL_FAILED 4 -+/** @todo Error codes must be moved to some header file */ -+#define ADPCTLERR_BAD_NAME 2 -+#define ADPCTLERR_NO_CTL_DEV 3 -+#define ADPCTLERR_IOCTL_FAILED 4 - --/* @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */ -+/** @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */ - #define VBOXNETADP_CTL_DEV_NAME "/dev/vboxnetctl" - #define VBOXNETADP_NAME "vboxnet" - #define VBOXNETADP_MAX_NAME_LEN 32 -@@ -85,6 +85,7 @@ - pcszArg5, /* [network mask] */ - NULL /* terminator */ - }; -+ char * const envp[] = { (char*)"LC_ALL=C", NULL }; - int rc = EXIT_SUCCESS; - pid_t childPid = fork(); - switch (childPid) -@@ -94,7 +95,7 @@ - rc = EXIT_FAILURE; - break; - case 0: /* Child process. */ -- if (execv(VBOXADPCTL_IFCONFIG_PATH, (char * const*)argv) == -1) -+ if (execve(VBOXADPCTL_IFCONFIG_PATH, (char * const*)argv, envp) == -1) - rc = EXIT_FAILURE; - break; - default: /* Parent process. */ -@@ -108,15 +109,39 @@ - #define MAX_ADDRESSES 128 - #define MAX_ADDRLEN 64 - --static bool removeAddresses(const char *pszAdapterName) -+static bool removeAddresses(char *pszAdapterName) - { -- char szCmd[1024], szBuf[1024]; -+ char szBuf[1024]; - char aszAddresses[MAX_ADDRESSES][MAX_ADDRLEN]; -+ int rc; -+ int fds[2]; -+ char * const argv[] = { VBOXADPCTL_IFCONFIG_PATH, pszAdapterName, NULL }; -+ char * const envp[] = { (char*)"LC_ALL=C", NULL }; - - memset(aszAddresses, 0, sizeof(aszAddresses)); -- snprintf(szCmd, sizeof(szCmd), VBOXADPCTL_IFCONFIG_PATH " %s", pszAdapterName); -- FILE *fp = popen(szCmd, "r"); - -+ rc = pipe(fds); -+ if (rc < 0) -+ return false; -+ -+ pid_t pid = fork(); -+ if (pid < 0) -+ return false; -+ -+ if (pid == 0) -+ { -+ /* child */ -+ close(fds[0]); -+ close(STDOUT_FILENO); -+ rc = dup2(fds[1], STDOUT_FILENO); -+ if (rc >= 0) -+ execve(VBOXADPCTL_IFCONFIG_PATH, argv, envp); -+ return false; -+ } -+ -+ /* parent */ -+ close(fds[1]); -+ FILE *fp = fdopen(fds[0], "r"); - if (!fp) - return false; - -@@ -124,9 +149,6 @@ - for (cAddrs = 0; cAddrs < MAX_ADDRESSES && fgets(szBuf, sizeof(szBuf), fp);) - { - int cbSkipWS = strspn(szBuf, " \t"); --#if 0 /* Don't use this! assert() breaks the mac build. Use IPRT or be a rectangular building thing. */ -- assert(cbSkipWS < 20); --#endif - char *pszWord = strtok(szBuf + cbSkipWS, " "); - /* We are concerned with IPv6 address lines only. */ - if (!pszWord || strcmp(pszWord, "inet6")) -@@ -143,11 +165,12 @@ - continue; - strncpy(aszAddresses[cAddrs++], pszWord, MAX_ADDRLEN-1); - } -- pclose(fp); -+ fclose(fp); - - for (int i = 0; i < cAddrs; i++) - { -- if (executeIfconfig(pszAdapterName, "inet6", VBOXADPCTL_DEL_CMD, aszAddresses[i]) != EXIT_SUCCESS) -+ if (executeIfconfig(pszAdapterName, "inet6", -+ VBOXADPCTL_DEL_CMD, aszAddresses[i]) != EXIT_SUCCESS) - return false; - } - -@@ -166,19 +189,41 @@ - int rc = ioctl(fd, uCmd, pData); - if (rc == -1) - { -- perror("VBoxNetAdpCtl: ioctl failed for " VBOXNETADP_CTL_DEV_NAME); -+ perror("VBoxNetAdpCtl: ioctl failed for " VBOXNETADP_CTL_DEV_NAME); - rc = ADPCTLERR_IOCTL_FAILED; - } -- -+ - close(fd); -- -+ - return rc; - } - -+int checkAdapterName(const char *pcszNameIn, char *pszNameOut) -+{ -+ int iAdapterIndex = -1; -+ -+ if ( strlen(pcszNameIn) >= VBOXNETADP_MAX_NAME_LEN -+ || sscanf(pcszNameIn, "vboxnet%d", &iAdapterIndex) != 1 -+ || iAdapterIndex < 0 || iAdapterIndex > 99 ) -+ { -+ fprintf(stderr, "Setting configuration for %s is not supported.\n", pcszNameIn); -+ return ADPCTLERR_BAD_NAME; -+ } -+ sprintf(pszNameOut, "vboxnet%d", iAdapterIndex); -+ if (strcmp(pszNameOut, pcszNameIn)) -+ { -+ fprintf(stderr, "Invalid adapter name %s.\n", pcszNameIn); -+ return ADPCTLERR_BAD_NAME; -+ } -+ -+ return 0; -+} -+ - int main(int argc, char *argv[]) - - { -- const char *pszAdapterName; -+ char szAdapterName[VBOXNETADP_MAX_NAME_LEN]; -+ char *pszAdapterName; - const char *pszAddress; - const char *pszNetworkMask = NULL; - const char *pszOption = NULL; -@@ -216,13 +261,18 @@ - pszAddress = argv[2]; - if (strcmp("remove", pszAddress) == 0) - { -- strncpy(Req.szName, pszAdapterName, sizeof(Req.szName)); -+ rc = checkAdapterName(pszAdapterName, szAdapterName); -+ if (rc) -+ return rc; -+ memset(&Req, '\0', sizeof(Req)); -+ snprintf(Req.szName, sizeof(Req.szName), "%s", szAdapterName); - return doIOCtl(VBOXNETADP_CTL_REMOVE, &Req); - } - break; - case 2: - if (strcmp("add", argv[1]) == 0) - { -+ memset(&Req, '\0', sizeof(Req)); - rc = doIOCtl(VBOXNETADP_CTL_ADD, &Req); - if (rc == 0) - puts(Req.szName); -@@ -237,11 +287,11 @@ - return 1; - } - -- if (strncmp("vboxnet", pszAdapterName, 7)) -- { -- fprintf(stderr, "Setting configuration for %s is not supported.\n", pszAdapterName); -- return 2; -- } -+ rc = checkAdapterName(pszAdapterName, szAdapterName); -+ if (rc) -+ return rc; -+ -+ pszAdapterName = szAdapterName; - - if (fRemove) - { -@@ -276,3 +326,4 @@ - } - return rc; - } -+ diff --git a/emulators/virtualbox-ose-kmod/files/pkg-install.in b/emulators/virtualbox-ose-kmod/files/pkg-install.in deleted file mode 100644 index 5d5268d8e8ce..000000000000 --- a/emulators/virtualbox-ose-kmod/files/pkg-install.in +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -case $2 in -POST-INSTALL) - GROUP=%%VBOXGROUP%% - GID=%%VBOXGID%% - PW=/usr/sbin/pw - - if ${PW} group show "${GROUP}" 2>/dev/null; then - echo "You already have a group \"${GROUP}\", so I will use it." - else - if ${PW} groupadd ${GROUP} -g ${GID}; then - echo "Added group \"${GROUP}\"." - else - echo "Adding group \"${GROUP}\" failed..." - exit 1 - fi - fi - - exit 0 - ;; -esac diff --git a/emulators/virtualbox-ose-kmod/files/vboxnet.in b/emulators/virtualbox-ose-kmod/files/vboxnet.in new file mode 100644 index 000000000000..69cb0e402521 --- /dev/null +++ b/emulators/virtualbox-ose-kmod/files/vboxnet.in @@ -0,0 +1,71 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: vboxnet +# REQUIRE: FILESYSTEMS +# BEFORE: netif +# KEYWORD: nojail + +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# vboxnet_enable (bool): Set to NO by default. +# Set it to YES to load network related kernel modules on startup + +. %%RC_SUBR%% + +name="vboxnet" +rcvar=${name}_enable +start_cmd="vboxnet_start" +stop_cmd="vboxnet_stop" + +vboxnet_start() +{ + if ! kldstat -q -m ng_vboxnetflt; + then + if ! kldload vboxnetflt > /dev/null 2>&1; + then + warn "Can't load vboxnetflt module." + return 1 + fi + fi + + if ! kldstat -q -m vboxnetadp; + then + if ! kldload vboxnetadp > /dev/null 2>&1; + then + warn "Can't load vboxnetadp module." + return 1 + fi + fi +} + +vboxnet_stop() +{ + if kldstat -q -m vboxnetadp; + then + if ! kldunload vboxnetadp > /dev/null 2>&1; + then + warn "Can't unload vboxnetadp module." + return 1 + fi + fi + + if kldstat -q -m ng_vboxnetflt; + then + if ! kldunload vboxnetflt > /dev/null 2>&1; + then + warn "Can't unload vboxnetflt module." + return 1 + fi + fi +} + +load_rc_config $name + +: ${vboxnet_enable="NO"} + +run_rc_command "$1" diff --git a/emulators/virtualbox-ose-kmod/pkg-message b/emulators/virtualbox-ose-kmod/pkg-message deleted file mode 100644 index 91b8b16427cd..000000000000 --- a/emulators/virtualbox-ose-kmod/pkg-message +++ /dev/null @@ -1,26 +0,0 @@ -============================================================================= - -VirtualBox was installed. - -You need to load the vboxdrv kernel module and a mounted /proc filesystem. - -% mount -t procfs proc /proc -% kldload vboxdrv - -For bridged networking you also need to load the vboxnetflt kernel module. - -% kldload vboxnetflt - -You also have to add all users to your vboxusers group in order to use vbox. - -% pw groupmod vboxusers -m jerry - -Running VirtualBox as non-root user may fail with a fatal error -NS_ERROR_FACTORY_NOT_REGISTERED. In this case delete /tmp/.vbox-*-ipc file. - -Check wiki page for known issues and troubleshooting: -http://wiki.freebsd.org/VirtualBox - -Please report any problems to emulation@. Thanks! - -============================================================================= diff --git a/emulators/virtualbox-ose-kmod/pkg-plist b/emulators/virtualbox-ose-kmod/pkg-plist index f8ade22c00a7..f4567ba3fc9a 100644 --- a/emulators/virtualbox-ose-kmod/pkg-plist +++ b/emulators/virtualbox-ose-kmod/pkg-plist @@ -1,598 +1,4 @@ -%%X11%%bin/VBoxBFE -bin/VBoxHeadless -bin/VBoxManage -bin/VBoxNetAdpCtl -bin/VBoxNetDHCP -%%X11%%bin/VBoxSDL -bin/VBoxSVC -%%X11%%bin/VBoxTestOGL -bin/VBoxXPCOMIPCD -%%QT4%%bin/VirtualBox -%%X11%%lib/virtualbox/VBoxBFE -%%X11%%lib/virtualbox/VBoxBFE.so -lib/virtualbox/VBoxDD.so -lib/virtualbox/VBoxDD2.so -lib/virtualbox/VBoxDDU.so -lib/virtualbox/VBoxGuestPropSvc.so -lib/virtualbox/VBoxHeadless -lib/virtualbox/VBoxHeadless.so -%%QT4%%lib/virtualbox/VBoxKeyboard.so -lib/virtualbox/VBoxManage -lib/virtualbox/VBoxNetAdpCtl -lib/virtualbox/VBoxNetDHCP -lib/virtualbox/VBoxNetDHCP.so -%%X11%%lib/virtualbox/VBoxOGLhostcrutil.so -%%X11%%lib/virtualbox/VBoxOGLhosterrorspu.so -%%X11%%lib/virtualbox/VBoxOGLrenderspu.so -lib/virtualbox/VBoxPython.so -lib/virtualbox/VBoxREM.so -%%X11%%lib/virtualbox/VBoxTestOGL -%%I386%%lib/virtualbox/VBoxREM32.so -%%I386%%lib/virtualbox/VBoxREM64.so -lib/virtualbox/VBoxRT.so -%%X11%%lib/virtualbox/VBoxSDL -%%X11%%lib/virtualbox/VBoxSDL.so -lib/virtualbox/VBoxSVC -lib/virtualbox/VBoxSharedClipboard.so -%%X11%%lib/virtualbox/VBoxSharedCrOpenGL.so -lib/virtualbox/VBoxSharedFolders.so -lib/virtualbox/VBoxVMM.so -lib/virtualbox/VBoxXPCOM.so -lib/virtualbox/VBoxXPCOMC.so -lib/virtualbox/VBoxXPCOMIPCD -%%QT4%%lib/virtualbox/VirtualBox -%%QT4%%lib/virtualbox/VirtualBox.so -lib/virtualbox/VBoxDD2GC.gc -lib/virtualbox/VBoxDDGC.gc -lib/virtualbox/VMMGC.gc -lib/virtualbox/VBoxDD2R0.r0 -lib/virtualbox/VBoxDDR0.r0 -%%GUESTADDITIONS%%lib/virtualbox/additions/VBoxGuestAdditions.iso -%%GUESTADDITIONS%%lib/virtualbox/additions/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 -lib/virtualbox/components/VBoxSVCM.so -lib/virtualbox/components/VBoxC.so -lib/virtualbox/components/VBoxXPCOMBase.xpt -%%NLS%%%%DATADIR%%/nls/VirtualBox_ar.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_bg.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ca.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_cs.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_de.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_el.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_es.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_eu.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_fi.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_fr.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_hu.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_id.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_it.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ja.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_km_KH.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ko.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_nl.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_pl.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_pt.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_pt_BR.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ro.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ru.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_sk.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_sr.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_sv.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_tr.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_uk.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_zh_CN.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_zh_TW.qm -%%NLS%%%%DATADIR%%/nls/qt_ar.qm -%%NLS%%%%DATADIR%%/nls/qt_bg.qm -%%NLS%%%%DATADIR%%/nls/qt_ca.qm -%%NLS%%%%DATADIR%%/nls/qt_cs.qm -%%NLS%%%%DATADIR%%/nls/qt_de.qm -%%NLS%%%%DATADIR%%/nls/qt_el.qm -%%NLS%%%%DATADIR%%/nls/qt_es.qm -%%NLS%%%%DATADIR%%/nls/qt_eu.qm -%%NLS%%%%DATADIR%%/nls/qt_fi.qm -%%NLS%%%%DATADIR%%/nls/qt_fr.qm -%%NLS%%%%DATADIR%%/nls/qt_hu.qm -%%NLS%%%%DATADIR%%/nls/qt_id.qm -%%NLS%%%%DATADIR%%/nls/qt_it.qm -%%NLS%%%%DATADIR%%/nls/qt_ja.qm -%%NLS%%%%DATADIR%%/nls/qt_km_KH.qm -%%NLS%%%%DATADIR%%/nls/qt_ko.qm -%%NLS%%%%DATADIR%%/nls/qt_nl.qm -%%NLS%%%%DATADIR%%/nls/qt_pl.qm -%%NLS%%%%DATADIR%%/nls/qt_pt.qm -%%NLS%%%%DATADIR%%/nls/qt_pt_BR.qm -%%NLS%%%%DATADIR%%/nls/qt_ro.qm -%%NLS%%%%DATADIR%%/nls/qt_ru.qm -%%NLS%%%%DATADIR%%/nls/qt_sk.qm -%%NLS%%%%DATADIR%%/nls/qt_sr.qm -%%NLS%%%%DATADIR%%/nls/qt_sv.qm -%%NLS%%%%DATADIR%%/nls/qt_tr.qm -%%NLS%%%%DATADIR%%/nls/qt_uk.qm -%%NLS%%%%DATADIR%%/nls/qt_zh_CN.qm -%%NLS%%%%DATADIR%%/nls/qt_zh_TW.qm -%%QT4%%share/applications/virtualbox.desktop -%%QT4%%share/icons/hicolor/48x48/apps/VBox.png -%%DATADIR%%/idl/nsIDebug.idl -%%DATADIR%%/idl/nsIInterfaceRequestor.idl -%%DATADIR%%/idl/nsIMemory.idl -%%DATADIR%%/idl/nsIProgrammingLanguage.idl -%%DATADIR%%/idl/nsISupports.idl -%%DATADIR%%/idl/nsITraceRefcnt.idl -%%DATADIR%%/idl/nsIWeakReference.idl -%%DATADIR%%/idl/nsIConsoleMessage.idl -%%DATADIR%%/idl/nsIConsoleService.idl -%%DATADIR%%/idl/nsIConsoleListener.idl -%%DATADIR%%/idl/nsIErrorService.idl -%%DATADIR%%/idl/nsIException.idl -%%DATADIR%%/idl/nsIExceptionService.idl -%%DATADIR%%/idl/nsrootidl.idl -%%DATADIR%%/idl/nsIClassInfo.idl -%%DATADIR%%/idl/nsIFactory.idl -%%DATADIR%%/idl/nsIModule.idl -%%DATADIR%%/idl/nsIComponentRegistrar.idl -%%DATADIR%%/idl/nsIServiceManager.idl -%%DATADIR%%/idl/nsIComponentManager.idl -%%DATADIR%%/idl/nsICategoryManager.idl -%%DATADIR%%/idl/nsINativeComponentLoader.idl -%%DATADIR%%/idl/nsIComponentLoader.idl -%%DATADIR%%/idl/nsIComponentManagerObsolete.idl -%%DATADIR%%/idl/nsISupportsArray.idl -%%DATADIR%%/idl/nsIComponentLoaderManager.idl -%%DATADIR%%/idl/nsICollection.idl -%%DATADIR%%/idl/nsISerializable.idl -%%DATADIR%%/idl/nsIEnumerator.idl -%%DATADIR%%/idl/nsISimpleEnumerator.idl -%%DATADIR%%/idl/nsIObserverService.idl -%%DATADIR%%/idl/nsIObserver.idl -%%DATADIR%%/idl/nsIAtom.idl -%%DATADIR%%/idl/nsIAtomService.idl -%%DATADIR%%/idl/nsIProperties.idl -%%DATADIR%%/idl/nsIPersistentProperties2.idl -%%DATADIR%%/idl/nsIRecyclingAllocator.idl -%%DATADIR%%/idl/nsIStringEnumerator.idl -%%DATADIR%%/idl/nsISupportsPrimitives.idl -%%DATADIR%%/idl/nsISupportsIterators.idl -%%DATADIR%%/idl/nsITimelineService.idl -%%DATADIR%%/idl/nsIVariant.idl -%%DATADIR%%/idl/nsIArray.idl -%%DATADIR%%/idl/nsIPropertyBag.idl -%%DATADIR%%/idl/nsIHashable.idl -%%DATADIR%%/idl/nsIDirectoryService.idl -%%DATADIR%%/idl/nsIDirectoryEnumerator.idl -%%DATADIR%%/idl/nsIFile.idl -%%DATADIR%%/idl/nsILocalFile.idl -%%DATADIR%%/idl/nsIInputStream.idl -%%DATADIR%%/idl/nsILocalFileMac.idl -%%DATADIR%%/idl/nsIObjectInputStream.idl -%%DATADIR%%/idl/nsIBinaryInputStream.idl -%%DATADIR%%/idl/nsIObjectOutputStream.idl -%%DATADIR%%/idl/nsIBinaryOutputStream.idl -%%DATADIR%%/idl/nsIStreamBufferAccess.idl -%%DATADIR%%/idl/nsIOutputStream.idl -%%DATADIR%%/idl/nsIByteArrayInputStream.idl -%%DATADIR%%/idl/nsIFastLoadFileControl.idl -%%DATADIR%%/idl/nsISeekableStream.idl -%%DATADIR%%/idl/nsIInputStreamTee.idl -%%DATADIR%%/idl/nsIFastLoadService.idl -%%DATADIR%%/idl/nsIMultiplexInputStream.idl -%%DATADIR%%/idl/nsIPipe.idl -%%DATADIR%%/idl/nsIAsyncInputStream.idl -%%DATADIR%%/idl/nsIAsyncOutputStream.idl -%%DATADIR%%/idl/nsIScriptableInputStream.idl -%%DATADIR%%/idl/nsIStorageStream.idl -%%DATADIR%%/idl/nsILineInputStream.idl -%%DATADIR%%/idl/nsIStringStream.idl -%%DATADIR%%/idl/nsIProxyObjectManager.idl -%%DATADIR%%/idl/nsIEventQueue.idl -%%DATADIR%%/idl/nsIEventQueueService.idl -%%DATADIR%%/idl/nsIRunnable.idl -%%DATADIR%%/idl/nsIThread.idl -%%DATADIR%%/idl/nsIEventTarget.idl -%%DATADIR%%/idl/nsIEnvironment.idl -%%DATADIR%%/idl/nsITimer.idl -%%DATADIR%%/idl/nsITimerInternal.idl -%%DATADIR%%/idl/nsITimerManager.idl -%%DATADIR%%/idl/nsIInterfaceInfo.idl -%%DATADIR%%/idl/nsIProcess.idl -%%DATADIR%%/idl/nsIXPTLoader.idl -%%DATADIR%%/idl/nsIInterfaceInfoManager.idl -%%DATADIR%%/idl/ipcIMessageObserver.idl -%%DATADIR%%/idl/ipcIService.idl -%%DATADIR%%/idl/ipcIClientObserver.idl -%%DATADIR%%/idl/ipcILockService.idl -%%DATADIR%%/idl/ipcIDConnectService.idl -%%DATADIR%%/idl/ipcITransactionService.idl -%%DATADIR%%/idl/ipcITransactionObserver.idl -%%DATADIR%%/idl/VirtualBox_XPCOM.idl -%%DATADIR%%/samples/tstVBoxAPILinux.cpp -%%DATADIR%%/samples/Makefile -include/virtualbox/VBoxCAPI_v2_2.h -include/virtualbox/VBoxCAPI_v3_0.h -include/virtualbox/VBoxCAPI_v3_1.h -include/virtualbox/VirtualBox_XPCOM.h -include/virtualbox/ipcIClientObserver.h -include/virtualbox/ipcIDConnectService.h -include/virtualbox/ipcILockService.h -include/virtualbox/ipcIMessageObserver.h -include/virtualbox/ipcIService.h -include/virtualbox/ipcITransactionObserver.h -include/virtualbox/ipcITransactionService.h -include/virtualbox/ipcd/ipcCID.h -include/virtualbox/ipcd/ipcLockCID.h -include/virtualbox/ipcd/ipcMessageReader.h -include/virtualbox/ipcd/ipcMessageWriter.h -include/virtualbox/ipcd/ipcModule.h -include/virtualbox/ipcd/ipcModuleUtil.h -include/virtualbox/ipcd/ipcdclient.h -include/virtualbox/nsIArray.h -include/virtualbox/nsIAsyncInputStream.h -include/virtualbox/nsIAsyncOutputStream.h -include/virtualbox/nsIAtom.h -include/virtualbox/nsIAtomService.h -include/virtualbox/nsIBinaryInputStream.h -include/virtualbox/nsIBinaryOutputStream.h -include/virtualbox/nsIByteArrayInputStream.h -include/virtualbox/nsICategoryManager.h -include/virtualbox/nsIClassInfo.h -include/virtualbox/nsICollection.h -include/virtualbox/nsIComponentLoader.h -include/virtualbox/nsIComponentLoaderManager.h -include/virtualbox/nsIComponentManager.h -include/virtualbox/nsIComponentManagerObsolete.h -include/virtualbox/nsIComponentRegistrar.h -include/virtualbox/nsIConsoleListener.h -include/virtualbox/nsIConsoleMessage.h -include/virtualbox/nsIConsoleService.h -include/virtualbox/nsIDebug.h -include/virtualbox/nsIDirectoryEnumerator.h -include/virtualbox/nsIDirectoryService.h -include/virtualbox/nsIEnumerator.h -include/virtualbox/nsIEnvironment.h -include/virtualbox/nsIErrorService.h -include/virtualbox/nsIEventQueue.h -include/virtualbox/nsIEventQueueService.h -include/virtualbox/nsIEventTarget.h -include/virtualbox/nsIException.h -include/virtualbox/nsIExceptionService.h -include/virtualbox/nsIFactory.h -include/virtualbox/nsIFastLoadFileControl.h -include/virtualbox/nsIFastLoadService.h -include/virtualbox/nsIFile.h -include/virtualbox/nsIHashable.h -include/virtualbox/nsIInputStream.h -include/virtualbox/nsIInputStreamTee.h -include/virtualbox/nsIInterfaceInfo.h -include/virtualbox/nsIInterfaceInfoManager.h -include/virtualbox/nsIInterfaceRequestor.h -include/virtualbox/nsILineInputStream.h -include/virtualbox/nsILocalFile.h -include/virtualbox/nsILocalFileMac.h -include/virtualbox/nsIMemory.h -include/virtualbox/nsIModule.h -include/virtualbox/nsIMultiplexInputStream.h -include/virtualbox/nsINativeComponentLoader.h -include/virtualbox/nsIObjectInputStream.h -include/virtualbox/nsIObjectOutputStream.h -include/virtualbox/nsIObserver.h -include/virtualbox/nsIObserverService.h -include/virtualbox/nsIOutputStream.h -include/virtualbox/nsIPersistentProperties2.h -include/virtualbox/nsIPipe.h -include/virtualbox/nsIProcess.h -include/virtualbox/nsIProgrammingLanguage.h -include/virtualbox/nsIProperties.h -include/virtualbox/nsIPropertyBag.h -include/virtualbox/nsIProxyObjectManager.h -include/virtualbox/nsIRecyclingAllocator.h -include/virtualbox/nsIRunnable.h -include/virtualbox/nsIScriptableInputStream.h -include/virtualbox/nsISeekableStream.h -include/virtualbox/nsISerializable.h -include/virtualbox/nsIServiceManager.h -include/virtualbox/nsISimpleEnumerator.h -include/virtualbox/nsIStorageStream.h -include/virtualbox/nsIStreamBufferAccess.h -include/virtualbox/nsIStringEnumerator.h -include/virtualbox/nsIStringStream.h -include/virtualbox/nsISupports.h -include/virtualbox/nsISupportsArray.h -include/virtualbox/nsISupportsIterators.h -include/virtualbox/nsISupportsPrimitives.h -include/virtualbox/nsIThread.h -include/virtualbox/nsITimelineService.h -include/virtualbox/nsITimer.h -include/virtualbox/nsITimerInternal.h -include/virtualbox/nsITimerManager.h -include/virtualbox/nsITraceRefcnt.h -include/virtualbox/nsIVariant.h -include/virtualbox/nsIWeakReference.h -include/virtualbox/nsIXPTLoader.h -include/virtualbox/nsprpub/nspr.h -include/virtualbox/nsprpub/plarena.h -include/virtualbox/nsprpub/plarenas.h -include/virtualbox/nsprpub/plbase64.h -include/virtualbox/nsprpub/plerror.h -include/virtualbox/nsprpub/plgetopt.h -include/virtualbox/nsprpub/plhash.h -include/virtualbox/nsprpub/plresolv.h -include/virtualbox/nsprpub/plstr.h -include/virtualbox/nsprpub/pratom.h -include/virtualbox/nsprpub/prbit.h -include/virtualbox/nsprpub/prclist.h -include/virtualbox/nsprpub/prcmon.h -include/virtualbox/nsprpub/prcountr.h -include/virtualbox/nsprpub/prcvar.h -include/virtualbox/nsprpub/prdtoa.h -include/virtualbox/nsprpub/prenv.h -include/virtualbox/nsprpub/prerr.h -include/virtualbox/nsprpub/prerror.h -include/virtualbox/nsprpub/prinet.h -include/virtualbox/nsprpub/prinit.h -include/virtualbox/nsprpub/prinrval.h -include/virtualbox/nsprpub/prio.h -include/virtualbox/nsprpub/pripcsem.h -include/virtualbox/nsprpub/prlink.h -include/virtualbox/nsprpub/md/_iprt_atomic.h -include/virtualbox/nsprpub/md/_darwin.h -include/virtualbox/nsprpub/md/_freebsd.h -include/virtualbox/nsprpub/md/_l4v2.h -include/virtualbox/nsprpub/md/_linux.h -include/virtualbox/nsprpub/md/_macos.h -include/virtualbox/nsprpub/md/_netbsd.h -include/virtualbox/nsprpub/md/_openbsd.h -include/virtualbox/nsprpub/md/_os2_errors.h -include/virtualbox/nsprpub/md/_os2.h -include/virtualbox/nsprpub/md/_pcos.h -include/virtualbox/nsprpub/md/_solaris.h -include/virtualbox/nsprpub/md/_unix_errors.h -include/virtualbox/nsprpub/md/_unixos.h -include/virtualbox/nsprpub/md/_pth.h -include/virtualbox/nsprpub/md/prosdep.h -include/virtualbox/nsprpub/md/_freebsd.cfg -include/virtualbox/nsprpub/md/_linux.cfg -include/virtualbox/nsprpub/md/_darwin.cfg -include/virtualbox/nsprpub/md/_netbsd.cfg -include/virtualbox/nsprpub/md/_openbsd.cfg -include/virtualbox/nsprpub/md/_os2.cfg -include/virtualbox/nsprpub/md/_solaris32.cfg -include/virtualbox/nsprpub/md/_l4v2.cfg -include/virtualbox/nsprpub/md/_solaris64.cfg -include/virtualbox/nsprpub/prlock.h -include/virtualbox/nsprpub/prlog.h -include/virtualbox/nsprpub/prlong.h -include/virtualbox/nsprpub/prmem.h -include/virtualbox/nsprpub/prmon.h -include/virtualbox/nsprpub/prmwait.h -include/virtualbox/nsprpub/prnetdb.h -include/virtualbox/nsprpub/prolock.h -include/virtualbox/nsprpub/prpdce.h -include/virtualbox/nsprpub/prprf.h -include/virtualbox/nsprpub/prproces.h -include/virtualbox/nsprpub/prrng.h -include/virtualbox/nsprpub/prrwlock.h -include/virtualbox/nsprpub/prshm.h -include/virtualbox/nsprpub/prshma.h -include/virtualbox/nsprpub/prsystem.h -include/virtualbox/nsprpub/prthread.h -include/virtualbox/nsprpub/prtime.h -include/virtualbox/nsprpub/prtpool.h -include/virtualbox/nsprpub/prtrace.h -include/virtualbox/nsprpub/prtypes.h -include/virtualbox/nsprpub/prvrsion.h -include/virtualbox/nsprpub/prwin16.h -include/virtualbox/nsprpub/prcpucfg.h -include/virtualbox/nsprpub/obsolete/pralarm.h -include/virtualbox/nsprpub/obsolete/probslet.h -include/virtualbox/nsprpub/obsolete/protypes.h -include/virtualbox/nsprpub/obsolete/prsem.h -include/virtualbox/nsprpub/private/pprio.h -include/virtualbox/nsprpub/private/pprthred.h -include/virtualbox/nsprpub/private/prpriv.h -include/virtualbox/nsrootidl.h -include/virtualbox/string/nsAString.h -include/virtualbox/string/nsAlgorithm.h -include/virtualbox/string/nsCharTraits.h -include/virtualbox/string/nsDependentString.h -include/virtualbox/string/nsDependentSubstring.h -include/virtualbox/string/nsEmbedString.h -include/virtualbox/string/nsLiteralString.h -include/virtualbox/string/nsObsoleteAString.h -include/virtualbox/string/nsPrintfCString.h -include/virtualbox/string/nsPromiseFlatString.h -include/virtualbox/string/nsReadableUtils.h -include/virtualbox/string/nsString.h -include/virtualbox/string/nsStringAPI.h -include/virtualbox/string/nsStringFwd.h -include/virtualbox/string/nsStringIterator.h -include/virtualbox/string/nsSubstring.h -include/virtualbox/string/nsSubstringTuple.h -include/virtualbox/string/nsTAString.h -include/virtualbox/string/nsTString.h -include/virtualbox/string/nsTDependentString.h -include/virtualbox/string/nsTDependentSubstring.h -include/virtualbox/string/nsTObsoleteAString.h -include/virtualbox/string/nsTPromiseFlatString.h -include/virtualbox/string/nsTSubstring.h -include/virtualbox/string/nsTSubstringTuple.h -include/virtualbox/string/nsUTF8Utils.h -include/virtualbox/string/nsXPIDLString.h -include/virtualbox/string/string-template-def-char.h -include/virtualbox/string/string-template-def-unichar.h -include/virtualbox/string/string-template-undef.h -include/virtualbox/xpcom/nsAgg.h -include/virtualbox/xpcom/nsAppDirectoryServiceDefs.h -include/virtualbox/xpcom/nsArray.h -include/virtualbox/xpcom/nsArrayEnumerator.h -include/virtualbox/xpcom/nsAtomService.h -include/virtualbox/xpcom/nsAutoBuffer.h -include/virtualbox/xpcom/nsAutoLock.h -include/virtualbox/xpcom/nsAutoPtr.h -include/virtualbox/xpcom/nsBaseHashtable.h -include/virtualbox/xpcom/nsCOMArray.h -include/virtualbox/xpcom/nsCRT.h -include/virtualbox/xpcom/nsCategoryManagerUtils.h -include/virtualbox/xpcom/nsCheapSets.h -include/virtualbox/xpcom/nsClassHashtable.h -include/virtualbox/xpcom/nsCom.h -include/virtualbox/xpcom/nsComponentManagerObsolete.h -include/virtualbox/xpcom/nsComponentManagerUtils.h -include/virtualbox/xpcom/nsCppSharedAllocator.h -include/virtualbox/xpcom/nsID.h -include/virtualbox/xpcom/nsDataHashtable.h -include/virtualbox/xpcom/nsDebugImpl.h -include/virtualbox/xpcom/nsDeque.h -include/virtualbox/xpcom/nsDirectoryService.h -include/virtualbox/xpcom/nsDirectoryServiceDefs.h -include/virtualbox/xpcom/nsDirectoryServiceUtils.h -include/virtualbox/xpcom/nsDoubleHashtable.h -include/virtualbox/xpcom/nsEnumeratorUtils.h -include/virtualbox/xpcom/nsError.h -include/virtualbox/xpcom/nsEscape.h -include/virtualbox/xpcom/nsEventQueueUtils.h -include/virtualbox/xpcom/nsFastLoadPtr.h -include/virtualbox/xpcom/nsFastLoadService.h -include/virtualbox/xpcom/nsFixedSizeAllocator.h -include/virtualbox/xpcom/nsHashKeys.h -include/virtualbox/xpcom/nsHashSets.h -include/virtualbox/xpcom/nsHashtable.h -include/virtualbox/xpcom/nsIAllocator.h -include/virtualbox/xpcom/nsIByteBuffer.h -include/virtualbox/xpcom/nsIID.h -include/virtualbox/xpcom/nsIServiceManagerObsolete.h -include/virtualbox/xpcom/nsIServiceManagerUtils.h -include/virtualbox/xpcom/nsISupportsBase.h -include/virtualbox/xpcom/nsISupportsObsolete.h -include/virtualbox/xpcom/nsIUnicharBuffer.h -include/virtualbox/xpcom/nsIUnicharInputStream.h -include/virtualbox/xpcom/nsInt64.h -include/virtualbox/xpcom/nsInterfaceHashtable.h -include/virtualbox/xpcom/nsLinebreakConverter.h -include/virtualbox/xpcom/nsLocalFile.h -include/virtualbox/xpcom/nsLocalFileUnix.h -include/virtualbox/xpcom/nsLocalFileOS2.h -include/virtualbox/xpcom/nsLocalFileOSX.h -include/virtualbox/xpcom/nsModule.h -include/virtualbox/xpcom/nsMultiplexInputStream.h -include/virtualbox/xpcom/nsNativeCharsetUtils.h -include/virtualbox/xpcom/nsProcess.h -include/virtualbox/xpcom/nsNativeComponentLoader.h -include/virtualbox/xpcom/nsObserverService.h -include/virtualbox/xpcom/nsObsoleteModuleLoading.h -include/virtualbox/xpcom/nsProxiedService.h -include/virtualbox/xpcom/nsProxyEvent.h -include/virtualbox/xpcom/nsProxyRelease.h -include/virtualbox/xpcom/nsQuickSort.h -include/virtualbox/xpcom/nsRecyclingAllocator.h -include/virtualbox/xpcom/nsRefPtrHashtable.h -include/virtualbox/xpcom/nsScriptableInputStream.h -include/virtualbox/xpcom/nsStaticAtom.h -include/virtualbox/xpcom/nsStaticComponent.h -include/virtualbox/xpcom/nsStaticNameTable.h -include/virtualbox/xpcom/nsStorageStream.h -include/virtualbox/xpcom/nsStreamUtils.h -include/virtualbox/xpcom/nsStringEnumerator.h -include/virtualbox/xpcom/nsStringIO.h -include/virtualbox/xpcom/nsTHashtable.h -include/virtualbox/xpcom/nsStringStream.h -include/virtualbox/xpcom/nsSupportsArray.h -include/virtualbox/xpcom/nsSupportsPrimitives.h -include/virtualbox/xpcom/nsTextFormatter.h -include/virtualbox/xpcom/nsTime.h -include/virtualbox/xpcom/nsTraceRefcntImpl.h -include/virtualbox/xpcom/nsUnitConversion.h -include/virtualbox/xpcom/nsValueArray.h -include/virtualbox/xpcom/nsVariant.h -include/virtualbox/xpcom/nsVoidArray.h -include/virtualbox/xpcom/nsWeakPtr.h -include/virtualbox/xpcom/nsXPCOM.h -include/virtualbox/xpcom/nsXPCOMCID.h -include/virtualbox/xpcom/nscore.h -include/virtualbox/xpcom/pldhash.h -include/virtualbox/xpcom/plevent.h -include/virtualbox/xpcom/xcDll.h -include/virtualbox/xpcom/xpt_arena.h -include/virtualbox/xpcom/xpt_struct.h -include/virtualbox/xpcom/xpt_xdr.h -include/virtualbox/xpcom/xptcall.h -include/virtualbox/xpcom/xptcstubsdecl.inc -include/virtualbox/xpcom/xptcstubsdef.inc -include/virtualbox/xpcom/xptinfo.h -include/virtualbox/xpcom/nsIInterfaceRequestorUtils.h -include/virtualbox/xpcom/nsISupportsImpl.h -include/virtualbox/xpcom/nsISupportsUtils.h -include/virtualbox/xpcom/nsIWeakReferenceUtils.h -include/virtualbox/xpcom/nsCOMPtr.h -include/virtualbox/xpcom/nsDebug.h -include/virtualbox/xpcom/nsGenericFactory.h -include/virtualbox/xpcom/nsIGenericFactory.h -include/virtualbox/xpcom/nsMemory.h -include/virtualbox/xpcom/nsTraceRefcnt.h -include/virtualbox/xpcom/nsWeakReference.h -include/virtualbox/xpcom/nsXPCOMGlue.h -include/virtualbox/xpcom/xpcom-config.h -%%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 -@dirrm include/virtualbox/nsprpub/obsolete -@dirrm include/virtualbox/nsprpub/md -@dirrm include/virtualbox/nsprpub -@dirrm include/virtualbox/ipcd -@dirrm include/virtualbox -%%NLS%%@dirrm %%DATADIR%%/nls -@dirrm %%DATADIR%%/samples -@dirrm %%DATADIR%%/idl -@dirrm %%DATADIR%% -%%QT4%%@dirrmtry share/icons/hicolor/48x48/apps -%%QT4%%@dirrmtry share/icons/hicolor/48x48 -%%QT4%%@dirrmtry share/icons/hicolor -%%QT4%%@dirrmtry share/icons -%%QT4%%@dirrmtry share/applications -@dirrm lib/virtualbox/components -%%GUESTADDITIONS%%@dirrm lib/virtualbox/additions -@dirrm lib/virtualbox +@comment $FreeBSD$ @cwd / %%KMODDIR%%/vboxdrv.ko %%KMODDIR%%/vboxnetadp.ko diff --git a/emulators/virtualbox-ose-legacy/Makefile b/emulators/virtualbox-ose-legacy/Makefile index 46617a1b64b8..8b12ae5b785f 100644 --- a/emulators/virtualbox-ose-legacy/Makefile +++ b/emulators/virtualbox-ose-legacy/Makefile @@ -1,21 +1,20 @@ -# New ports collection makefile for: virtualbox +# New ports collection makefile for: virtualbox-ose # Date created: 2009-05-02 # Whom: Bernhard Froehlich <decke@bluelife.at> # # $FreeBSD$ # -PORTNAME= virtualbox -DISTVERSION= 3.0.51r22902 -PORTREVISION= 3 -CATEGORIES= emulators kld +PORTNAME= virtualbox-ose +DISTVERSION= 3.1.2 +CATEGORIES= emulators MASTER_SITES= http://tmp.chruetertee.ch/ \ http://freebsd.unixfreunde.de/sources/ \ http://disasterarea.chruetertee.ch/ \ http://mirror.4bit.ws/ \ http://dlc.sun.com/virtualbox/${VBOX_GUEST_VER}/:guestadditions -DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${GADISTFILES} -EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} +DISTFILES= VirtualBox-${DISTVERSION}-OSE${EXTRACT_SUFX} ${GADISTFILES} +EXTRACT_ONLY= VirtualBox-${DISTVERSION}-OSE${EXTRACT_SUFX} #for discussion please use emulation@FreeBSD.org MAINTAINER= vbox@FreeBSD.org @@ -28,10 +27,11 @@ BUILD_DEPENDS= yasm:${PORTSDIR}/devel/yasm \ LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \ xslt.2:${PORTSDIR}/textproc/libxslt \ curl.5:${PORTSDIR}/ftp/curl +RUN_DEPENDS= /boot/modules/vboxdrv.ko:${PORTSDIR}/emulators/virtualbox-ose-kmod +WRKSRC= ${WRKDIR}/VirtualBox-${PORTVERSION}_OSE ONLY_FOR_ARCHS= i386 amd64 USE_GNOME= libidl -USE_CDRTOOLS= yes USE_BZIP2= yes USE_PYTHON= yes USE_PYDISTUTILS= easy_install @@ -48,7 +48,7 @@ CONFLICTS= bcc-[0-9]* VBOXGROUP?= vboxusers VBOXGID?= 920 VBOX_FRONTENDS= VBoxHeadless -VBOX_GUEST_VER= 3.0.6 +VBOX_GUEST_VER= ${PORTVERSION} SUB_FILES= pkg-install @@ -66,12 +66,10 @@ OPTIONS= QT4 "Build with QT4 Frontend" on \ .include <bsd.port.options.mk> -PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,} \ - PYTHON_VER=${PYTHON_VER} \ +PLIST_SUB+= PYTHON_VER=${PYTHON_VER} \ PYTHON_VERU=${PYTHON_VER:S/./_/} \ GUEST_VER=${VBOX_GUEST_VER} -KMODDIR= /boot/modules KMK_BUILDTYPE= release KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys KMK_FLAGS= @@ -130,6 +128,8 @@ CONFIGURE_ARGS+=--disable-dbus .if !defined(WITH_PULSEAUDIO) CONFIGURE_ARGS+=--disable-pulse +.else +LIB_DEPENDS+= pulse.0:${PORTSDIR}/audio/pulseaudio .endif .if !defined(WITHOUT_NLS) @@ -138,10 +138,6 @@ PLIST_SUB+= NLS="" PLIST_SUB+= NLS="@comment " .endif -.if !exists(${SRC_BASE}/sys/kern/bus_if.m) -IGNORE= requires kernel sources for the kernel module -.endif - .if ${OSVERSION} < 700000 BROKEN= Does not compile on FreeBSD 6.X .endif @@ -172,7 +168,9 @@ post-patch: @${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 - @${ECHO} 'VBOX_WITH_TESTCASES=' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_VBOXDRV = ' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_NETFLT = 1' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_NETADP = ' >> ${WRKSRC}/LocalConfig.kmk .if defined(WITHOUT_X11) @${ECHO} 'VBOX_WITH_X11_ADDITIONS=' >> ${WRKSRC}/LocalConfig.kmk .endif @@ -191,11 +189,6 @@ do-build: cd ${WRKSRC} && ${SH} env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS} do-install: - ${MKDIR} ${KMODDIR} -.for f in vboxdrv.ko vboxnetadp.ko vboxnetflt.ko - ${INSTALL_KLD} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/${f} ${KMODDIR} -.endfor - ${MKDIR} ${DATADIR} (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom && ${COPYTREE_SHARE} "idl samples" ${DATADIR}) diff --git a/emulators/virtualbox-ose-legacy/distinfo b/emulators/virtualbox-ose-legacy/distinfo index 492de57d1c4a..e1b840762c30 100644 --- a/emulators/virtualbox-ose-legacy/distinfo +++ b/emulators/virtualbox-ose-legacy/distinfo @@ -1,6 +1,6 @@ -MD5 (virtualbox-3.0.51r22902.tar.bz2) = c2fbfd0eca2d2c9e6ad5f029cf75def0 -SHA256 (virtualbox-3.0.51r22902.tar.bz2) = ccbc88276f9e1944005d1c2f3661ec6d7113b22801ecbbb72d422aa0ab2b0a2a -SIZE (virtualbox-3.0.51r22902.tar.bz2) = 51742256 -MD5 (VBoxGuestAdditions_3.0.6.iso) = 8d033b4f66db1a3e5b914da1717e9c21 -SHA256 (VBoxGuestAdditions_3.0.6.iso) = d6a8b61ef1004637c8be3a70612bb0e101f552d7eb0a9a376ff1ad264baf6a3c -SIZE (VBoxGuestAdditions_3.0.6.iso) = 32786432 +MD5 (VirtualBox-3.1.2-OSE.tar.bz2) = e7808f16114f5b1a65aa2df1aa33e1a7 +SHA256 (VirtualBox-3.1.2-OSE.tar.bz2) = 293f582e37eda29efdb53c6468481b446e1964592f5728656b74664f4d32f2b1 +SIZE (VirtualBox-3.1.2-OSE.tar.bz2) = 55553394 +MD5 (VBoxGuestAdditions_3.1.2.iso) = d1ac5c53fb889338849134e07a6bc16f +SHA256 (VBoxGuestAdditions_3.1.2.iso) = 0180a76f011f3992a70e5168d24ce04a08a23fc94858140096a8fa175e742489 +SIZE (VBoxGuestAdditions_3.1.2.iso) = 33337344 diff --git a/emulators/virtualbox-ose-legacy/files/patch-configure b/emulators/virtualbox-ose-legacy/files/patch-configure index c6532c3db606..a4aaf507ccc9 100644 --- a/emulators/virtualbox-ose-legacy/files/patch-configure +++ b/emulators/virtualbox-ose-legacy/files/patch-configure @@ -1,15 +1,33 @@ ---- configure.orgi 2009-05-31 13:43:50.000000000 +0200 -+++ configure 2009-05-31 13:45:47.000000000 +0200 -@@ -102,7 +102,7 @@ - XSLTPROC="xsltproc" +--- configure.orig 2009-12-17 15:23:05.000000000 +0100 ++++ configure 2009-12-21 14:25:45.000000000 +0100 +@@ -107,7 +107,7 @@ GENISOIMAGE="genisoimage" MKISOFS="mkisofs" + INCCRYPTO="" -LIBCRYPTO="-lcrypto" +LIBCRYPTO="-lcrypto -lssl" LIBPTHREAD="-lpthread" LIBCAP="-lcap" GSOAP="" -@@ -1698,7 +1698,7 @@ +@@ -125,6 +125,8 @@ + if [ "$OS" = "freebsd" ]; then + INCCURL="-I/usr/local/include" + LIBCURL="-L/usr/local/lib -lcurl" ++ INCPULSE="-I/usr/local/include" ++ LIBPULSE="-L/usr/local/lib" + else + INCCURL="" + LIBCURL="-lcurl" +@@ -1181,7 +1183,7 @@ + #endif + } + EOF +- if test_compile "-lpulse" pulse pulse; then ++ if test_compile "$INCPULSE $LIBPULSE -lpulse" pulse pulse; then + test_execute + fi + } +@@ -1773,7 +1775,7 @@ cat $ODIR.tmp_src.cc >> $LOG echo "using the following command line:" >> $LOG echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so" >> $LOG @@ -18,3 +36,31 @@ if [ $? -eq 0 ]; then found=1 break +@@ -2315,6 +2317,15 @@ + [ $WITH_QT4 -eq 1 ] && check_qt4 + [ $WITH_PYTHON -eq 1 ] && check_python + ++# PulseAudio ++if [ "$OS" = "linux" -o "$OS" = "freebsd" ]; then ++ if [ $WITH_PULSE -eq 1 ]; then ++ check_pulse ++ else ++ cnf_append "VBOX_WITH_PULSE" "" ++ fi ++fi ++ + # Linux-specific + if [ "$OS" = "linux" ]; then + # don't check for the static libstdc++ in the PUEL version as we build the +@@ -2332,11 +2343,6 @@ + else + cnf_append "VBOX_WITH_ALSA" "" + fi +- if [ $WITH_PULSE -eq 1 ]; then +- check_pulse +- else +- cnf_append "VBOX_WITH_PULSE" "" +- fi + if [ $WITH_DBUS -eq 0 ]; then + cnf_append "VBOX_WITH_DBUS" "" + fi diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk new file mode 100644 index 000000000000..cc5553f7736d --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk @@ -0,0 +1,20 @@ +Index: src/VBox/Additions/x11/VBoxClient/Makefile.kmk +=================================================================== +--- src/VBox/Additions/x11/VBoxClient/Makefile.kmk (revision 25472) ++++ src/VBox/Additions/x11/VBoxClient/Makefile.kmk (revision 25473) +@@ -43,11 +43,14 @@ + $(VBOX_LIBPATH32_X11) + VBoxClient_LIBS.freebsd = \ + iconv ++VBoxClient_LIBS.linux = \ ++ dl ++VBoxClient_LIBS.solaris = \ ++ dl + VBoxClient_LIBS = \ + $(VBOX_LIB_IPRT_GUEST_R3) \ + $(VBOX_LIB_VBGL_R3) \ + $(VBOX_LIB_IPRT_GUEST_R3) \ +- dl \ + X11 \ + Xt + # These are static replacements for gcc-specific parts of libstdc++ diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Devices-Audio-audio.c b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Devices-Audio-audio.c new file mode 100644 index 000000000000..16a3f8a69f73 --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Devices-Audio-audio.c @@ -0,0 +1,14 @@ +--- src/VBox/Devices/Audio/audio.c.orig 2009-12-15 14:54:13.000000000 +0900 ++++ src/VBox/Devices/Audio/audio.c 2009-12-15 14:53:54.000000000 +0900 +@@ -73,6 +73,11 @@ + &pulse_audio_driver, + # endif + #endif /* RT_OS_LINUX */ ++#ifdef RT_OS_FREEBSD ++# ifdef VBOX_WITH_PULSE ++ &pulse_audio_driver, ++# endif ++#endif + #ifdef RT_OS_DARWIN + &coreaudio_audio_driver, + #endif diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Devices-Makefile.kmk b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Devices-Makefile.kmk index d404c8aee176..b76f318af457 100644 --- a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Devices-Makefile.kmk +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Devices-Makefile.kmk @@ -1,15 +1,13 @@ ---- src/VBox/Devices/Makefile.kmk.orig 2009-11-01 22:50:39.000000000 +0100 -+++ src/VBox/Devices/Makefile.kmk 2009-11-01 22:50:52.000000000 +0100 -@@ -31,8 +31,10 @@ - include $(PATH_SUB_CURRENT)/PC/VMI/Makefile.kmk - endif - include $(PATH_SUB_CURRENT)/Graphics/BIOS/Makefile.kmk --include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk --include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk -+ifdef VBOX_WITH_TESTCASES -+ include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk -+ include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk -+endif - ifndef VBOX_OSE - include $(PATH_SUB_CURRENT)/Storage/VBoxHDDFormats/Makefile.kmk +--- src/VBox/Devices/Makefile.kmk.orig 2009-12-17 15:27:43.000000000 +0100 ++++ src/VBox/Devices/Makefile.kmk 2009-12-21 14:29:56.000000000 +0100 +@@ -970,6 +970,10 @@ + Drivers_SOURCES.linux+= \ + Audio/pulseaudio.c \ + Audio/pulse_stubs.c ++ Drivers_DEFS.freebsd += VBOX_WITH_PULSE ++ Drivers_SOURCES.freebsd+= \ ++ Audio/pulseaudio.c \ ++ Audio/pulse_stubs.c endif + + ifdef VBOX_WITH_USB diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageHelp.cpp b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageHelp.cpp new file mode 100644 index 000000000000..ffe2a20ceb63 --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageHelp.cpp @@ -0,0 +1,37 @@ +--- src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp.orig 2009-12-15 15:16:21.000000000 +0900 ++++ src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp 2009-12-15 15:14:01.000000000 +0900 +@@ -41,6 +41,11 @@ + #else + bool fSolaris = false; + #endif ++#ifdef RT_OS_FREEBSD ++ bool fFreeBSD = true; ++#else ++ bool fFreeBSD = false; ++#endif + #ifdef RT_OS_DARWIN + bool fDarwin = true; + #else +@@ -62,6 +67,7 @@ + fLinux = true; + fWin = true; + fSolaris = true; ++ fFreeBSD = true; + fDarwin = true; + fVRDP = true; + fVBoxSDL = true; +@@ -227,6 +233,14 @@ + #endif + ); + } ++ if (fFreeBSD) ++ { ++ RTPrintf( "|oss" ++#ifdef VBOX_WITH_PULSE ++ "|pulse" ++#endif ++ ); ++ } + if (fDarwin) + { + RTPrintf( "|coreaudio"); diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageModifyVM.cpp b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageModifyVM.cpp new file mode 100644 index 000000000000..38111c6205d4 --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageModifyVM.cpp @@ -0,0 +1,23 @@ +--- src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp.orig 2009-09-09 23:39:46.000000000 +0900 ++++ src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp 2009-12-15 15:22:27.000000000 +0900 +@@ -1478,6 +1478,20 @@ + # endif + + #endif /* !RT_OS_SOLARIS */ ++#ifdef RT_OS_FREEBSD ++ else if (!strcmp(ValueUnion.psz, "oss")) ++ { ++ CHECK_ERROR(audioAdapter, COMSETTER(AudioDriver)(AudioDriverType_OSS)); ++ CHECK_ERROR(audioAdapter, COMSETTER(Enabled)(true)); ++ } ++# ifdef VBOX_WITH_PULSE ++ else if (!strcmp(ValueUnion.psz, "pulse")) ++ { ++ CHECK_ERROR(audioAdapter, COMSETTER(AudioDriver)(AudioDriverType_Pulse)); ++ CHECK_ERROR(audioAdapter, COMSETTER(Enabled)(true)); ++ } ++# endif ++#endif /* !RT_OS_FREEBSD */ + #ifdef RT_OS_DARWIN + else if (!strcmp(ValueUnion.psz, "coreaudio")) + { diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-Makefile.kmk b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-Makefile.kmk new file mode 100644 index 000000000000..5e9024588b8a --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-Makefile.kmk @@ -0,0 +1,27 @@ +--- src/VBox/HostDrivers/Makefile.kmk.orig 2009-10-05 11:17:45.000000000 +0200 ++++ src/VBox/HostDrivers/Makefile.kmk 2009-10-05 11:18:08.000000000 +0200 +@@ -40,7 +40,7 @@ + endif + endif + +- if1of ($(KBUILD_TARGET),linux freebsd) ++ if1of ($(KBUILD_TARGET),linux) + # + # Install the Makefile for module compliation on Linux and FreeBSD hosts + # +@@ -51,6 +51,7 @@ + HostDrivers-src_SOURCES.freebsd = freebsd/Makefile + endif + ++if 0 + if1of ($(KBUILD_TARGET),freebsd) + # + # Install the export_modules script for tar'ing the module sources on FreeBSD hosts +@@ -60,6 +61,7 @@ + HostDrivers-sh_MODE = a+rx,u+w + HostDrivers-sh_SOURCES.freebsd = freebsd/export_modules + endif ++endif + endif # !VBOX_ONLY_DOCS + + # Let kBuild generate the rules. diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-Support-SUPR3HardenedMain.cpp b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-Support-SUPR3HardenedMain.cpp new file mode 100644 index 000000000000..4a89fec97dfa --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-Support-SUPR3HardenedMain.cpp @@ -0,0 +1,33 @@ +--- src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp (revision 25471) ++++ src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp (revision 25472) +@@ -66,6 +66,9 @@ + # ifndef CAP_TO_MASK + # define CAP_TO_MASK(cap) RT_BIT(cap) + # endif ++# elif defined(RT_OS_FREEBSD) ++# include <sys/param.h> ++# include <sys/sysctl.h> + # elif defined(RT_OS_SOLARIS) + # include <priv.h> + # endif +@@ -325,7 +328,19 @@ + sprintf(szFileBuf, "/proc/%ld/path/a.out", (long)getpid()); + int cchLink = readlink(szFileBuf, &g_szSupLibHardenedExePath[0], sizeof(g_szSupLibHardenedExePath) - 1); + # else /* RT_OS_FREEBSD: */ +- int cchLink = readlink("/proc/curproc/file", &g_szSupLibHardenedExePath[0], sizeof(g_szSupLibHardenedExePath) - 1); ++ int aiName[4]; ++ size_t cbPath; ++ ++ aiName[0] = CTL_KERN; ++ aiName[1] = KERN_PROC; ++ aiName[2] = KERN_PROC_PATHNAME; ++ aiName[3] = getpid(); ++ ++ cbPath = sizeof(g_szSupLibHardenedExePath) - 1; ++ if(sysctl(aiName, RT_ELEMENTS(aiName), g_szSupLibHardenedExePath, &cbPath, NULL, 0) < 0) ++ supR3HardenedFatal("supR3HardenedExecDir: sysctl failed\n"); ++ ++ int cchLink = strlen(g_szSupLibHardenedExePath); + # endif + if (cchLink < 0 || cchLink == sizeof(g_szSupLibHardenedExePath) - 1) + supR3HardenedFatal("supR3HardenedExecDir: couldn't read \"%s\", errno=%d cchLink=%d\n", diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c deleted file mode 100644 index 0e223c4b9039..000000000000 --- a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c +++ /dev/null @@ -1,11 +0,0 @@ ---- src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c.orig 2009-12-07 12:20:44.000000000 +0100 -+++ src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c 2009-12-07 12:21:00.000000000 +0100 -@@ -92,7 +92,7 @@ - DECLARE_MODULE(vboxnetadp, g_VBoxNetAdpFreeBSDModule, SI_SUB_PSEUDO, SI_ORDER_ANY); - MODULE_VERSION(vboxnetadp, 1); - MODULE_DEPEND(vboxnetadp, vboxdrv, 1, 1, 1); --MODULE_DEPEND(vboxnetadp, ng_vboxnetflt, 1, 1, 1); -+MODULE_DEPEND(vboxnetadp, vboxnetflt, 1, 1, 1); - - /** - * Module event handler diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h deleted file mode 100644 index 250a1960a7f4..000000000000 --- a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h +++ /dev/null @@ -1,28 +0,0 @@ -Index: src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h -=================================================================== ---- src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h (revision 23391) -+++ src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h (working copy) -@@ -206,6 +206,14 @@ - hook_p output; - /** Original interface flags */ - unsigned int flags; -+ /** Input queue */ -+ struct ifqueue inq; -+ /** Output queue */ -+ struct ifqueue outq; -+ /** Input task */ -+ struct task tskin; -+ /** Output task */ -+ struct task tskout; - /** The MAC address of the interface. */ - RTMAC Mac; - /** @} */ -@@ -241,6 +249,8 @@ - # endif - #elif defined(RT_OS_LINUX) - uint8_t abPadding[320]; -+#elif defined(RT_OS_FREEBSD) -+ uint8_t abPadding[320]; - #else - uint8_t abPadding[128]; - #endif diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c deleted file mode 100644 index f23fedbf0ec0..000000000000 --- a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c +++ /dev/null @@ -1,384 +0,0 @@ -Index: src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c -=================================================================== ---- src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c (revision 23391) -+++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c (working copy) -@@ -43,6 +43,8 @@ - #include <sys/socket.h> - #include <sys/sockio.h> - #include <sys/syscallsubr.h> -+#include <sys/queue.h> -+#include <sys/taskqueue.h> - - #include <net/if.h> - #include <net/if_var.h> -@@ -78,8 +80,6 @@ - static ng_rcvdata_t ng_vboxnetflt_rcvdata; - static ng_disconnect_t ng_vboxnetflt_disconnect; - static int ng_vboxnetflt_mod_event(module_t mod, int event, void *data); --static int ng_vboxnetflt_rcv_in(hook_p node, item_p item); --static int ng_vboxnetflt_rcv_out(hook_p node, item_p item); - - /** Netgraph node type */ - #define NG_VBOXNETFLT_NODE_TYPE "vboxnetflt" -@@ -112,8 +112,8 @@ - { - .version = NG_ABI_VERSION, - .name = NG_VBOXNETFLT_NODE_TYPE, -- .mod_event = vboxnetflt_modevent, -- .constructor = ng_vboxnetflt_constructor, -+ .mod_event = vboxnetflt_modevent, -+ .constructor = ng_vboxnetflt_constructor, - .rcvmsg = ng_vboxnetflt_rcvmsg, - .shutdown = ng_vboxnetflt_shutdown, - .newhook = ng_vboxnetflt_newhook, -@@ -122,7 +122,7 @@ - .cmdlist = ng_vboxnetflt_cmdlist, - }; - NETGRAPH_INIT(vboxnetflt, &ng_vboxnetflt_typestruct); --MODULE_VERSION(ng_vboxnetflt, 1); -+MODULE_VERSION(vboxnetflt, 1); - MODULE_DEPEND(ng_vboxnetflt, vboxdrv, 1, 1, 1); - - /** -@@ -267,16 +267,12 @@ - if (strcmp(name, NG_VBOXNETFLT_HOOK_IN) == 0) - { - #if __FreeBSD_version >= 800000 -- NG_HOOK_SET_RCVDATA(hook, ng_vboxnetflt_rcv_in); - NG_HOOK_SET_TO_INBOUND(hook); - #endif - pThis->u.s.input = hook; - } - else if (strcmp(name, NG_VBOXNETFLT_HOOK_OUT) == 0) - { --#if __FreeBSD_version >= 800000 -- NG_HOOK_SET_RCVDATA(hook, ng_vboxnetflt_rcv_out); --#endif - pThis->u.s.output = hook; - } - else -@@ -310,161 +306,171 @@ - - /** - * Handle data on netgraph hooks. -+ * Frames processing is deferred to a taskqueue because this might -+ * be called with non-sleepable locks held and code paths inside -+ * the virtual switch might sleep. - */ - static int ng_vboxnetflt_rcvdata(hook_p hook, item_p item) - { - const node_p node = NG_HOOK_NODE(hook); - PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -+ struct ifnet *ifp = pThis->u.s.ifp; - struct mbuf *m; -+ struct m_tag *mtag; -+ bool fActive; - -+ fActive = ASMAtomicUoReadBool(&pThis->fActive); -+ -+ NGI_GET_M(item, m); -+ NG_FREE_ITEM(item); -+ -+ /* Locate tag to see if processing should be skipped for this frame */ -+ mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -+ if (mtag != NULL) -+ { -+ m_tag_unlink(m, mtag); -+ m_tag_free(mtag); -+ } -+ -+ /* -+ * Handle incoming hook. This is connected to the -+ * input path of the interface, thus handling incoming frames. -+ */ - if (pThis->u.s.input == hook) -- return ng_vboxnetflt_rcv_in(hook, item); -+ { -+ if (mtag != NULL || !fActive) -+ { -+ ether_demux(ifp, m); -+ return (0); -+ } -+ mtx_lock_spin(&pThis->u.s.inq.ifq_mtx); -+ _IF_ENQUEUE(&pThis->u.s.inq, m); -+ mtx_unlock_spin(&pThis->u.s.inq.ifq_mtx); -+ taskqueue_enqueue_fast(taskqueue_fast, &pThis->u.s.tskin); -+ } -+ /** -+ * Handle mbufs on the outgoing hook, frames going to the interface -+ */ - else if (pThis->u.s.output == hook) -- return ng_vboxnetflt_rcv_out(hook, item); -+ { -+ if (mtag != NULL || !fActive) -+ return ether_output_frame(ifp, m); -+ mtx_lock_spin(&pThis->u.s.outq.ifq_mtx); -+ _IF_ENQUEUE(&pThis->u.s.outq, m); -+ mtx_unlock_spin(&pThis->u.s.outq.ifq_mtx); -+ taskqueue_enqueue_fast(taskqueue_fast, &pThis->u.s.tskout); -+ } - else - { -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -+ m_freem(m); - } - return (0); - } - -+static int ng_vboxnetflt_shutdown(node_p node) -+{ -+ PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -+ bool fActive; -+ -+ /* Prevent node shutdown if we're active */ -+ fActive = ASMAtomicUoReadBool(&pThis->fActive); -+ if (fActive) -+ return (EBUSY); -+ NG_NODE_UNREF(node); -+ return (0); -+} -+ -+static int ng_vboxnetflt_disconnect(hook_p hook) -+{ -+ return (0); -+} -+ - /** -- * Handle incoming hook. This is connected to the -- * input path of the interface, thus handling incoming frames. -+ * Input processing task, handles incoming frames - */ --static int ng_vboxnetflt_rcv_in(hook_p hook, item_p item) -+static void vboxNetFltFreeBSDinput(void *arg, int pending) - { -+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; - struct mbuf *m, *m0; -- struct m_tag *mtag; -- const node_p node = NG_HOOK_NODE(hook); -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); - struct ifnet *ifp = pThis->u.s.ifp; -- bool fActive, fDropIt = false; - unsigned int cSegs = 0; -+ bool fDropIt = false, fActive; - PINTNETSG pSG; - -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -- -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (!fActive) -- goto out; -- -- mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -- if (mtag != NULL) -- { -- m_tag_unlink(m, mtag); -- m_tag_free(mtag); -- goto out; -- } - vboxNetFltRetain(pThis, true /* fBusy */); -- -- for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ for (;;) - { -- if (m0->m_len > 0) -- cSegs++; -- } -+ mtx_lock_spin(&pThis->u.s.inq.ifq_mtx); -+ _IF_DEQUEUE(&pThis->u.s.inq, m); -+ mtx_unlock_spin(&pThis->u.s.inq.ifq_mtx); -+ if (m == NULL) -+ break; - -+ for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ if (m0->m_len > 0) -+ cSegs++; -+ - #ifdef PADD_RUNT_FRAMES_FROM_HOST -- if (m_length(m, NULL) < 60) -- cSegs++; -+ if (m_length(m, NULL) < 60) -+ cSegs++; - #endif - -- /* Create a copy of the mbuf and hand it to the virtual switch */ -- pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -- vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_WIRE); -- RTMemTmpFree(pSG); -+ /* Create a copy and deliver to the virtual switch */ -+ pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -+ vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -+ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -+ RTMemTmpFree(pSG); -+ if (fDropIt) -+ m_freem(m); -+ else -+ ether_demux(ifp, m); -+ } - vboxNetFltRelease(pThis, true /* fBusy */); -- --out: -- /* Only deliver it to the host stack if the destination weren't a guest */ -- if (fDropIt) -- { -- m_freem(m); -- return (0); -- } -- ether_demux(ifp, m); -- return (0); - } - - /** -- * Handle mbufs on the outgoing hook, frames going to the interface -+ * Output processing task, handles outgoing frames - */ --static int ng_vboxnetflt_rcv_out(hook_p hook, item_p item) -+static void vboxNetFltFreeBSDoutput(void *arg, int pending) - { -+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; - struct mbuf *m, *m0; -- struct m_tag *mtag; -- const node_p node = NG_HOOK_NODE(hook); -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); - struct ifnet *ifp = pThis->u.s.ifp; - unsigned int cSegs = 0; - bool fDropIt = false, fActive; - PINTNETSG pSG; - -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -- -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (!fActive) -- return ether_output_frame(ifp, m); -- - vboxNetFltRetain(pThis, true /* fBusy */); -- /* Pass directly to interface if the packet originated from us */ -- mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -- if (mtag != NULL) -+ for (;;) - { -- m_tag_unlink(m, mtag); -- m_tag_free(mtag); -- goto out; -- } -+ mtx_lock_spin(&pThis->u.s.outq.ifq_mtx); -+ _IF_DEQUEUE(&pThis->u.s.outq, m); -+ mtx_unlock_spin(&pThis->u.s.outq.ifq_mtx); -+ if (m == NULL) -+ break; - -- for (m0 = m; m0 != NULL; m0 = m0->m_next) -- { -- if (m0->m_len > 0) -- cSegs++; -- } -+ for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ if (m0->m_len > 0) -+ cSegs++; - - #ifdef PADD_RUNT_FRAMES_FROM_HOST -- if (m_length(m, NULL) < 60) -- cSegs++; -+ if (m_length(m, NULL) < 60) -+ cSegs++; - #endif -- /* Create a copy and deliver to the virtual switch */ -- pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -- vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -- RTMemTmpFree(pSG); -+ /* Create a copy and deliver to the virtual switch */ -+ pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -+ vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -+ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -+ RTMemTmpFree(pSG); - --out: -+ if (fDropIt) -+ m_freem(m); -+ else -+ ether_output_frame(ifp, m); -+ } - vboxNetFltRelease(pThis, true /* fBusy */); -- if (fDropIt) -- { -- m_freem(m); -- return (0); -- } -- -- return ether_output_frame(ifp, m); - } - --static int ng_vboxnetflt_shutdown(node_p node) --{ -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -- bool fActive; -- -- /* Prevent node shutdown if we're active */ -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (fActive) -- return (EBUSY); -- NG_NODE_UNREF(node); -- return (0); --} -- --static int ng_vboxnetflt_disconnect(hook_p hook) --{ -- return (0); --} -- - /** - * Called to deliver a frame to either the host, the wire or both. - */ -@@ -536,13 +542,23 @@ - - /* Create a new netgraph node for this instance */ - if (ng_make_node_common(&ng_vboxnetflt_typestruct, &node) != 0) -- return VERR_INTERNAL_ERROR; -+ return VERR_INTERNAL_ERROR; - - RTSpinlockAcquire(pThis->hSpinlock, &Tmp); - ASMAtomicUoWritePtr((void * volatile *)&pThis->u.s.ifp, ifp); - pThis->u.s.node = node; - bcopy(IF_LLADDR(ifp), &pThis->u.s.Mac, ETHER_ADDR_LEN); - ASMAtomicUoWriteBool(&pThis->fDisconnectedFromHost, false); -+ /* Initialize deferred input queue */ -+ bzero(&pThis->u.s.inq, sizeof(struct ifqueue)); -+ mtx_init(&pThis->u.s.inq.ifq_mtx, "vboxnetflt inq", NULL, MTX_SPIN); -+ TASK_INIT(&pThis->u.s.tskin, 0, vboxNetFltFreeBSDinput, pThis); -+ -+ /* Initialize deferred output queue */ -+ bzero(&pThis->u.s.outq, sizeof(struct ifqueue)); -+ mtx_init(&pThis->u.s.outq.ifq_mtx, "vboxnetflt outq", NULL, MTX_SPIN); -+ TASK_INIT(&pThis->u.s.tskout, 0, vboxNetFltFreeBSDoutput, pThis); -+ - RTSpinlockRelease(pThis->hSpinlock, &Tmp); - - NG_NODE_SET_PRIVATE(node, pThis); -@@ -571,7 +587,10 @@ - } - - if (ifp0 != NULL) -+ { -+ vboxNetFltOsDeleteInstance(pThis); - vboxNetFltOsInitInstance(pThis, NULL); -+ } - - return !ASMAtomicUoReadBool(&pThis->fDisconnectedFromHost); - } -@@ -579,6 +598,12 @@ - void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis) - { - -+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskin); -+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskout); -+ -+ mtx_destroy(&pThis->u.s.inq.ifq_mtx); -+ mtx_destroy(&pThis->u.s.outq.ifq_mtx); -+ - if (pThis->u.s.node != NULL) - ng_rmnode_self(pThis->u.s.node); - pThis->u.s.node = NULL; diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Installer-Makefile.kmk b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Installer-Makefile.kmk new file mode 100644 index 000000000000..7f226b633c9b --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Installer-Makefile.kmk @@ -0,0 +1,15 @@ +--- src/VBox/Installer/Makefile.kmk.orig 2009-10-05 14:31:40.000000000 +0200 ++++ src/VBox/Installer/Makefile.kmk 2009-10-05 14:32:09.000000000 +0200 +@@ -38,10 +38,12 @@ + if "$(KBUILD_TARGET)" == "win" && "$(KBUILD_HOST)" == "win" + include $(PATH_SUB_CURRENT)/win/Makefile.kmk + endif ++if 0 + if "$(KBUILD_TARGET)" == "freebsd" && "$(KBUILD_HOST)" == "freebsd" + include $(PATH_SUB_CURRENT)/freebsd/Makefile.kmk + endif + endif ++endif + + include $(PATH_SUB_CURRENT)/common/Makefile.kmk + diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-AudioAdapterImpl.cpp b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-AudioAdapterImpl.cpp new file mode 100644 index 000000000000..f47f49c97b0e --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-AudioAdapterImpl.cpp @@ -0,0 +1,14 @@ +--- src/VBox/Main/AudioAdapterImpl.cpp.orig 2009-12-15 14:45:08.000000000 +0900 ++++ src/VBox/Main/AudioAdapterImpl.cpp 2009-12-15 14:45:42.000000000 +0900 +@@ -261,6 +261,11 @@ + #if defined (RT_OS_LINUX) || defined (RT_OS_FREEBSD) || defined(VBOX_WITH_SOLARIS_OSS) + case AudioDriverType_OSS: + #endif ++#ifdef RT_OS_FREEBSD ++# ifdef VBOX_WITH_PULSE ++ case AudioDriverType_Pulse: ++# endif ++#endif + #ifdef RT_OS_DARWIN + case AudioDriverType_CoreAudio: + #endif diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-ConsoleImpl.cpp b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-ConsoleImpl.cpp new file mode 100644 index 000000000000..cb67a48f5a44 --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-ConsoleImpl.cpp @@ -0,0 +1,11 @@ +--- src/VBox/Main/ConsoleImpl.cpp.orig ++++ src/VBox/Main/ConsoleImpl.cpp +@@ -6168,7 +6168,7 @@ Console::usbDetachCallback(Console *that + } + + #endif /* VBOX_WITH_USB */ +-#if (defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)) && !defined(VBOX_WITH_NETFLT) ++#if ((defined(RT_OS_LINUX) && !defined(VBOX_WITH_NETFLT)) || defined(RT_OS_FREEBSD)) + + /** + * Helper function to handle host interface device creation and attachment. diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-ConsoleImpl2.cpp b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-ConsoleImpl2.cpp new file mode 100644 index 000000000000..4373abea3487 --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-ConsoleImpl2.cpp @@ -0,0 +1,103 @@ +--- src/VBox/Main/ConsoleImpl2.cpp.orig 2009-12-15 14:48:58.000000000 +0900 ++++ src/VBox/Main/ConsoleImpl2.cpp 2009-12-15 14:48:42.000000000 +0900 +@@ -86,6 +86,7 @@ + # include <sys/ioctl.h> + # include <sys/socket.h> + # include <net/if.h> ++# include <net80211/ieee80211_ioctl.h> + #endif + + #if defined(RT_OS_WINDOWS) && defined(VBOX_WITH_NETFLT) +@@ -1605,6 +1605,15 @@ + break; + } + #endif ++#ifdef RT_OS_FREEBSD ++# ifdef VBOX_WITH_PULSE ++ case AudioDriverType_Pulse: ++ { ++ rc = CFGMR3InsertString(pCfg, "AudioDriver", "pulse"); RC_CHECK(); ++ break; ++ } ++# endif ++#endif + #ifdef RT_OS_DARWIN + case AudioDriverType_CoreAudio: + { +@@ -2394,6 +2394,42 @@ DECLCALLBACK(int) Console::configConstru + /* we're not releasing the INetCfg stuff here since we use it later to figure out whether it is wireless */ + + # elif defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) ++# if defined(RT_OS_FREEBSD) ++ /* ++ * If we bridge to a tap interface open it the `old' direct way. ++ * This works and performs better than bridging a physical ++ * interface via the current FreeBSD vboxnetflt implementation. ++ */ ++ if (!strncmp(pszHifName, "tap", sizeof "tap" - 1)) { ++ hrc = pThis->attachToTapInterface(aNetworkAdapter); ++ if (FAILED(hrc)) ++ { ++ switch (hrc) ++ { ++ case VERR_ACCESS_DENIED: ++ return VMSetError(pVM, VERR_HOSTIF_INIT_FAILED, RT_SRC_POS, N_( ++ "Failed to open '/dev/%s' for read/write access. Please check the " ++ "permissions of that node, and that the net.link.tap.user_open " ++ "sysctl is set. Either run 'chmod 0666 /dev/%s' or " ++ "change the group of that node to vboxusers and make yourself " ++ "a member of that group. Make sure that these changes are permanent."), pszHifName, pszHifName); ++ default: ++ AssertMsgFailed(("Could not attach to tap interface! Bad!\n")); ++ return VMSetError(pVM, VERR_HOSTIF_INIT_FAILED, RT_SRC_POS, N_( ++ "Failed to initialize Host Interface Networking")); ++ } ++ } ++ ++ Assert ((int)pThis->maTapFD[uInstance] >= 0); ++ if ((int)pThis->maTapFD[uInstance] >= 0) ++ { ++ rc = CFGMR3InsertString(pLunL0, "Driver", "HostInterface"); RC_CHECK(); ++ rc = CFGMR3InsertNode(pLunL0, "Config", &pCfg); RC_CHECK(); ++ rc = CFGMR3InsertInteger(pCfg, "FileHandle", pThis->maTapFD[uInstance]); RC_CHECK(); ++ } ++ break; ++ } ++# endif + /** @todo Check for malformed names. */ + const char *pszTrunk = pszHifName; + +@@ -2495,6 +2496,33 @@ DECLCALLBACK(int) Console::configConstru + } + else + Log(("Failed to open wireless socket\n")); ++# elif defined(RT_OS_FREEBSD) ++ int iSock = socket(AF_INET, SOCK_DGRAM, 0); ++ if (iSock >= 0) ++ { ++ struct ieee80211req ireq; ++ uint8_t data[32]; ++ ++ (void) memset(&ireq, 0, sizeof(ireq)); ++ (void) strncpy(ireq.i_name, pszHifName, sizeof(ireq.i_name)); ++ ireq.i_type = IEEE80211_IOC_SSID; ++ ireq.i_val = -1; ++ ireq.i_data = data; ++ ireq.i_len = sizeof(data); ++ ++ bool fSharedMacOnWire = ioctl(iSock, SIOCG80211, &ireq) >= 0; ++ close(iSock); ++ if (fSharedMacOnWire) ++ { ++ rc = CFGMR3InsertInteger(pCfg, "SharedMacOnWire", true); ++ RC_CHECK(); ++ Log(("Set SharedMacOnWire\n")); ++ } ++ else ++ Log(("Failed to get wireless name\n")); ++ } ++ else ++ Log(("Failed to open wireless socket\n")); + # elif defined(RT_OS_WINDOWS) + # define DEVNAME_PREFIX L"\\\\.\\" + /* we are getting the medium type via IOCTL_NDIS_QUERY_GLOBAL_STATS Io Control diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-include-ConsoleImpl.h b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-include-ConsoleImpl.h new file mode 100644 index 000000000000..2471480886d8 --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Main-include-ConsoleImpl.h @@ -0,0 +1,20 @@ +--- src/VBox/Main/include/ConsoleImpl.h.orig ++++ src/VBox/Main/include/ConsoleImpl.h +@@ -410,7 +410,7 @@ private: + + HRESULT callTapSetupApplication(bool isStatic, RTFILE tapFD, Bstr &tapDevice, + Bstr &tapSetupApplication); +-#if (defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)) && !defined(VBOX_WITH_NETFLT) ++#if ((defined(RT_OS_LINUX) && !defined(VBOX_WITH_NETFLT)) || defined(RT_OS_FREEBSD)) + HRESULT attachToTapInterface(INetworkAdapter *networkAdapter); + HRESULT detachFromTapInterface(INetworkAdapter *networkAdapter); + #endif +@@ -582,7 +582,7 @@ private: + PPDMLED mapNetworkLeds[SchemaDefs::NetworkAdapterCount]; + PPDMLED mapSharedFolderLed; + PPDMLED mapUSBLed[2]; +-#if !defined(VBOX_WITH_NETFLT) && (defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)) ++#if ((defined(RT_OS_LINUX) && !defined(VBOX_WITH_NETFLT)) || defined(RT_OS_FREEBSD)) + Utf8Str maTAPDeviceName[8]; + RTFILE maTapFD[8]; + #endif diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-VBox-log-vbox.cpp b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-VBox-log-vbox.cpp new file mode 100644 index 000000000000..005a25e4a79a --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-VBox-log-vbox.cpp @@ -0,0 +1,82 @@ +--- src/VBox/Runtime/VBox/log-vbox.cpp (revision 25471) ++++ src/VBox/Runtime/VBox/log-vbox.cpp (revision 25472) +@@ -135,6 +135,12 @@ + # include <Windows.h> + # elif defined(RT_OS_LINUX) + # include <unistd.h> ++# elif defined(RT_OS_FREEBSD) ++# include <sys/param.h> ++# include <sys/sysctl.h> ++# include <sys/user.h> ++# include <stdlib.h> ++# include <unistd.h> + # elif defined(RT_OS_SOLARIS) + # define _STRUCTURED_PROC 1 + # undef _FILE_OFFSET_BITS /* procfs doesn't like this */ +@@ -157,6 +163,7 @@ + # include <iprt/path.h> + # include <iprt/process.h> + # include <iprt/string.h> ++# include <iprt/mem.h> + # include <stdio.h> + #endif + +@@ -339,12 +346,8 @@ + fclose(pFile); + } + +-# elif defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) +-# ifdef RT_OS_LINUX ++# elif defined(RT_OS_LINUX) + FILE *pFile = fopen("/proc/self/cmdline", "r"); +-# else /* RT_OS_FREEBSD: */ +- FILE *pFile = fopen("/proc/curproc/cmdline", "r"); +-# endif + if (pFile) + { + /* braindead */ +@@ -370,7 +373,44 @@ + RTLogLoggerEx(pLogger, 0, ~0U, "\n"); + fclose(pFile); + } ++# elif defined(RT_OS_FREEBSD) ++ char *pszArgFileBuf = NULL; ++ int aiName[4]; ++ size_t cchArgs; + ++ aiName[0] = CTL_KERN; ++ aiName[1] = KERN_PROC; ++ aiName[2] = KERN_PROC_ARGS; ++ aiName[3] = -1; ++ ++ /* Retrieve the required length first */ ++ cchArgs = 0; ++ int rcBSD = sysctl(aiName, RT_ELEMENTS(aiName), NULL, &cchArgs, NULL, 0); ++ ++ if (cchArgs > 0) ++ { ++ pszArgFileBuf = (char *)RTMemAllocZ(cchArgs + 1 /* Safety */); ++ if (pszArgFileBuf) ++ { ++ /* Retrieve the argument list */ ++ rcBSD = sysctl(aiName, RT_ELEMENTS(aiName), pszArgFileBuf, &cchArgs, NULL, 0); ++ if (!rcBSD) ++ { ++ /* ++ * cmdline is a flattened argument list so we need ++ * to convert all \0 to blanks ++ */ ++ for(size_t i = 0; i < cchArgs - 1; i++) ++ { ++ if(pszArgFileBuf[i] == '\0') ++ pszArgFileBuf[i] = ' '; ++ } ++ ++ RTLogLoggerEx(pLogger, 0, ~0U, "Commandline: %s\n", pszArgFileBuf); ++ } ++ RTMemFree(pszArgFileBuf); ++ } ++ } + # elif defined(RT_OS_L4) || defined(RT_OS_OS2) || defined(RT_OS_DARWIN) + /* commandline? */ + # else 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 deleted file mode 100644 index c7c56d5814ee..000000000000 --- a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c +++ /dev/null @@ -1,14 +0,0 @@ -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-the-freebsd-kernel.h b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h deleted file mode 100644 index 4332049487c3..000000000000 --- a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h +++ /dev/null @@ -1,11 +0,0 @@ ---- src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h.orig 2009-09-11 14:48:47.000000000 +0200 -+++ src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h 2009-09-11 14:48:54.000000000 +0200 -@@ -76,7 +76,7 @@ - # define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt, 0) - # define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt, 0) - # define SLEEPQ_WAIT_SIG(EventInt) sleepq_wait_sig(EventInt, 0) --#elif -+#else - # define SLEEPQ_TIMEDWAIT(EventInt) sleepq_timedwait(EventInt) - # define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt) - # define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt) diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r3-freebsd-rtProcInitExePath-freebsd.cpp b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r3-freebsd-rtProcInitExePath-freebsd.cpp new file mode 100644 index 000000000000..2332212ead14 --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-Runtime-r3-freebsd-rtProcInitExePath-freebsd.cpp @@ -0,0 +1,81 @@ +--- src/VBox/Runtime/r3/freebsd/rtProcInitExePath-freebsd.cpp (revision 25471) ++++ src/VBox/Runtime/r3/freebsd/rtProcInitExePath-freebsd.cpp (revision 25472) +@@ -32,6 +32,8 @@ + * Header Files * + *******************************************************************************/ + #define LOG_GROUP RTLOGGROUP_PROCESS ++#include <sys/param.h> ++#include <sys/sysctl.h> + #include <unistd.h> + #include <errno.h> + #include <dlfcn.h> +@@ -47,17 +49,20 @@ + + DECLHIDDEN(int) rtProcInitExePath(char *pszPath, size_t cchPath) + { +- /* +- * Read the /proc/curproc/file link, convert to native and return it. +- */ +- int cchLink = readlink("/proc/curproc/file", pszPath, cchPath - 1); +- if (cchLink > 0 && (size_t)cchLink <= cchPath - 1) +- { +- pszPath[cchLink] = '\0'; ++ int aiName[4]; ++ size_t cchExePath; + ++ aiName[0] = CTL_KERN; ++ aiName[1] = KERN_PROC; ++ aiName[2] = KERN_PROC_PATHNAME; ++ aiName[3] = getpid(); ++ ++ cchExePath = cchPath - 1; ++ if(sysctl(aiName, RT_ELEMENTS(aiName), pszPath, &cchExePath, NULL, 0) == 0) ++ { + char *pszTmp = NULL; + int rc = rtPathFromNative(&pszTmp, pszPath); +- AssertMsgRCReturn(rc, ("rc=%Rrc pszLink=\"%s\"\nhex: %.*Rhsx\n", rc, pszPath, cchLink, pszPath), rc); ++ AssertMsgRCReturn(rc, ("rc=%Rrc pszLink=\"%s\"\nhex: %.*Rhsx\n", rc, pszPath, cchExePath, pszPath), rc); + + size_t cch = strlen(pszTmp); + AssertReturn(cch <= cchPath, VERR_BUFFER_OVERFLOW); +@@ -68,39 +73,8 @@ + return VINF_SUCCESS; + } + +- int err = errno; +- +- /* +- * Fall back on the dynamic linker since /proc is optional. +- */ +- void *hExe = dlopen(NULL, 0); +- if (hExe) +- { +- struct link_map const *pLinkMap = 0; +- if (dlinfo(hExe, RTLD_DI_LINKMAP, &pLinkMap) == 0) +- { +- const char *pszImageName = pLinkMap->l_name; +- if (*pszImageName == '/') /* this may not always be absolute, despite the docs. :-( */ +- { +- char *pszTmp = NULL; +- int rc = rtPathFromNative(&pszTmp, pszImageName); +- AssertMsgRCReturn(rc, ("rc=%Rrc pszImageName=\"%s\"\n", rc, pszImageName), rc); +- +- size_t cch = strlen(pszTmp); +- AssertReturn(cch <= cchPath, VERR_BUFFER_OVERFLOW); +- +- memcpy(pszPath, pszTmp, cch + 1); +- RTStrFree(pszTmp); +- +- return VINF_SUCCESS; +- } +- /** @todo Try search the PATH for the file name or append the current +- * directory, which ever makes sense... */ +- } +- } +- +- int rc = RTErrConvertFromErrno(err); +- AssertMsgFailed(("rc=%Rrc err=%d cchLink=%d hExe=%p\n", rc, err, cchLink, hExe)); ++ int rc = RTErrConvertFromErrno(errno); ++ AssertMsgFailed(("rc=%Rrc errno=%d cchLink=%d\n", rc, errno, cchExePath)); + return rc; + } diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp b/emulators/virtualbox-ose-legacy/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp deleted file mode 100644 index 955bf7a3a151..000000000000 --- a/emulators/virtualbox-ose-legacy/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp +++ /dev/null @@ -1,207 +0,0 @@ ---- src/apps/adpctl/VBoxNetAdpCtl.cpp.r22902 2009-04-10 14:03:59.000000000 +0200 -+++ src/apps/adpctl/VBoxNetAdpCtl.cpp 2009-09-16 14:07:11.000000000 +0200 -@@ -1,4 +1,4 @@ --/* $Id: VBoxNetAdpCtl.cpp 18864 2009-04-10 12:03:59Z vboxsync $ */ -+/* $Id: VBoxNetAdpCtl.cpp 23064 2009-09-16 12:07:11Z vboxsync $ */ - /** @file - * Apps - VBoxAdpCtl, Configuration tool for vboxnetX adapters. - */ -@@ -24,7 +24,6 @@ - /******************************************************************************* - * Header Files * - *******************************************************************************/ --#include <assert.h> - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -@@ -36,11 +35,12 @@ - # include <sys/ioccom.h> - #endif - --/* @todo Error codes must be moved to some header file */ --#define ADPCTLERR_NO_CTL_DEV 3 --#define ADPCTLERR_IOCTL_FAILED 4 -+/** @todo Error codes must be moved to some header file */ -+#define ADPCTLERR_BAD_NAME 2 -+#define ADPCTLERR_NO_CTL_DEV 3 -+#define ADPCTLERR_IOCTL_FAILED 4 - --/* @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */ -+/** @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */ - #define VBOXNETADP_CTL_DEV_NAME "/dev/vboxnetctl" - #define VBOXNETADP_NAME "vboxnet" - #define VBOXNETADP_MAX_NAME_LEN 32 -@@ -85,6 +85,7 @@ - pcszArg5, /* [network mask] */ - NULL /* terminator */ - }; -+ char * const envp[] = { (char*)"LC_ALL=C", NULL }; - int rc = EXIT_SUCCESS; - pid_t childPid = fork(); - switch (childPid) -@@ -94,7 +95,7 @@ - rc = EXIT_FAILURE; - break; - case 0: /* Child process. */ -- if (execv(VBOXADPCTL_IFCONFIG_PATH, (char * const*)argv) == -1) -+ if (execve(VBOXADPCTL_IFCONFIG_PATH, (char * const*)argv, envp) == -1) - rc = EXIT_FAILURE; - break; - default: /* Parent process. */ -@@ -108,15 +109,39 @@ - #define MAX_ADDRESSES 128 - #define MAX_ADDRLEN 64 - --static bool removeAddresses(const char *pszAdapterName) -+static bool removeAddresses(char *pszAdapterName) - { -- char szCmd[1024], szBuf[1024]; -+ char szBuf[1024]; - char aszAddresses[MAX_ADDRESSES][MAX_ADDRLEN]; -+ int rc; -+ int fds[2]; -+ char * const argv[] = { VBOXADPCTL_IFCONFIG_PATH, pszAdapterName, NULL }; -+ char * const envp[] = { (char*)"LC_ALL=C", NULL }; - - memset(aszAddresses, 0, sizeof(aszAddresses)); -- snprintf(szCmd, sizeof(szCmd), VBOXADPCTL_IFCONFIG_PATH " %s", pszAdapterName); -- FILE *fp = popen(szCmd, "r"); - -+ rc = pipe(fds); -+ if (rc < 0) -+ return false; -+ -+ pid_t pid = fork(); -+ if (pid < 0) -+ return false; -+ -+ if (pid == 0) -+ { -+ /* child */ -+ close(fds[0]); -+ close(STDOUT_FILENO); -+ rc = dup2(fds[1], STDOUT_FILENO); -+ if (rc >= 0) -+ execve(VBOXADPCTL_IFCONFIG_PATH, argv, envp); -+ return false; -+ } -+ -+ /* parent */ -+ close(fds[1]); -+ FILE *fp = fdopen(fds[0], "r"); - if (!fp) - return false; - -@@ -124,9 +149,6 @@ - for (cAddrs = 0; cAddrs < MAX_ADDRESSES && fgets(szBuf, sizeof(szBuf), fp);) - { - int cbSkipWS = strspn(szBuf, " \t"); --#if 0 /* Don't use this! assert() breaks the mac build. Use IPRT or be a rectangular building thing. */ -- assert(cbSkipWS < 20); --#endif - char *pszWord = strtok(szBuf + cbSkipWS, " "); - /* We are concerned with IPv6 address lines only. */ - if (!pszWord || strcmp(pszWord, "inet6")) -@@ -143,11 +165,12 @@ - continue; - strncpy(aszAddresses[cAddrs++], pszWord, MAX_ADDRLEN-1); - } -- pclose(fp); -+ fclose(fp); - - for (int i = 0; i < cAddrs; i++) - { -- if (executeIfconfig(pszAdapterName, "inet6", VBOXADPCTL_DEL_CMD, aszAddresses[i]) != EXIT_SUCCESS) -+ if (executeIfconfig(pszAdapterName, "inet6", -+ VBOXADPCTL_DEL_CMD, aszAddresses[i]) != EXIT_SUCCESS) - return false; - } - -@@ -166,19 +189,41 @@ - int rc = ioctl(fd, uCmd, pData); - if (rc == -1) - { -- perror("VBoxNetAdpCtl: ioctl failed for " VBOXNETADP_CTL_DEV_NAME); -+ perror("VBoxNetAdpCtl: ioctl failed for " VBOXNETADP_CTL_DEV_NAME); - rc = ADPCTLERR_IOCTL_FAILED; - } -- -+ - close(fd); -- -+ - return rc; - } - -+int checkAdapterName(const char *pcszNameIn, char *pszNameOut) -+{ -+ int iAdapterIndex = -1; -+ -+ if ( strlen(pcszNameIn) >= VBOXNETADP_MAX_NAME_LEN -+ || sscanf(pcszNameIn, "vboxnet%d", &iAdapterIndex) != 1 -+ || iAdapterIndex < 0 || iAdapterIndex > 99 ) -+ { -+ fprintf(stderr, "Setting configuration for %s is not supported.\n", pcszNameIn); -+ return ADPCTLERR_BAD_NAME; -+ } -+ sprintf(pszNameOut, "vboxnet%d", iAdapterIndex); -+ if (strcmp(pszNameOut, pcszNameIn)) -+ { -+ fprintf(stderr, "Invalid adapter name %s.\n", pcszNameIn); -+ return ADPCTLERR_BAD_NAME; -+ } -+ -+ return 0; -+} -+ - int main(int argc, char *argv[]) - - { -- const char *pszAdapterName; -+ char szAdapterName[VBOXNETADP_MAX_NAME_LEN]; -+ char *pszAdapterName; - const char *pszAddress; - const char *pszNetworkMask = NULL; - const char *pszOption = NULL; -@@ -216,13 +261,18 @@ - pszAddress = argv[2]; - if (strcmp("remove", pszAddress) == 0) - { -- strncpy(Req.szName, pszAdapterName, sizeof(Req.szName)); -+ rc = checkAdapterName(pszAdapterName, szAdapterName); -+ if (rc) -+ return rc; -+ memset(&Req, '\0', sizeof(Req)); -+ snprintf(Req.szName, sizeof(Req.szName), "%s", szAdapterName); - return doIOCtl(VBOXNETADP_CTL_REMOVE, &Req); - } - break; - case 2: - if (strcmp("add", argv[1]) == 0) - { -+ memset(&Req, '\0', sizeof(Req)); - rc = doIOCtl(VBOXNETADP_CTL_ADD, &Req); - if (rc == 0) - puts(Req.szName); -@@ -237,11 +287,11 @@ - return 1; - } - -- if (strncmp("vboxnet", pszAdapterName, 7)) -- { -- fprintf(stderr, "Setting configuration for %s is not supported.\n", pszAdapterName); -- return 2; -- } -+ rc = checkAdapterName(pszAdapterName, szAdapterName); -+ if (rc) -+ return rc; -+ -+ pszAdapterName = szAdapterName; - - if (fRemove) - { -@@ -276,3 +326,4 @@ - } - return rc; - } -+ diff --git a/emulators/virtualbox-ose-legacy/files/patch-src-settings-vm-VBoxVMSettingsAudio.cpp b/emulators/virtualbox-ose-legacy/files/patch-src-settings-vm-VBoxVMSettingsAudio.cpp new file mode 100644 index 000000000000..707189e1cac7 --- /dev/null +++ b/emulators/virtualbox-ose-legacy/files/patch-src-settings-vm-VBoxVMSettingsAudio.cpp @@ -0,0 +1,12 @@ +--- src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsAudio.cpp.orig 2009-12-17 15:28:01.000000000 +0100 ++++ src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsAudio.cpp 2009-12-21 14:14:35.000000000 +0100 +@@ -89,6 +89,9 @@ + #endif + #if defined Q_OS_LINUX || defined Q_OS_FREEBSD + mCbAudioDriver->addItem (vboxGlobal().toString (KAudioDriverType_OSS)); ++# ifdef VBOX_WITH_PULSE ++ mCbAudioDriver->addItem (vboxGlobal().toString (KAudioDriverType_Pulse)); ++# endif + #endif + #if defined Q_OS_LINUX + # ifdef VBOX_WITH_ALSA diff --git a/emulators/virtualbox-ose-legacy/pkg-message b/emulators/virtualbox-ose-legacy/pkg-message index 91b8b16427cd..a5c046c48a13 100644 --- a/emulators/virtualbox-ose-legacy/pkg-message +++ b/emulators/virtualbox-ose-legacy/pkg-message @@ -2,14 +2,15 @@ VirtualBox was installed. -You need to load the vboxdrv kernel module and a mounted /proc filesystem. +You need to load the vboxdrv kernel module via /boot/loader.conf: -% mount -t procfs proc /proc -% kldload vboxdrv +vboxdrv_load="YES" -For bridged networking you also need to load the vboxnetflt kernel module. +For bridged networking please add the following line to your /etc/rc.conf: -% kldload vboxnetflt +vboxnet_enable="YES" + +Reboot the machine to load the needed kernel modules. You also have to add all users to your vboxusers group in order to use vbox. diff --git a/emulators/virtualbox-ose-legacy/pkg-plist b/emulators/virtualbox-ose-legacy/pkg-plist index f8ade22c00a7..797ae3012595 100644 --- a/emulators/virtualbox-ose-legacy/pkg-plist +++ b/emulators/virtualbox-ose-legacy/pkg-plist @@ -45,6 +45,7 @@ lib/virtualbox/VBoxXPCOMIPCD lib/virtualbox/VBoxDD2GC.gc lib/virtualbox/VBoxDDGC.gc lib/virtualbox/VMMGC.gc +lib/virtualbox/tstMicroGC.gc lib/virtualbox/VBoxDD2R0.r0 lib/virtualbox/VBoxDDR0.r0 %%GUESTADDITIONS%%lib/virtualbox/additions/VBoxGuestAdditions.iso @@ -60,12 +61,15 @@ lib/virtualbox/components/VBoxXPCOMBase.xpt %%NLS%%%%DATADIR%%/nls/VirtualBox_bg.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_ca.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_cs.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_da.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_de.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_el.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_en.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_es.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_eu.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_fi.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_fr.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_gl_ES.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_hu.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_id.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_it.qm @@ -89,12 +93,15 @@ lib/virtualbox/components/VBoxXPCOMBase.xpt %%NLS%%%%DATADIR%%/nls/qt_bg.qm %%NLS%%%%DATADIR%%/nls/qt_ca.qm %%NLS%%%%DATADIR%%/nls/qt_cs.qm +%%NLS%%%%DATADIR%%/nls/qt_da.qm %%NLS%%%%DATADIR%%/nls/qt_de.qm %%NLS%%%%DATADIR%%/nls/qt_el.qm +%%NLS%%%%DATADIR%%/nls/qt_en.qm %%NLS%%%%DATADIR%%/nls/qt_es.qm %%NLS%%%%DATADIR%%/nls/qt_eu.qm %%NLS%%%%DATADIR%%/nls/qt_fi.qm %%NLS%%%%DATADIR%%/nls/qt_fr.qm +%%NLS%%%%DATADIR%%/nls/qt_gl_ES.qm %%NLS%%%%DATADIR%%/nls/qt_hu.qm %%NLS%%%%DATADIR%%/nls/qt_id.qm %%NLS%%%%DATADIR%%/nls/qt_it.qm @@ -593,7 +600,3 @@ include/virtualbox/xpcom/xpcom-config.h @dirrm lib/virtualbox/components %%GUESTADDITIONS%%@dirrm lib/virtualbox/additions @dirrm lib/virtualbox -@cwd / -%%KMODDIR%%/vboxdrv.ko -%%KMODDIR%%/vboxnetadp.ko -%%KMODDIR%%/vboxnetflt.ko diff --git a/emulators/virtualbox-ose/Makefile b/emulators/virtualbox-ose/Makefile index 46617a1b64b8..8b12ae5b785f 100644 --- a/emulators/virtualbox-ose/Makefile +++ b/emulators/virtualbox-ose/Makefile @@ -1,21 +1,20 @@ -# New ports collection makefile for: virtualbox +# New ports collection makefile for: virtualbox-ose # Date created: 2009-05-02 # Whom: Bernhard Froehlich <decke@bluelife.at> # # $FreeBSD$ # -PORTNAME= virtualbox -DISTVERSION= 3.0.51r22902 -PORTREVISION= 3 -CATEGORIES= emulators kld +PORTNAME= virtualbox-ose +DISTVERSION= 3.1.2 +CATEGORIES= emulators MASTER_SITES= http://tmp.chruetertee.ch/ \ http://freebsd.unixfreunde.de/sources/ \ http://disasterarea.chruetertee.ch/ \ http://mirror.4bit.ws/ \ http://dlc.sun.com/virtualbox/${VBOX_GUEST_VER}/:guestadditions -DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${GADISTFILES} -EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} +DISTFILES= VirtualBox-${DISTVERSION}-OSE${EXTRACT_SUFX} ${GADISTFILES} +EXTRACT_ONLY= VirtualBox-${DISTVERSION}-OSE${EXTRACT_SUFX} #for discussion please use emulation@FreeBSD.org MAINTAINER= vbox@FreeBSD.org @@ -28,10 +27,11 @@ BUILD_DEPENDS= yasm:${PORTSDIR}/devel/yasm \ LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \ xslt.2:${PORTSDIR}/textproc/libxslt \ curl.5:${PORTSDIR}/ftp/curl +RUN_DEPENDS= /boot/modules/vboxdrv.ko:${PORTSDIR}/emulators/virtualbox-ose-kmod +WRKSRC= ${WRKDIR}/VirtualBox-${PORTVERSION}_OSE ONLY_FOR_ARCHS= i386 amd64 USE_GNOME= libidl -USE_CDRTOOLS= yes USE_BZIP2= yes USE_PYTHON= yes USE_PYDISTUTILS= easy_install @@ -48,7 +48,7 @@ CONFLICTS= bcc-[0-9]* VBOXGROUP?= vboxusers VBOXGID?= 920 VBOX_FRONTENDS= VBoxHeadless -VBOX_GUEST_VER= 3.0.6 +VBOX_GUEST_VER= ${PORTVERSION} SUB_FILES= pkg-install @@ -66,12 +66,10 @@ OPTIONS= QT4 "Build with QT4 Frontend" on \ .include <bsd.port.options.mk> -PLIST_SUB+= KMODDIR=${KMODDIR:C,^/,,} \ - PYTHON_VER=${PYTHON_VER} \ +PLIST_SUB+= PYTHON_VER=${PYTHON_VER} \ PYTHON_VERU=${PYTHON_VER:S/./_/} \ GUEST_VER=${VBOX_GUEST_VER} -KMODDIR= /boot/modules KMK_BUILDTYPE= release KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys KMK_FLAGS= @@ -130,6 +128,8 @@ CONFIGURE_ARGS+=--disable-dbus .if !defined(WITH_PULSEAUDIO) CONFIGURE_ARGS+=--disable-pulse +.else +LIB_DEPENDS+= pulse.0:${PORTSDIR}/audio/pulseaudio .endif .if !defined(WITHOUT_NLS) @@ -138,10 +138,6 @@ PLIST_SUB+= NLS="" PLIST_SUB+= NLS="@comment " .endif -.if !exists(${SRC_BASE}/sys/kern/bus_if.m) -IGNORE= requires kernel sources for the kernel module -.endif - .if ${OSVERSION} < 700000 BROKEN= Does not compile on FreeBSD 6.X .endif @@ -172,7 +168,9 @@ post-patch: @${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 - @${ECHO} 'VBOX_WITH_TESTCASES=' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_VBOXDRV = ' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_NETFLT = 1' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO} 'VBOX_WITH_NETADP = ' >> ${WRKSRC}/LocalConfig.kmk .if defined(WITHOUT_X11) @${ECHO} 'VBOX_WITH_X11_ADDITIONS=' >> ${WRKSRC}/LocalConfig.kmk .endif @@ -191,11 +189,6 @@ do-build: cd ${WRKSRC} && ${SH} env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS} do-install: - ${MKDIR} ${KMODDIR} -.for f in vboxdrv.ko vboxnetadp.ko vboxnetflt.ko - ${INSTALL_KLD} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/${f} ${KMODDIR} -.endfor - ${MKDIR} ${DATADIR} (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom && ${COPYTREE_SHARE} "idl samples" ${DATADIR}) diff --git a/emulators/virtualbox-ose/distinfo b/emulators/virtualbox-ose/distinfo index 492de57d1c4a..e1b840762c30 100644 --- a/emulators/virtualbox-ose/distinfo +++ b/emulators/virtualbox-ose/distinfo @@ -1,6 +1,6 @@ -MD5 (virtualbox-3.0.51r22902.tar.bz2) = c2fbfd0eca2d2c9e6ad5f029cf75def0 -SHA256 (virtualbox-3.0.51r22902.tar.bz2) = ccbc88276f9e1944005d1c2f3661ec6d7113b22801ecbbb72d422aa0ab2b0a2a -SIZE (virtualbox-3.0.51r22902.tar.bz2) = 51742256 -MD5 (VBoxGuestAdditions_3.0.6.iso) = 8d033b4f66db1a3e5b914da1717e9c21 -SHA256 (VBoxGuestAdditions_3.0.6.iso) = d6a8b61ef1004637c8be3a70612bb0e101f552d7eb0a9a376ff1ad264baf6a3c -SIZE (VBoxGuestAdditions_3.0.6.iso) = 32786432 +MD5 (VirtualBox-3.1.2-OSE.tar.bz2) = e7808f16114f5b1a65aa2df1aa33e1a7 +SHA256 (VirtualBox-3.1.2-OSE.tar.bz2) = 293f582e37eda29efdb53c6468481b446e1964592f5728656b74664f4d32f2b1 +SIZE (VirtualBox-3.1.2-OSE.tar.bz2) = 55553394 +MD5 (VBoxGuestAdditions_3.1.2.iso) = d1ac5c53fb889338849134e07a6bc16f +SHA256 (VBoxGuestAdditions_3.1.2.iso) = 0180a76f011f3992a70e5168d24ce04a08a23fc94858140096a8fa175e742489 +SIZE (VBoxGuestAdditions_3.1.2.iso) = 33337344 diff --git a/emulators/virtualbox-ose/files/patch-configure b/emulators/virtualbox-ose/files/patch-configure index c6532c3db606..a4aaf507ccc9 100644 --- a/emulators/virtualbox-ose/files/patch-configure +++ b/emulators/virtualbox-ose/files/patch-configure @@ -1,15 +1,33 @@ ---- configure.orgi 2009-05-31 13:43:50.000000000 +0200 -+++ configure 2009-05-31 13:45:47.000000000 +0200 -@@ -102,7 +102,7 @@ - XSLTPROC="xsltproc" +--- configure.orig 2009-12-17 15:23:05.000000000 +0100 ++++ configure 2009-12-21 14:25:45.000000000 +0100 +@@ -107,7 +107,7 @@ GENISOIMAGE="genisoimage" MKISOFS="mkisofs" + INCCRYPTO="" -LIBCRYPTO="-lcrypto" +LIBCRYPTO="-lcrypto -lssl" LIBPTHREAD="-lpthread" LIBCAP="-lcap" GSOAP="" -@@ -1698,7 +1698,7 @@ +@@ -125,6 +125,8 @@ + if [ "$OS" = "freebsd" ]; then + INCCURL="-I/usr/local/include" + LIBCURL="-L/usr/local/lib -lcurl" ++ INCPULSE="-I/usr/local/include" ++ LIBPULSE="-L/usr/local/lib" + else + INCCURL="" + LIBCURL="-lcurl" +@@ -1181,7 +1183,7 @@ + #endif + } + EOF +- if test_compile "-lpulse" pulse pulse; then ++ if test_compile "$INCPULSE $LIBPULSE -lpulse" pulse pulse; then + test_execute + fi + } +@@ -1773,7 +1775,7 @@ cat $ODIR.tmp_src.cc >> $LOG echo "using the following command line:" >> $LOG echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so" >> $LOG @@ -18,3 +36,31 @@ if [ $? -eq 0 ]; then found=1 break +@@ -2315,6 +2317,15 @@ + [ $WITH_QT4 -eq 1 ] && check_qt4 + [ $WITH_PYTHON -eq 1 ] && check_python + ++# PulseAudio ++if [ "$OS" = "linux" -o "$OS" = "freebsd" ]; then ++ if [ $WITH_PULSE -eq 1 ]; then ++ check_pulse ++ else ++ cnf_append "VBOX_WITH_PULSE" "" ++ fi ++fi ++ + # Linux-specific + if [ "$OS" = "linux" ]; then + # don't check for the static libstdc++ in the PUEL version as we build the +@@ -2332,11 +2343,6 @@ + else + cnf_append "VBOX_WITH_ALSA" "" + fi +- if [ $WITH_PULSE -eq 1 ]; then +- check_pulse +- else +- cnf_append "VBOX_WITH_PULSE" "" +- fi + if [ $WITH_DBUS -eq 0 ]; then + cnf_append "VBOX_WITH_DBUS" "" + fi diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk b/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk new file mode 100644 index 000000000000..cc5553f7736d --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk @@ -0,0 +1,20 @@ +Index: src/VBox/Additions/x11/VBoxClient/Makefile.kmk +=================================================================== +--- src/VBox/Additions/x11/VBoxClient/Makefile.kmk (revision 25472) ++++ src/VBox/Additions/x11/VBoxClient/Makefile.kmk (revision 25473) +@@ -43,11 +43,14 @@ + $(VBOX_LIBPATH32_X11) + VBoxClient_LIBS.freebsd = \ + iconv ++VBoxClient_LIBS.linux = \ ++ dl ++VBoxClient_LIBS.solaris = \ ++ dl + VBoxClient_LIBS = \ + $(VBOX_LIB_IPRT_GUEST_R3) \ + $(VBOX_LIB_VBGL_R3) \ + $(VBOX_LIB_IPRT_GUEST_R3) \ +- dl \ + X11 \ + Xt + # These are static replacements for gcc-specific parts of libstdc++ diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Audio-audio.c b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Audio-audio.c new file mode 100644 index 000000000000..16a3f8a69f73 --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Audio-audio.c @@ -0,0 +1,14 @@ +--- src/VBox/Devices/Audio/audio.c.orig 2009-12-15 14:54:13.000000000 +0900 ++++ src/VBox/Devices/Audio/audio.c 2009-12-15 14:53:54.000000000 +0900 +@@ -73,6 +73,11 @@ + &pulse_audio_driver, + # endif + #endif /* RT_OS_LINUX */ ++#ifdef RT_OS_FREEBSD ++# ifdef VBOX_WITH_PULSE ++ &pulse_audio_driver, ++# endif ++#endif + #ifdef RT_OS_DARWIN + &coreaudio_audio_driver, + #endif diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Makefile.kmk b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Makefile.kmk index d404c8aee176..b76f318af457 100644 --- a/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Makefile.kmk +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Makefile.kmk @@ -1,15 +1,13 @@ ---- src/VBox/Devices/Makefile.kmk.orig 2009-11-01 22:50:39.000000000 +0100 -+++ src/VBox/Devices/Makefile.kmk 2009-11-01 22:50:52.000000000 +0100 -@@ -31,8 +31,10 @@ - include $(PATH_SUB_CURRENT)/PC/VMI/Makefile.kmk - endif - include $(PATH_SUB_CURRENT)/Graphics/BIOS/Makefile.kmk --include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk --include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk -+ifdef VBOX_WITH_TESTCASES -+ include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk -+ include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk -+endif - ifndef VBOX_OSE - include $(PATH_SUB_CURRENT)/Storage/VBoxHDDFormats/Makefile.kmk +--- src/VBox/Devices/Makefile.kmk.orig 2009-12-17 15:27:43.000000000 +0100 ++++ src/VBox/Devices/Makefile.kmk 2009-12-21 14:29:56.000000000 +0100 +@@ -970,6 +970,10 @@ + Drivers_SOURCES.linux+= \ + Audio/pulseaudio.c \ + Audio/pulse_stubs.c ++ Drivers_DEFS.freebsd += VBOX_WITH_PULSE ++ Drivers_SOURCES.freebsd+= \ ++ Audio/pulseaudio.c \ ++ Audio/pulse_stubs.c endif + + ifdef VBOX_WITH_USB diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageHelp.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageHelp.cpp new file mode 100644 index 000000000000..ffe2a20ceb63 --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageHelp.cpp @@ -0,0 +1,37 @@ +--- src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp.orig 2009-12-15 15:16:21.000000000 +0900 ++++ src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp 2009-12-15 15:14:01.000000000 +0900 +@@ -41,6 +41,11 @@ + #else + bool fSolaris = false; + #endif ++#ifdef RT_OS_FREEBSD ++ bool fFreeBSD = true; ++#else ++ bool fFreeBSD = false; ++#endif + #ifdef RT_OS_DARWIN + bool fDarwin = true; + #else +@@ -62,6 +67,7 @@ + fLinux = true; + fWin = true; + fSolaris = true; ++ fFreeBSD = true; + fDarwin = true; + fVRDP = true; + fVBoxSDL = true; +@@ -227,6 +233,14 @@ + #endif + ); + } ++ if (fFreeBSD) ++ { ++ RTPrintf( "|oss" ++#ifdef VBOX_WITH_PULSE ++ "|pulse" ++#endif ++ ); ++ } + if (fDarwin) + { + RTPrintf( "|coreaudio"); diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageModifyVM.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageModifyVM.cpp new file mode 100644 index 000000000000..38111c6205d4 --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Frontends-VBoxManage-VBoxManageModifyVM.cpp @@ -0,0 +1,23 @@ +--- src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp.orig 2009-09-09 23:39:46.000000000 +0900 ++++ src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp 2009-12-15 15:22:27.000000000 +0900 +@@ -1478,6 +1478,20 @@ + # endif + + #endif /* !RT_OS_SOLARIS */ ++#ifdef RT_OS_FREEBSD ++ else if (!strcmp(ValueUnion.psz, "oss")) ++ { ++ CHECK_ERROR(audioAdapter, COMSETTER(AudioDriver)(AudioDriverType_OSS)); ++ CHECK_ERROR(audioAdapter, COMSETTER(Enabled)(true)); ++ } ++# ifdef VBOX_WITH_PULSE ++ else if (!strcmp(ValueUnion.psz, "pulse")) ++ { ++ CHECK_ERROR(audioAdapter, COMSETTER(AudioDriver)(AudioDriverType_Pulse)); ++ CHECK_ERROR(audioAdapter, COMSETTER(Enabled)(true)); ++ } ++# endif ++#endif /* !RT_OS_FREEBSD */ + #ifdef RT_OS_DARWIN + else if (!strcmp(ValueUnion.psz, "coreaudio")) + { diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Makefile.kmk b/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Makefile.kmk new file mode 100644 index 000000000000..5e9024588b8a --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Makefile.kmk @@ -0,0 +1,27 @@ +--- src/VBox/HostDrivers/Makefile.kmk.orig 2009-10-05 11:17:45.000000000 +0200 ++++ src/VBox/HostDrivers/Makefile.kmk 2009-10-05 11:18:08.000000000 +0200 +@@ -40,7 +40,7 @@ + endif + endif + +- if1of ($(KBUILD_TARGET),linux freebsd) ++ if1of ($(KBUILD_TARGET),linux) + # + # Install the Makefile for module compliation on Linux and FreeBSD hosts + # +@@ -51,6 +51,7 @@ + HostDrivers-src_SOURCES.freebsd = freebsd/Makefile + endif + ++if 0 + if1of ($(KBUILD_TARGET),freebsd) + # + # Install the export_modules script for tar'ing the module sources on FreeBSD hosts +@@ -60,6 +61,7 @@ + HostDrivers-sh_MODE = a+rx,u+w + HostDrivers-sh_SOURCES.freebsd = freebsd/export_modules + endif ++endif + endif # !VBOX_ONLY_DOCS + + # Let kBuild generate the rules. diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Support-SUPR3HardenedMain.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Support-SUPR3HardenedMain.cpp new file mode 100644 index 000000000000..4a89fec97dfa --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Support-SUPR3HardenedMain.cpp @@ -0,0 +1,33 @@ +--- src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp (revision 25471) ++++ src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp (revision 25472) +@@ -66,6 +66,9 @@ + # ifndef CAP_TO_MASK + # define CAP_TO_MASK(cap) RT_BIT(cap) + # endif ++# elif defined(RT_OS_FREEBSD) ++# include <sys/param.h> ++# include <sys/sysctl.h> + # elif defined(RT_OS_SOLARIS) + # include <priv.h> + # endif +@@ -325,7 +328,19 @@ + sprintf(szFileBuf, "/proc/%ld/path/a.out", (long)getpid()); + int cchLink = readlink(szFileBuf, &g_szSupLibHardenedExePath[0], sizeof(g_szSupLibHardenedExePath) - 1); + # else /* RT_OS_FREEBSD: */ +- int cchLink = readlink("/proc/curproc/file", &g_szSupLibHardenedExePath[0], sizeof(g_szSupLibHardenedExePath) - 1); ++ int aiName[4]; ++ size_t cbPath; ++ ++ aiName[0] = CTL_KERN; ++ aiName[1] = KERN_PROC; ++ aiName[2] = KERN_PROC_PATHNAME; ++ aiName[3] = getpid(); ++ ++ cbPath = sizeof(g_szSupLibHardenedExePath) - 1; ++ if(sysctl(aiName, RT_ELEMENTS(aiName), g_szSupLibHardenedExePath, &cbPath, NULL, 0) < 0) ++ supR3HardenedFatal("supR3HardenedExecDir: sysctl failed\n"); ++ ++ int cchLink = strlen(g_szSupLibHardenedExePath); + # endif + if (cchLink < 0 || cchLink == sizeof(g_szSupLibHardenedExePath) - 1) + supR3HardenedFatal("supR3HardenedExecDir: couldn't read \"%s\", errno=%d cchLink=%d\n", diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c b/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c deleted file mode 100644 index 0e223c4b9039..000000000000 --- a/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c +++ /dev/null @@ -1,11 +0,0 @@ ---- src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c.orig 2009-12-07 12:20:44.000000000 +0100 -+++ src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c 2009-12-07 12:21:00.000000000 +0100 -@@ -92,7 +92,7 @@ - DECLARE_MODULE(vboxnetadp, g_VBoxNetAdpFreeBSDModule, SI_SUB_PSEUDO, SI_ORDER_ANY); - MODULE_VERSION(vboxnetadp, 1); - MODULE_DEPEND(vboxnetadp, vboxdrv, 1, 1, 1); --MODULE_DEPEND(vboxnetadp, ng_vboxnetflt, 1, 1, 1); -+MODULE_DEPEND(vboxnetadp, vboxnetflt, 1, 1, 1); - - /** - * Module event handler diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h b/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h deleted file mode 100644 index 250a1960a7f4..000000000000 --- a/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h +++ /dev/null @@ -1,28 +0,0 @@ -Index: src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h -=================================================================== ---- src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h (revision 23391) -+++ src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h (working copy) -@@ -206,6 +206,14 @@ - hook_p output; - /** Original interface flags */ - unsigned int flags; -+ /** Input queue */ -+ struct ifqueue inq; -+ /** Output queue */ -+ struct ifqueue outq; -+ /** Input task */ -+ struct task tskin; -+ /** Output task */ -+ struct task tskout; - /** The MAC address of the interface. */ - RTMAC Mac; - /** @} */ -@@ -241,6 +249,8 @@ - # endif - #elif defined(RT_OS_LINUX) - uint8_t abPadding[320]; -+#elif defined(RT_OS_FREEBSD) -+ uint8_t abPadding[320]; - #else - uint8_t abPadding[128]; - #endif diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c b/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c deleted file mode 100644 index f23fedbf0ec0..000000000000 --- a/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c +++ /dev/null @@ -1,384 +0,0 @@ -Index: src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c -=================================================================== ---- src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c (revision 23391) -+++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c (working copy) -@@ -43,6 +43,8 @@ - #include <sys/socket.h> - #include <sys/sockio.h> - #include <sys/syscallsubr.h> -+#include <sys/queue.h> -+#include <sys/taskqueue.h> - - #include <net/if.h> - #include <net/if_var.h> -@@ -78,8 +80,6 @@ - static ng_rcvdata_t ng_vboxnetflt_rcvdata; - static ng_disconnect_t ng_vboxnetflt_disconnect; - static int ng_vboxnetflt_mod_event(module_t mod, int event, void *data); --static int ng_vboxnetflt_rcv_in(hook_p node, item_p item); --static int ng_vboxnetflt_rcv_out(hook_p node, item_p item); - - /** Netgraph node type */ - #define NG_VBOXNETFLT_NODE_TYPE "vboxnetflt" -@@ -112,8 +112,8 @@ - { - .version = NG_ABI_VERSION, - .name = NG_VBOXNETFLT_NODE_TYPE, -- .mod_event = vboxnetflt_modevent, -- .constructor = ng_vboxnetflt_constructor, -+ .mod_event = vboxnetflt_modevent, -+ .constructor = ng_vboxnetflt_constructor, - .rcvmsg = ng_vboxnetflt_rcvmsg, - .shutdown = ng_vboxnetflt_shutdown, - .newhook = ng_vboxnetflt_newhook, -@@ -122,7 +122,7 @@ - .cmdlist = ng_vboxnetflt_cmdlist, - }; - NETGRAPH_INIT(vboxnetflt, &ng_vboxnetflt_typestruct); --MODULE_VERSION(ng_vboxnetflt, 1); -+MODULE_VERSION(vboxnetflt, 1); - MODULE_DEPEND(ng_vboxnetflt, vboxdrv, 1, 1, 1); - - /** -@@ -267,16 +267,12 @@ - if (strcmp(name, NG_VBOXNETFLT_HOOK_IN) == 0) - { - #if __FreeBSD_version >= 800000 -- NG_HOOK_SET_RCVDATA(hook, ng_vboxnetflt_rcv_in); - NG_HOOK_SET_TO_INBOUND(hook); - #endif - pThis->u.s.input = hook; - } - else if (strcmp(name, NG_VBOXNETFLT_HOOK_OUT) == 0) - { --#if __FreeBSD_version >= 800000 -- NG_HOOK_SET_RCVDATA(hook, ng_vboxnetflt_rcv_out); --#endif - pThis->u.s.output = hook; - } - else -@@ -310,161 +306,171 @@ - - /** - * Handle data on netgraph hooks. -+ * Frames processing is deferred to a taskqueue because this might -+ * be called with non-sleepable locks held and code paths inside -+ * the virtual switch might sleep. - */ - static int ng_vboxnetflt_rcvdata(hook_p hook, item_p item) - { - const node_p node = NG_HOOK_NODE(hook); - PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -+ struct ifnet *ifp = pThis->u.s.ifp; - struct mbuf *m; -+ struct m_tag *mtag; -+ bool fActive; - -+ fActive = ASMAtomicUoReadBool(&pThis->fActive); -+ -+ NGI_GET_M(item, m); -+ NG_FREE_ITEM(item); -+ -+ /* Locate tag to see if processing should be skipped for this frame */ -+ mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -+ if (mtag != NULL) -+ { -+ m_tag_unlink(m, mtag); -+ m_tag_free(mtag); -+ } -+ -+ /* -+ * Handle incoming hook. This is connected to the -+ * input path of the interface, thus handling incoming frames. -+ */ - if (pThis->u.s.input == hook) -- return ng_vboxnetflt_rcv_in(hook, item); -+ { -+ if (mtag != NULL || !fActive) -+ { -+ ether_demux(ifp, m); -+ return (0); -+ } -+ mtx_lock_spin(&pThis->u.s.inq.ifq_mtx); -+ _IF_ENQUEUE(&pThis->u.s.inq, m); -+ mtx_unlock_spin(&pThis->u.s.inq.ifq_mtx); -+ taskqueue_enqueue_fast(taskqueue_fast, &pThis->u.s.tskin); -+ } -+ /** -+ * Handle mbufs on the outgoing hook, frames going to the interface -+ */ - else if (pThis->u.s.output == hook) -- return ng_vboxnetflt_rcv_out(hook, item); -+ { -+ if (mtag != NULL || !fActive) -+ return ether_output_frame(ifp, m); -+ mtx_lock_spin(&pThis->u.s.outq.ifq_mtx); -+ _IF_ENQUEUE(&pThis->u.s.outq, m); -+ mtx_unlock_spin(&pThis->u.s.outq.ifq_mtx); -+ taskqueue_enqueue_fast(taskqueue_fast, &pThis->u.s.tskout); -+ } - else - { -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -+ m_freem(m); - } - return (0); - } - -+static int ng_vboxnetflt_shutdown(node_p node) -+{ -+ PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -+ bool fActive; -+ -+ /* Prevent node shutdown if we're active */ -+ fActive = ASMAtomicUoReadBool(&pThis->fActive); -+ if (fActive) -+ return (EBUSY); -+ NG_NODE_UNREF(node); -+ return (0); -+} -+ -+static int ng_vboxnetflt_disconnect(hook_p hook) -+{ -+ return (0); -+} -+ - /** -- * Handle incoming hook. This is connected to the -- * input path of the interface, thus handling incoming frames. -+ * Input processing task, handles incoming frames - */ --static int ng_vboxnetflt_rcv_in(hook_p hook, item_p item) -+static void vboxNetFltFreeBSDinput(void *arg, int pending) - { -+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; - struct mbuf *m, *m0; -- struct m_tag *mtag; -- const node_p node = NG_HOOK_NODE(hook); -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); - struct ifnet *ifp = pThis->u.s.ifp; -- bool fActive, fDropIt = false; - unsigned int cSegs = 0; -+ bool fDropIt = false, fActive; - PINTNETSG pSG; - -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -- -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (!fActive) -- goto out; -- -- mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -- if (mtag != NULL) -- { -- m_tag_unlink(m, mtag); -- m_tag_free(mtag); -- goto out; -- } - vboxNetFltRetain(pThis, true /* fBusy */); -- -- for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ for (;;) - { -- if (m0->m_len > 0) -- cSegs++; -- } -+ mtx_lock_spin(&pThis->u.s.inq.ifq_mtx); -+ _IF_DEQUEUE(&pThis->u.s.inq, m); -+ mtx_unlock_spin(&pThis->u.s.inq.ifq_mtx); -+ if (m == NULL) -+ break; - -+ for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ if (m0->m_len > 0) -+ cSegs++; -+ - #ifdef PADD_RUNT_FRAMES_FROM_HOST -- if (m_length(m, NULL) < 60) -- cSegs++; -+ if (m_length(m, NULL) < 60) -+ cSegs++; - #endif - -- /* Create a copy of the mbuf and hand it to the virtual switch */ -- pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -- vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_WIRE); -- RTMemTmpFree(pSG); -+ /* Create a copy and deliver to the virtual switch */ -+ pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -+ vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -+ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -+ RTMemTmpFree(pSG); -+ if (fDropIt) -+ m_freem(m); -+ else -+ ether_demux(ifp, m); -+ } - vboxNetFltRelease(pThis, true /* fBusy */); -- --out: -- /* Only deliver it to the host stack if the destination weren't a guest */ -- if (fDropIt) -- { -- m_freem(m); -- return (0); -- } -- ether_demux(ifp, m); -- return (0); - } - - /** -- * Handle mbufs on the outgoing hook, frames going to the interface -+ * Output processing task, handles outgoing frames - */ --static int ng_vboxnetflt_rcv_out(hook_p hook, item_p item) -+static void vboxNetFltFreeBSDoutput(void *arg, int pending) - { -+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; - struct mbuf *m, *m0; -- struct m_tag *mtag; -- const node_p node = NG_HOOK_NODE(hook); -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); - struct ifnet *ifp = pThis->u.s.ifp; - unsigned int cSegs = 0; - bool fDropIt = false, fActive; - PINTNETSG pSG; - -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -- -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (!fActive) -- return ether_output_frame(ifp, m); -- - vboxNetFltRetain(pThis, true /* fBusy */); -- /* Pass directly to interface if the packet originated from us */ -- mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -- if (mtag != NULL) -+ for (;;) - { -- m_tag_unlink(m, mtag); -- m_tag_free(mtag); -- goto out; -- } -+ mtx_lock_spin(&pThis->u.s.outq.ifq_mtx); -+ _IF_DEQUEUE(&pThis->u.s.outq, m); -+ mtx_unlock_spin(&pThis->u.s.outq.ifq_mtx); -+ if (m == NULL) -+ break; - -- for (m0 = m; m0 != NULL; m0 = m0->m_next) -- { -- if (m0->m_len > 0) -- cSegs++; -- } -+ for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ if (m0->m_len > 0) -+ cSegs++; - - #ifdef PADD_RUNT_FRAMES_FROM_HOST -- if (m_length(m, NULL) < 60) -- cSegs++; -+ if (m_length(m, NULL) < 60) -+ cSegs++; - #endif -- /* Create a copy and deliver to the virtual switch */ -- pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -- vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -- RTMemTmpFree(pSG); -+ /* Create a copy and deliver to the virtual switch */ -+ pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -+ vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -+ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -+ RTMemTmpFree(pSG); - --out: -+ if (fDropIt) -+ m_freem(m); -+ else -+ ether_output_frame(ifp, m); -+ } - vboxNetFltRelease(pThis, true /* fBusy */); -- if (fDropIt) -- { -- m_freem(m); -- return (0); -- } -- -- return ether_output_frame(ifp, m); - } - --static int ng_vboxnetflt_shutdown(node_p node) --{ -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -- bool fActive; -- -- /* Prevent node shutdown if we're active */ -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (fActive) -- return (EBUSY); -- NG_NODE_UNREF(node); -- return (0); --} -- --static int ng_vboxnetflt_disconnect(hook_p hook) --{ -- return (0); --} -- - /** - * Called to deliver a frame to either the host, the wire or both. - */ -@@ -536,13 +542,23 @@ - - /* Create a new netgraph node for this instance */ - if (ng_make_node_common(&ng_vboxnetflt_typestruct, &node) != 0) -- return VERR_INTERNAL_ERROR; -+ return VERR_INTERNAL_ERROR; - - RTSpinlockAcquire(pThis->hSpinlock, &Tmp); - ASMAtomicUoWritePtr((void * volatile *)&pThis->u.s.ifp, ifp); - pThis->u.s.node = node; - bcopy(IF_LLADDR(ifp), &pThis->u.s.Mac, ETHER_ADDR_LEN); - ASMAtomicUoWriteBool(&pThis->fDisconnectedFromHost, false); -+ /* Initialize deferred input queue */ -+ bzero(&pThis->u.s.inq, sizeof(struct ifqueue)); -+ mtx_init(&pThis->u.s.inq.ifq_mtx, "vboxnetflt inq", NULL, MTX_SPIN); -+ TASK_INIT(&pThis->u.s.tskin, 0, vboxNetFltFreeBSDinput, pThis); -+ -+ /* Initialize deferred output queue */ -+ bzero(&pThis->u.s.outq, sizeof(struct ifqueue)); -+ mtx_init(&pThis->u.s.outq.ifq_mtx, "vboxnetflt outq", NULL, MTX_SPIN); -+ TASK_INIT(&pThis->u.s.tskout, 0, vboxNetFltFreeBSDoutput, pThis); -+ - RTSpinlockRelease(pThis->hSpinlock, &Tmp); - - NG_NODE_SET_PRIVATE(node, pThis); -@@ -571,7 +587,10 @@ - } - - if (ifp0 != NULL) -+ { -+ vboxNetFltOsDeleteInstance(pThis); - vboxNetFltOsInitInstance(pThis, NULL); -+ } - - return !ASMAtomicUoReadBool(&pThis->fDisconnectedFromHost); - } -@@ -579,6 +598,12 @@ - void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis) - { - -+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskin); -+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskout); -+ -+ mtx_destroy(&pThis->u.s.inq.ifq_mtx); -+ mtx_destroy(&pThis->u.s.outq.ifq_mtx); -+ - if (pThis->u.s.node != NULL) - ng_rmnode_self(pThis->u.s.node); - pThis->u.s.node = NULL; diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Installer-Makefile.kmk b/emulators/virtualbox-ose/files/patch-src-VBox-Installer-Makefile.kmk new file mode 100644 index 000000000000..7f226b633c9b --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Installer-Makefile.kmk @@ -0,0 +1,15 @@ +--- src/VBox/Installer/Makefile.kmk.orig 2009-10-05 14:31:40.000000000 +0200 ++++ src/VBox/Installer/Makefile.kmk 2009-10-05 14:32:09.000000000 +0200 +@@ -38,10 +38,12 @@ + if "$(KBUILD_TARGET)" == "win" && "$(KBUILD_HOST)" == "win" + include $(PATH_SUB_CURRENT)/win/Makefile.kmk + endif ++if 0 + if "$(KBUILD_TARGET)" == "freebsd" && "$(KBUILD_HOST)" == "freebsd" + include $(PATH_SUB_CURRENT)/freebsd/Makefile.kmk + endif + endif ++endif + + include $(PATH_SUB_CURRENT)/common/Makefile.kmk + diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Main-AudioAdapterImpl.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Main-AudioAdapterImpl.cpp new file mode 100644 index 000000000000..f47f49c97b0e --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Main-AudioAdapterImpl.cpp @@ -0,0 +1,14 @@ +--- src/VBox/Main/AudioAdapterImpl.cpp.orig 2009-12-15 14:45:08.000000000 +0900 ++++ src/VBox/Main/AudioAdapterImpl.cpp 2009-12-15 14:45:42.000000000 +0900 +@@ -261,6 +261,11 @@ + #if defined (RT_OS_LINUX) || defined (RT_OS_FREEBSD) || defined(VBOX_WITH_SOLARIS_OSS) + case AudioDriverType_OSS: + #endif ++#ifdef RT_OS_FREEBSD ++# ifdef VBOX_WITH_PULSE ++ case AudioDriverType_Pulse: ++# endif ++#endif + #ifdef RT_OS_DARWIN + case AudioDriverType_CoreAudio: + #endif diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Main-ConsoleImpl.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Main-ConsoleImpl.cpp new file mode 100644 index 000000000000..cb67a48f5a44 --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Main-ConsoleImpl.cpp @@ -0,0 +1,11 @@ +--- src/VBox/Main/ConsoleImpl.cpp.orig ++++ src/VBox/Main/ConsoleImpl.cpp +@@ -6168,7 +6168,7 @@ Console::usbDetachCallback(Console *that + } + + #endif /* VBOX_WITH_USB */ +-#if (defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)) && !defined(VBOX_WITH_NETFLT) ++#if ((defined(RT_OS_LINUX) && !defined(VBOX_WITH_NETFLT)) || defined(RT_OS_FREEBSD)) + + /** + * Helper function to handle host interface device creation and attachment. diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Main-ConsoleImpl2.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Main-ConsoleImpl2.cpp new file mode 100644 index 000000000000..4373abea3487 --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Main-ConsoleImpl2.cpp @@ -0,0 +1,103 @@ +--- src/VBox/Main/ConsoleImpl2.cpp.orig 2009-12-15 14:48:58.000000000 +0900 ++++ src/VBox/Main/ConsoleImpl2.cpp 2009-12-15 14:48:42.000000000 +0900 +@@ -86,6 +86,7 @@ + # include <sys/ioctl.h> + # include <sys/socket.h> + # include <net/if.h> ++# include <net80211/ieee80211_ioctl.h> + #endif + + #if defined(RT_OS_WINDOWS) && defined(VBOX_WITH_NETFLT) +@@ -1605,6 +1605,15 @@ + break; + } + #endif ++#ifdef RT_OS_FREEBSD ++# ifdef VBOX_WITH_PULSE ++ case AudioDriverType_Pulse: ++ { ++ rc = CFGMR3InsertString(pCfg, "AudioDriver", "pulse"); RC_CHECK(); ++ break; ++ } ++# endif ++#endif + #ifdef RT_OS_DARWIN + case AudioDriverType_CoreAudio: + { +@@ -2394,6 +2394,42 @@ DECLCALLBACK(int) Console::configConstru + /* we're not releasing the INetCfg stuff here since we use it later to figure out whether it is wireless */ + + # elif defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) ++# if defined(RT_OS_FREEBSD) ++ /* ++ * If we bridge to a tap interface open it the `old' direct way. ++ * This works and performs better than bridging a physical ++ * interface via the current FreeBSD vboxnetflt implementation. ++ */ ++ if (!strncmp(pszHifName, "tap", sizeof "tap" - 1)) { ++ hrc = pThis->attachToTapInterface(aNetworkAdapter); ++ if (FAILED(hrc)) ++ { ++ switch (hrc) ++ { ++ case VERR_ACCESS_DENIED: ++ return VMSetError(pVM, VERR_HOSTIF_INIT_FAILED, RT_SRC_POS, N_( ++ "Failed to open '/dev/%s' for read/write access. Please check the " ++ "permissions of that node, and that the net.link.tap.user_open " ++ "sysctl is set. Either run 'chmod 0666 /dev/%s' or " ++ "change the group of that node to vboxusers and make yourself " ++ "a member of that group. Make sure that these changes are permanent."), pszHifName, pszHifName); ++ default: ++ AssertMsgFailed(("Could not attach to tap interface! Bad!\n")); ++ return VMSetError(pVM, VERR_HOSTIF_INIT_FAILED, RT_SRC_POS, N_( ++ "Failed to initialize Host Interface Networking")); ++ } ++ } ++ ++ Assert ((int)pThis->maTapFD[uInstance] >= 0); ++ if ((int)pThis->maTapFD[uInstance] >= 0) ++ { ++ rc = CFGMR3InsertString(pLunL0, "Driver", "HostInterface"); RC_CHECK(); ++ rc = CFGMR3InsertNode(pLunL0, "Config", &pCfg); RC_CHECK(); ++ rc = CFGMR3InsertInteger(pCfg, "FileHandle", pThis->maTapFD[uInstance]); RC_CHECK(); ++ } ++ break; ++ } ++# endif + /** @todo Check for malformed names. */ + const char *pszTrunk = pszHifName; + +@@ -2495,6 +2496,33 @@ DECLCALLBACK(int) Console::configConstru + } + else + Log(("Failed to open wireless socket\n")); ++# elif defined(RT_OS_FREEBSD) ++ int iSock = socket(AF_INET, SOCK_DGRAM, 0); ++ if (iSock >= 0) ++ { ++ struct ieee80211req ireq; ++ uint8_t data[32]; ++ ++ (void) memset(&ireq, 0, sizeof(ireq)); ++ (void) strncpy(ireq.i_name, pszHifName, sizeof(ireq.i_name)); ++ ireq.i_type = IEEE80211_IOC_SSID; ++ ireq.i_val = -1; ++ ireq.i_data = data; ++ ireq.i_len = sizeof(data); ++ ++ bool fSharedMacOnWire = ioctl(iSock, SIOCG80211, &ireq) >= 0; ++ close(iSock); ++ if (fSharedMacOnWire) ++ { ++ rc = CFGMR3InsertInteger(pCfg, "SharedMacOnWire", true); ++ RC_CHECK(); ++ Log(("Set SharedMacOnWire\n")); ++ } ++ else ++ Log(("Failed to get wireless name\n")); ++ } ++ else ++ Log(("Failed to open wireless socket\n")); + # elif defined(RT_OS_WINDOWS) + # define DEVNAME_PREFIX L"\\\\.\\" + /* we are getting the medium type via IOCTL_NDIS_QUERY_GLOBAL_STATS Io Control diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Main-include-ConsoleImpl.h b/emulators/virtualbox-ose/files/patch-src-VBox-Main-include-ConsoleImpl.h new file mode 100644 index 000000000000..2471480886d8 --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Main-include-ConsoleImpl.h @@ -0,0 +1,20 @@ +--- src/VBox/Main/include/ConsoleImpl.h.orig ++++ src/VBox/Main/include/ConsoleImpl.h +@@ -410,7 +410,7 @@ private: + + HRESULT callTapSetupApplication(bool isStatic, RTFILE tapFD, Bstr &tapDevice, + Bstr &tapSetupApplication); +-#if (defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)) && !defined(VBOX_WITH_NETFLT) ++#if ((defined(RT_OS_LINUX) && !defined(VBOX_WITH_NETFLT)) || defined(RT_OS_FREEBSD)) + HRESULT attachToTapInterface(INetworkAdapter *networkAdapter); + HRESULT detachFromTapInterface(INetworkAdapter *networkAdapter); + #endif +@@ -582,7 +582,7 @@ private: + PPDMLED mapNetworkLeds[SchemaDefs::NetworkAdapterCount]; + PPDMLED mapSharedFolderLed; + PPDMLED mapUSBLed[2]; +-#if !defined(VBOX_WITH_NETFLT) && (defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)) ++#if ((defined(RT_OS_LINUX) && !defined(VBOX_WITH_NETFLT)) || defined(RT_OS_FREEBSD)) + Utf8Str maTAPDeviceName[8]; + RTFILE maTapFD[8]; + #endif diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-VBox-log-vbox.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-VBox-log-vbox.cpp new file mode 100644 index 000000000000..005a25e4a79a --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-VBox-log-vbox.cpp @@ -0,0 +1,82 @@ +--- src/VBox/Runtime/VBox/log-vbox.cpp (revision 25471) ++++ src/VBox/Runtime/VBox/log-vbox.cpp (revision 25472) +@@ -135,6 +135,12 @@ + # include <Windows.h> + # elif defined(RT_OS_LINUX) + # include <unistd.h> ++# elif defined(RT_OS_FREEBSD) ++# include <sys/param.h> ++# include <sys/sysctl.h> ++# include <sys/user.h> ++# include <stdlib.h> ++# include <unistd.h> + # elif defined(RT_OS_SOLARIS) + # define _STRUCTURED_PROC 1 + # undef _FILE_OFFSET_BITS /* procfs doesn't like this */ +@@ -157,6 +163,7 @@ + # include <iprt/path.h> + # include <iprt/process.h> + # include <iprt/string.h> ++# include <iprt/mem.h> + # include <stdio.h> + #endif + +@@ -339,12 +346,8 @@ + fclose(pFile); + } + +-# elif defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) +-# ifdef RT_OS_LINUX ++# elif defined(RT_OS_LINUX) + FILE *pFile = fopen("/proc/self/cmdline", "r"); +-# else /* RT_OS_FREEBSD: */ +- FILE *pFile = fopen("/proc/curproc/cmdline", "r"); +-# endif + if (pFile) + { + /* braindead */ +@@ -370,7 +373,44 @@ + RTLogLoggerEx(pLogger, 0, ~0U, "\n"); + fclose(pFile); + } ++# elif defined(RT_OS_FREEBSD) ++ char *pszArgFileBuf = NULL; ++ int aiName[4]; ++ size_t cchArgs; + ++ aiName[0] = CTL_KERN; ++ aiName[1] = KERN_PROC; ++ aiName[2] = KERN_PROC_ARGS; ++ aiName[3] = -1; ++ ++ /* Retrieve the required length first */ ++ cchArgs = 0; ++ int rcBSD = sysctl(aiName, RT_ELEMENTS(aiName), NULL, &cchArgs, NULL, 0); ++ ++ if (cchArgs > 0) ++ { ++ pszArgFileBuf = (char *)RTMemAllocZ(cchArgs + 1 /* Safety */); ++ if (pszArgFileBuf) ++ { ++ /* Retrieve the argument list */ ++ rcBSD = sysctl(aiName, RT_ELEMENTS(aiName), pszArgFileBuf, &cchArgs, NULL, 0); ++ if (!rcBSD) ++ { ++ /* ++ * cmdline is a flattened argument list so we need ++ * to convert all \0 to blanks ++ */ ++ for(size_t i = 0; i < cchArgs - 1; i++) ++ { ++ if(pszArgFileBuf[i] == '\0') ++ pszArgFileBuf[i] = ' '; ++ } ++ ++ RTLogLoggerEx(pLogger, 0, ~0U, "Commandline: %s\n", pszArgFileBuf); ++ } ++ RTMemFree(pszArgFileBuf); ++ } ++ } + # elif defined(RT_OS_L4) || defined(RT_OS_OS2) || defined(RT_OS_DARWIN) + /* commandline? */ + # else 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 deleted file mode 100644 index c7c56d5814ee..000000000000 --- a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c +++ /dev/null @@ -1,14 +0,0 @@ -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-the-freebsd-kernel.h b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h deleted file mode 100644 index 4332049487c3..000000000000 --- a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h +++ /dev/null @@ -1,11 +0,0 @@ ---- src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h.orig 2009-09-11 14:48:47.000000000 +0200 -+++ src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h 2009-09-11 14:48:54.000000000 +0200 -@@ -76,7 +76,7 @@ - # define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt, 0) - # define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt, 0) - # define SLEEPQ_WAIT_SIG(EventInt) sleepq_wait_sig(EventInt, 0) --#elif -+#else - # define SLEEPQ_TIMEDWAIT(EventInt) sleepq_timedwait(EventInt) - # define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt) - # define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt) diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r3-freebsd-rtProcInitExePath-freebsd.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r3-freebsd-rtProcInitExePath-freebsd.cpp new file mode 100644 index 000000000000..2332212ead14 --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r3-freebsd-rtProcInitExePath-freebsd.cpp @@ -0,0 +1,81 @@ +--- src/VBox/Runtime/r3/freebsd/rtProcInitExePath-freebsd.cpp (revision 25471) ++++ src/VBox/Runtime/r3/freebsd/rtProcInitExePath-freebsd.cpp (revision 25472) +@@ -32,6 +32,8 @@ + * Header Files * + *******************************************************************************/ + #define LOG_GROUP RTLOGGROUP_PROCESS ++#include <sys/param.h> ++#include <sys/sysctl.h> + #include <unistd.h> + #include <errno.h> + #include <dlfcn.h> +@@ -47,17 +49,20 @@ + + DECLHIDDEN(int) rtProcInitExePath(char *pszPath, size_t cchPath) + { +- /* +- * Read the /proc/curproc/file link, convert to native and return it. +- */ +- int cchLink = readlink("/proc/curproc/file", pszPath, cchPath - 1); +- if (cchLink > 0 && (size_t)cchLink <= cchPath - 1) +- { +- pszPath[cchLink] = '\0'; ++ int aiName[4]; ++ size_t cchExePath; + ++ aiName[0] = CTL_KERN; ++ aiName[1] = KERN_PROC; ++ aiName[2] = KERN_PROC_PATHNAME; ++ aiName[3] = getpid(); ++ ++ cchExePath = cchPath - 1; ++ if(sysctl(aiName, RT_ELEMENTS(aiName), pszPath, &cchExePath, NULL, 0) == 0) ++ { + char *pszTmp = NULL; + int rc = rtPathFromNative(&pszTmp, pszPath); +- AssertMsgRCReturn(rc, ("rc=%Rrc pszLink=\"%s\"\nhex: %.*Rhsx\n", rc, pszPath, cchLink, pszPath), rc); ++ AssertMsgRCReturn(rc, ("rc=%Rrc pszLink=\"%s\"\nhex: %.*Rhsx\n", rc, pszPath, cchExePath, pszPath), rc); + + size_t cch = strlen(pszTmp); + AssertReturn(cch <= cchPath, VERR_BUFFER_OVERFLOW); +@@ -68,39 +73,8 @@ + return VINF_SUCCESS; + } + +- int err = errno; +- +- /* +- * Fall back on the dynamic linker since /proc is optional. +- */ +- void *hExe = dlopen(NULL, 0); +- if (hExe) +- { +- struct link_map const *pLinkMap = 0; +- if (dlinfo(hExe, RTLD_DI_LINKMAP, &pLinkMap) == 0) +- { +- const char *pszImageName = pLinkMap->l_name; +- if (*pszImageName == '/') /* this may not always be absolute, despite the docs. :-( */ +- { +- char *pszTmp = NULL; +- int rc = rtPathFromNative(&pszTmp, pszImageName); +- AssertMsgRCReturn(rc, ("rc=%Rrc pszImageName=\"%s\"\n", rc, pszImageName), rc); +- +- size_t cch = strlen(pszTmp); +- AssertReturn(cch <= cchPath, VERR_BUFFER_OVERFLOW); +- +- memcpy(pszPath, pszTmp, cch + 1); +- RTStrFree(pszTmp); +- +- return VINF_SUCCESS; +- } +- /** @todo Try search the PATH for the file name or append the current +- * directory, which ever makes sense... */ +- } +- } +- +- int rc = RTErrConvertFromErrno(err); +- AssertMsgFailed(("rc=%Rrc err=%d cchLink=%d hExe=%p\n", rc, err, cchLink, hExe)); ++ int rc = RTErrConvertFromErrno(errno); ++ AssertMsgFailed(("rc=%Rrc errno=%d cchLink=%d\n", rc, errno, cchExePath)); + return rc; + } diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp deleted file mode 100644 index 955bf7a3a151..000000000000 --- a/emulators/virtualbox-ose/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp +++ /dev/null @@ -1,207 +0,0 @@ ---- src/apps/adpctl/VBoxNetAdpCtl.cpp.r22902 2009-04-10 14:03:59.000000000 +0200 -+++ src/apps/adpctl/VBoxNetAdpCtl.cpp 2009-09-16 14:07:11.000000000 +0200 -@@ -1,4 +1,4 @@ --/* $Id: VBoxNetAdpCtl.cpp 18864 2009-04-10 12:03:59Z vboxsync $ */ -+/* $Id: VBoxNetAdpCtl.cpp 23064 2009-09-16 12:07:11Z vboxsync $ */ - /** @file - * Apps - VBoxAdpCtl, Configuration tool for vboxnetX adapters. - */ -@@ -24,7 +24,6 @@ - /******************************************************************************* - * Header Files * - *******************************************************************************/ --#include <assert.h> - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -@@ -36,11 +35,12 @@ - # include <sys/ioccom.h> - #endif - --/* @todo Error codes must be moved to some header file */ --#define ADPCTLERR_NO_CTL_DEV 3 --#define ADPCTLERR_IOCTL_FAILED 4 -+/** @todo Error codes must be moved to some header file */ -+#define ADPCTLERR_BAD_NAME 2 -+#define ADPCTLERR_NO_CTL_DEV 3 -+#define ADPCTLERR_IOCTL_FAILED 4 - --/* @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */ -+/** @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */ - #define VBOXNETADP_CTL_DEV_NAME "/dev/vboxnetctl" - #define VBOXNETADP_NAME "vboxnet" - #define VBOXNETADP_MAX_NAME_LEN 32 -@@ -85,6 +85,7 @@ - pcszArg5, /* [network mask] */ - NULL /* terminator */ - }; -+ char * const envp[] = { (char*)"LC_ALL=C", NULL }; - int rc = EXIT_SUCCESS; - pid_t childPid = fork(); - switch (childPid) -@@ -94,7 +95,7 @@ - rc = EXIT_FAILURE; - break; - case 0: /* Child process. */ -- if (execv(VBOXADPCTL_IFCONFIG_PATH, (char * const*)argv) == -1) -+ if (execve(VBOXADPCTL_IFCONFIG_PATH, (char * const*)argv, envp) == -1) - rc = EXIT_FAILURE; - break; - default: /* Parent process. */ -@@ -108,15 +109,39 @@ - #define MAX_ADDRESSES 128 - #define MAX_ADDRLEN 64 - --static bool removeAddresses(const char *pszAdapterName) -+static bool removeAddresses(char *pszAdapterName) - { -- char szCmd[1024], szBuf[1024]; -+ char szBuf[1024]; - char aszAddresses[MAX_ADDRESSES][MAX_ADDRLEN]; -+ int rc; -+ int fds[2]; -+ char * const argv[] = { VBOXADPCTL_IFCONFIG_PATH, pszAdapterName, NULL }; -+ char * const envp[] = { (char*)"LC_ALL=C", NULL }; - - memset(aszAddresses, 0, sizeof(aszAddresses)); -- snprintf(szCmd, sizeof(szCmd), VBOXADPCTL_IFCONFIG_PATH " %s", pszAdapterName); -- FILE *fp = popen(szCmd, "r"); - -+ rc = pipe(fds); -+ if (rc < 0) -+ return false; -+ -+ pid_t pid = fork(); -+ if (pid < 0) -+ return false; -+ -+ if (pid == 0) -+ { -+ /* child */ -+ close(fds[0]); -+ close(STDOUT_FILENO); -+ rc = dup2(fds[1], STDOUT_FILENO); -+ if (rc >= 0) -+ execve(VBOXADPCTL_IFCONFIG_PATH, argv, envp); -+ return false; -+ } -+ -+ /* parent */ -+ close(fds[1]); -+ FILE *fp = fdopen(fds[0], "r"); - if (!fp) - return false; - -@@ -124,9 +149,6 @@ - for (cAddrs = 0; cAddrs < MAX_ADDRESSES && fgets(szBuf, sizeof(szBuf), fp);) - { - int cbSkipWS = strspn(szBuf, " \t"); --#if 0 /* Don't use this! assert() breaks the mac build. Use IPRT or be a rectangular building thing. */ -- assert(cbSkipWS < 20); --#endif - char *pszWord = strtok(szBuf + cbSkipWS, " "); - /* We are concerned with IPv6 address lines only. */ - if (!pszWord || strcmp(pszWord, "inet6")) -@@ -143,11 +165,12 @@ - continue; - strncpy(aszAddresses[cAddrs++], pszWord, MAX_ADDRLEN-1); - } -- pclose(fp); -+ fclose(fp); - - for (int i = 0; i < cAddrs; i++) - { -- if (executeIfconfig(pszAdapterName, "inet6", VBOXADPCTL_DEL_CMD, aszAddresses[i]) != EXIT_SUCCESS) -+ if (executeIfconfig(pszAdapterName, "inet6", -+ VBOXADPCTL_DEL_CMD, aszAddresses[i]) != EXIT_SUCCESS) - return false; - } - -@@ -166,19 +189,41 @@ - int rc = ioctl(fd, uCmd, pData); - if (rc == -1) - { -- perror("VBoxNetAdpCtl: ioctl failed for " VBOXNETADP_CTL_DEV_NAME); -+ perror("VBoxNetAdpCtl: ioctl failed for " VBOXNETADP_CTL_DEV_NAME); - rc = ADPCTLERR_IOCTL_FAILED; - } -- -+ - close(fd); -- -+ - return rc; - } - -+int checkAdapterName(const char *pcszNameIn, char *pszNameOut) -+{ -+ int iAdapterIndex = -1; -+ -+ if ( strlen(pcszNameIn) >= VBOXNETADP_MAX_NAME_LEN -+ || sscanf(pcszNameIn, "vboxnet%d", &iAdapterIndex) != 1 -+ || iAdapterIndex < 0 || iAdapterIndex > 99 ) -+ { -+ fprintf(stderr, "Setting configuration for %s is not supported.\n", pcszNameIn); -+ return ADPCTLERR_BAD_NAME; -+ } -+ sprintf(pszNameOut, "vboxnet%d", iAdapterIndex); -+ if (strcmp(pszNameOut, pcszNameIn)) -+ { -+ fprintf(stderr, "Invalid adapter name %s.\n", pcszNameIn); -+ return ADPCTLERR_BAD_NAME; -+ } -+ -+ return 0; -+} -+ - int main(int argc, char *argv[]) - - { -- const char *pszAdapterName; -+ char szAdapterName[VBOXNETADP_MAX_NAME_LEN]; -+ char *pszAdapterName; - const char *pszAddress; - const char *pszNetworkMask = NULL; - const char *pszOption = NULL; -@@ -216,13 +261,18 @@ - pszAddress = argv[2]; - if (strcmp("remove", pszAddress) == 0) - { -- strncpy(Req.szName, pszAdapterName, sizeof(Req.szName)); -+ rc = checkAdapterName(pszAdapterName, szAdapterName); -+ if (rc) -+ return rc; -+ memset(&Req, '\0', sizeof(Req)); -+ snprintf(Req.szName, sizeof(Req.szName), "%s", szAdapterName); - return doIOCtl(VBOXNETADP_CTL_REMOVE, &Req); - } - break; - case 2: - if (strcmp("add", argv[1]) == 0) - { -+ memset(&Req, '\0', sizeof(Req)); - rc = doIOCtl(VBOXNETADP_CTL_ADD, &Req); - if (rc == 0) - puts(Req.szName); -@@ -237,11 +287,11 @@ - return 1; - } - -- if (strncmp("vboxnet", pszAdapterName, 7)) -- { -- fprintf(stderr, "Setting configuration for %s is not supported.\n", pszAdapterName); -- return 2; -- } -+ rc = checkAdapterName(pszAdapterName, szAdapterName); -+ if (rc) -+ return rc; -+ -+ pszAdapterName = szAdapterName; - - if (fRemove) - { -@@ -276,3 +326,4 @@ - } - return rc; - } -+ diff --git a/emulators/virtualbox-ose/files/patch-src-settings-vm-VBoxVMSettingsAudio.cpp b/emulators/virtualbox-ose/files/patch-src-settings-vm-VBoxVMSettingsAudio.cpp new file mode 100644 index 000000000000..707189e1cac7 --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src-settings-vm-VBoxVMSettingsAudio.cpp @@ -0,0 +1,12 @@ +--- src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsAudio.cpp.orig 2009-12-17 15:28:01.000000000 +0100 ++++ src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsAudio.cpp 2009-12-21 14:14:35.000000000 +0100 +@@ -89,6 +89,9 @@ + #endif + #if defined Q_OS_LINUX || defined Q_OS_FREEBSD + mCbAudioDriver->addItem (vboxGlobal().toString (KAudioDriverType_OSS)); ++# ifdef VBOX_WITH_PULSE ++ mCbAudioDriver->addItem (vboxGlobal().toString (KAudioDriverType_Pulse)); ++# endif + #endif + #if defined Q_OS_LINUX + # ifdef VBOX_WITH_ALSA diff --git a/emulators/virtualbox-ose/pkg-message b/emulators/virtualbox-ose/pkg-message index 91b8b16427cd..a5c046c48a13 100644 --- a/emulators/virtualbox-ose/pkg-message +++ b/emulators/virtualbox-ose/pkg-message @@ -2,14 +2,15 @@ VirtualBox was installed. -You need to load the vboxdrv kernel module and a mounted /proc filesystem. +You need to load the vboxdrv kernel module via /boot/loader.conf: -% mount -t procfs proc /proc -% kldload vboxdrv +vboxdrv_load="YES" -For bridged networking you also need to load the vboxnetflt kernel module. +For bridged networking please add the following line to your /etc/rc.conf: -% kldload vboxnetflt +vboxnet_enable="YES" + +Reboot the machine to load the needed kernel modules. You also have to add all users to your vboxusers group in order to use vbox. diff --git a/emulators/virtualbox-ose/pkg-plist b/emulators/virtualbox-ose/pkg-plist index f8ade22c00a7..797ae3012595 100644 --- a/emulators/virtualbox-ose/pkg-plist +++ b/emulators/virtualbox-ose/pkg-plist @@ -45,6 +45,7 @@ lib/virtualbox/VBoxXPCOMIPCD lib/virtualbox/VBoxDD2GC.gc lib/virtualbox/VBoxDDGC.gc lib/virtualbox/VMMGC.gc +lib/virtualbox/tstMicroGC.gc lib/virtualbox/VBoxDD2R0.r0 lib/virtualbox/VBoxDDR0.r0 %%GUESTADDITIONS%%lib/virtualbox/additions/VBoxGuestAdditions.iso @@ -60,12 +61,15 @@ lib/virtualbox/components/VBoxXPCOMBase.xpt %%NLS%%%%DATADIR%%/nls/VirtualBox_bg.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_ca.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_cs.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_da.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_de.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_el.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_en.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_es.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_eu.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_fi.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_fr.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_gl_ES.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_hu.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_id.qm %%NLS%%%%DATADIR%%/nls/VirtualBox_it.qm @@ -89,12 +93,15 @@ lib/virtualbox/components/VBoxXPCOMBase.xpt %%NLS%%%%DATADIR%%/nls/qt_bg.qm %%NLS%%%%DATADIR%%/nls/qt_ca.qm %%NLS%%%%DATADIR%%/nls/qt_cs.qm +%%NLS%%%%DATADIR%%/nls/qt_da.qm %%NLS%%%%DATADIR%%/nls/qt_de.qm %%NLS%%%%DATADIR%%/nls/qt_el.qm +%%NLS%%%%DATADIR%%/nls/qt_en.qm %%NLS%%%%DATADIR%%/nls/qt_es.qm %%NLS%%%%DATADIR%%/nls/qt_eu.qm %%NLS%%%%DATADIR%%/nls/qt_fi.qm %%NLS%%%%DATADIR%%/nls/qt_fr.qm +%%NLS%%%%DATADIR%%/nls/qt_gl_ES.qm %%NLS%%%%DATADIR%%/nls/qt_hu.qm %%NLS%%%%DATADIR%%/nls/qt_id.qm %%NLS%%%%DATADIR%%/nls/qt_it.qm @@ -593,7 +600,3 @@ include/virtualbox/xpcom/xpcom-config.h @dirrm lib/virtualbox/components %%GUESTADDITIONS%%@dirrm lib/virtualbox/additions @dirrm lib/virtualbox -@cwd / -%%KMODDIR%%/vboxdrv.ko -%%KMODDIR%%/vboxnetadp.ko -%%KMODDIR%%/vboxnetflt.ko diff --git a/emulators/virtualbox/Makefile b/emulators/virtualbox/Makefile deleted file mode 100644 index 46617a1b64b8..000000000000 --- a/emulators/virtualbox/Makefile +++ /dev/null @@ -1,259 +0,0 @@ -# New ports collection makefile for: virtualbox -# Date created: 2009-05-02 -# Whom: Bernhard Froehlich <decke@bluelife.at> -# -# $FreeBSD$ -# - -PORTNAME= virtualbox -DISTVERSION= 3.0.51r22902 -PORTREVISION= 3 -CATEGORIES= emulators kld -MASTER_SITES= http://tmp.chruetertee.ch/ \ - http://freebsd.unixfreunde.de/sources/ \ - http://disasterarea.chruetertee.ch/ \ - http://mirror.4bit.ws/ \ - http://dlc.sun.com/virtualbox/${VBOX_GUEST_VER}/:guestadditions -DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${GADISTFILES} -EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} - -#for discussion please use emulation@FreeBSD.org -MAINTAINER= vbox@FreeBSD.org -COMMENT= A general-purpose full virtualizer for x86 hardware - -BUILD_DEPENDS= yasm:${PORTSDIR}/devel/yasm \ - as86:${PORTSDIR}/devel/dev86 \ - xsltproc:${PORTSDIR}/textproc/libxslt \ - kmk:${PORTSDIR}/devel/kBuild -LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \ - xslt.2:${PORTSDIR}/textproc/libxslt \ - curl.5:${PORTSDIR}/ftp/curl - -ONLY_FOR_ARCHS= i386 amd64 -USE_GNOME= libidl -USE_CDRTOOLS= 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= VBoxHeadless -VBOX_GUEST_VER= 3.0.6 - -SUB_FILES= pkg-install - -SUB_LIST= PREFIX=${PREFIX} \ - VBOXGROUP=${VBOXGROUP} \ - VBOXGID=${VBOXGID} - -OPTIONS= QT4 "Build with QT4 Frontend" on \ - DEBUG "Build with debugging symbols" off \ - 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 -KMK_BUILDTYPE= release -KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys -KMK_FLAGS= - -.if defined(WITHOUT_QT4) && !defined(WITHOUT_NLS) -BROKEN= NLS support requires QT4 frontend. Run 'make config' again! -.endif - -.if defined(WITHOUT_X11) && !defined(WITHOUT_QT4) -BROKEN= QT4 frontend requires X11 support. Run 'make config' again! -.endif - -.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 -PLIST_SUB+= QT4="" -.else -CONFIGURE_ARGS+=--disable-qt4 -PLIST_SUB+= QT4="@comment " -.endif - -.if defined(WITH_GUESTADDITIONS) -GUESTADDITIONS= VBoxGuestAdditions_${VBOX_GUEST_VER}.iso -GADISTFILES= ${GUESTADDITIONS}:guestadditions -RESTRICTED= for personal use only -RESTRICTED_FILES= ${GUESTADDITIONS} -FETCH_ARGS= -pRr -PLIST_SUB+= GUESTADDITIONS="" -.else -PLIST_SUB+= GUESTADDITIONS="@comment " -.endif - -.if defined(WITH_DEBUG) -KMK_FLAGS+= BUILD_TYPE=debug -KMK_BUILDTYPE= debug -.endif - -.if !defined(WITHOUT_DBUS) -LIB_DEPENDS+= dbus-1.3:${PORTSDIR}/devel/dbus -.else -CONFIGURE_ARGS+=--disable-dbus -.endif - -.if !defined(WITH_PULSEAUDIO) -CONFIGURE_ARGS+=--disable-pulse -.endif - -.if !defined(WITHOUT_NLS) -PLIST_SUB+= NLS="" -.else -PLIST_SUB+= NLS="@comment " -.endif - -.if !exists(${SRC_BASE}/sys/kern/bus_if.m) -IGNORE= requires kernel sources for the kernel module -.endif - -.if ${OSVERSION} < 700000 -BROKEN= Does not compile on FreeBSD 6.X -.endif - -.if ${ARCH} == i386 -KMK_ARCH= freebsd.x86 -PLIST_SUB+= I386="" -.else -KMK_ARCH= freebsd.${ARCH} -PLIST_SUB+= I386="@comment " -.endif - -.include <bsd.port.pre.mk> - -pre-everything:: -.if ${ARCH} == "amd64" -.if !exists(/usr/lib32) - @${ECHO} 'Requires 32-bit libraries installed under /usr/lib32.' - @${ECHO} 'Do: cd /usr/src; make build32 install32; ldconfig -v -m -R /usr/lib32' - @${FALSE} -.endif -.endif - -post-patch: - @${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 - @${ECHO} 'VBOX_WITH_TESTCASES=' >> ${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 \ - ${WRKSRC}/kBuild/sdks/LIBSDL.kmk \ - ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py - @${REINPLACE_CMD} -e 's|\$$KBUILDDIR_BIN/kmk_sed|${PREFIX}/bin/kmk_sed|g' ${WRKSRC}/configure - -pre-build: - @${REINPLACE_CMD} -e 's|/bin/bash|/bin/sh|' \ - ${WRKSRC}/env.sh - -do-build: - cd ${WRKSRC} && ${SH} env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS} - -do-install: - ${MKDIR} ${KMODDIR} -.for f in vboxdrv.ko vboxnetadp.ko vboxnetflt.ko - ${INSTALL_KLD} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/${f} ${KMODDIR} -.endfor - - ${MKDIR} ${DATADIR} - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom && ${COPYTREE_SHARE} "idl samples" ${DATADIR}) - - ${MKDIR} ${PREFIX}/include/virtualbox - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/include && ${COPYTREE_SHARE} "*" ${PREFIX}/include/virtualbox) - - ${MKDIR} ${PREFIX}/lib/virtualbox - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin && ${COPYTREE_SHARE} "*.so *.gc *.r0 components" ${PREFIX}/lib/virtualbox) - -.if !defined(WITHOUT_NLS) - ${MKDIR} ${DATADIR}/nls - (cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/obj/VirtualBox/qtnls && ${COPYTREE_SHARE} "*.qm" ${DATADIR}/nls) -.endif - - ${MKDIR} ${PREFIX}/bin -.for f in VBoxManage VBoxNetAdpCtl 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 - -.for f in VBoxNetAdpCtl VBoxNetDHCP ${VBOX_FRONTENDS} - ${CHMOD} 4511 ${PREFIX}/lib/virtualbox/${f} -.endfor - -.for f in VBoxManage VBoxSVC VBoxXPCOMIPCD - ${CHMOD} 0711 ${PREFIX}/lib/virtualbox/${f} -.endfor - -.if defined(WITH_GUESTADDITIONS) - ${MKDIR} ${PREFIX}/lib/virtualbox/additions - ${INSTALL_DATA} ${DISTDIR}/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/additions/ - ${LN} -sf ${PREFIX}/lib/virtualbox/additions/${GUESTADDITIONS} ${PREFIX}/lib/virtualbox/additions/VBoxGuestAdditions.iso -.endif - - 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 - -.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD ${VBOX_FRONTENDS} - ${CHOWN} root:${VBOXGROUP} ${PREFIX}/lib/virtualbox/${f} -.endfor - - @${FIND} ${DATADIR} -type d -print0 | ${XARGS} -0 ${CHMOD} 755 - @${FIND} ${PREFIX}/include/virtualbox -type d -print0 | ${XARGS} -0 ${CHMOD} 755 - @${FIND} ${PREFIX}/lib/virtualbox -type d -print0 | ${XARGS} -0 ${CHMOD} 755 - -.if !defined(WITHOUT_QT4) - ${MKDIR} ${PREFIX}/share/icons/hicolor/48x48/apps/ - ${INSTALL_DATA} ${WRKSRC}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_48px.png ${PREFIX}/share/icons/hicolor/48x48/apps/VBox.png - ${MKDIR} ${PREFIX}/share/applications/ - ${INSTALL_DATA} ${WRKSRC}/src/VBox/Installer/solaris/virtualbox.desktop ${PREFIX}/share/applications/virtualbox.desktop -.endif - @${CAT} ${PKGMESSAGE} - -.include <bsd.port.post.mk> diff --git a/emulators/virtualbox/distinfo b/emulators/virtualbox/distinfo deleted file mode 100644 index 492de57d1c4a..000000000000 --- a/emulators/virtualbox/distinfo +++ /dev/null @@ -1,6 +0,0 @@ -MD5 (virtualbox-3.0.51r22902.tar.bz2) = c2fbfd0eca2d2c9e6ad5f029cf75def0 -SHA256 (virtualbox-3.0.51r22902.tar.bz2) = ccbc88276f9e1944005d1c2f3661ec6d7113b22801ecbbb72d422aa0ab2b0a2a -SIZE (virtualbox-3.0.51r22902.tar.bz2) = 51742256 -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 deleted file mode 100644 index 2ce55eb8a12d..000000000000 --- a/emulators/virtualbox/files/patch-Config.kmk +++ /dev/null @@ -1,10 +0,0 @@ ---- 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-configure b/emulators/virtualbox/files/patch-configure deleted file mode 100644 index c6532c3db606..000000000000 --- a/emulators/virtualbox/files/patch-configure +++ /dev/null @@ -1,20 +0,0 @@ ---- configure.orgi 2009-05-31 13:43:50.000000000 +0200 -+++ configure 2009-05-31 13:45:47.000000000 +0200 -@@ -102,7 +102,7 @@ - XSLTPROC="xsltproc" - GENISOIMAGE="genisoimage" - MKISOFS="mkisofs" --LIBCRYPTO="-lcrypto" -+LIBCRYPTO="-lcrypto -lssl" - LIBPTHREAD="-lpthread" - LIBCAP="-lcap" - GSOAP="" -@@ -1698,7 +1698,7 @@ - cat $ODIR.tmp_src.cc >> $LOG - echo "using the following command line:" >> $LOG - echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so" >> $LOG -- $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so >> $LOG 2>&1 -+ $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so -pthread >> $LOG 2>&1 - if [ $? -eq 0 ]; then - found=1 - break diff --git a/emulators/virtualbox/files/patch-src-VBox-Devices-Makefile.kmk b/emulators/virtualbox/files/patch-src-VBox-Devices-Makefile.kmk deleted file mode 100644 index d404c8aee176..000000000000 --- a/emulators/virtualbox/files/patch-src-VBox-Devices-Makefile.kmk +++ /dev/null @@ -1,15 +0,0 @@ ---- src/VBox/Devices/Makefile.kmk.orig 2009-11-01 22:50:39.000000000 +0100 -+++ src/VBox/Devices/Makefile.kmk 2009-11-01 22:50:52.000000000 +0100 -@@ -31,8 +31,10 @@ - include $(PATH_SUB_CURRENT)/PC/VMI/Makefile.kmk - endif - include $(PATH_SUB_CURRENT)/Graphics/BIOS/Makefile.kmk --include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk --include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk -+ifdef VBOX_WITH_TESTCASES -+ include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk -+ include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk -+endif - ifndef VBOX_OSE - include $(PATH_SUB_CURRENT)/Storage/VBoxHDDFormats/Makefile.kmk - endif diff --git a/emulators/virtualbox/files/patch-src-VBox-Frontends-VBoxManage-VBoxInternalManage.cpp b/emulators/virtualbox/files/patch-src-VBox-Frontends-VBoxManage-VBoxInternalManage.cpp deleted file mode 100644 index 0a1f735fb79a..000000000000 --- a/emulators/virtualbox/files/patch-src-VBox-Frontends-VBoxManage-VBoxInternalManage.cpp +++ /dev/null @@ -1,50 +0,0 @@ -Index: src/VBox/Frontends/VBoxManage/VBoxInternalManage.cpp -@@ -54,7 +54,8 @@ - #ifdef RT_OS_WINDOWS - # include <windows.h> - # include <winioctl.h> --#elif defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) || defined(RT_OS_SOLARIS) -+#elif defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) \ -+ || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD) - # include <errno.h> - # include <sys/ioctl.h> - # include <sys/types.h> -@@ -76,6 +77,9 @@ - # include <sys/dkio.h> - # include <sys/vtoc.h> - #endif /* RT_OS_SOLARIS */ -+#ifdef RT_OS_FREEBSD -+# include <sys/disk.h> -+#endif /* RT_OS_FREEBSD */ - - using namespace com; - -@@ -1013,6 +1017,28 @@ - vrc = VERR_INVALID_PARAMETER; - goto out; - } -+#elif defined(RT_OS_FREEBSD) -+ struct stat DevStat; -+ if (!fstat(RawFile, &DevStat) && S_ISCHR(DevStat.st_mode)) -+ { -+ off_t cMediasize = 0; -+ if (!ioctl(RawFile, DIOCGMEDIASIZE, &cMediasize)) -+ { -+ cbSize = cMediasize; -+ } -+ else -+ { -+ vrc = RTErrConvertFromErrno(errno); -+ RTPrintf("Cannot get the block count for file '%s': %Rrc", rawdisk.raw(), vrc); -+ goto out; -+ } -+ } -+ else -+ { -+ RTPrintf("File '%s' is no character device\n", rawdisk.raw()); -+ vrc = VERR_INVALID_PARAMETER; -+ goto out; -+ } - #else /* all unrecognized OSes */ - /* Hopefully this works on all other hosts. If it doesn't, it'll just fail - * creating the VMDK, so no real harm done. */ diff --git a/emulators/virtualbox/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c b/emulators/virtualbox/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c deleted file mode 100644 index 0e223c4b9039..000000000000 --- a/emulators/virtualbox/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c +++ /dev/null @@ -1,11 +0,0 @@ ---- src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c.orig 2009-12-07 12:20:44.000000000 +0100 -+++ src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c 2009-12-07 12:21:00.000000000 +0100 -@@ -92,7 +92,7 @@ - DECLARE_MODULE(vboxnetadp, g_VBoxNetAdpFreeBSDModule, SI_SUB_PSEUDO, SI_ORDER_ANY); - MODULE_VERSION(vboxnetadp, 1); - MODULE_DEPEND(vboxnetadp, vboxdrv, 1, 1, 1); --MODULE_DEPEND(vboxnetadp, ng_vboxnetflt, 1, 1, 1); -+MODULE_DEPEND(vboxnetadp, vboxnetflt, 1, 1, 1); - - /** - * Module event handler diff --git a/emulators/virtualbox/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h b/emulators/virtualbox/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h deleted file mode 100644 index 250a1960a7f4..000000000000 --- a/emulators/virtualbox/files/patch-src-VBox-HostDrivers-VBoxNetFlt-VBoxNetFltInternal.h +++ /dev/null @@ -1,28 +0,0 @@ -Index: src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h -=================================================================== ---- src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h (revision 23391) -+++ src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h (working copy) -@@ -206,6 +206,14 @@ - hook_p output; - /** Original interface flags */ - unsigned int flags; -+ /** Input queue */ -+ struct ifqueue inq; -+ /** Output queue */ -+ struct ifqueue outq; -+ /** Input task */ -+ struct task tskin; -+ /** Output task */ -+ struct task tskout; - /** The MAC address of the interface. */ - RTMAC Mac; - /** @} */ -@@ -241,6 +249,8 @@ - # endif - #elif defined(RT_OS_LINUX) - uint8_t abPadding[320]; -+#elif defined(RT_OS_FREEBSD) -+ uint8_t abPadding[320]; - #else - uint8_t abPadding[128]; - #endif diff --git a/emulators/virtualbox/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c b/emulators/virtualbox/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c deleted file mode 100644 index f23fedbf0ec0..000000000000 --- a/emulators/virtualbox/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c +++ /dev/null @@ -1,384 +0,0 @@ -Index: src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c -=================================================================== ---- src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c (revision 23391) -+++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c (working copy) -@@ -43,6 +43,8 @@ - #include <sys/socket.h> - #include <sys/sockio.h> - #include <sys/syscallsubr.h> -+#include <sys/queue.h> -+#include <sys/taskqueue.h> - - #include <net/if.h> - #include <net/if_var.h> -@@ -78,8 +80,6 @@ - static ng_rcvdata_t ng_vboxnetflt_rcvdata; - static ng_disconnect_t ng_vboxnetflt_disconnect; - static int ng_vboxnetflt_mod_event(module_t mod, int event, void *data); --static int ng_vboxnetflt_rcv_in(hook_p node, item_p item); --static int ng_vboxnetflt_rcv_out(hook_p node, item_p item); - - /** Netgraph node type */ - #define NG_VBOXNETFLT_NODE_TYPE "vboxnetflt" -@@ -112,8 +112,8 @@ - { - .version = NG_ABI_VERSION, - .name = NG_VBOXNETFLT_NODE_TYPE, -- .mod_event = vboxnetflt_modevent, -- .constructor = ng_vboxnetflt_constructor, -+ .mod_event = vboxnetflt_modevent, -+ .constructor = ng_vboxnetflt_constructor, - .rcvmsg = ng_vboxnetflt_rcvmsg, - .shutdown = ng_vboxnetflt_shutdown, - .newhook = ng_vboxnetflt_newhook, -@@ -122,7 +122,7 @@ - .cmdlist = ng_vboxnetflt_cmdlist, - }; - NETGRAPH_INIT(vboxnetflt, &ng_vboxnetflt_typestruct); --MODULE_VERSION(ng_vboxnetflt, 1); -+MODULE_VERSION(vboxnetflt, 1); - MODULE_DEPEND(ng_vboxnetflt, vboxdrv, 1, 1, 1); - - /** -@@ -267,16 +267,12 @@ - if (strcmp(name, NG_VBOXNETFLT_HOOK_IN) == 0) - { - #if __FreeBSD_version >= 800000 -- NG_HOOK_SET_RCVDATA(hook, ng_vboxnetflt_rcv_in); - NG_HOOK_SET_TO_INBOUND(hook); - #endif - pThis->u.s.input = hook; - } - else if (strcmp(name, NG_VBOXNETFLT_HOOK_OUT) == 0) - { --#if __FreeBSD_version >= 800000 -- NG_HOOK_SET_RCVDATA(hook, ng_vboxnetflt_rcv_out); --#endif - pThis->u.s.output = hook; - } - else -@@ -310,161 +306,171 @@ - - /** - * Handle data on netgraph hooks. -+ * Frames processing is deferred to a taskqueue because this might -+ * be called with non-sleepable locks held and code paths inside -+ * the virtual switch might sleep. - */ - static int ng_vboxnetflt_rcvdata(hook_p hook, item_p item) - { - const node_p node = NG_HOOK_NODE(hook); - PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -+ struct ifnet *ifp = pThis->u.s.ifp; - struct mbuf *m; -+ struct m_tag *mtag; -+ bool fActive; - -+ fActive = ASMAtomicUoReadBool(&pThis->fActive); -+ -+ NGI_GET_M(item, m); -+ NG_FREE_ITEM(item); -+ -+ /* Locate tag to see if processing should be skipped for this frame */ -+ mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -+ if (mtag != NULL) -+ { -+ m_tag_unlink(m, mtag); -+ m_tag_free(mtag); -+ } -+ -+ /* -+ * Handle incoming hook. This is connected to the -+ * input path of the interface, thus handling incoming frames. -+ */ - if (pThis->u.s.input == hook) -- return ng_vboxnetflt_rcv_in(hook, item); -+ { -+ if (mtag != NULL || !fActive) -+ { -+ ether_demux(ifp, m); -+ return (0); -+ } -+ mtx_lock_spin(&pThis->u.s.inq.ifq_mtx); -+ _IF_ENQUEUE(&pThis->u.s.inq, m); -+ mtx_unlock_spin(&pThis->u.s.inq.ifq_mtx); -+ taskqueue_enqueue_fast(taskqueue_fast, &pThis->u.s.tskin); -+ } -+ /** -+ * Handle mbufs on the outgoing hook, frames going to the interface -+ */ - else if (pThis->u.s.output == hook) -- return ng_vboxnetflt_rcv_out(hook, item); -+ { -+ if (mtag != NULL || !fActive) -+ return ether_output_frame(ifp, m); -+ mtx_lock_spin(&pThis->u.s.outq.ifq_mtx); -+ _IF_ENQUEUE(&pThis->u.s.outq, m); -+ mtx_unlock_spin(&pThis->u.s.outq.ifq_mtx); -+ taskqueue_enqueue_fast(taskqueue_fast, &pThis->u.s.tskout); -+ } - else - { -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -+ m_freem(m); - } - return (0); - } - -+static int ng_vboxnetflt_shutdown(node_p node) -+{ -+ PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -+ bool fActive; -+ -+ /* Prevent node shutdown if we're active */ -+ fActive = ASMAtomicUoReadBool(&pThis->fActive); -+ if (fActive) -+ return (EBUSY); -+ NG_NODE_UNREF(node); -+ return (0); -+} -+ -+static int ng_vboxnetflt_disconnect(hook_p hook) -+{ -+ return (0); -+} -+ - /** -- * Handle incoming hook. This is connected to the -- * input path of the interface, thus handling incoming frames. -+ * Input processing task, handles incoming frames - */ --static int ng_vboxnetflt_rcv_in(hook_p hook, item_p item) -+static void vboxNetFltFreeBSDinput(void *arg, int pending) - { -+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; - struct mbuf *m, *m0; -- struct m_tag *mtag; -- const node_p node = NG_HOOK_NODE(hook); -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); - struct ifnet *ifp = pThis->u.s.ifp; -- bool fActive, fDropIt = false; - unsigned int cSegs = 0; -+ bool fDropIt = false, fActive; - PINTNETSG pSG; - -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -- -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (!fActive) -- goto out; -- -- mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -- if (mtag != NULL) -- { -- m_tag_unlink(m, mtag); -- m_tag_free(mtag); -- goto out; -- } - vboxNetFltRetain(pThis, true /* fBusy */); -- -- for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ for (;;) - { -- if (m0->m_len > 0) -- cSegs++; -- } -+ mtx_lock_spin(&pThis->u.s.inq.ifq_mtx); -+ _IF_DEQUEUE(&pThis->u.s.inq, m); -+ mtx_unlock_spin(&pThis->u.s.inq.ifq_mtx); -+ if (m == NULL) -+ break; - -+ for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ if (m0->m_len > 0) -+ cSegs++; -+ - #ifdef PADD_RUNT_FRAMES_FROM_HOST -- if (m_length(m, NULL) < 60) -- cSegs++; -+ if (m_length(m, NULL) < 60) -+ cSegs++; - #endif - -- /* Create a copy of the mbuf and hand it to the virtual switch */ -- pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -- vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_WIRE); -- RTMemTmpFree(pSG); -+ /* Create a copy and deliver to the virtual switch */ -+ pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -+ vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -+ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -+ RTMemTmpFree(pSG); -+ if (fDropIt) -+ m_freem(m); -+ else -+ ether_demux(ifp, m); -+ } - vboxNetFltRelease(pThis, true /* fBusy */); -- --out: -- /* Only deliver it to the host stack if the destination weren't a guest */ -- if (fDropIt) -- { -- m_freem(m); -- return (0); -- } -- ether_demux(ifp, m); -- return (0); - } - - /** -- * Handle mbufs on the outgoing hook, frames going to the interface -+ * Output processing task, handles outgoing frames - */ --static int ng_vboxnetflt_rcv_out(hook_p hook, item_p item) -+static void vboxNetFltFreeBSDoutput(void *arg, int pending) - { -+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; - struct mbuf *m, *m0; -- struct m_tag *mtag; -- const node_p node = NG_HOOK_NODE(hook); -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); - struct ifnet *ifp = pThis->u.s.ifp; - unsigned int cSegs = 0; - bool fDropIt = false, fActive; - PINTNETSG pSG; - -- NGI_GET_M(item, m); -- NG_FREE_ITEM(item); -- -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (!fActive) -- return ether_output_frame(ifp, m); -- - vboxNetFltRetain(pThis, true /* fBusy */); -- /* Pass directly to interface if the packet originated from us */ -- mtag = m_tag_locate(m, MTAG_VBOX, PACKET_TAG_VBOX, NULL); -- if (mtag != NULL) -+ for (;;) - { -- m_tag_unlink(m, mtag); -- m_tag_free(mtag); -- goto out; -- } -+ mtx_lock_spin(&pThis->u.s.outq.ifq_mtx); -+ _IF_DEQUEUE(&pThis->u.s.outq, m); -+ mtx_unlock_spin(&pThis->u.s.outq.ifq_mtx); -+ if (m == NULL) -+ break; - -- for (m0 = m; m0 != NULL; m0 = m0->m_next) -- { -- if (m0->m_len > 0) -- cSegs++; -- } -+ for (m0 = m; m0 != NULL; m0 = m0->m_next) -+ if (m0->m_len > 0) -+ cSegs++; - - #ifdef PADD_RUNT_FRAMES_FROM_HOST -- if (m_length(m, NULL) < 60) -- cSegs++; -+ if (m_length(m, NULL) < 60) -+ cSegs++; - #endif -- /* Create a copy and deliver to the virtual switch */ -- pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -- vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -- fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -- RTMemTmpFree(pSG); -+ /* Create a copy and deliver to the virtual switch */ -+ pSG = RTMemTmpAlloc(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); -+ vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); -+ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); -+ RTMemTmpFree(pSG); - --out: -+ if (fDropIt) -+ m_freem(m); -+ else -+ ether_output_frame(ifp, m); -+ } - vboxNetFltRelease(pThis, true /* fBusy */); -- if (fDropIt) -- { -- m_freem(m); -- return (0); -- } -- -- return ether_output_frame(ifp, m); - } - --static int ng_vboxnetflt_shutdown(node_p node) --{ -- PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); -- bool fActive; -- -- /* Prevent node shutdown if we're active */ -- fActive = ASMAtomicUoReadBool(&pThis->fActive); -- if (fActive) -- return (EBUSY); -- NG_NODE_UNREF(node); -- return (0); --} -- --static int ng_vboxnetflt_disconnect(hook_p hook) --{ -- return (0); --} -- - /** - * Called to deliver a frame to either the host, the wire or both. - */ -@@ -536,13 +542,23 @@ - - /* Create a new netgraph node for this instance */ - if (ng_make_node_common(&ng_vboxnetflt_typestruct, &node) != 0) -- return VERR_INTERNAL_ERROR; -+ return VERR_INTERNAL_ERROR; - - RTSpinlockAcquire(pThis->hSpinlock, &Tmp); - ASMAtomicUoWritePtr((void * volatile *)&pThis->u.s.ifp, ifp); - pThis->u.s.node = node; - bcopy(IF_LLADDR(ifp), &pThis->u.s.Mac, ETHER_ADDR_LEN); - ASMAtomicUoWriteBool(&pThis->fDisconnectedFromHost, false); -+ /* Initialize deferred input queue */ -+ bzero(&pThis->u.s.inq, sizeof(struct ifqueue)); -+ mtx_init(&pThis->u.s.inq.ifq_mtx, "vboxnetflt inq", NULL, MTX_SPIN); -+ TASK_INIT(&pThis->u.s.tskin, 0, vboxNetFltFreeBSDinput, pThis); -+ -+ /* Initialize deferred output queue */ -+ bzero(&pThis->u.s.outq, sizeof(struct ifqueue)); -+ mtx_init(&pThis->u.s.outq.ifq_mtx, "vboxnetflt outq", NULL, MTX_SPIN); -+ TASK_INIT(&pThis->u.s.tskout, 0, vboxNetFltFreeBSDoutput, pThis); -+ - RTSpinlockRelease(pThis->hSpinlock, &Tmp); - - NG_NODE_SET_PRIVATE(node, pThis); -@@ -571,7 +587,10 @@ - } - - if (ifp0 != NULL) -+ { -+ vboxNetFltOsDeleteInstance(pThis); - vboxNetFltOsInitInstance(pThis, NULL); -+ } - - return !ASMAtomicUoReadBool(&pThis->fDisconnectedFromHost); - } -@@ -579,6 +598,12 @@ - void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis) - { - -+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskin); -+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskout); -+ -+ mtx_destroy(&pThis->u.s.inq.ifq_mtx); -+ mtx_destroy(&pThis->u.s.outq.ifq_mtx); -+ - if (pThis->u.s.node != NULL) - ng_rmnode_self(pThis->u.s.node); - pThis->u.s.node = NULL; 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 deleted file mode 100644 index c7c56d5814ee..000000000000 --- a/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd-spinlock-r0drv-freebsd.c +++ /dev/null @@ -1,14 +0,0 @@ -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-the-freebsd-kernel.h b/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h deleted file mode 100644 index 4332049487c3..000000000000 --- a/emulators/virtualbox/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h +++ /dev/null @@ -1,11 +0,0 @@ ---- src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h.orig 2009-09-11 14:48:47.000000000 +0200 -+++ src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h 2009-09-11 14:48:54.000000000 +0200 -@@ -76,7 +76,7 @@ - # define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt, 0) - # define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt, 0) - # define SLEEPQ_WAIT_SIG(EventInt) sleepq_wait_sig(EventInt, 0) --#elif -+#else - # define SLEEPQ_TIMEDWAIT(EventInt) sleepq_timedwait(EventInt) - # define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt) - # define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt) diff --git a/emulators/virtualbox/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp b/emulators/virtualbox/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp deleted file mode 100644 index 955bf7a3a151..000000000000 --- a/emulators/virtualbox/files/patch-src-VBox-apps-adpctl_VBoxNetAdpCtl.cpp +++ /dev/null @@ -1,207 +0,0 @@ ---- src/apps/adpctl/VBoxNetAdpCtl.cpp.r22902 2009-04-10 14:03:59.000000000 +0200 -+++ src/apps/adpctl/VBoxNetAdpCtl.cpp 2009-09-16 14:07:11.000000000 +0200 -@@ -1,4 +1,4 @@ --/* $Id: VBoxNetAdpCtl.cpp 18864 2009-04-10 12:03:59Z vboxsync $ */ -+/* $Id: VBoxNetAdpCtl.cpp 23064 2009-09-16 12:07:11Z vboxsync $ */ - /** @file - * Apps - VBoxAdpCtl, Configuration tool for vboxnetX adapters. - */ -@@ -24,7 +24,6 @@ - /******************************************************************************* - * Header Files * - *******************************************************************************/ --#include <assert.h> - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -@@ -36,11 +35,12 @@ - # include <sys/ioccom.h> - #endif - --/* @todo Error codes must be moved to some header file */ --#define ADPCTLERR_NO_CTL_DEV 3 --#define ADPCTLERR_IOCTL_FAILED 4 -+/** @todo Error codes must be moved to some header file */ -+#define ADPCTLERR_BAD_NAME 2 -+#define ADPCTLERR_NO_CTL_DEV 3 -+#define ADPCTLERR_IOCTL_FAILED 4 - --/* @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */ -+/** @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */ - #define VBOXNETADP_CTL_DEV_NAME "/dev/vboxnetctl" - #define VBOXNETADP_NAME "vboxnet" - #define VBOXNETADP_MAX_NAME_LEN 32 -@@ -85,6 +85,7 @@ - pcszArg5, /* [network mask] */ - NULL /* terminator */ - }; -+ char * const envp[] = { (char*)"LC_ALL=C", NULL }; - int rc = EXIT_SUCCESS; - pid_t childPid = fork(); - switch (childPid) -@@ -94,7 +95,7 @@ - rc = EXIT_FAILURE; - break; - case 0: /* Child process. */ -- if (execv(VBOXADPCTL_IFCONFIG_PATH, (char * const*)argv) == -1) -+ if (execve(VBOXADPCTL_IFCONFIG_PATH, (char * const*)argv, envp) == -1) - rc = EXIT_FAILURE; - break; - default: /* Parent process. */ -@@ -108,15 +109,39 @@ - #define MAX_ADDRESSES 128 - #define MAX_ADDRLEN 64 - --static bool removeAddresses(const char *pszAdapterName) -+static bool removeAddresses(char *pszAdapterName) - { -- char szCmd[1024], szBuf[1024]; -+ char szBuf[1024]; - char aszAddresses[MAX_ADDRESSES][MAX_ADDRLEN]; -+ int rc; -+ int fds[2]; -+ char * const argv[] = { VBOXADPCTL_IFCONFIG_PATH, pszAdapterName, NULL }; -+ char * const envp[] = { (char*)"LC_ALL=C", NULL }; - - memset(aszAddresses, 0, sizeof(aszAddresses)); -- snprintf(szCmd, sizeof(szCmd), VBOXADPCTL_IFCONFIG_PATH " %s", pszAdapterName); -- FILE *fp = popen(szCmd, "r"); - -+ rc = pipe(fds); -+ if (rc < 0) -+ return false; -+ -+ pid_t pid = fork(); -+ if (pid < 0) -+ return false; -+ -+ if (pid == 0) -+ { -+ /* child */ -+ close(fds[0]); -+ close(STDOUT_FILENO); -+ rc = dup2(fds[1], STDOUT_FILENO); -+ if (rc >= 0) -+ execve(VBOXADPCTL_IFCONFIG_PATH, argv, envp); -+ return false; -+ } -+ -+ /* parent */ -+ close(fds[1]); -+ FILE *fp = fdopen(fds[0], "r"); - if (!fp) - return false; - -@@ -124,9 +149,6 @@ - for (cAddrs = 0; cAddrs < MAX_ADDRESSES && fgets(szBuf, sizeof(szBuf), fp);) - { - int cbSkipWS = strspn(szBuf, " \t"); --#if 0 /* Don't use this! assert() breaks the mac build. Use IPRT or be a rectangular building thing. */ -- assert(cbSkipWS < 20); --#endif - char *pszWord = strtok(szBuf + cbSkipWS, " "); - /* We are concerned with IPv6 address lines only. */ - if (!pszWord || strcmp(pszWord, "inet6")) -@@ -143,11 +165,12 @@ - continue; - strncpy(aszAddresses[cAddrs++], pszWord, MAX_ADDRLEN-1); - } -- pclose(fp); -+ fclose(fp); - - for (int i = 0; i < cAddrs; i++) - { -- if (executeIfconfig(pszAdapterName, "inet6", VBOXADPCTL_DEL_CMD, aszAddresses[i]) != EXIT_SUCCESS) -+ if (executeIfconfig(pszAdapterName, "inet6", -+ VBOXADPCTL_DEL_CMD, aszAddresses[i]) != EXIT_SUCCESS) - return false; - } - -@@ -166,19 +189,41 @@ - int rc = ioctl(fd, uCmd, pData); - if (rc == -1) - { -- perror("VBoxNetAdpCtl: ioctl failed for " VBOXNETADP_CTL_DEV_NAME); -+ perror("VBoxNetAdpCtl: ioctl failed for " VBOXNETADP_CTL_DEV_NAME); - rc = ADPCTLERR_IOCTL_FAILED; - } -- -+ - close(fd); -- -+ - return rc; - } - -+int checkAdapterName(const char *pcszNameIn, char *pszNameOut) -+{ -+ int iAdapterIndex = -1; -+ -+ if ( strlen(pcszNameIn) >= VBOXNETADP_MAX_NAME_LEN -+ || sscanf(pcszNameIn, "vboxnet%d", &iAdapterIndex) != 1 -+ || iAdapterIndex < 0 || iAdapterIndex > 99 ) -+ { -+ fprintf(stderr, "Setting configuration for %s is not supported.\n", pcszNameIn); -+ return ADPCTLERR_BAD_NAME; -+ } -+ sprintf(pszNameOut, "vboxnet%d", iAdapterIndex); -+ if (strcmp(pszNameOut, pcszNameIn)) -+ { -+ fprintf(stderr, "Invalid adapter name %s.\n", pcszNameIn); -+ return ADPCTLERR_BAD_NAME; -+ } -+ -+ return 0; -+} -+ - int main(int argc, char *argv[]) - - { -- const char *pszAdapterName; -+ char szAdapterName[VBOXNETADP_MAX_NAME_LEN]; -+ char *pszAdapterName; - const char *pszAddress; - const char *pszNetworkMask = NULL; - const char *pszOption = NULL; -@@ -216,13 +261,18 @@ - pszAddress = argv[2]; - if (strcmp("remove", pszAddress) == 0) - { -- strncpy(Req.szName, pszAdapterName, sizeof(Req.szName)); -+ rc = checkAdapterName(pszAdapterName, szAdapterName); -+ if (rc) -+ return rc; -+ memset(&Req, '\0', sizeof(Req)); -+ snprintf(Req.szName, sizeof(Req.szName), "%s", szAdapterName); - return doIOCtl(VBOXNETADP_CTL_REMOVE, &Req); - } - break; - case 2: - if (strcmp("add", argv[1]) == 0) - { -+ memset(&Req, '\0', sizeof(Req)); - rc = doIOCtl(VBOXNETADP_CTL_ADD, &Req); - if (rc == 0) - puts(Req.szName); -@@ -237,11 +287,11 @@ - return 1; - } - -- if (strncmp("vboxnet", pszAdapterName, 7)) -- { -- fprintf(stderr, "Setting configuration for %s is not supported.\n", pszAdapterName); -- return 2; -- } -+ rc = checkAdapterName(pszAdapterName, szAdapterName); -+ if (rc) -+ return rc; -+ -+ pszAdapterName = szAdapterName; - - if (fRemove) - { -@@ -276,3 +326,4 @@ - } - return rc; - } -+ diff --git a/emulators/virtualbox/files/pkg-install.in b/emulators/virtualbox/files/pkg-install.in deleted file mode 100644 index 5d5268d8e8ce..000000000000 --- a/emulators/virtualbox/files/pkg-install.in +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -case $2 in -POST-INSTALL) - GROUP=%%VBOXGROUP%% - GID=%%VBOXGID%% - PW=/usr/sbin/pw - - if ${PW} group show "${GROUP}" 2>/dev/null; then - echo "You already have a group \"${GROUP}\", so I will use it." - else - if ${PW} groupadd ${GROUP} -g ${GID}; then - echo "Added group \"${GROUP}\"." - else - echo "Adding group \"${GROUP}\" failed..." - exit 1 - fi - fi - - exit 0 - ;; -esac diff --git a/emulators/virtualbox/pkg-descr b/emulators/virtualbox/pkg-descr deleted file mode 100644 index 0b1e16c034af..000000000000 --- a/emulators/virtualbox/pkg-descr +++ /dev/null @@ -1,7 +0,0 @@ -VirtualBox is a family of powerful x86 virtualization products for -enterprise as well as home use. Not only is VirtualBox an extremely -feature rich, high performance product for enterprise customers, it -is also the only professional solution that is freely available as -Open Source Software under the terms of the GNU General Public License. - -WWW: http://www.virtualbox.org/ diff --git a/emulators/virtualbox/pkg-message b/emulators/virtualbox/pkg-message deleted file mode 100644 index 91b8b16427cd..000000000000 --- a/emulators/virtualbox/pkg-message +++ /dev/null @@ -1,26 +0,0 @@ -============================================================================= - -VirtualBox was installed. - -You need to load the vboxdrv kernel module and a mounted /proc filesystem. - -% mount -t procfs proc /proc -% kldload vboxdrv - -For bridged networking you also need to load the vboxnetflt kernel module. - -% kldload vboxnetflt - -You also have to add all users to your vboxusers group in order to use vbox. - -% pw groupmod vboxusers -m jerry - -Running VirtualBox as non-root user may fail with a fatal error -NS_ERROR_FACTORY_NOT_REGISTERED. In this case delete /tmp/.vbox-*-ipc file. - -Check wiki page for known issues and troubleshooting: -http://wiki.freebsd.org/VirtualBox - -Please report any problems to emulation@. Thanks! - -============================================================================= diff --git a/emulators/virtualbox/pkg-plist b/emulators/virtualbox/pkg-plist deleted file mode 100644 index f8ade22c00a7..000000000000 --- a/emulators/virtualbox/pkg-plist +++ /dev/null @@ -1,599 +0,0 @@ -%%X11%%bin/VBoxBFE -bin/VBoxHeadless -bin/VBoxManage -bin/VBoxNetAdpCtl -bin/VBoxNetDHCP -%%X11%%bin/VBoxSDL -bin/VBoxSVC -%%X11%%bin/VBoxTestOGL -bin/VBoxXPCOMIPCD -%%QT4%%bin/VirtualBox -%%X11%%lib/virtualbox/VBoxBFE -%%X11%%lib/virtualbox/VBoxBFE.so -lib/virtualbox/VBoxDD.so -lib/virtualbox/VBoxDD2.so -lib/virtualbox/VBoxDDU.so -lib/virtualbox/VBoxGuestPropSvc.so -lib/virtualbox/VBoxHeadless -lib/virtualbox/VBoxHeadless.so -%%QT4%%lib/virtualbox/VBoxKeyboard.so -lib/virtualbox/VBoxManage -lib/virtualbox/VBoxNetAdpCtl -lib/virtualbox/VBoxNetDHCP -lib/virtualbox/VBoxNetDHCP.so -%%X11%%lib/virtualbox/VBoxOGLhostcrutil.so -%%X11%%lib/virtualbox/VBoxOGLhosterrorspu.so -%%X11%%lib/virtualbox/VBoxOGLrenderspu.so -lib/virtualbox/VBoxPython.so -lib/virtualbox/VBoxREM.so -%%X11%%lib/virtualbox/VBoxTestOGL -%%I386%%lib/virtualbox/VBoxREM32.so -%%I386%%lib/virtualbox/VBoxREM64.so -lib/virtualbox/VBoxRT.so -%%X11%%lib/virtualbox/VBoxSDL -%%X11%%lib/virtualbox/VBoxSDL.so -lib/virtualbox/VBoxSVC -lib/virtualbox/VBoxSharedClipboard.so -%%X11%%lib/virtualbox/VBoxSharedCrOpenGL.so -lib/virtualbox/VBoxSharedFolders.so -lib/virtualbox/VBoxVMM.so -lib/virtualbox/VBoxXPCOM.so -lib/virtualbox/VBoxXPCOMC.so -lib/virtualbox/VBoxXPCOMIPCD -%%QT4%%lib/virtualbox/VirtualBox -%%QT4%%lib/virtualbox/VirtualBox.so -lib/virtualbox/VBoxDD2GC.gc -lib/virtualbox/VBoxDDGC.gc -lib/virtualbox/VMMGC.gc -lib/virtualbox/VBoxDD2R0.r0 -lib/virtualbox/VBoxDDR0.r0 -%%GUESTADDITIONS%%lib/virtualbox/additions/VBoxGuestAdditions.iso -%%GUESTADDITIONS%%lib/virtualbox/additions/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 -lib/virtualbox/components/VBoxSVCM.so -lib/virtualbox/components/VBoxC.so -lib/virtualbox/components/VBoxXPCOMBase.xpt -%%NLS%%%%DATADIR%%/nls/VirtualBox_ar.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_bg.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ca.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_cs.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_de.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_el.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_es.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_eu.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_fi.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_fr.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_hu.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_id.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_it.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ja.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_km_KH.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ko.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_nl.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_pl.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_pt.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_pt_BR.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ro.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_ru.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_sk.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_sr.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_sv.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_tr.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_uk.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_zh_CN.qm -%%NLS%%%%DATADIR%%/nls/VirtualBox_zh_TW.qm -%%NLS%%%%DATADIR%%/nls/qt_ar.qm -%%NLS%%%%DATADIR%%/nls/qt_bg.qm -%%NLS%%%%DATADIR%%/nls/qt_ca.qm -%%NLS%%%%DATADIR%%/nls/qt_cs.qm -%%NLS%%%%DATADIR%%/nls/qt_de.qm -%%NLS%%%%DATADIR%%/nls/qt_el.qm -%%NLS%%%%DATADIR%%/nls/qt_es.qm -%%NLS%%%%DATADIR%%/nls/qt_eu.qm -%%NLS%%%%DATADIR%%/nls/qt_fi.qm -%%NLS%%%%DATADIR%%/nls/qt_fr.qm -%%NLS%%%%DATADIR%%/nls/qt_hu.qm -%%NLS%%%%DATADIR%%/nls/qt_id.qm -%%NLS%%%%DATADIR%%/nls/qt_it.qm -%%NLS%%%%DATADIR%%/nls/qt_ja.qm -%%NLS%%%%DATADIR%%/nls/qt_km_KH.qm -%%NLS%%%%DATADIR%%/nls/qt_ko.qm -%%NLS%%%%DATADIR%%/nls/qt_nl.qm -%%NLS%%%%DATADIR%%/nls/qt_pl.qm -%%NLS%%%%DATADIR%%/nls/qt_pt.qm -%%NLS%%%%DATADIR%%/nls/qt_pt_BR.qm -%%NLS%%%%DATADIR%%/nls/qt_ro.qm -%%NLS%%%%DATADIR%%/nls/qt_ru.qm -%%NLS%%%%DATADIR%%/nls/qt_sk.qm -%%NLS%%%%DATADIR%%/nls/qt_sr.qm -%%NLS%%%%DATADIR%%/nls/qt_sv.qm -%%NLS%%%%DATADIR%%/nls/qt_tr.qm -%%NLS%%%%DATADIR%%/nls/qt_uk.qm -%%NLS%%%%DATADIR%%/nls/qt_zh_CN.qm -%%NLS%%%%DATADIR%%/nls/qt_zh_TW.qm -%%QT4%%share/applications/virtualbox.desktop -%%QT4%%share/icons/hicolor/48x48/apps/VBox.png -%%DATADIR%%/idl/nsIDebug.idl -%%DATADIR%%/idl/nsIInterfaceRequestor.idl -%%DATADIR%%/idl/nsIMemory.idl -%%DATADIR%%/idl/nsIProgrammingLanguage.idl -%%DATADIR%%/idl/nsISupports.idl -%%DATADIR%%/idl/nsITraceRefcnt.idl -%%DATADIR%%/idl/nsIWeakReference.idl -%%DATADIR%%/idl/nsIConsoleMessage.idl -%%DATADIR%%/idl/nsIConsoleService.idl -%%DATADIR%%/idl/nsIConsoleListener.idl -%%DATADIR%%/idl/nsIErrorService.idl -%%DATADIR%%/idl/nsIException.idl -%%DATADIR%%/idl/nsIExceptionService.idl -%%DATADIR%%/idl/nsrootidl.idl -%%DATADIR%%/idl/nsIClassInfo.idl -%%DATADIR%%/idl/nsIFactory.idl -%%DATADIR%%/idl/nsIModule.idl -%%DATADIR%%/idl/nsIComponentRegistrar.idl -%%DATADIR%%/idl/nsIServiceManager.idl -%%DATADIR%%/idl/nsIComponentManager.idl -%%DATADIR%%/idl/nsICategoryManager.idl -%%DATADIR%%/idl/nsINativeComponentLoader.idl -%%DATADIR%%/idl/nsIComponentLoader.idl -%%DATADIR%%/idl/nsIComponentManagerObsolete.idl -%%DATADIR%%/idl/nsISupportsArray.idl -%%DATADIR%%/idl/nsIComponentLoaderManager.idl -%%DATADIR%%/idl/nsICollection.idl -%%DATADIR%%/idl/nsISerializable.idl -%%DATADIR%%/idl/nsIEnumerator.idl -%%DATADIR%%/idl/nsISimpleEnumerator.idl -%%DATADIR%%/idl/nsIObserverService.idl -%%DATADIR%%/idl/nsIObserver.idl -%%DATADIR%%/idl/nsIAtom.idl -%%DATADIR%%/idl/nsIAtomService.idl -%%DATADIR%%/idl/nsIProperties.idl -%%DATADIR%%/idl/nsIPersistentProperties2.idl -%%DATADIR%%/idl/nsIRecyclingAllocator.idl -%%DATADIR%%/idl/nsIStringEnumerator.idl -%%DATADIR%%/idl/nsISupportsPrimitives.idl -%%DATADIR%%/idl/nsISupportsIterators.idl -%%DATADIR%%/idl/nsITimelineService.idl -%%DATADIR%%/idl/nsIVariant.idl -%%DATADIR%%/idl/nsIArray.idl -%%DATADIR%%/idl/nsIPropertyBag.idl -%%DATADIR%%/idl/nsIHashable.idl -%%DATADIR%%/idl/nsIDirectoryService.idl -%%DATADIR%%/idl/nsIDirectoryEnumerator.idl -%%DATADIR%%/idl/nsIFile.idl -%%DATADIR%%/idl/nsILocalFile.idl -%%DATADIR%%/idl/nsIInputStream.idl -%%DATADIR%%/idl/nsILocalFileMac.idl -%%DATADIR%%/idl/nsIObjectInputStream.idl -%%DATADIR%%/idl/nsIBinaryInputStream.idl -%%DATADIR%%/idl/nsIObjectOutputStream.idl -%%DATADIR%%/idl/nsIBinaryOutputStream.idl -%%DATADIR%%/idl/nsIStreamBufferAccess.idl -%%DATADIR%%/idl/nsIOutputStream.idl -%%DATADIR%%/idl/nsIByteArrayInputStream.idl -%%DATADIR%%/idl/nsIFastLoadFileControl.idl -%%DATADIR%%/idl/nsISeekableStream.idl -%%DATADIR%%/idl/nsIInputStreamTee.idl -%%DATADIR%%/idl/nsIFastLoadService.idl -%%DATADIR%%/idl/nsIMultiplexInputStream.idl -%%DATADIR%%/idl/nsIPipe.idl -%%DATADIR%%/idl/nsIAsyncInputStream.idl -%%DATADIR%%/idl/nsIAsyncOutputStream.idl -%%DATADIR%%/idl/nsIScriptableInputStream.idl -%%DATADIR%%/idl/nsIStorageStream.idl -%%DATADIR%%/idl/nsILineInputStream.idl -%%DATADIR%%/idl/nsIStringStream.idl -%%DATADIR%%/idl/nsIProxyObjectManager.idl -%%DATADIR%%/idl/nsIEventQueue.idl -%%DATADIR%%/idl/nsIEventQueueService.idl -%%DATADIR%%/idl/nsIRunnable.idl -%%DATADIR%%/idl/nsIThread.idl -%%DATADIR%%/idl/nsIEventTarget.idl -%%DATADIR%%/idl/nsIEnvironment.idl -%%DATADIR%%/idl/nsITimer.idl -%%DATADIR%%/idl/nsITimerInternal.idl -%%DATADIR%%/idl/nsITimerManager.idl -%%DATADIR%%/idl/nsIInterfaceInfo.idl -%%DATADIR%%/idl/nsIProcess.idl -%%DATADIR%%/idl/nsIXPTLoader.idl -%%DATADIR%%/idl/nsIInterfaceInfoManager.idl -%%DATADIR%%/idl/ipcIMessageObserver.idl -%%DATADIR%%/idl/ipcIService.idl -%%DATADIR%%/idl/ipcIClientObserver.idl -%%DATADIR%%/idl/ipcILockService.idl -%%DATADIR%%/idl/ipcIDConnectService.idl -%%DATADIR%%/idl/ipcITransactionService.idl -%%DATADIR%%/idl/ipcITransactionObserver.idl -%%DATADIR%%/idl/VirtualBox_XPCOM.idl -%%DATADIR%%/samples/tstVBoxAPILinux.cpp -%%DATADIR%%/samples/Makefile -include/virtualbox/VBoxCAPI_v2_2.h -include/virtualbox/VBoxCAPI_v3_0.h -include/virtualbox/VBoxCAPI_v3_1.h -include/virtualbox/VirtualBox_XPCOM.h -include/virtualbox/ipcIClientObserver.h -include/virtualbox/ipcIDConnectService.h -include/virtualbox/ipcILockService.h -include/virtualbox/ipcIMessageObserver.h -include/virtualbox/ipcIService.h -include/virtualbox/ipcITransactionObserver.h -include/virtualbox/ipcITransactionService.h -include/virtualbox/ipcd/ipcCID.h -include/virtualbox/ipcd/ipcLockCID.h -include/virtualbox/ipcd/ipcMessageReader.h -include/virtualbox/ipcd/ipcMessageWriter.h -include/virtualbox/ipcd/ipcModule.h -include/virtualbox/ipcd/ipcModuleUtil.h -include/virtualbox/ipcd/ipcdclient.h -include/virtualbox/nsIArray.h -include/virtualbox/nsIAsyncInputStream.h -include/virtualbox/nsIAsyncOutputStream.h -include/virtualbox/nsIAtom.h -include/virtualbox/nsIAtomService.h -include/virtualbox/nsIBinaryInputStream.h -include/virtualbox/nsIBinaryOutputStream.h -include/virtualbox/nsIByteArrayInputStream.h -include/virtualbox/nsICategoryManager.h -include/virtualbox/nsIClassInfo.h -include/virtualbox/nsICollection.h -include/virtualbox/nsIComponentLoader.h -include/virtualbox/nsIComponentLoaderManager.h -include/virtualbox/nsIComponentManager.h -include/virtualbox/nsIComponentManagerObsolete.h -include/virtualbox/nsIComponentRegistrar.h -include/virtualbox/nsIConsoleListener.h -include/virtualbox/nsIConsoleMessage.h -include/virtualbox/nsIConsoleService.h -include/virtualbox/nsIDebug.h -include/virtualbox/nsIDirectoryEnumerator.h -include/virtualbox/nsIDirectoryService.h -include/virtualbox/nsIEnumerator.h -include/virtualbox/nsIEnvironment.h -include/virtualbox/nsIErrorService.h -include/virtualbox/nsIEventQueue.h -include/virtualbox/nsIEventQueueService.h -include/virtualbox/nsIEventTarget.h -include/virtualbox/nsIException.h -include/virtualbox/nsIExceptionService.h -include/virtualbox/nsIFactory.h -include/virtualbox/nsIFastLoadFileControl.h -include/virtualbox/nsIFastLoadService.h -include/virtualbox/nsIFile.h -include/virtualbox/nsIHashable.h -include/virtualbox/nsIInputStream.h -include/virtualbox/nsIInputStreamTee.h -include/virtualbox/nsIInterfaceInfo.h -include/virtualbox/nsIInterfaceInfoManager.h -include/virtualbox/nsIInterfaceRequestor.h -include/virtualbox/nsILineInputStream.h -include/virtualbox/nsILocalFile.h -include/virtualbox/nsILocalFileMac.h -include/virtualbox/nsIMemory.h -include/virtualbox/nsIModule.h -include/virtualbox/nsIMultiplexInputStream.h -include/virtualbox/nsINativeComponentLoader.h -include/virtualbox/nsIObjectInputStream.h -include/virtualbox/nsIObjectOutputStream.h -include/virtualbox/nsIObserver.h -include/virtualbox/nsIObserverService.h -include/virtualbox/nsIOutputStream.h -include/virtualbox/nsIPersistentProperties2.h -include/virtualbox/nsIPipe.h -include/virtualbox/nsIProcess.h -include/virtualbox/nsIProgrammingLanguage.h -include/virtualbox/nsIProperties.h -include/virtualbox/nsIPropertyBag.h -include/virtualbox/nsIProxyObjectManager.h -include/virtualbox/nsIRecyclingAllocator.h -include/virtualbox/nsIRunnable.h -include/virtualbox/nsIScriptableInputStream.h -include/virtualbox/nsISeekableStream.h -include/virtualbox/nsISerializable.h -include/virtualbox/nsIServiceManager.h -include/virtualbox/nsISimpleEnumerator.h -include/virtualbox/nsIStorageStream.h -include/virtualbox/nsIStreamBufferAccess.h -include/virtualbox/nsIStringEnumerator.h -include/virtualbox/nsIStringStream.h -include/virtualbox/nsISupports.h -include/virtualbox/nsISupportsArray.h -include/virtualbox/nsISupportsIterators.h -include/virtualbox/nsISupportsPrimitives.h -include/virtualbox/nsIThread.h -include/virtualbox/nsITimelineService.h -include/virtualbox/nsITimer.h -include/virtualbox/nsITimerInternal.h -include/virtualbox/nsITimerManager.h -include/virtualbox/nsITraceRefcnt.h -include/virtualbox/nsIVariant.h -include/virtualbox/nsIWeakReference.h -include/virtualbox/nsIXPTLoader.h -include/virtualbox/nsprpub/nspr.h -include/virtualbox/nsprpub/plarena.h -include/virtualbox/nsprpub/plarenas.h -include/virtualbox/nsprpub/plbase64.h -include/virtualbox/nsprpub/plerror.h -include/virtualbox/nsprpub/plgetopt.h -include/virtualbox/nsprpub/plhash.h -include/virtualbox/nsprpub/plresolv.h -include/virtualbox/nsprpub/plstr.h -include/virtualbox/nsprpub/pratom.h -include/virtualbox/nsprpub/prbit.h -include/virtualbox/nsprpub/prclist.h -include/virtualbox/nsprpub/prcmon.h -include/virtualbox/nsprpub/prcountr.h -include/virtualbox/nsprpub/prcvar.h -include/virtualbox/nsprpub/prdtoa.h -include/virtualbox/nsprpub/prenv.h -include/virtualbox/nsprpub/prerr.h -include/virtualbox/nsprpub/prerror.h -include/virtualbox/nsprpub/prinet.h -include/virtualbox/nsprpub/prinit.h -include/virtualbox/nsprpub/prinrval.h -include/virtualbox/nsprpub/prio.h -include/virtualbox/nsprpub/pripcsem.h -include/virtualbox/nsprpub/prlink.h -include/virtualbox/nsprpub/md/_iprt_atomic.h -include/virtualbox/nsprpub/md/_darwin.h -include/virtualbox/nsprpub/md/_freebsd.h -include/virtualbox/nsprpub/md/_l4v2.h -include/virtualbox/nsprpub/md/_linux.h -include/virtualbox/nsprpub/md/_macos.h -include/virtualbox/nsprpub/md/_netbsd.h -include/virtualbox/nsprpub/md/_openbsd.h -include/virtualbox/nsprpub/md/_os2_errors.h -include/virtualbox/nsprpub/md/_os2.h -include/virtualbox/nsprpub/md/_pcos.h -include/virtualbox/nsprpub/md/_solaris.h -include/virtualbox/nsprpub/md/_unix_errors.h -include/virtualbox/nsprpub/md/_unixos.h -include/virtualbox/nsprpub/md/_pth.h -include/virtualbox/nsprpub/md/prosdep.h -include/virtualbox/nsprpub/md/_freebsd.cfg -include/virtualbox/nsprpub/md/_linux.cfg -include/virtualbox/nsprpub/md/_darwin.cfg -include/virtualbox/nsprpub/md/_netbsd.cfg -include/virtualbox/nsprpub/md/_openbsd.cfg -include/virtualbox/nsprpub/md/_os2.cfg -include/virtualbox/nsprpub/md/_solaris32.cfg -include/virtualbox/nsprpub/md/_l4v2.cfg -include/virtualbox/nsprpub/md/_solaris64.cfg -include/virtualbox/nsprpub/prlock.h -include/virtualbox/nsprpub/prlog.h -include/virtualbox/nsprpub/prlong.h -include/virtualbox/nsprpub/prmem.h -include/virtualbox/nsprpub/prmon.h -include/virtualbox/nsprpub/prmwait.h -include/virtualbox/nsprpub/prnetdb.h -include/virtualbox/nsprpub/prolock.h -include/virtualbox/nsprpub/prpdce.h -include/virtualbox/nsprpub/prprf.h -include/virtualbox/nsprpub/prproces.h -include/virtualbox/nsprpub/prrng.h -include/virtualbox/nsprpub/prrwlock.h -include/virtualbox/nsprpub/prshm.h -include/virtualbox/nsprpub/prshma.h -include/virtualbox/nsprpub/prsystem.h -include/virtualbox/nsprpub/prthread.h -include/virtualbox/nsprpub/prtime.h -include/virtualbox/nsprpub/prtpool.h -include/virtualbox/nsprpub/prtrace.h -include/virtualbox/nsprpub/prtypes.h -include/virtualbox/nsprpub/prvrsion.h -include/virtualbox/nsprpub/prwin16.h -include/virtualbox/nsprpub/prcpucfg.h -include/virtualbox/nsprpub/obsolete/pralarm.h -include/virtualbox/nsprpub/obsolete/probslet.h -include/virtualbox/nsprpub/obsolete/protypes.h -include/virtualbox/nsprpub/obsolete/prsem.h -include/virtualbox/nsprpub/private/pprio.h -include/virtualbox/nsprpub/private/pprthred.h -include/virtualbox/nsprpub/private/prpriv.h -include/virtualbox/nsrootidl.h -include/virtualbox/string/nsAString.h -include/virtualbox/string/nsAlgorithm.h -include/virtualbox/string/nsCharTraits.h -include/virtualbox/string/nsDependentString.h -include/virtualbox/string/nsDependentSubstring.h -include/virtualbox/string/nsEmbedString.h -include/virtualbox/string/nsLiteralString.h -include/virtualbox/string/nsObsoleteAString.h -include/virtualbox/string/nsPrintfCString.h -include/virtualbox/string/nsPromiseFlatString.h -include/virtualbox/string/nsReadableUtils.h -include/virtualbox/string/nsString.h -include/virtualbox/string/nsStringAPI.h -include/virtualbox/string/nsStringFwd.h -include/virtualbox/string/nsStringIterator.h -include/virtualbox/string/nsSubstring.h -include/virtualbox/string/nsSubstringTuple.h -include/virtualbox/string/nsTAString.h -include/virtualbox/string/nsTString.h -include/virtualbox/string/nsTDependentString.h -include/virtualbox/string/nsTDependentSubstring.h -include/virtualbox/string/nsTObsoleteAString.h -include/virtualbox/string/nsTPromiseFlatString.h -include/virtualbox/string/nsTSubstring.h -include/virtualbox/string/nsTSubstringTuple.h -include/virtualbox/string/nsUTF8Utils.h -include/virtualbox/string/nsXPIDLString.h -include/virtualbox/string/string-template-def-char.h -include/virtualbox/string/string-template-def-unichar.h -include/virtualbox/string/string-template-undef.h -include/virtualbox/xpcom/nsAgg.h -include/virtualbox/xpcom/nsAppDirectoryServiceDefs.h -include/virtualbox/xpcom/nsArray.h -include/virtualbox/xpcom/nsArrayEnumerator.h -include/virtualbox/xpcom/nsAtomService.h -include/virtualbox/xpcom/nsAutoBuffer.h -include/virtualbox/xpcom/nsAutoLock.h -include/virtualbox/xpcom/nsAutoPtr.h -include/virtualbox/xpcom/nsBaseHashtable.h -include/virtualbox/xpcom/nsCOMArray.h -include/virtualbox/xpcom/nsCRT.h -include/virtualbox/xpcom/nsCategoryManagerUtils.h -include/virtualbox/xpcom/nsCheapSets.h -include/virtualbox/xpcom/nsClassHashtable.h -include/virtualbox/xpcom/nsCom.h -include/virtualbox/xpcom/nsComponentManagerObsolete.h -include/virtualbox/xpcom/nsComponentManagerUtils.h -include/virtualbox/xpcom/nsCppSharedAllocator.h -include/virtualbox/xpcom/nsID.h -include/virtualbox/xpcom/nsDataHashtable.h -include/virtualbox/xpcom/nsDebugImpl.h -include/virtualbox/xpcom/nsDeque.h -include/virtualbox/xpcom/nsDirectoryService.h -include/virtualbox/xpcom/nsDirectoryServiceDefs.h -include/virtualbox/xpcom/nsDirectoryServiceUtils.h -include/virtualbox/xpcom/nsDoubleHashtable.h -include/virtualbox/xpcom/nsEnumeratorUtils.h -include/virtualbox/xpcom/nsError.h -include/virtualbox/xpcom/nsEscape.h -include/virtualbox/xpcom/nsEventQueueUtils.h -include/virtualbox/xpcom/nsFastLoadPtr.h -include/virtualbox/xpcom/nsFastLoadService.h -include/virtualbox/xpcom/nsFixedSizeAllocator.h -include/virtualbox/xpcom/nsHashKeys.h -include/virtualbox/xpcom/nsHashSets.h -include/virtualbox/xpcom/nsHashtable.h -include/virtualbox/xpcom/nsIAllocator.h -include/virtualbox/xpcom/nsIByteBuffer.h -include/virtualbox/xpcom/nsIID.h -include/virtualbox/xpcom/nsIServiceManagerObsolete.h -include/virtualbox/xpcom/nsIServiceManagerUtils.h -include/virtualbox/xpcom/nsISupportsBase.h -include/virtualbox/xpcom/nsISupportsObsolete.h -include/virtualbox/xpcom/nsIUnicharBuffer.h -include/virtualbox/xpcom/nsIUnicharInputStream.h -include/virtualbox/xpcom/nsInt64.h -include/virtualbox/xpcom/nsInterfaceHashtable.h -include/virtualbox/xpcom/nsLinebreakConverter.h -include/virtualbox/xpcom/nsLocalFile.h -include/virtualbox/xpcom/nsLocalFileUnix.h -include/virtualbox/xpcom/nsLocalFileOS2.h -include/virtualbox/xpcom/nsLocalFileOSX.h -include/virtualbox/xpcom/nsModule.h -include/virtualbox/xpcom/nsMultiplexInputStream.h -include/virtualbox/xpcom/nsNativeCharsetUtils.h -include/virtualbox/xpcom/nsProcess.h -include/virtualbox/xpcom/nsNativeComponentLoader.h -include/virtualbox/xpcom/nsObserverService.h -include/virtualbox/xpcom/nsObsoleteModuleLoading.h -include/virtualbox/xpcom/nsProxiedService.h -include/virtualbox/xpcom/nsProxyEvent.h -include/virtualbox/xpcom/nsProxyRelease.h -include/virtualbox/xpcom/nsQuickSort.h -include/virtualbox/xpcom/nsRecyclingAllocator.h -include/virtualbox/xpcom/nsRefPtrHashtable.h -include/virtualbox/xpcom/nsScriptableInputStream.h -include/virtualbox/xpcom/nsStaticAtom.h -include/virtualbox/xpcom/nsStaticComponent.h -include/virtualbox/xpcom/nsStaticNameTable.h -include/virtualbox/xpcom/nsStorageStream.h -include/virtualbox/xpcom/nsStreamUtils.h -include/virtualbox/xpcom/nsStringEnumerator.h -include/virtualbox/xpcom/nsStringIO.h -include/virtualbox/xpcom/nsTHashtable.h -include/virtualbox/xpcom/nsStringStream.h -include/virtualbox/xpcom/nsSupportsArray.h -include/virtualbox/xpcom/nsSupportsPrimitives.h -include/virtualbox/xpcom/nsTextFormatter.h -include/virtualbox/xpcom/nsTime.h -include/virtualbox/xpcom/nsTraceRefcntImpl.h -include/virtualbox/xpcom/nsUnitConversion.h -include/virtualbox/xpcom/nsValueArray.h -include/virtualbox/xpcom/nsVariant.h -include/virtualbox/xpcom/nsVoidArray.h -include/virtualbox/xpcom/nsWeakPtr.h -include/virtualbox/xpcom/nsXPCOM.h -include/virtualbox/xpcom/nsXPCOMCID.h -include/virtualbox/xpcom/nscore.h -include/virtualbox/xpcom/pldhash.h -include/virtualbox/xpcom/plevent.h -include/virtualbox/xpcom/xcDll.h -include/virtualbox/xpcom/xpt_arena.h -include/virtualbox/xpcom/xpt_struct.h -include/virtualbox/xpcom/xpt_xdr.h -include/virtualbox/xpcom/xptcall.h -include/virtualbox/xpcom/xptcstubsdecl.inc -include/virtualbox/xpcom/xptcstubsdef.inc -include/virtualbox/xpcom/xptinfo.h -include/virtualbox/xpcom/nsIInterfaceRequestorUtils.h -include/virtualbox/xpcom/nsISupportsImpl.h -include/virtualbox/xpcom/nsISupportsUtils.h -include/virtualbox/xpcom/nsIWeakReferenceUtils.h -include/virtualbox/xpcom/nsCOMPtr.h -include/virtualbox/xpcom/nsDebug.h -include/virtualbox/xpcom/nsGenericFactory.h -include/virtualbox/xpcom/nsIGenericFactory.h -include/virtualbox/xpcom/nsMemory.h -include/virtualbox/xpcom/nsTraceRefcnt.h -include/virtualbox/xpcom/nsWeakReference.h -include/virtualbox/xpcom/nsXPCOMGlue.h -include/virtualbox/xpcom/xpcom-config.h -%%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 -@dirrm include/virtualbox/nsprpub/obsolete -@dirrm include/virtualbox/nsprpub/md -@dirrm include/virtualbox/nsprpub -@dirrm include/virtualbox/ipcd -@dirrm include/virtualbox -%%NLS%%@dirrm %%DATADIR%%/nls -@dirrm %%DATADIR%%/samples -@dirrm %%DATADIR%%/idl -@dirrm %%DATADIR%% -%%QT4%%@dirrmtry share/icons/hicolor/48x48/apps -%%QT4%%@dirrmtry share/icons/hicolor/48x48 -%%QT4%%@dirrmtry share/icons/hicolor -%%QT4%%@dirrmtry share/icons -%%QT4%%@dirrmtry share/applications -@dirrm lib/virtualbox/components -%%GUESTADDITIONS%%@dirrm lib/virtualbox/additions -@dirrm lib/virtualbox -@cwd / -%%KMODDIR%%/vboxdrv.ko -%%KMODDIR%%/vboxnetadp.ko -%%KMODDIR%%/vboxnetflt.ko |