svn commit: r346981 - in head/emulators: virtualbox-ose virtualbox-ose-additions virtualbox-ose-additions/files virtualbox-ose-kmod virtualbox-ose-kmod/files virtualbox-ose/files

Jung-uk Kim jkim at FreeBSD.org
Tue Mar 4 00:45:41 UTC 2014


Author: jkim
Date: Tue Mar  4 00:45:37 2014
New Revision: 346981
URL: http://svnweb.freebsd.org/changeset/ports/346981
QAT: https://qat.redports.org/buildarchive/r346981/

Log:
  Update to 4.3.8.
  
  Obtained from:	svn.redports.org/virtualbox

Added:
  head/emulators/virtualbox-ose/files/extrapatch-Config.kmk   (contents, props changed)
  head/emulators/virtualbox-ose/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuestLib-Makefile.kmk   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-freebsd-Makefile   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-vboxvideo-Makefile.kmk   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Network-slirp-resolv_conf_parser.c   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Support-freebsd-Makefile   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-NetworkServices-NAT-VBoxNetLwipNAT.cpp   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h   (contents, props changed)
Deleted:
  head/emulators/virtualbox-ose-additions/files/patch-Config.kmk
  head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
  head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest
  head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Additions-common-VBoxGuestLib-Makefile.kmk
  head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient
  head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop
  head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Additions-x11-vboxvideo-Makefile.kmk
  head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-Makefile.kmk
  head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd.c
  head/emulators/virtualbox-ose-kmod/files/extrapatch-Config.kmk
  head/emulators/virtualbox-ose-kmod/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile
  head/emulators/virtualbox-ose-kmod/files/patch-Config.kmk
  head/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-Support-freebsd-Makefile
  head/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk
  head/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-VBoxNetFlt-freebsd.c
  head/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd.c
  head/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h
Modified:
  head/emulators/virtualbox-ose-additions/Makefile
  head/emulators/virtualbox-ose-additions/distinfo
  head/emulators/virtualbox-ose-additions/pkg-plist
  head/emulators/virtualbox-ose-kmod/Makefile
  head/emulators/virtualbox-ose-kmod/distinfo
  head/emulators/virtualbox-ose-kmod/pkg-plist
  head/emulators/virtualbox-ose/Makefile
  head/emulators/virtualbox-ose/distinfo
  head/emulators/virtualbox-ose/pkg-plist

Modified: head/emulators/virtualbox-ose-additions/Makefile
==============================================================================
--- head/emulators/virtualbox-ose-additions/Makefile	Tue Mar  4 00:43:46 2014	(r346980)
+++ head/emulators/virtualbox-ose-additions/Makefile	Tue Mar  4 00:45:37 2014	(r346981)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	virtualbox-ose
-DISTVERSION=	4.3.6
+DISTVERSION=	4.3.8
 CATEGORIES=	emulators
 MASTER_SITES=	http://download.virtualbox.org/virtualbox/${DISTVERSION}/ \
 		http://tmp.chruetertee.ch/ \
@@ -21,6 +21,7 @@ BUILD_DEPENDS=	yasm:${PORTSDIR}/devel/ya
 		kmk:${PORTSDIR}/devel/kBuild
 
 UNIQUENAME=	${PORTNAME}${PKGNAMESUFFIX}
+PATCHDIR=	${.CURDIR}/../${PORTNAME}/files
 WRKSRC=		${WRKDIR}/VirtualBox-${PORTVERSION}
 USE_RC_SUBR=	vboxguest vboxservice
 USES=		iconv kmod
@@ -40,7 +41,7 @@ CONFLICTS_INSTALL=	virtualbox-ose-additi
 
 OPTIONS_DEFINE=	DEBUG X11 OPENGL
 OPTIONS_DEFAULT=	X11
-OPTIONS_SUB=	DEBUG X11 OPENGL
+OPTIONS_SUB=	yes
 
 .include <bsd.port.options.mk>
 
@@ -48,17 +49,19 @@ VIDEODIR=	${PREFIX}/lib/xorg/modules/dri
 INPUTDIR=	${PREFIX}/lib/xorg/modules/input
 
 VBOX_BIN=	${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/additions
+VBOX_SBINS=	VBoxControl \
+		VBoxService
+
+BUILD_WRKSRC=	${VBOX_BIN}/src
 
 KMK_BUILDTYPE=	release
 KMK_CONFIG=	VBOX_LIBPATH_X11=${LOCALBASE}
 KMK_FLAGS=
 
-MAKE_FLAGS=	SYSDIR=${SRC_BASE}/sys
-
 .if ${PORT_OPTIONS:MDEBUG}
 KMK_FLAGS+=	BUILD_TYPE=debug
 KMK_BUILDTYPE=	debug
-MAKE_FLAGS+=	DEBUG_FLAGS="-O1 -g"
+MAKE_ARGS+=	DEBUG_FLAGS="-O1 -g"
 .endif
 
 .if ${PORT_OPTIONS:MX11}
@@ -71,6 +74,13 @@ VBOX_WITH_X11=
 .if ${PORT_OPTIONS:MOPENGL}
 USE_XORG+=	xcomposite xdamage xext xfixes
 USE_GL=		gl
+VBOX_LIBS=	VBoxOGL.so \
+		VBoxOGLarrayspu.so \
+		VBoxOGLcrutil.so \
+		VBoxOGLerrorspu.so \
+		VBoxOGLfeedbackspu.so \
+		VBoxOGLpackspu.so \
+		VBoxOGLpassthroughspu.so
 .else
 CONFIGURE_ARGS+=--disable-opengl
 .endif
@@ -102,6 +112,7 @@ post-patch:
 		${WRKSRC}/configure \
 		${WRKSRC}/kBuild/units/qt4.kmk \
 		${WRKSRC}/kBuild/sdks/LIBSDL.kmk \
+		${WRKSRC}/src/VBox/Additions/common/crOpenGL/fakedri_drv.c \
 		${WRKSRC}/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
 		${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop
 	@${REINPLACE_CMD} -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' ${WRKSRC}/configure
@@ -115,12 +126,11 @@ pre-build:
 	@${REINPLACE_CMD} -e 's|/bin/bash|/bin/sh|' \
 		${WRKSRC}/env.sh \
 		${WRKSRC}/src/VBox/Additions/freebsd/Installer/vboxguest.sh
-
-do-build:
-	cd ${WRKSRC} && ${SH} env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}
-	cd ${VBOX_BIN}/src && make ${MAKE_FLAGS}
+	cd ${WRKSRC} && ${SH} env.sh && \
+	    ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}
 
 do-install:
+	${MKDIR} ${STAGEDIR}${KMODDIR}
 	${INSTALL_KLD} ${VBOX_BIN}/src/vboxguest/vboxguest.ko ${STAGEDIR}${KMODDIR}
 .if ${PORT_OPTIONS:MDEBUG}
 	${INSTALL_KLD} ${VBOX_BIN}/src/vboxguest/vboxguest.ko.symbols ${STAGEDIR}${KMODDIR}
@@ -129,48 +139,40 @@ do-install:
 	${INSTALL_KLD} ${VBOX_BIN}/vboxvideo.ko ${STAGEDIR}${KMODDIR}
 .endif
 
-	${MKDIR} ${STAGEDIR}${PREFIX}/etc/rc.d/
-
-	${MKDIR} ${STAGEDIR}${PREFIX}/sbin
-	${INSTALL_PROGRAM} ${VBOX_BIN}/VBoxControl ${STAGEDIR}${PREFIX}/sbin/
-	${INSTALL_PROGRAM} ${VBOX_BIN}/VBoxService ${STAGEDIR}${PREFIX}/sbin/
+	${INSTALL_PROGRAM} ${VBOX_SBINS:S|^|${VBOX_BIN}/|} \
+	    ${STAGEDIR}${PREFIX}/sbin/
 
 .if ${PORT_OPTIONS:MX11}
 	${INSTALL_PROGRAM} ${VBOX_BIN}/VBoxClient ${STAGEDIR}${PREFIX}/bin/
-
-	${MKDIR} ${STAGEDIR}${PREFIX}/bin
 	${INSTALL_SCRIPT} ${WRKSRC}/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
-		${STAGEDIR}${PREFIX}/bin/VBoxClient-all
+	    ${STAGEDIR}${PREFIX}/bin/VBoxClient-all
 
 	# X11 autostart
 	${MKDIR} ${STAGEDIR}${PREFIX}/etc/xdg/autostart/
 	${INSTALL_DATA} ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
-		${STAGEDIR}${PREFIX}/etc/xdg/autostart/
+	    ${STAGEDIR}${PREFIX}/etc/xdg/autostart/
 
 	# KDE autostart
 	${MKDIR} ${STAGEDIR}${PREFIX}/share/autostart/
 	${INSTALL_DATA} ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
-		${STAGEDIR}${PREFIX}/share/autostart/
+	    ${STAGEDIR}${PREFIX}/share/autostart/
 
 	${MKDIR} ${STAGEDIR}${VIDEODIR}
-	${INSTALL_DATA} ${VBOX_BIN}/vboxvideo_drv_${XSERVER_ABI}.so ${STAGEDIR}${VIDEODIR}/vboxvideo_drv.so
+	${INSTALL_DATA} ${VBOX_BIN}/vboxvideo_drv_${XSERVER_ABI}.so \
+	    ${STAGEDIR}${VIDEODIR}/vboxvideo_drv.so
 
 	${MKDIR} ${STAGEDIR}${INPUTDIR}
-	${INSTALL_DATA} ${VBOX_BIN}/vboxmouse_drv_${XSERVER_ABI}.so ${STAGEDIR}${INPUTDIR}/vboxmouse_drv.so
+	${INSTALL_DATA} ${VBOX_BIN}/vboxmouse_drv_${XSERVER_ABI}.so \
+	    ${STAGEDIR}${INPUTDIR}/vboxmouse_drv.so
 .endif
 
 .if ${PORT_OPTIONS:MOPENGL}
-	${MKDIR} ${STAGEDIR}${PREFIX}/lib
-	${INSTALL_DATA} ${VBOX_BIN}/VBoxOGL.so ${STAGEDIR}${PREFIX}/lib/
-	${INSTALL_DATA} ${VBOX_BIN}/VBoxOGLarrayspu.so ${STAGEDIR}${PREFIX}/lib/
-	${INSTALL_DATA} ${VBOX_BIN}/VBoxOGLcrutil.so ${STAGEDIR}${PREFIX}/lib/
-	${INSTALL_DATA} ${VBOX_BIN}/VBoxOGLerrorspu.so ${STAGEDIR}${PREFIX}/lib/
-	${INSTALL_DATA} ${VBOX_BIN}/VBoxOGLfeedbackspu.so ${STAGEDIR}${PREFIX}/lib/
-	${INSTALL_DATA} ${VBOX_BIN}/VBoxOGLpackspu.so ${STAGEDIR}${PREFIX}/lib/
-	${INSTALL_DATA} ${VBOX_BIN}/VBoxOGLpassthroughspu.so ${STAGEDIR}${PREFIX}/lib/
+	${INSTALL_DATA} ${VBOX_LIBS:S|^|${VBOX_BIN}/|} \
+	    ${STAGEDIR}${PREFIX}/lib/
 
 	${MKDIR} ${STAGEDIR}${PREFIX}/lib/dri
-	${LN} -sf ${PREFIX}/lib/VBoxOGL.so ${STAGEDIR}${PREFIX}/lib/dri/vboxvideo_dri.so
+	${LN} -sf ${PREFIX}/lib/VBoxOGL.so \
+	    ${STAGEDIR}${PREFIX}/lib/dri/vboxvideo_dri.so
 .endif
 
 .include <bsd.port.post.mk>

Modified: head/emulators/virtualbox-ose-additions/distinfo
==============================================================================
--- head/emulators/virtualbox-ose-additions/distinfo	Tue Mar  4 00:43:46 2014	(r346980)
+++ head/emulators/virtualbox-ose-additions/distinfo	Tue Mar  4 00:45:37 2014	(r346981)
@@ -1,2 +1,2 @@
-SHA256 (VirtualBox-4.3.6.tar.bz2) = c547e1e32e0b06fba9ee4ca7842f8ddee8e94c64aab17c2b0d0793f0caccbb27
-SIZE (VirtualBox-4.3.6.tar.bz2) = 89609199
+SHA256 (VirtualBox-4.3.8.tar.bz2) = ffabd8735bdc80753cec29d01b499769f41e083f37a3f58b3055f19d3b1b9641
+SIZE (VirtualBox-4.3.8.tar.bz2) = 90224116

Modified: head/emulators/virtualbox-ose-additions/pkg-plist
==============================================================================
--- head/emulators/virtualbox-ose-additions/pkg-plist	Tue Mar  4 00:43:46 2014	(r346980)
+++ head/emulators/virtualbox-ose-additions/pkg-plist	Tue Mar  4 00:45:37 2014	(r346981)
@@ -1,8 +1,7 @@
-%%X11%%bin/VBoxClient-all
+ at comment $FreeBSD: ports/emulators/virtualbox-ose-additions/pkg-plist,v 1.6 2012/11/17 05:57:24 svnexp Exp $
 %%X11%%bin/VBoxClient
+%%X11%%bin/VBoxClient-all
 %%X11%%etc/xdg/autostart/vboxclient.desktop
-sbin/VBoxControl
-sbin/VBoxService
 %%OPENGL%%lib/VBoxOGL.so
 %%OPENGL%%lib/VBoxOGLarrayspu.so
 %%OPENGL%%lib/VBoxOGLcrutil.so
@@ -11,20 +10,18 @@ sbin/VBoxService
 %%OPENGL%%lib/VBoxOGLpackspu.so
 %%OPENGL%%lib/VBoxOGLpassthroughspu.so
 %%OPENGL%%lib/dri/vboxvideo_dri.so
-%%X11%%share/autostart/vboxclient.desktop
 %%X11%%lib/xorg/modules/drivers/vboxvideo_drv.so
 %%X11%%lib/xorg/modules/input/vboxmouse_drv.so
+sbin/VBoxControl
+sbin/VBoxService
+%%X11%%share/autostart/vboxclient.desktop
 %%X11%%@dirrmtry share/autostart
 %%X11%%@dirrmtry lib/xorg/modules/drivers
 %%X11%%@dirrmtry lib/xorg/modules/input
 %%X11%%@dirrmtry lib/xorg/modules
 %%X11%%@dirrmtry lib/xorg
-%%X11%%@dirrmtry etc/xdg/autostart
-%%X11%%@dirrmtry etc/xdg
 %%OPENGL%%@dirrmtry lib/dri
-%%X11%%@dirrmtry lib
 @cwd /
 %%KMODDIR%%/vboxguest.ko
 %%DEBUG%%%%KMODDIR%%/vboxguest.ko.symbols
 %%X11%%%%KMODDIR%%/vboxvideo.ko
-%%DEBUG%%%%X11%%%%KMODDIR%%/vboxvideo.ko

Modified: head/emulators/virtualbox-ose-kmod/Makefile
==============================================================================
--- head/emulators/virtualbox-ose-kmod/Makefile	Tue Mar  4 00:43:46 2014	(r346980)
+++ head/emulators/virtualbox-ose-kmod/Makefile	Tue Mar  4 00:45:37 2014	(r346981)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	virtualbox-ose
-DISTVERSION=	4.3.6
+DISTVERSION=	4.3.8
 CATEGORIES=	emulators
 MASTER_SITES=	http://download.virtualbox.org/virtualbox/${DISTVERSION}/ \
 		http://tmp.chruetertee.ch/ \
@@ -22,6 +22,7 @@ BUILD_DEPENDS=	yasm:${PORTSDIR}/devel/ya
 
 USES=		kmod
 UNIQUENAME=	${PORTNAME}${PKGNAMESUFFIX}
+PATCHDIR=	${.CURDIR}/../${PORTNAME}/files
 WRKSRC=		${WRKDIR}/VirtualBox-${PORTVERSION}
 USE_RC_SUBR=	vboxnet
 ONLY_FOR_ARCHS=	i386 amd64
@@ -37,27 +38,29 @@ CONFLICTS=	bcc-[0-9]*
 CONFLICTS_INSTALL=	virtualbox-ose-kmod-devel-4* virtualbox-ose-kmod-legacy-4*
 
 OPTIONS_DEFINE=	DEBUG VIMAGE
+OPTIONS_SUB=	yes
 DEBUG_DESC=	Debug symbols, additional logs and assertions
 VIMAGE_DESC=	VIMAGE virtual networking support
 
 .include <bsd.port.options.mk>
 
 VBOX_BIN=	${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/src
+VBOX_KMODS=	vboxdrv \
+		vboxnetadp \
+		vboxnetflt
+
+BUILD_WRKSRC=	${VBOX_BIN}
 
 KMK_BUILDTYPE=	release
 KMK_CONFIG=	VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys
 KMK_FLAGS=	HostDrivers-scripts vboxdrv-mod VBoxNetFlt-src VBoxNetAdp-src
 
-MAKE_FLAGS=	SYSDIR=${SRC_BASE}/sys
-
 .if ${PORT_OPTIONS:MDEBUG}
 KMK_FLAGS+=	BUILD_TYPE=debug
 KMK_BUILDTYPE=	debug
-EXTRA_PATCHES+=	${FILESDIR}/extrapatch-Config.kmk ${FILESDIR}/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile
-MAKE_FLAGS+=	DEBUG_FLAGS="-O1 -g"
-PLIST_SUB+=	WITH_DEBUG=""
-.else
-PLIST_SUB+=	WITH_DEBUG="@comment "
+EXTRA_PATCHES+=	${PATCHDIR}/extrapatch-Config.kmk \
+		${PATCHDIR}/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile
+MAKE_ARGS+=	DEBUG_FLAGS="-O1 -g"
 .endif
 
 .if ${ARCH} == i386
@@ -84,19 +87,16 @@ post-patch:
 pre-build:
 	@${REINPLACE_CMD} -e 's|/bin/bash|/bin/sh|' \
 		${WRKSRC}/env.sh
-
-do-build:
-	cd ${WRKSRC} && ${SH} env.sh && cd ${WRKSRC}/src/VBox/HostDrivers && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}
-	cd ${VBOX_BIN} && make ${MAKE_FLAGS}
+	cd ${WRKSRC} && ${SH} env.sh && cd ${WRKSRC}/src/VBox/HostDrivers && \
+	    ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}
 
 do-install:
-	${INSTALL_KLD} ${VBOX_BIN}/vboxdrv/vboxdrv.ko ${STAGEDIR}${KMODDIR}
-	${INSTALL_KLD} ${VBOX_BIN}/vboxnetadp/vboxnetadp.ko ${STAGEDIR}${KMODDIR}
-	${INSTALL_KLD} ${VBOX_BIN}/vboxnetflt/vboxnetflt.ko ${STAGEDIR}${KMODDIR}
+	${MKDIR} ${STAGEDIR}${KMODDIR}
+.for i in ${VBOX_KMODS}
+	${INSTALL_KLD} ${VBOX_BIN}/${i}/${i}.ko ${STAGEDIR}${KMODDIR}
 .if ${PORT_OPTIONS:MDEBUG}
-	${INSTALL_KLD} ${VBOX_BIN}/vboxdrv/vboxdrv.ko.symbols ${STAGEDIR}${KMODDIR}
-	${INSTALL_KLD} ${VBOX_BIN}/vboxnetadp/vboxnetadp.ko.symbols ${STAGEDIR}${KMODDIR}
-	${INSTALL_KLD} ${VBOX_BIN}/vboxnetflt/vboxnetflt.ko.symbols ${STAGEDIR}${KMODDIR}
+	${INSTALL_KLD} ${VBOX_BIN}/${i}/${i}.ko.symbols ${STAGEDIR}${KMODDIR}
 .endif
+.endfor
 
 .include <bsd.port.post.mk>

Modified: head/emulators/virtualbox-ose-kmod/distinfo
==============================================================================
--- head/emulators/virtualbox-ose-kmod/distinfo	Tue Mar  4 00:43:46 2014	(r346980)
+++ head/emulators/virtualbox-ose-kmod/distinfo	Tue Mar  4 00:45:37 2014	(r346981)
@@ -1,2 +1,2 @@
-SHA256 (VirtualBox-4.3.6.tar.bz2) = c547e1e32e0b06fba9ee4ca7842f8ddee8e94c64aab17c2b0d0793f0caccbb27
-SIZE (VirtualBox-4.3.6.tar.bz2) = 89609199
+SHA256 (VirtualBox-4.3.8.tar.bz2) = ffabd8735bdc80753cec29d01b499769f41e083f37a3f58b3055f19d3b1b9641
+SIZE (VirtualBox-4.3.8.tar.bz2) = 90224116

Modified: head/emulators/virtualbox-ose-kmod/pkg-plist
==============================================================================
--- head/emulators/virtualbox-ose-kmod/pkg-plist	Tue Mar  4 00:43:46 2014	(r346980)
+++ head/emulators/virtualbox-ose-kmod/pkg-plist	Tue Mar  4 00:45:37 2014	(r346981)
@@ -1,7 +1,8 @@
+ at comment $FreeBSD$
 @cwd /
 %%KMODDIR%%/vboxdrv.ko
-%%WITH_DEBUG%%%%KMODDIR%%/vboxdrv.ko.symbols
+%%DEBUG%%%%KMODDIR%%/vboxdrv.ko.symbols
 %%KMODDIR%%/vboxnetadp.ko
-%%WITH_DEBUG%%%%KMODDIR%%/vboxnetadp.ko.symbols
+%%DEBUG%%%%KMODDIR%%/vboxnetadp.ko.symbols
 %%KMODDIR%%/vboxnetflt.ko
-%%WITH_DEBUG%%%%KMODDIR%%/vboxnetflt.ko.symbols
+%%DEBUG%%%%KMODDIR%%/vboxnetflt.ko.symbols

Modified: head/emulators/virtualbox-ose/Makefile
==============================================================================
--- head/emulators/virtualbox-ose/Makefile	Tue Mar  4 00:43:46 2014	(r346980)
+++ head/emulators/virtualbox-ose/Makefile	Tue Mar  4 00:45:37 2014	(r346981)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	virtualbox-ose
-DISTVERSION=	4.3.6
+DISTVERSION=	4.3.8
 CATEGORIES=	emulators
 MASTER_SITES=	http://download.virtualbox.org/virtualbox/${DISTVERSION}/ \
 		http://tmp.chruetertee.ch/ \
@@ -26,7 +26,7 @@ BUILD_DEPENDS=	yasm:${PORTSDIR}/devel/ya
 LIB_DEPENDS=	libpng.so:${PORTSDIR}/graphics/png \
 		libxslt.so:${PORTSDIR}/textproc/libxslt \
 		libcurl.so:${PORTSDIR}/ftp/curl
-RUN_DEPENDS=	${KMODDIR}/vboxdrv.ko:${PORTSDIR}/emulators/virtualbox-ose-kmod \
+RUN_DEPENDS=	${LOCALBASE}/etc/rc.d/vboxnet:${PORTSDIR}/emulators/virtualbox-ose-kmod \
 		cdrecord:${PORTSDIR}/sysutils/cdrtools
 
 WRKSRC=		${WRKDIR}/VirtualBox-${PORTVERSION}
@@ -54,7 +54,7 @@ VBOX_GUEST_VER=	${PORTVERSION}
 
 OPTIONS_DEFINE=	QT4 DEBUG GUESTADDITIONS DBUS PULSEAUDIO UDPTUNNEL VDE VNC WEBSERVICE NLS X11 VPX PYTHON
 OPTIONS_DEFAULT=	QT4 DBUS X11 UDPTUNNEL VNC WEBSERVICE PYTHON
-OPTIONS_SUB=	X11 QT4 GUESTADDITIONS VNC NLS WEBSERVICE PYTHON
+OPTIONS_SUB=	yes
 DEBUG_DESC=	Debug symbols, additional logs and assertions
 QT4_DESC=	Build with QT4 Frontend
 GUESTADDITIONS_DESC=	Build with Guest Additions
@@ -87,14 +87,12 @@ ENV=
 .SHELL:		path="/bin/sh" unsetenv=true
 .endif
 
-NO_STAGE=	yes
 .include <bsd.port.options.mk>
 
-KMODDIR=	/boot/modules
-
-PLIST_SUB+=	PYTHON_VER=${PYTHON_VER} \
+PLIST_SUB+=	GUEST_VER=${VBOX_GUEST_VER} \
+		PYTHON_VER=${PYTHON_VER} \
 		PYTHON_VERU=${PYTHON_VER:S/./_/} \
-		GUEST_VER=${VBOX_GUEST_VER}
+		VBOXGROUP=${VBOXGROUP}
 
 SUB_LIST+=	VBOXUSER=${VBOXUSER} \
 		VBOXWSUSER=${VBOXWSUSER}
@@ -102,7 +100,7 @@ USE_RC_SUBR+=	vboxheadless vboxwatchdog
 
 KMK_BUILDTYPE=	release
 KMK_CONFIG=	VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys
-KMK_FLAGS=	-j 1
+KMK_FLAGS=	-j${MAKE_JOBS_NUMBER}
 
 .if empty(PORT_OPTIONS:MQT4) && !empty(PORT_OPTIONS:MNLS)
 BROKEN=		NLS support requires QT4 frontend. Run 'make config' again!
@@ -170,8 +168,8 @@ PLIST_SUB+=	ARCH="${KMK_ARCH}"
 .include <bsd.port.pre.mk>
 
 .if ${OSVERSION} < 900000
-EXTRA_PATCHES+=	${FILESDIR}/extrapatch-src-VBox-Main-src-server-generic-NetIf-generic.cpp \
-		${FILESDIR}/extrapatch-src-VBox-Devices-PC-vbox.dsl
+EXTRA_PATCHES+=	${PATCHDIR}/extrapatch-src-VBox-Devices-PC-vbox.dsl \
+		${PATCHDIR}/extrapatch-src-VBox-Main-src-server-generic-NetIf-generic.cpp
 .endif
 
 pre-everything::
@@ -225,83 +223,63 @@ post-patch:
 .endif
 
 pre-build:
-	@${REINPLACE_CMD} -e 's|/bin/bash|/bin/sh|' \
-		${WRKSRC}/env.sh
+	@${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}
+	cd ${WRKSRC} && ${SH} env.sh && \
+	    ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}
 
 do-install:
-	${MKDIR} ${DATADIR}
-	(cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom && ${COPYTREE_SHARE} "idl samples" ${DATADIR})
+	${MKDIR} ${STAGEDIR}${DATADIR}
+	cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom && ${COPYTREE_SHARE} "idl samples" ${STAGEDIR}${DATADIR}
 
-	${MKDIR} ${PREFIX}/include/virtualbox
-	(cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/include && ${COPYTREE_SHARE} "*" ${PREFIX}/include/virtualbox)
+	${MKDIR} ${STAGEDIR}${PREFIX}/include/virtualbox
+	cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/include && ${COPYTREE_SHARE} "*" ${STAGEDIR}${PREFIX}/include/virtualbox
 
-	${MKDIR} ${PREFIX}/lib/virtualbox
-	(cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin && ${COPYTREE_SHARE} "*.so *.gc *.r0 *.fd components VBoxExtPackHelperApp" ${PREFIX}/lib/virtualbox)
+	${MKDIR} ${STAGEDIR}${PREFIX}/lib/virtualbox
+	cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin && ${COPYTREE_SHARE} "*.so *.gc *.r0 *.fd components VBoxExtPackHelperApp" ${STAGEDIR}${PREFIX}/lib/virtualbox
 
 .if ${PORT_OPTIONS:MNLS}
-	${MKDIR} ${DATADIR}/nls
-	(cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/obj/VirtualBox/qtnls && ${COPYTREE_SHARE} "*.qm" ${DATADIR}/nls)
+	cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/obj/VirtualBox/qtnls && ${COPYTREE_SHARE} "*.qm" ${STAGEDIR}${DATADIR}/nls
 .endif
 
-	${MKDIR} ${PREFIX}/bin
 .for f in VBoxManage VBoxNetAdpCtl VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD VBoxBalloonCtrl ${VBOX_FRONTENDS} ${VBOX_WEB}
-	${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 VBoxExtPackHelperApp VBoxBalloonCtrl
-	${CHMOD} 0711 ${PREFIX}/lib/virtualbox/${f}
+	${INSTALL_PROGRAM} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/${f} ${STAGEDIR}${PREFIX}/lib/virtualbox/
+	${LN} -sf ${PREFIX}/lib/virtualbox/${f} ${STAGEDIR}${PREFIX}/bin/
 .endfor
 
 .if ${PORT_OPTIONS:MVNC}
-	${MKDIR} ${PREFIX}/lib/virtualbox/ExtensionPacks
-	${CP} -a ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/ExtensionPacks/VNC ${PREFIX}/lib/virtualbox/ExtensionPacks
+	${MKDIR} ${STAGEDIR}${PREFIX}/lib/virtualbox/ExtensionPacks/VNC/${KMK_ARCH}
+	${INSTALL_DATA} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/ExtensionPacks/VNC/ExtPack* ${STAGEDIR}${PREFIX}/lib/virtualbox/ExtensionPacks/VNC/
+	${INSTALL_LIB} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/ExtensionPacks/VNC/${KMK_ARCH}/* ${STAGEDIR}${PREFIX}/lib/virtualbox/ExtensionPacks/VNC/${KMK_ARCH}/
 .endif
 
 .if ${PORT_OPTIONS:MWEBSERVICE}
-	${MKDIR} ${DATADIR}/sdk/bindings/webservice
+	${MKDIR} ${STAGEDIR}${DATADIR}/sdk/bindings/webservice
 .for f in vboxweb.wsdl
-	${INSTALL_DATA} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/obj/webservice/${f} ${DATADIR}/sdk/bindings/webservice/
+	${INSTALL_DATA} ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/obj/webservice/${f} ${STAGEDIR}${DATADIR}/sdk/bindings/webservice/
 .endfor
 .endif
 
 .if ${PORT_OPTIONS:MGUESTADDITIONS}
-	${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
+	${MKDIR} ${STAGEDIR}${PREFIX}/lib/virtualbox/additions
+	${INSTALL_DATA} ${DISTDIR}/${GUESTADDITIONS} ${STAGEDIR}${PREFIX}/lib/virtualbox/additions/
+	${LN} -sf ${PREFIX}/lib/virtualbox/additions/${GUESTADDITIONS} ${STAGEDIR}${PREFIX}/lib/virtualbox/additions/VBoxGuestAdditions.iso
 .endif
 
 .if ${PORT_OPTIONS:MPYTHON}
 	cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/installer && \
-	VBOX_INSTALL_PATH="${PREFIX}/lib/virtualbox" ${PYTHON_CMD} vboxapisetup.py install
+	    ${SETENV} VBOX_INSTALL_PATH="${PREFIX}/lib/virtualbox" \
+	    ${PYTHON_CMD} vboxapisetup.py install --root=${STAGEDIR}
 
-	@${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/
+	@${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}
+	cd ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/sdk/bindings/xpcom/python && ${COPYTREE_SHARE} "*" ${STAGEDIR}${PYTHON_SITELIBDIR}
+	${PYTHON_CMD} -mcompileall ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom/
 .endif
 
-post-install:
-.for f in VBoxManage VBoxNetDHCP VBoxSVC VBoxXPCOMIPCD VBoxExtPackHelperApp VBoxBalloonCtrl ${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 ${PORT_OPTIONS:MQT4}
-	${MKDIR} ${PREFIX}/share/pixmaps/
-	${INSTALL_DATA} ${WRKSRC}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_48px.png ${PREFIX}/share/pixmaps/VBox.png
-	${MKDIR} ${PREFIX}/share/applications/
-	${INSTALL_DATA} ${WRKSRC}/src/VBox/Installer/freebsd/virtualbox.desktop ${PREFIX}/share/applications/virtualbox.desktop
+	${INSTALL_DATA} ${WRKSRC}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_48px.png ${STAGEDIR}${PREFIX}/share/pixmaps/VBox.png
+	${INSTALL_DATA} ${WRKSRC}/src/VBox/Installer/freebsd/virtualbox.desktop ${STAGEDIR}${PREFIX}/share/applications/virtualbox.desktop
 .endif
-	@${CAT} ${PKGMESSAGE}
 
 .include <bsd.port.post.mk>

Modified: head/emulators/virtualbox-ose/distinfo
==============================================================================
--- head/emulators/virtualbox-ose/distinfo	Tue Mar  4 00:43:46 2014	(r346980)
+++ head/emulators/virtualbox-ose/distinfo	Tue Mar  4 00:45:37 2014	(r346981)
@@ -1,4 +1,4 @@
-SHA256 (VirtualBox-4.3.6.tar.bz2) = c547e1e32e0b06fba9ee4ca7842f8ddee8e94c64aab17c2b0d0793f0caccbb27
-SIZE (VirtualBox-4.3.6.tar.bz2) = 89609199
-SHA256 (VBoxGuestAdditions_4.3.6.iso) = 95648fcdb5d028e64145a2fe2f2f28c946d219da366389295a61fed296ca79f0
-SIZE (VBoxGuestAdditions_4.3.6.iso) = 64161792
+SHA256 (VirtualBox-4.3.8.tar.bz2) = ffabd8735bdc80753cec29d01b499769f41e083f37a3f58b3055f19d3b1b9641
+SIZE (VirtualBox-4.3.8.tar.bz2) = 90224116
+SHA256 (VBoxGuestAdditions_4.3.8.iso) = a1e58f3a15cab81b82424c6382a490bb02377d78d537a57538692fa83ce448c7
+SIZE (VBoxGuestAdditions_4.3.8.iso) = 64540672

Added: head/emulators/virtualbox-ose/files/extrapatch-Config.kmk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/extrapatch-Config.kmk	Tue Mar  4 00:45:37 2014	(r346981)
@@ -0,0 +1,11 @@
+--- Config.kmk.orig	2012-05-24 01:15:53.393052000 +0200
++++ Config.kmk	2012-05-24 01:16:15.883067161 +0200
+@@ -3188,7 +3188,7 @@
+ 		| xargs -J% objcopy % $(out)
+ 
+ ## Strip debug info (comment out if debugging or something).
+-	objcopy --strip-debug $(out)
++#	objcopy --strip-debug $(out)
+ endef
+  else # x86
+ TOOL_FREEBSDKMODLD_LINK_SYSMOD_OUTPUT = $(outbase).kld

Added: head/emulators/virtualbox-ose/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile	Tue Mar  4 00:45:37 2014	(r346981)
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/Support/freebsd/Makefile.orig	2012-10-18 16:23:16.000000000 +0200
++++ src/VBox/HostDrivers/Support/freebsd/Makefile	2012-10-20 08:13:07.301179212 +0200
+@@ -27,7 +27,7 @@
+ 
+ KMOD = vboxdrv
+ 
+-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DSUPDRV_WITH_RELEASE_LOGGER -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS
++CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DSUPDRV_WITH_RELEASE_LOGGER -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS -DDEBUG
+ 
+ .if (${MACHINE_ARCH} == "i386")
+  CFLAGS += -DRT_ARCH_X86

Added: head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c	Tue Mar  4 00:45:37 2014	(r346981)
@@ -0,0 +1,255 @@
+--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig	2014-02-25 12:00:25.000000000 -0500
++++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c	2014-03-01 03:23:16.000000000 -0500
+@@ -89,8 +89,7 @@
+ /*
+  * Character device file handlers.
+  */
+-static d_fdopen_t VBoxGuestFreeBSDOpen;
+-static d_close_t  VBoxGuestFreeBSDClose;
++static d_open_t   VBoxGuestFreeBSDOpen;
+ static d_ioctl_t  VBoxGuestFreeBSDIOCtl;
+ static d_write_t  VBoxGuestFreeBSDWrite;
+ static d_read_t   VBoxGuestFreeBSDRead;
+@@ -121,8 +120,7 @@
+ {
+     .d_version =        D_VERSION,
+     .d_flags =          D_TRACKCLOSE | D_NEEDMINOR,
+-    .d_fdopen =         VBoxGuestFreeBSDOpen,
+-    .d_close =          VBoxGuestFreeBSDClose,
++    .d_open =           VBoxGuestFreeBSDOpen,
+     .d_ioctl =          VBoxGuestFreeBSDIOCtl,
+     .d_read =           VBoxGuestFreeBSDRead,
+     .d_write =          VBoxGuestFreeBSDWrite,
+@@ -130,106 +128,45 @@
+     .d_name =           DEVICE_NAME
+ };
+ 
++/** Device structure. */
++static struct cdev         *g_pDev;
+ /** Device extention & session data association structure. */
+ static VBOXGUESTDEVEXT      g_DevExt;
+-/** List of cloned device. Managed by the kernel. */
+-static struct clonedevs    *g_pVBoxGuestFreeBSDClones;
+-/** The dev_clone event handler tag. */
+-static eventhandler_tag     g_VBoxGuestFreeBSDEHTag;
+ /** Reference counter */
+ static volatile uint32_t    cUsers;
+ /** selinfo structure used for polling. */
+ static struct selinfo       g_SelInfo;
+ 
+-/**
+- * DEVFS event handler.
+- */
+-static void VBoxGuestFreeBSDClone(void *pvArg, struct ucred *pCred, char *pszName, int cchName, struct cdev **ppDev)
++static void VBoxGuestFreeBSDDtr(void *pSession)
+ {
+-    int iUnit;
+-    int rc;
+-
+-    Log(("VBoxGuestFreeBSDClone: pszName=%s ppDev=%p\n", pszName, ppDev));
+-
+-    /*
+-     * One device node per user, si_drv1 points to the session.
+-     * /dev/vboxguest<N> where N = {0...255}.
+-     */
+-    if (!ppDev)
+-        return;
+-    if (strcmp(pszName, "vboxguest") == 0)
+-        iUnit =  -1;
+-    else if (dev_stdclone(pszName, NULL, "vboxguest", &iUnit) != 1)
+-        return;
+-    if (iUnit >= 256)
+-    {
+-        Log(("VBoxGuestFreeBSDClone: iUnit=%d >= 256 - rejected\n", iUnit));
+-        return;
+-    }
+-
+-    Log(("VBoxGuestFreeBSDClone: pszName=%s iUnit=%d\n", pszName, iUnit));
+-
+-    rc = clone_create(&g_pVBoxGuestFreeBSDClones, &g_VBoxGuestFreeBSDChrDevSW, &iUnit, ppDev, 0);
+-    Log(("VBoxGuestFreeBSDClone: clone_create -> %d; iUnit=%d\n", rc, iUnit));
+-    if (rc)
+-    {
+-        *ppDev = make_dev(&g_VBoxGuestFreeBSDChrDevSW,
+-                          iUnit,
+-                          UID_ROOT,
+-                          GID_WHEEL,
+-                          0664,
+-                          "vboxguest%d", iUnit);
+-        if (*ppDev)
+-        {
+-            dev_ref(*ppDev);
+-            (*ppDev)->si_flags |= SI_CHEAPCLONE;
+-            Log(("VBoxGuestFreeBSDClone: Created *ppDev=%p iUnit=%d si_drv1=%p si_drv2=%p\n",
+-                     *ppDev, iUnit, (*ppDev)->si_drv1, (*ppDev)->si_drv2));
+-            (*ppDev)->si_drv1 = (*ppDev)->si_drv2 = NULL;
+-        }
+-        else
+-            Log(("VBoxGuestFreeBSDClone: make_dev iUnit=%d failed\n", iUnit));
+-    }
+-    else
+-        Log(("VBoxGuestFreeBSDClone: Existing *ppDev=%p iUnit=%d si_drv1=%p si_drv2=%p\n",
+-             *ppDev, iUnit, (*ppDev)->si_drv1, (*ppDev)->si_drv2));
++    VBoxGuestCloseSession(&g_DevExt, pSession);
++    ASMAtomicDecU32(&cUsers);
+ }
+ 
+ /**
+  * File open handler
+  *
+  */
+-#if __FreeBSD_version >= 700000
+-static int VBoxGuestFreeBSDOpen(struct cdev *pDev, int fOpen, struct thread *pTd, struct file *pFd)
+-#else
+-static int VBoxGuestFreeBSDOpen(struct cdev *pDev, int fOpen, struct thread *pTd)
+-#endif
++static int VBoxGuestFreeBSDOpen(struct cdev *pDev, int fOpen, int DevType, struct thread *pTd)
+ {
+-    int                 rc;
+-    PVBOXGUESTSESSION   pSession;
++    PVBOXGUESTSESSION pSession;
++    int rc;
+ 
+     LogFlow((DEVICE_NAME ":VBoxGuestFreeBSDOpen\n"));
+ 
+     /*
+-     * Try grab it (we don't grab the giant, remember).
+-     */
+-    if (!ASMAtomicCmpXchgPtr(&pDev->si_drv1, (void *)0x42, NULL))
+-        return EBUSY;
+-
+-    /*
+      * Create a new session.
+      */
+     rc = VBoxGuestCreateUserSession(&g_DevExt, &pSession);
+     if (RT_SUCCESS(rc))
+     {
+-        if (ASMAtomicCmpXchgPtr(&pDev->si_drv1, pSession, (void *)0x42))
+-        {
+-            Log((DEVICE_NAME ":VBoxGuestFreeBSDOpen success: g_DevExt=%p pSession=%p rc=%d pid=%d\n", &g_DevExt, pSession, rc, (int)RTProcSelf()));
++        Log((DEVICE_NAME ":VBoxGuestFreeBSDOpen success: g_DevExt=%p pSession=%p rc=%d pid=%d\n", &g_DevExt, pSession, rc, (int)RTProcSelf()));
++        rc = devfs_set_cdevpriv(pSession, VBoxGuestFreeBSDDtr);
++        if (rc)
++            VBoxGuestCloseSession(&g_DevExt, pSession);
++        else
+             ASMAtomicIncU32(&cUsers);
+-            return 0;
+-        }
+-
+-        VBoxGuestCloseSession(&g_DevExt, pSession);
++        return rc;
+     }
+ 
+     LogRel((DEVICE_NAME ":VBoxGuestFreeBSDOpen: failed. rc=%d\n", rc));
+@@ -237,47 +174,19 @@
+ }
+ 
+ /**
+- * File close handler
+- *
+- */
+-static int VBoxGuestFreeBSDClose(struct cdev *pDev, int fFile, int DevType, struct thread *pTd)
+-{
+-    PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1;
+-    Log(("VBoxGuestFreeBSDClose: fFile=%#x pSession=%p\n", fFile, pSession));
+-
+-    /*
+-     * Close the session if it's still hanging on to the device...
+-     */
+-    if (VALID_PTR(pSession))
+-    {
+-        VBoxGuestCloseSession(&g_DevExt, pSession);
+-        if (!ASMAtomicCmpXchgPtr(&pDev->si_drv1, NULL, pSession))
+-            Log(("VBoxGuestFreeBSDClose: si_drv1=%p expected %p!\n", pDev->si_drv1, pSession));
+-        ASMAtomicDecU32(&cUsers);
+-        /* Don't use destroy_dev here because it may sleep resulting in a hanging user process. */
+-        destroy_dev_sched(pDev);
+-    }
+-    else
+-        Log(("VBoxGuestFreeBSDClose: si_drv1=%p!\n", pSession));
+-    return 0;
+-}
+-
+-/**
+  * IOCTL handler
+  *
+  */
+ static int VBoxGuestFreeBSDIOCtl(struct cdev *pDev, u_long ulCmd, caddr_t pvData, int fFile, struct thread *pTd)
+ {
+-    LogFlow((DEVICE_NAME ":VBoxGuestFreeBSDIOCtl\n"));
++    PVBOXGUESTSESSION pSession;
++    int rc;
+ 
+-    int rc = 0;
++    LogFlow((DEVICE_NAME ":VBoxGuestFreeBSDIOCtl\n"));
+ 
+-    /*
+-     * Validate the input.
+-     */
+-    PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1;
+-    if (RT_UNLIKELY(!VALID_PTR(pSession)))
+-        return EINVAL;
++    rc = devfs_get_cdevpriv((void **)&pSession);
++    if (rc)
++        return rc;
+ 
+     /*
+      * Validate the request wrapper.
+@@ -361,12 +270,14 @@
+ 
+ static int VBoxGuestFreeBSDPoll (struct cdev *pDev, int fEvents, struct thread *td)
+ {
+-    int fEventsProcessed;
++    PVBOXGUESTSESSION pSession;
++    int fEventsProcessed, rc;
+ 
+     LogFlow((DEVICE_NAME "::Poll: fEvents=%d\n", fEvents));
+ 
+-    PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1;
+-    if (RT_UNLIKELY(!VALID_PTR(pSession))) {
++    rc = devfs_get_cdevpriv((void **)&pSession);
++    if (rc)
++    {
+         Log((DEVICE_NAME "::Poll: no state data for %s\n", devtoname(pDev)));
+         return (fEvents & (POLLHUP|POLLIN|POLLRDNORM|POLLOUT|POLLWRNORM));
+     }
+@@ -407,10 +318,7 @@
+     /*
+      * Reverse what we did in VBoxGuestFreeBSDAttach.
+      */
+-    if (g_VBoxGuestFreeBSDEHTag != NULL)
+-        EVENTHANDLER_DEREGISTER(dev_clone, g_VBoxGuestFreeBSDEHTag);
+-
+-    clone_cleanup(&g_pVBoxGuestFreeBSDClones);
++    destroy_dev(g_pDev);
+ 
+     VBoxGuestFreeBSDRemoveIRQ(pDevice, pState);
+ 
+@@ -562,18 +470,21 @@
+                 if (RT_SUCCESS(rc))
+                 {
+                     /*
+-                     * Configure device cloning.
++                     * Configure device.
+                      */
+-                    clone_setup(&g_pVBoxGuestFreeBSDClones);
+-                    g_VBoxGuestFreeBSDEHTag = EVENTHANDLER_REGISTER(dev_clone, VBoxGuestFreeBSDClone, 0, 1000);
+-                    if (g_VBoxGuestFreeBSDEHTag)
++                    g_pDev = make_dev(&g_VBoxGuestFreeBSDChrDevSW,
++                                      0,
++                                      UID_ROOT,
++                                      GID_WHEEL,
++                                      0664,
++                                      "vboxguest");
++                    if (g_pDev)
+                     {
+                         printf(DEVICE_NAME ": loaded successfully\n");
+                         return 0;
+                     }
+ 
+-                    printf(DEVICE_NAME ": EVENTHANDLER_REGISTER(dev_clone,,,) failed\n");
+-                    clone_cleanup(&g_pVBoxGuestFreeBSDClones);
++                    printf(DEVICE_NAME ": make_dev failed\n");
+                     VBoxGuestFreeBSDRemoveIRQ(pDevice, pState);
+                 }
+                 else

Added: head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile	Tue Mar  4 00:45:37 2014	(r346981)
@@ -0,0 +1,10 @@
+--- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig	2013-11-29 14:20:37.000000000 -0500
++++ src/VBox/Additions/common/VBoxGuest/freebsd/Makefile	2013-12-15 00:12:59.000000000 -0500
+@@ -155,6 +155,7 @@
+ SRCS += \
+ 	semspinmutex-r0drv-generic.c \
+ 	mpnotification-r0drv-generic.c \
++	threadctxhooks-r0drv-generic.c \
+ 	RTMpIsCpuWorkPending-r0drv-generic.c
+ 
+ .PATH:	${.CURDIR}/VBox

Added: head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest	Tue Mar  4 00:45:37 2014	(r346981)
@@ -0,0 +1,10 @@
+--- src/VBox/Additions/common/VBoxGuest/freebsd/files_vboxguest.orig	2014-01-04 05:34:34.000000000 +0000
++++ src/VBox/Additions/common/VBoxGuest/freebsd/files_vboxguest	2014-01-04 05:34:41.000000000 +0000
+@@ -185,6 +185,7 @@
+     ${PATH_ROOT}/src/VBox/Runtime/r0drv/freebsd/sleepqueue-r0drv-freebsd.h=>r0drv/freebsd/sleepqueue-r0drv-freebsd.h \
+     ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/semspinmutex-r0drv-generic.c=>r0drv/generic/semspinmutex-r0drv-generic.c \
+     ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/mpnotification-r0drv-generic.cpp=>r0drv/generic/mpnotification-r0drv-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/threadctxhooks-r0drv-generic.cpp=>r0drv/generic/threadctxhooks-r0drv-generic.c \
+     ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp=>r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.c \
+     ${PATH_ROOT}/src/VBox/Runtime/r0drv/memobj-r0drv.cpp=>r0drv/memobj-r0drv.c \
+     ${PATH_ROOT}/src/VBox/Runtime/VBox/log-vbox.cpp=>VBox/log-vbox.c \

Added: head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuestLib-Makefile.kmk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuestLib-Makefile.kmk	Tue Mar  4 00:45:37 2014	(r346981)
@@ -0,0 +1,18 @@
+--- src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk.orig	2010-10-07 11:37:10.000000000 +0200
++++ src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk	2010-10-07 11:36:16.000000000 +0200
+@@ -140,6 +140,7 @@
+ # the X server runtime instead of IPRT, for use with old servers where the
+ # C library is not available.
+ #
++ifdef VBOX_WITH_X11_ADDITIONS
+ VBoxGuestR3LibXFree86_TEMPLATE = VBOXGUESTR3XF86LIB
+ VBoxGuestR3LibXFree86_DEFS     = \
+ 	VBOX_WITH_HGCM \
+@@ -163,6 +164,7 @@
+         $(VBOX_PATH_X11_XFREE_4_3)/exports/include/X11
+ 
+ VBoxGuestR3LibRuntimeXF86.cpp_CXXFLAGS = -Wno-shadow
++endif
+ 
+ include	$(KBUILD_PATH)/subfooter.kmk
+ 

Added: head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-freebsd-Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-freebsd-Makefile	Tue Mar  4 00:45:37 2014	(r346981)
@@ -0,0 +1,19 @@
+--- src/VBox/Additions/freebsd/Makefile.orig	2014-02-25 12:00:30.000000000 -0500
++++ src/VBox/Additions/freebsd/Makefile	2014-03-03 15:27:32.000000000 -0500
+@@ -19,14 +19,14 @@
+ 
+ all:
+ 	@echo "*** Building 'vboxguest' module ***"
+-	@$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest
++	@$(MAKE) CC=cc LDFLAGS= KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest
+ 	@if [ -f vboxguest/vboxguest.ko ]; then \
+ 	    cp vboxguest/vboxguest.ko .; \
+ 	 fi
+ 	@echo
+ 	@if [ -d vboxvfs ]; then \
+ 	    echo "*** Building 'vboxvfs' module ***"; \
+-	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvfs; \
++	    $(MAKE) CC=cc LDFLAGS= KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvfs; \
+ 	    if [ -f vboxvfs/vboxvfs.ko ]; then \
+ 	        cp vboxvfs/vboxvfs.ko .; \
+ 	    fi; \

Added: head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient	Tue Mar  4 00:45:37 2014	(r346981)
@@ -0,0 +1,27 @@
+--- src/VBox/Additions/x11/Installer/98vboxadd-xclient.orig	2010-09-10 14:24:55.000000000 +0200
++++ src/VBox/Additions/x11/Installer/98vboxadd-xclient	2010-12-29 20:42:00.000000000 +0100
+@@ -28,8 +28,8 @@
+ xorgbin=Xorg
+ found=`which Xorg | grep "no Xorg"`
+ if test ! -z "$found"; then
+-    if test -f "/usr/X11/bin/Xorg"; then
+-        xorgbin=/usr/X11/bin/Xorg
++    if test -f "/usr/local/bin/Xorg"; then
++        xorgbin=/usr/local/bin/Xorg
+     else
+         exit 1
+     fi
+@@ -40,9 +40,9 @@
+     no_display=1
+ fi
+ 
+-/usr/bin/VBoxClient --clipboard
+-/usr/bin/VBoxClient --checkhostversion
++/usr/local/bin/VBoxClient --clipboard
++/usr/local/bin/VBoxClient --checkhostversion
+ test -z "$no_display" &&
+-    /usr/bin/VBoxClient --display
++    /usr/local/bin/VBoxClient --display
+ test -z "$no_display" &&
+-    /usr/bin/VBoxClient --seamless
++    /usr/local/bin/VBoxClient --seamless

Added: head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop	Tue Mar  4 00:45:37 2014	(r346981)
@@ -0,0 +1,10 @@
+--- src/VBox/Additions/x11/Installer/vboxclient.desktop.orig	2009-06-12 12:34:57.000000000 +0000
++++ src/VBox/Additions/x11/Installer/vboxclient.desktop	2011-01-13 22:07:37.000000000 +0000
+@@ -8,6 +8,6 @@
+ Comment=VirtualBox User Session Services
+ Comment[it]=Servizi di sessione utente di VirtualBox
+ Comment[pl]=Usługi sesji użytkownika VirtualBox
+-Exec=/usr/bin/VBoxClient-all
++Exec=/usr/local/bin/VBoxClient-all
+ X-GNOME-Autostart-enabled=true
+ X-KDE-autostart-after=panel

Added: head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-vboxvideo-Makefile.kmk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/patch-src-VBox-Additions-x11-vboxvideo-Makefile.kmk	Tue Mar  4 00:45:37 2014	(r346981)
@@ -0,0 +1,138 @@
+--- src/VBox/Additions/x11/vboxvideo/Makefile.kmk.orig	2014-02-25 12:00:33.000000000 -0500
++++ src/VBox/Additions/x11/vboxvideo/Makefile.kmk	2014-02-26 16:10:28.000000000 -0500
+@@ -33,7 +33,7 @@
+ vboxvideo_13_DEFS := $(vboxvideo_70_DEFS) VBOXVIDEO_13
+ vboxvideo_15_DEFS := \
+ 	$(vboxvideo_13_DEFS) NO_ANSIC PCIACCESS XSERVER_LIBPCIACCESS
+-if1of ($(KBUILD_TARGET), linux solaris)
++if1of ($(KBUILD_TARGET), freebsd linux solaris)
+  vboxvideo_15_DEFS += \
+  	VBOX_DRI
+ endif
+@@ -198,7 +198,7 @@
+ vboxvideo_drv_15_TEMPLATE = VBOXGUESTR3XORGMOD
+ vboxvideo_drv_15_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
+ vboxvideo_drv_15_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100503000
+-if1of ($(KBUILD_TARGET), linux solaris)
++if1of ($(KBUILD_TARGET), freebsd linux solaris)
+  vboxvideo_drv_15_DEFS += \
+  	VBOX_DRI_OLD
+ endif
+@@ -207,7 +207,7 @@
+ 	$(VBOX_PATH_X11_ROOT)/xorg-server-1.5.3
+ vboxvideo_drv_15_INCS += $(PATH_ROOT)/src/VBox/Runtime/include
+ vboxvideo_drv_15_SOURCES  = $(vboxvideo_drv_13_SOURCES)
+-if1of ($(KBUILD_TARGET), linux solaris)
++if1of ($(KBUILD_TARGET), freebsd linux solaris)
+  vboxvideo_drv_15_SOURCES += \
+  	vboxvideo_dri.c
+ endif
+@@ -220,7 +220,7 @@
+ vboxvideo_drv_16_TEMPLATE = VBOXGUESTR3XORGMOD
+ vboxvideo_drv_16_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
+ vboxvideo_drv_16_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100600000
+-if1of ($(KBUILD_TARGET), linux solaris)
++if1of ($(KBUILD_TARGET), freebsd linux solaris)
+  vboxvideo_drv_16_DEFS += \
+  	VBOX_DRI_OLD
+ endif
+@@ -238,11 +238,19 @@
+ vboxvideo_drv_17_TEMPLATE = VBOXGUESTR3XORGMOD
+ vboxvideo_drv_17_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
+ vboxvideo_drv_17_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100699000
++if1of ($(KBUILD_TARGET), freebsd)
++ vboxvideo_drv_17_DEFS += \
++ 	VBOX_DRI_OLD
++endif
+ vboxvideo_drv_17_INCS = \
+ 	$(vboxvideo_xorg_INCS) \
+ 	$(VBOX_PATH_X11_ROOT)/xorg-server-1.7.7
+ vboxvideo_drv_17_INCS += $(PATH_ROOT)/src/VBox/Runtime/include
+ vboxvideo_drv_17_SOURCES := $(vboxvideo_drv_13_SOURCES)
++if1of ($(KBUILD_TARGET), freebsd)
++ vboxvideo_drv_17_SOURCES += \
++ 	vboxvideo_dri.c
++endif
+ if1of ($(KBUILD_TARGET), linux solaris)
+  vboxvideo_drv_17_SOURCES += \
+  	vboxvideo_dri2.c
+@@ -256,6 +264,10 @@
+ vboxvideo_drv_18_TEMPLATE = VBOXGUESTR3XORGMOD
+ vboxvideo_drv_18_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
+ vboxvideo_drv_18_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100800000
++if1of ($(KBUILD_TARGET), freebsd)
++ vboxvideo_drv_18_DEFS += \
++ 	VBOX_DRI_OLD
++endif
+ vboxvideo_drv_18_INCS = \
+ 	$(vboxvideo_xorg_INCS) \
+ 	$(VBOX_PATH_X11_ROOT)/xorg-server-1.8.0
+@@ -270,6 +282,10 @@
+ vboxvideo_drv_19_TEMPLATE = VBOXGUESTR3XORGMOD
+ vboxvideo_drv_19_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
+ vboxvideo_drv_19_DEFS := $(vboxvideo_15_DEFS) XORG_VERSION_CURRENT=100900000
++if1of ($(KBUILD_TARGET), freebsd)
++ vboxvideo_drv_19_DEFS += \
++ 	VBOX_DRI_OLD
++endif
+ vboxvideo_drv_19_INCS = \
+ 	$(vboxvideo_xorg_INCS) \
+ 	$(VBOX_PATH_X11_ROOT)/xorg-server-1.9.0
+@@ -288,7 +304,11 @@
+ 	$(vboxvideo_xorg_INCS) \
+ 	$(VBOX_PATH_X11_ROOT)/xorg-server-1.10.0
+ vboxvideo_drv_110_INCS += $(PATH_ROOT)/src/VBox/Runtime/include
+-vboxvideo_drv_110_SOURCES := $(vboxvideo_drv_17_SOURCES)
++vboxvideo_drv_110_SOURCES := $(vboxvideo_drv_13_SOURCES)
++if1of ($(KBUILD_TARGET), freebsd linux solaris)
++ vboxvideo_drv_110_SOURCES += \
++ 	vboxvideo_dri2.c
++endif
+ 
+ 
+ #
+@@ -302,7 +322,7 @@
+ 	$(vboxvideo_xorg_INCS) \
+ 	$(VBOX_PATH_X11_ROOT)/xorg-server-1.11.0
+ vboxvideo_drv_111_INCS += $(PATH_ROOT)/src/VBox/Runtime/include
+-vboxvideo_drv_111_SOURCES := $(vboxvideo_drv_17_SOURCES)
++vboxvideo_drv_111_SOURCES := $(vboxvideo_drv_110_SOURCES)
+ 
+ 
+ #
+@@ -316,7 +336,7 @@
+ 	$(vboxvideo_xorg_INCS) \
+ 	$(VBOX_PATH_X11_ROOT)/xorg-server-1.12.0
+ vboxvideo_drv_112_INCS += $(PATH_ROOT)/src/VBox/Runtime/include
+-vboxvideo_drv_112_SOURCES := $(vboxvideo_drv_17_SOURCES)
++vboxvideo_drv_112_SOURCES := $(vboxvideo_drv_110_SOURCES)
+ 
+ 
+ #

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-ports-head mailing list