FreeBSD Bugzilla – Attachment 201612 Details for
Bug 234878
emulators/virtualbox-ose: Update to 6.1
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Update to 6.0.4.
vbox60.diff (text/plain), 85.88 KB, created by
Jung-uk Kim
on 2019-02-01 18:29:24 UTC
(
hide
)
Description:
Update to 6.0.4.
Filename:
MIME Type:
Creator:
Jung-uk Kim
Created:
2019-02-01 18:29:24 UTC
Size:
85.88 KB
patch
obsolete
>Index: emulators/virtualbox-ose/Makefile >=================================================================== >--- emulators/virtualbox-ose/Makefile (revision 491834) >+++ emulators/virtualbox-ose/Makefile (working copy) >@@ -2,7 +2,7 @@ > # $FreeBSD$ > > PORTNAME= virtualbox-ose >-PORTVERSION= 5.2.26 >+PORTVERSION= 6.0.4 > CATEGORIES= emulators > MASTER_SITES= https://download.virtualbox.org/virtualbox/${PORTVERSION}/ > DISTFILES= VirtualBox-${PORTVERSION}${EXTRACT_SUFX} ${GUESTADDITIONS} >@@ -53,7 +53,7 @@ VBOX_PROGS= VBoxAutostart VBoxBalloonCtrl VBoxBugR > VBOX_UTILS= VBoxExtPackHelperApp VBoxNetAdpCtl VBoxNetDHCP VBoxNetNAT \ > VBoxSVC VBoxXPCOMIPCD > >-OPTIONS_DEFINE= ALSA DBUS DEBUG GUESTADDITIONS MANUAL NLS PULSEAUDIO \ >+OPTIONS_DEFINE= ALSA DBUS DEBUG GUESTADDITIONS MANUAL NLS OPUS PULSEAUDIO \ > PYTHON QT5 R0LOGGING UDPTUNNEL VDE VNC WEBSERVICE VPX X11 > OPTIONS_DEFAULT= DBUS QT5 UDPTUNNEL VNC WEBSERVICE X11 > OPTIONS_SUB= yes >@@ -62,6 +62,7 @@ DEBUG_DESC= Debug symbols, additional logs and ass > GUESTADDITIONS_DESC= Build with Guest Additions > MANUAL_DESC= Build with user manual > NLS_DESC= Native language support (requires QT5) >+OPUS_DESC= Use libvpx for audio recording (requires VPX) > QT5_DESC= Build with QT5 frontend (requires X11) > R0LOGGING_DESC= Enable R0 logging (requires DEBUG) > UDPTUNNEL_DESC= Build with UDP tunnel support >@@ -78,6 +79,9 @@ DEBUG_CONFIGURE_ON= --build-debug > MANUAL_BUILD_DEPENDS= ${LOCALBASE}/share/xml/docbook/4.4/docbookx.dtd:textproc/docbook-xml > MANUAL_CONFIGURE_OFF= --disable-docs > NLS_IMPLIES= QT5 >+OPUS_CONFIGURE_OFF= --disable-libopus >+OPUS_LIB_DEPENDS= libopus.so:audio/opus >+OPUS_IMPLIES= VPX > PULSEAUDIO_CONFIGURE_OFF= --disable-pulse > PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio > PYTHON_CONFIGURE_OFF= --disable-python >@@ -154,7 +158,7 @@ USE_QT= buildtools_build core dbus gui linguistto > USE_QT+= printsupport widgets x11extras > USE_XORG= xcb > INSTALLS_ICONS= yes >-VBOX_PROGS+= VirtualBox >+VBOX_PROGS+= VirtualBox VirtualBoxVM > VBOX_UTILS+= VBoxTestOGL > VBOX_WITH_QT= 1 > .else >@@ -275,6 +279,9 @@ post-patch: > @${ECHO} 'VBOX_GCC_PEDANTIC_CXX = -Wshadow $$(VBOX_GCC_WARN) -Wno-long-long' >> \ > ${WRKSRC}/LocalConfig.kmk > .endif >+.if empty(PORT_OPTIONS:MX11) >+ @${ECHO} 'VBOX_WITH_VMSVGA3D =' >> ${WRKSRC}/LocalConfig.kmk >+.endif > .if ${COMPILER_TYPE} == clang > @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \ > -e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk >Index: emulators/virtualbox-ose/distinfo >=================================================================== >--- emulators/virtualbox-ose/distinfo (revision 491834) >+++ emulators/virtualbox-ose/distinfo (working copy) >@@ -1,5 +1,5 @@ >-TIMESTAMP = 1548732081 >-SHA256 (VirtualBox-5.2.26.tar.bz2) = 4debe583463be3917ac60ad76a31f6db27586423d86f1f53c060d70d5e70d467 >-SIZE (VirtualBox-5.2.26.tar.bz2) = 118371765 >-SHA256 (VBoxGuestAdditions_5.2.26.iso) = b927c5d0d4c97a9da2522daad41fe96b616ed06bfb0c883f9c42aad2244f7c38 >-SIZE (VBoxGuestAdditions_5.2.26.iso) = 58433536 >+TIMESTAMP = 1548976366 >+SHA256 (VirtualBox-6.0.4.tar.bz2) = f80b0c68182c946fb74ada8034960c38159ad91085b153da1277e4f191af6e1f >+SIZE (VirtualBox-6.0.4.tar.bz2) = 155233564 >+SHA256 (VBoxGuestAdditions_6.0.4.iso) = 749b0c76aa6b588e3310d718fc90ea472fdc0b7c8953f7419c20be7e7fa6584a >+SIZE (VBoxGuestAdditions_6.0.4.iso) = 85917696 >Index: emulators/virtualbox-ose/files/extrapatch-Config.kmk >=================================================================== >--- emulators/virtualbox-ose/files/extrapatch-Config.kmk (revision 491834) >+++ emulators/virtualbox-ose/files/extrapatch-Config.kmk (working copy) >@@ -1,22 +1,22 @@ >---- Config.kmk.orig 2016-07-18 11:50:32 UTC >+--- Config.kmk.orig 2019-01-25 18:10:01 UTC > +++ Config.kmk >-@@ -3537,6 +3537,7 @@ ifdef VBOX_WITH_RAW_MODE >+@@ -4249,6 +4249,7 @@ ifdef VBOX_WITH_RAW_MODE > TEMPLATE_VBoxRc_TOOL = $(VBOX_GCC32_TOOL) > TEMPLATE_VBoxRc_CXXFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK) > TEMPLATE_VBoxRc_CFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK) > + TEMPLATE_VBoxRc_CXXFLAGS.freebsd = -fno-builtin >- ifeq ($(KBUILD_TARGET),solaris) >- TEMPLATE_VBoxRc_LDFLAGS = -r >- else >-@@ -3677,6 +3678,7 @@ ifeq ($(VBOX_LDR_FMT),elf) >+ if $(VBOX_GCC32_VERSION_CC) < 30400 >+ TEMPLATE_VBoxRc_DEFS += RT_WITHOUT_PRAGMA_ONCE >+ endif >+@@ -4396,6 +4397,7 @@ ifeq ($(VBOX_LDR_FMT),elf) > TEMPLATE_VBoxR0_TOOL = $(VBOX_GCC_TOOL) > TEMPLATE_VBoxR0_CFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK) > TEMPLATE_VBoxR0_CXXFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK) > +TEMPLATE_VBoxR0_CXXFLAGS.freebsd = -fno-builtin >- TEMPLATE_VBoxR0_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables -ffreestanding >- TEMPLATE_VBoxR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables >- ifeq ($(KBUILD_TARGET),solaris) >-@@ -3945,7 +3947,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CM >+ TEMPLATE_VBoxR0_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables -ffreestanding >+ TEMPLATE_VBoxR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables >+ if $(VBOX_GCC_VERSION_CC) < 30400 >+@@ -4815,7 +4817,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS > | xargs -J% objcopy % $(out) > > ## Strip debug info (comment out if debugging or something). >Index: emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_net_UIDownloaderAdditions.cpp >=================================================================== >--- emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_net_UIDownloaderAdditions.cpp (revision 491834) >+++ emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_net_UIDownloaderAdditions.cpp (nonexistent) >@@ -1,11 +0,0 @@ >---- src/VBox/Frontends/VirtualBox/src/net/UIDownloaderAdditions.cpp.orig 2017-01-17 07:26:50 UTC >-+++ src/VBox/Frontends/VirtualBox/src/net/UIDownloaderAdditions.cpp >-@@ -143,7 +143,7 @@ void UIDownloaderAdditions::handleVerifi >- { >- const QString strFileName = strRecord.section(" *", 1); >- const QString strDownloadedSumm = strRecord.section(" *", 0, 0); >-- if (strFileName == source().fileName()) >-+ if (strFileName == QFileInfo(source().toString()).fileName()) >- { >- /* Calc the SHA-256 on the bytes, creating a string: */ >- uint8_t abHash[RTSHA256_HASH_SIZE]; > >Property changes on: emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_net_UIDownloaderAdditions.cpp >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property >Index: emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_net_UIDownloaderExtensionPack.cpp >=================================================================== >--- emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_net_UIDownloaderExtensionPack.cpp (revision 491834) >+++ emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_net_UIDownloaderExtensionPack.cpp (nonexistent) >@@ -1,11 +0,0 @@ >---- src/VBox/Frontends/VirtualBox/src/net/UIDownloaderExtensionPack.cpp.orig 2017-01-17 07:26:50 UTC >-+++ src/VBox/Frontends/VirtualBox/src/net/UIDownloaderExtensionPack.cpp >-@@ -127,7 +127,7 @@ void UIDownloaderExtensionPack::handleVe >- { >- const QString strFileName = strRecord.section(" *", 1); >- const QString strDownloadedSumm = strRecord.section(" *", 0, 0); >-- if (strFileName == source().fileName()) >-+ if (strFileName == QFileInfo(source().toString()).fileName()) >- { >- /* Calc the SHA-256 on the bytes, creating a string: */ >- uint8_t abHash[RTSHA256_HASH_SIZE]; > >Property changes on: emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_net_UIDownloaderExtensionPack.cpp >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property >Index: emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_settings_global_UIGlobalSettingsNetworkDetailsHost.cpp >=================================================================== >--- emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_settings_global_UIGlobalSettingsNetworkDetailsHost.cpp (revision 491834) >+++ emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_settings_global_UIGlobalSettingsNetworkDetailsHost.cpp (nonexistent) >@@ -1,10 +0,0 @@ >---- src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetworkDetailsHost.cpp.orig 2017-03-08 17:19:57 UTC >-+++ src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetworkDetailsHost.cpp >-@@ -243,6 +243,6 @@ QString UIGlobalSettingsNetworkDetailsHo >- address.prepend(QString::number(uPart)); >- uAddress = uAddress >> 8; >- } >-- return address.join('.'); >-+ return address.join("."); >- } >- > >Property changes on: emulators/virtualbox-ose/files/extrapatch-src_VBox_Frontends_VirtualBox_src_settings_global_UIGlobalSettingsNetworkDetailsHost.cpp >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property >Index: emulators/virtualbox-ose/files/patch-Config.kmk >=================================================================== >--- emulators/virtualbox-ose/files/patch-Config.kmk (revision 491834) >+++ emulators/virtualbox-ose/files/patch-Config.kmk (working copy) >@@ -1,6 +1,6 @@ >---- Config.kmk.orig 2019-01-14 14:53:56 UTC >+--- Config.kmk.orig 2019-01-25 18:10:01 UTC > +++ Config.kmk >-@@ -445,11 +445,11 @@ ifn1of ($(KBUILD_TARGET), win darwin) >+@@ -456,11 +456,11 @@ ifn1of ($(KBUILD_TARGET), win darwin) > # Enable OSS audio support. > VBOX_WITH_AUDIO_OSS = 1 > endif >@@ -14,7 +14,7 @@ > # Enable PulseAudio audio support. > VBOX_WITH_AUDIO_PULSE = 1 > endif >-@@ -464,11 +464,11 @@ VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT = 1 >+@@ -475,11 +475,11 @@ VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT = 1 > # Enable PCI passthrough support. > VBOX_WITH_PCI_PASSTHROUGH = 1 > # Enable statically linked dbus support. >@@ -28,16 +28,16 @@ > VBOX_WITH_PAM = 1 > endif > # Enable internal networking. >-@@ -664,7 +664,7 @@ VBOX_WITH_TESTCASES = 1 >- VBOX_WITH_VDITOOL = >- # Enable this to build vbox-img even if VBOX_WITH_TESTCASES is disabled >- VBOX_WITH_VBOX_IMG = >--if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.x86 darwin.amd64 linux.x86 linux.amd64 solaris.amd64 win.x86 win.amd64) >-+if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.x86 darwin.amd64 freebsd.x86 freebsd.amd64 linux.x86 linux.amd64 solaris.amd64 win.x86 win.amd64) >- # Enables the video capturing support. >- VBOX_WITH_VIDEOREC = 1 >- # Enable VPX (VP8 / VP9 codec), used for video capturing. >-@@ -992,10 +992,6 @@ ifeq ($(KBUILD_TARGET),darwin) >+@@ -487,7 +487,7 @@ VBOX_WITH_INTERNAL_NETWORKING = 1 >+ # Enable vmsvga (svga2) graphics device variant, 2D part >+ VBOX_WITH_VMSVGA = 1 >+ # Enable vmsvga (svga2) graphics device variant, 3D part >+-if1of ($(KBUILD_TARGET), darwin linux win) >++if1of ($(KBUILD_TARGET), darwin freebsd linux win) >+ VBOX_WITH_VMSVGA3D = 1 >+ endif >+ # Enable Host Guest Shared Memory Interface. >+@@ -1029,10 +1029,6 @@ ifeq ($(KBUILD_TARGET),darwin) > VBOX_WITH_VBOXSDL= > endif > >@@ -48,7 +48,7 @@ > ifeq ($(KBUILD_TARGET),haiku) > # Don't bother with SDL ttf for now. > VBOX_WITH_SECURELABEL= >-@@ -1155,7 +1151,7 @@ ifdef VBOX_OSE >+@@ -1195,7 +1191,7 @@ ifdef VBOX_OSE > VBOX_WITH_KCHMVIEWER= > VBOX_WITH_PLUGIN_CRYPT= > VBOX_WITH_DRAG_AND_DROP_PROMISES= >@@ -57,25 +57,7 @@ > VBOX_WITH_DOCS= > VBOX_WITH_DOCS_PACKING= > endif >-@@ -1176,13 +1172,13 @@ ifdef VBOX_OSE >- ifn1of ($(KBUILD_TARGET), darwin linux solaris win) >- VBOX_WITH_INSTALLER= >- endif >-+ # Undefine codec libraries which are not needed. >-+ VBOX_WITH_LIBOPUS= >-+ # Disable video recording (with audio support). >-+ VBOX_WITH_AUDIO_VIDEOREC= >- if1of ($(KBUILD_TARGET), win) >-- # Undefine codec libraries which are not needed. >- VBOX_WITH_LIBVPX= >-- VBOX_WITH_LIBOPUS= >-- # Disable video recording (with audio support). >- VBOX_WITH_VIDEOREC= >-- VBOX_WITH_AUDIO_VIDEOREC= >- endif >- # branding >- VBOX_BRAND_LICENSE_HTML := $(PATH_ROOT)/doc/License-gpl-2.0.html >-@@ -4541,7 +4537,7 @@ TEMPLATE_VBOXR0DRV_CFLAGS = \ >+@@ -4782,7 +4778,7 @@ TEMPLATE_VBOXR0DRV_CFLAGS = \ > -O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \ > $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ > -nostdinc -std=c99 >@@ -84,7 +66,15 @@ > TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 --param inline-unit-growth=100 --param large-function-growth=1000 \ > -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx \ > -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -Wundef >-@@ -4878,12 +4874,8 @@ TEMPLATE_VBOXR3EXE_LDFLAGS += -fno-pic >+@@ -5101,6 +5097,7 @@ TEMPLATE_VBOXR3EXE_LDFLAGS.x86 = -m32 >+ TEMPLATE_VBOXR3EXE_LDFLAGS.amd64 = -m64 >+ TEMPLATE_VBOXR3EXE_LDFLAGS.sparc32 = -m32 >+ TEMPLATE_VBOXR3EXE_LDFLAGS.sparc64 = -m64 >++TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) >+ TEMPLATE_VBOXR3EXE_LDFLAGS.linux = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) >+ TEMPLATE_VBOXR3EXE_LDFLAGS.solaris = -Wl,-z,ignore # same as VBOX_LD_as_needed >+ TEMPLATE_VBOXR3EXE_LDFLAGS.debug = $(VBOX_GCC_SANITIZER_FLAGS) >+@@ -5138,12 +5135,8 @@ TEMPLATE_VBOXR3EXE_LDFLAGS += -fno-pic > TEMPLATE_VBOXR3EXE_TOOL = GXX3 > TEMPLATE_VBOXR3EXE_LIBS = pthread > TEMPLATE_VBOXR3EXE_INCS += \ >@@ -97,7 +87,7 @@ > /usr/local/lib > else ifeq ($(KBUILD_TARGET),netbsd) > TEMPLATE_VBOXR3EXE_TOOL = GXX3 >-@@ -5168,7 +5160,7 @@ ifeq ($(KBUILD_TARGET),win) # No CRT! >+@@ -5452,7 +5445,7 @@ ifeq ($(KBUILD_TARGET),win) # No CRT! > TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.win.amd64 = $(TEMPLATE_VBOXR3EXE_LDFLAGS.win.amd64) /entry:suplibHardenedWindowsMain > TEMPLATE_VBOXR3HARDENEDEXE_LIBS.x86 = $(NOT_SUCH_VARIABLE) > TEMPLATE_VBOXR3HARDENEDEXE_LIBS.amd64 = $(NOT_SUCH_VARIABLE) >@@ -106,8 +96,11 @@ > # We want to keep the RPATH on Solaris to be able to find libgcc_1/libstdc++ within $(VBOX_WITH_RUNPATH) > TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) > TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) >-@@ -5699,12 +5691,8 @@ TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTI >+@@ -6032,14 +6025,11 @@ TEMPLATE_VBOXMAINEXE_TOOL = GXX3 >+ TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) network stdc++ supc++ >+ else if1of ($(KBUILD_TARGET), freebsd openbsd) > TEMPLATE_VBOXMAINEXE_TOOL = GXX3 >++TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) > TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) > TEMPLATE_VBOXMAINEXE_INCS += \ > - /usr/include \ >@@ -119,9 +112,11 @@ > /usr/local/lib > else ifeq ($(KBUILD_TARGET),netbsd) > TEMPLATE_VBOXMAINEXE_TOOL = GXX3 >-@@ -6238,12 +6226,8 @@ ifdef VBOX_WITH_QTGUI >+@@ -6622,13 +6612,10 @@ ifdef VBOX_WITH_QTGUI >+ TEMPLATE_VBOXQTGUIEXE_LIBPATH += \ > $(VBOX_LIBPATH_X11) > ifeq ($(KBUILD_TARGET),freebsd) >++ TEMPLATE_VBOXQTGUIEXE_LDFLAGS.freebsd = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) > TEMPLATE_VBOXQTGUIEXE_INCS += \ > - /usr/include \ > - /usr/X11R6/include \ >@@ -132,7 +127,7 @@ > /usr/local/lib > endif > ifeq ($(KBUILD_TARGET),solaris) >-@@ -6466,12 +6450,8 @@ TEMPLATE_VBoxBldProg_LIBPATH += \ >+@@ -6871,12 +6858,8 @@ TEMPLATE_VBoxBldProg_LIBPATH += \ > TEMPLATE_VBoxBldProg_TOOL = GXX3 > TEMPLATE_VBoxBldProg_LIBS = pthread > TEMPLATE_VBoxBldProg_INCS += \ >@@ -145,7 +140,23 @@ > /usr/local/lib > else ifeq ($(KBUILD_HOST),netbsd) > TEMPLATE_VBoxBldProg_TOOL = GXX3 >-@@ -6872,6 +6852,7 @@ TEMPLATE_VBOXCROGLR3HOSTDLL_LDFLAGS.darwin += \ >+@@ -7018,6 +7001,7 @@ TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.linux = \ >+ $(VBOX_GCC_fno-stack-protector) >+ TEMPLATE_VBOXGUESTR3EXE_CFLAGS.linux = $(TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.linux) >+ # The GNU_HASH ELF tag is not supported by older systems. >++TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.freebsd += $(VBOX_LD_hash_style_sysv) >+ TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.linux += $(VBOX_LD_hash_style_sysv) >+ >+ # >+@@ -7228,6 +7212,7 @@ TEMPLATE_VBOXGUESTR3XF86MOD_LIBS.$(KBUILD_TYPE) = >+ TEMPLATE_VBOXGUESTR3XF86MOD_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE) >+ TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE) >+ # The GNU_HASH ELF tag is not supported by older glibc dynamic linkers. >++TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.freebsd = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv)) >+ TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.linux = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv)) >+ TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE) >+ TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS = -r >+@@ -7337,6 +7322,7 @@ TEMPLATE_VBOXCROGLR3HOSTDLL_LDFLAGS.darwin += \ > -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ > -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) > TEMPLATE_VBOXCROGLR3HOSTDLL_LDFLAGS.linux = -Wl,--no-as-needed >Index: emulators/virtualbox-ose/files/patch-configure >=================================================================== >--- emulators/virtualbox-ose/files/patch-configure (revision 491834) >+++ emulators/virtualbox-ose/files/patch-configure (working copy) >@@ -1,6 +1,6 @@ >---- configure.orig 2018-07-16 14:56:48 UTC >+--- configure.orig 2019-01-25 18:10:01 UTC > +++ configure >-@@ -138,10 +138,14 @@ CXX_FLAGS="" >+@@ -139,10 +139,14 @@ CXX_FLAGS="" > if [ "$OS" = "freebsd" ]; then > INCCURL="-I/usr/local/include" > LIBCURL="-L/usr/local/lib -lcurl" >@@ -15,7 +15,7 @@ > else > INCCURL="" > LIBCURL="-lcurl" >-@@ -436,6 +440,9 @@ check_gcc() >+@@ -445,6 +449,9 @@ check_gcc() > elif [ $cc_maj -eq 4 -a $cc_min -eq 0 -a "$OS" = "darwin" ]; then > log_success "found version $cc_ver" > # gcc-4.0 is allowed for Darwin only >@@ -24,8 +24,8 @@ > + # gcc-4.2 is allowed for FreeBSD only > elif [ $cc_maj -lt 4 \ > -o \( $cc_maj -eq 4 -a $cc_min -lt 4 -a "$OS" != "darwin" \) \ >- -o \( $cc_maj -eq 4 -a $cc_min -lt 2 -a "$OS" = "darwin" \) \ >-@@ -1204,7 +1211,7 @@ extern "C" int main(void) >+ -o \( $cc_maj -eq 4 -a $cc_min -lt 2 -a "$OS" = "darwin" \) ]; then >+@@ -1214,7 +1221,7 @@ extern "C" int main(void) > #endif > } > EOF >@@ -34,7 +34,7 @@ > test_execute > fi > } >-@@ -1504,8 +1511,7 @@ EOF >+@@ -1514,8 +1521,7 @@ EOF > if [ $? -eq 0 ]; then > echo "(Qt5 from pkg-config)" >> $LOG > FLGQT5=`pkg-config Qt5Core --cflags` >@@ -44,7 +44,7 @@ > INCQT5=`strip_I "$FLGQT5"` > LIBDIR5=`pkg-config Qt5Core --variable=libdir` > LIBQT5=`pkg-config Qt5Core --libs` >-@@ -1644,7 +1650,7 @@ check_libopus() >+@@ -1654,7 +1660,7 @@ check_libopus() > fi > cat > $ODIR.tmp_src.cc << EOF > #include <cstdio> >@@ -53,7 +53,7 @@ > extern "C" int main(void) > { > OpusEncoder *test; >-@@ -1976,8 +1982,8 @@ EOF >+@@ -1986,8 +1992,8 @@ EOF > echo "compiling the following source file:" >> $LOG > cat $ODIR.tmp_src.cc >> $LOG > echo "using the following command line:" >> $LOG >@@ -64,7 +64,7 @@ > if [ $? -eq 0 ]; then > found=1 > break >-@@ -2449,7 +2455,7 @@ for option in "$@"; do >+@@ -2463,7 +2469,7 @@ for option in "$@"; do > --with-openssl-dir=*) > OPENSSLDIR=`echo $option | cut -d'=' -f2` > INCCRYPTO="-I${OPENSSLDIR}/include" >@@ -73,16 +73,7 @@ > ;; > --with-ow-dir=*) > WATCOM=`echo $option | cut -d'=' -f2` >-@@ -2763,7 +2769,7 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then >- check_ssl >- check_curl >- [ $WITH_LIBVPX -eq 1 ] && check_vpx >-- check_libopus >-+ [ $OSE -eq 0 -a "$OS" != "win" ] && check_libopus >- [ "$OS" != "darwin" ] && check_z >- [ "$OS" != "darwin" ] && check_png >- [ $OSE -eq 0 -a "$OS" = "linux" ] && check_pam >-@@ -2784,13 +2790,20 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then >+@@ -2805,13 +2811,20 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then > [ $WITH_PYTHON -eq 1 ] && check_python > [ $WITH_JAVA -eq 1 ] && check_java > >@@ -104,7 +95,7 @@ > fi > fi > >-@@ -2806,14 +2819,6 @@ if [ "$OS" = "linux" ]; then >+@@ -2827,14 +2840,6 @@ if [ "$OS" = "linux" ]; then > cnf_append "VBOX_WITHOUT_LINUX_TEST_BUILDS" "1" > fi > if [ $ONLY_ADDITIONS -eq 0 ]; then >Index: emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c >=================================================================== >--- emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c (revision 491834) >+++ emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c (working copy) >@@ -1,6 +1,22 @@ >---- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2017-10-18 07:06:43 UTC >+--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2019-01-25 18:12:28 UTC > +++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c >-@@ -93,8 +93,6 @@ struct VBoxGuestDeviceState >+@@ -45,6 +45,7 @@ >+ #include <sys/uio.h> >+ #include <sys/bus.h> >+ #include <sys/poll.h> >++#include <sys/proc.h> >+ #include <sys/selinfo.h> >+ #include <sys/queue.h> >+ #include <sys/lock.h> >+@@ -61,6 +62,7 @@ >+ #include <VBox/version.h> >+ #include <VBox/log.h> >+ #include <iprt/assert.h> >++#include <iprt/err.h> >+ #include <iprt/initterm.h> >+ #include <iprt/process.h> >+ #include <iprt/string.h> >+@@ -102,8 +104,6 @@ struct VBoxGuestDeviceState > struct resource *pIrqRes; > /** Pointer to the IRQ handler. */ > void *pfnIrqHandler; >@@ -9,7 +25,7 @@ > }; > > >-@@ -104,8 +102,7 @@ struct VBoxGuestDeviceState >+@@ -113,8 +113,7 @@ struct VBoxGuestDeviceState > /* > * Character device file handlers. > */ >@@ -19,7 +35,7 @@ > static d_ioctl_t vgdrvFreeBSDIOCtl; > static int vgdrvFreeBSDIOCtlSlow(PVBOXGUESTSESSION pSession, u_long ulCmd, caddr_t pvData, struct thread *pTd); > static d_write_t vgdrvFreeBSDWrite; >-@@ -136,8 +133,7 @@ static struct cdevsw g_vgdrvFreeBSDCh >+@@ -145,8 +144,7 @@ static struct cdevsw g_vgdrvFreeBSDChrDevSW = > { > .d_version = D_VERSION, > .d_flags = D_TRACKCLOSE | D_NEEDMINOR, >@@ -29,7 +45,7 @@ > .d_ioctl = vgdrvFreeBSDIOCtl, > .d_read = vgdrvFreeBSDRead, > .d_write = vgdrvFreeBSDWrite, >-@@ -145,81 +141,28 @@ static struct cdevsw g_vgdrvFreeBSDCh >+@@ -154,81 +152,28 @@ static struct cdevsw g_vgdrvFreeBSDChrDevSW = > .d_name = "vboxguest" > }; > >@@ -118,7 +134,7 @@ > { > int rc; > PVBOXGUESTSESSION pSession; >-@@ -227,25 +170,18 @@ static int vgdrvFreeBSDOpen(struct cdev >+@@ -240,12 +185,6 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp > LogFlow(("vgdrvFreeBSDOpen:\n")); > > /* >@@ -130,7 +146,9 @@ > - /* > * Create a new session. > */ >- rc = VGDrvCommonCreateUserSession(&g_DevExt, &pSession); >+ fRequestor = VMMDEV_REQUESTOR_USERMODE | VMMDEV_REQUESTOR_TRUST_NOT_GIVEN; >+@@ -262,14 +201,13 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp >+ rc = VGDrvCommonCreateUserSession(&g_DevExt, fRequestor, &pSession); > if (RT_SUCCESS(rc)) > { > - if (ASMAtomicCmpXchgPtr(&pDev->si_drv1, pSession, (void *)0x42)) >@@ -150,7 +168,7 @@ > } > > LogRel(("vgdrvFreeBSDOpen: failed. rc=%d\n", rc)); >-@@ -253,33 +189,6 @@ static int vgdrvFreeBSDOpen(struct cdev >+@@ -277,33 +215,6 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp > } > > /** >@@ -184,20 +202,21 @@ > * I/O control request. > * > * @returns depends... >-@@ -292,7 +201,11 @@ static int vgdrvFreeBSDClose(struct cdev >+@@ -316,8 +227,12 @@ static int vgdrvFreeBSDClose(struct cdev *pDev, int fF > static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long ulCmd, caddr_t pvData, int fFile, struct thread *pTd) > { > PVBOXGUESTSESSION pSession; > - devfs_get_cdevpriv((void **)&pSession); > + int rc; >-+ >+ > + rc = devfs_get_cdevpriv((void **)&pSession); > + if (rc) > + return rc; >- >++ > /* > * Deal with the fast ioctl path first. >-@@ -488,12 +401,14 @@ int VBOXCALL VBoxGuestIDC(void *pvSessio >+ */ >+@@ -512,12 +427,14 @@ int VBOXCALL VBoxGuestIDC(void *pvSession, uintptr_t u > > static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEvents, struct thread *td) > { >@@ -215,21 +234,22 @@ > Log(("vgdrvFreeBSDPoll: no state data for %s\n", devtoname(pDev))); > return (fEvents & (POLLHUP|POLLIN|POLLRDNORM|POLLOUT|POLLWRNORM)); > } >-@@ -534,10 +449,7 @@ static int vgdrvFreeBSDDetach(device_t p >+@@ -558,11 +475,8 @@ static int vgdrvFreeBSDDetach(device_t pDevice) > /* > * Reverse what we did in vgdrvFreeBSDAttach. > */ > - if (g_vgdrvFreeBSDEHTag != NULL) > - EVENTHANDLER_DEREGISTER(dev_clone, g_vgdrvFreeBSDEHTag); >-- >-- clone_cleanup(&g_pvgdrvFreeBSDClones); > + destroy_dev(g_pDev); > >+- clone_cleanup(&g_pvgdrvFreeBSDClones); >+- > vgdrvFreeBSDRemoveIRQ(pDevice, pState); > >-@@ -689,18 +601,21 @@ static int vgdrvFreeBSDAttach(device_t p >- if (RT_SUCCESS(rc)) >- { >+ if (pState->pVMMDevMemRes) >+@@ -727,18 +641,21 @@ static int vgdrvFreeBSDAttach(device_t pDevice) >+ VGDrvCommonProcessOptionsFromHost(&g_DevExt); >+ > /* > - * Configure device cloning. > + * Configure device. >Index: emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest >=================================================================== >--- emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest (revision 491834) >+++ emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest (working copy) >@@ -1,6 +1,14 @@ >---- src/VBox/Additions/common/VBoxGuest/freebsd/files_vboxguest.orig 2017-10-18 07:06:43 UTC >+--- src/VBox/Additions/common/VBoxGuest/freebsd/files_vboxguest.orig 2019-01-25 18:12:28 UTC > +++ src/VBox/Additions/common/VBoxGuest/freebsd/files_vboxguest >-@@ -99,6 +99,7 @@ FILES_VBOXGUEST_NOBIN=" \ >+@@ -63,6 +63,7 @@ FILES_VBOXGUEST_NOBIN=" \ >+ ${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \ >+ ${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \ >+ ${PATH_ROOT}/include/iprt/types.h=>include/iprt/types.h \ >++ ${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \ >+ ${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \ >+ ${PATH_ROOT}/include/iprt/uuid.h=>include/iprt/uuid.h \ >+ ${PATH_ROOT}/include/iprt/crc.h=>include/iprt/crc.h \ >+@@ -111,6 +112,7 @@ FILES_VBOXGUEST_NOBIN=" \ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.h=>common/misc/handletable.h \ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablectx.cpp=>common/misc/handletablectx.c \ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/once.cpp=>common/misc/once.c \ >@@ -8,7 +16,7 @@ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/thread.cpp=>common/misc/thread.c \ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg1Weak.cpp=>common/misc/RTAssertMsg1Weak.c \ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg2.cpp=>common/misc/RTAssertMsg2.c \ >-@@ -160,6 +161,7 @@ FILES_VBOXGUEST_NOBIN=" \ >+@@ -181,6 +183,7 @@ FILES_VBOXGUEST_NOBIN=" \ > ${PATH_ROOT}/src/VBox/Runtime/generic/errvars-generic.cpp=>generic/errvars-generic.c \ > ${PATH_ROOT}/src/VBox/Runtime/generic/timer-generic.cpp=>generic/timer-generic.c \ > ${PATH_ROOT}/src/VBox/Runtime/generic/mppresent-generic.cpp=>generic/mppresent-generic.c \ >@@ -16,7 +24,7 @@ > ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-r0drv.cpp=>r0drv/alloc-r0drv.c \ > ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-r0drv.h=>r0drv/alloc-r0drv.h \ > ${PATH_ROOT}/src/VBox/Runtime/r0drv/initterm-r0drv.cpp=>r0drv/initterm-r0drv.c \ >-@@ -186,6 +188,7 @@ FILES_VBOXGUEST_NOBIN=" \ >+@@ -207,6 +210,7 @@ FILES_VBOXGUEST_NOBIN=" \ > ${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 \ >Index: emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Support-freebsd-Makefile >=================================================================== >--- emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Support-freebsd-Makefile (revision 491834) >+++ emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Support-freebsd-Makefile (working copy) >@@ -1,6 +1,6 @@ >---- src/VBox/HostDrivers/Support/freebsd/Makefile.orig 2016-07-18 11:56:20 UTC >+--- src/VBox/HostDrivers/Support/freebsd/Makefile.orig 2019-01-25 18:19:55 UTC > +++ src/VBox/HostDrivers/Support/freebsd/Makefile >-@@ -81,6 +81,7 @@ SRCS += \ >+@@ -82,6 +82,7 @@ SRCS += \ > assert.c \ > handletable.c \ > handletablectx.c \ >@@ -8,12 +8,13 @@ > once.c \ > term.c \ > thread.c >-@@ -92,13 +93,14 @@ SRCS += \ >+@@ -94,14 +95,15 @@ SRCS += \ > RTStrCopy.c \ > RTStrCopyEx.c \ > RTStrCopyP.c \ > + memchr.c \ > strformat.c \ >+ strformatnum.c \ > strformatrt.c \ > strformattype.c \ > + stringalloc.c \ >Index: emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Support-freebsd-files_vboxdrv >=================================================================== >--- emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Support-freebsd-files_vboxdrv (revision 491834) >+++ emulators/virtualbox-ose/files/patch-src-VBox-HostDrivers-Support-freebsd-files_vboxdrv (working copy) >@@ -1,6 +1,6 @@ >---- src/VBox/HostDrivers/Support/freebsd/files_vboxdrv.orig 2016-07-18 11:56:20 UTC >+--- src/VBox/HostDrivers/Support/freebsd/files_vboxdrv.orig 2019-01-25 18:19:55 UTC > +++ src/VBox/HostDrivers/Support/freebsd/files_vboxdrv >-@@ -116,6 +116,7 @@ FILES_VBOXDRV_NOBIN=" \ >+@@ -119,6 +119,7 @@ FILES_VBOXDRV_NOBIN=" \ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.cpp=>common/misc/handletable.c \ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.h=>common/misc/handletable.h \ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablectx.cpp=>common/misc/handletablectx.c \ >@@ -8,12 +8,13 @@ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/once.cpp=>common/misc/once.c \ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/term.cpp=>common/misc/term.c \ > ${PATH_ROOT}/src/VBox/Runtime/common/misc/thread.cpp=>common/misc/thread.c \ >-@@ -124,13 +125,14 @@ FILES_VBOXDRV_NOBIN=" \ >+@@ -128,14 +129,15 @@ FILES_VBOXDRV_NOBIN=" \ > ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrCopyEx.cpp=>common/string/RTStrCopyEx.c \ > ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrNCmp.cpp=>common/string/RTStrNCmp.c \ > ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrNLen.cpp=>common/string/RTStrNLen.c \ > + ${PATH_ROOT}/src/VBox/Runtime/common/string/memchr.cpp=>common/string/memchr.c \ > ${PATH_ROOT}/src/VBox/Runtime/common/string/strformat.cpp=>common/string/strformat.c \ >+ ${PATH_ROOT}/src/VBox/Runtime/common/string/strformatnum.cpp=>common/string/strformatnum.c \ > ${PATH_ROOT}/src/VBox/Runtime/common/string/strformatrt.cpp=>common/string/strformatrt.c \ > ${PATH_ROOT}/src/VBox/Runtime/common/string/strformattype.cpp=>common/string/strformattype.c \ > + ${PATH_ROOT}/src/VBox/Runtime/common/string/stringalloc.cpp=>common/string/stringalloc.c \ >Index: emulators/virtualbox-ose/files/patch-src-VBox-Installer-freebsd-VBox.sh >=================================================================== >--- emulators/virtualbox-ose/files/patch-src-VBox-Installer-freebsd-VBox.sh (revision 491834) >+++ emulators/virtualbox-ose/files/patch-src-VBox-Installer-freebsd-VBox.sh (working copy) >@@ -1,6 +1,6 @@ > --- src/VBox/Installer/freebsd/VBox.sh.orig 2016-08-27 05:10:34 UTC > +++ src/VBox/Installer/freebsd/VBox.sh >-@@ -0,0 +1,64 @@ >+@@ -0,0 +1,67 @@ > +#!/bin/sh > +# > +# Oracle VM VirtualBox startup script, FreeBSD hosts. >@@ -38,6 +38,9 @@ > + VirtualBox|virtualbox) > + exec "$INSTALL_DIR/VirtualBox" "$@" > + ;; >++ VirtualBoxVM|virtualboxvm) >++ exec "$INSTALL_DIR/VirtualBoxVM" "$@" >++ ;; > + VBoxManage|vboxmanage) > + exec "$INSTALL_DIR/VBoxManage" "$@" > + ;; >Index: emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c >=================================================================== >--- emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c (revision 491834) >+++ emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c (working copy) >@@ -1,6 +1,6 @@ >---- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c.orig 2017-04-28 16:59:22.000000000 +0200 >-+++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c 2017-07-12 19:24:26.109029000 +0200 >-@@ -1,10 +1,5 @@ >+--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c.orig 2019-01-25 18:12:34 UTC >++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c >+@@ -1,8 +1,3 @@ > -/* $Id: vboxvfs_vfsops.c $ */ > -/** @file > - * Description. >@@ -7,11 +7,9 @@ > - */ > - > /* >- * Copyright (C) 2008-2017 Oracle Corporation >+ * Copyright (C) 2008-2019 Oracle Corporation > * >- * This file is part of VirtualBox Open Source Edition (OSE), as >- * available from http://www.virtualbox.org. This file is free software; >-@@ -14,245 +9,479 @@ >+@@ -14,245 +9,478 @@ > * VirtualBox OSE distribution. VirtualBox OSE is distributed in the > * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. > */ >@@ -38,20 +36,26 @@ > +#include <sys/sbuf.h> > > -#include <iprt/mem.h> >-- >--#define VFSMP2SFGLOBINFO(mp) ((struct sf_glob_info *)mp->mnt_data) >-- >--static int vboxvfs_version = VBOXVFS_VERSION; > +#include <geom/geom.h> > +#include <geom/geom_vfs.h> > >++#include "vboxvfs.h" >++ >+ #define VFSMP2SFGLOBINFO(mp) ((struct sf_glob_info *)mp->mnt_data) >+ >+-static int vboxvfs_version = VBOXVFS_VERSION; >++#ifdef MALLOC_DECLARE >++MALLOC_DEFINE(M_VBOXVFS, "vboxvfs", "VBOX VFS"); >++#endif >+ > -SYSCTL_NODE(_vfs, OID_AUTO, vboxvfs, CTLFLAG_RW, 0, "VirtualBox shared filesystem"); > -SYSCTL_INT(_vfs_vboxvfs, OID_AUTO, version, CTLFLAG_RD, &vboxvfs_version, 0, ""); >-+#include "vboxvfs.h" >++static sfp_connection_t *sfprov = NULL; > > -/* global connection to the host service. */ > -static VBGLSFCLIENT g_vboxSFClient; >-+#define VFSMP2SFGLOBINFO(mp) ((struct sf_glob_info *)mp->mnt_data) >++static int vboxfs_version = VBOXVFS_VERSION; >++u_int vboxvfs_debug = 1; > > -static vfs_init_t vboxvfs_init; > -static vfs_uninit_t vboxvfs_uninit; >@@ -61,7 +65,10 @@ > -static vfs_quotactl_t vboxvfs_quotactl; > -static vfs_statfs_t vboxvfs_statfs; > -static vfs_unmount_t vboxvfs_unmount; >-- >++SYSCTL_NODE(_vfs, OID_AUTO, vboxfs, CTLFLAG_RW, 0, "VirtualBox shared filesystem"); >++SYSCTL_INT(_vfs_vboxfs, OID_AUTO, version, CTLFLAG_RD, &vboxfs_version, 0, ""); >++SYSCTL_UINT(_vfs_vboxfs, OID_AUTO, debug, CTLFLAG_RW, &vboxvfs_debug, 0, "Debug level"); >+ > -static struct vfsops vboxvfs_vfsops = { > - .vfs_init = vboxvfs_init, > - .vfs_cmount = vboxvfs_cmount, >@@ -72,19 +79,6 @@ > - .vfs_sync = vfs_stdsync, > - .vfs_uninit = vboxvfs_uninit, > - .vfs_unmount = vboxvfs_unmount, >-+#ifdef MALLOC_DECLARE >-+MALLOC_DEFINE(M_VBOXVFS, "vboxvfs", "VBOX VFS"); >-+#endif >-+ >-+static sfp_connection_t *sfprov = NULL; >-+ >-+static int vboxfs_version = VBOXVFS_VERSION; >-+u_int vboxvfs_debug = 1; >-+ >-+SYSCTL_NODE(_vfs, OID_AUTO, vboxfs, CTLFLAG_RW, 0, "VirtualBox shared filesystem"); >-+SYSCTL_INT(_vfs_vboxfs, OID_AUTO, version, CTLFLAG_RD, &vboxfs_version, 0, ""); >-+SYSCTL_UINT(_vfs_vboxfs, OID_AUTO, debug, CTLFLAG_RW, &vboxvfs_debug, 0, "Debug level"); >-+ > +static vfs_init_t vboxfs_init; > +static vfs_uninit_t vboxfs_uninit; > +static vfs_cmount_t vboxfs_cmount; >@@ -141,17 +135,9 @@ > { > - struct vboxvfs_mount_info args; > - int rc = 0; >-- >-- printf("%s: Enter\n", __FUNCTION__); >-- >-- rc = copyin(data, &args, sizeof(struct vboxvfs_mount_info)); >-- if (rc) >-- return rc; > + struct vboxfs_node *nnode; > >-- ma = mount_argf(ma, "uid", "%d", args.uid); >-- ma = mount_argf(ma, "gid", "%d", args.gid); >-- ma = mount_arg(ma, "from", args.name, -1); >+- printf("%s: Enter\n", __FUNCTION__); > + if ((mp->mnt_kern_flag & MNTK_UNMOUNT) != 0) { > + /* > + * When a new tmpfs node is created for fully >@@ -169,10 +155,16 @@ > + */ > + return (EBUSY); > + } >-+ >+ >+- rc = copyin(data, &args, sizeof(struct vboxvfs_mount_info)); >+- if (rc) >+- return rc; > + nnode = (struct vboxfs_node *)uma_zalloc_arg( > + vsfmp->sf_node_pool, vsfmp, M_WAITOK); >-+ >+ >+- ma = mount_argf(ma, "uid", "%d", args.uid); >+- ma = mount_argf(ma, "gid", "%d", args.gid); >+- ma = mount_arg(ma, "from", args.name, -1); > + /* Generic initialization. */ > + nnode->sf_type = type; > + nnode->sf_ino = vsfmp->sf_ino++; >@@ -179,7 +171,8 @@ > + nnode->sf_path = strdup(fullpath, M_VBOXVFS); > + nnode->sf_parent = parent; > + nnode->vboxfsmp = vsfmp; >-+ >+ >+- rc = kernel_mount(ma, flags); > + /* Type-specific initialization. */ > + switch (nnode->sf_type) { > + case VBLK: >@@ -190,15 +183,12 @@ > + case VLNK: > + case VREG: > + break; >-+ >+ >+- printf("%s: Leave rc=%d\n", __FUNCTION__, rc); > + default: > + panic("vboxfs_alloc_node: type %p %d", nnode, (int)nnode->sf_type); > + } > >-- rc = kernel_mount(ma, flags); >-- >-- printf("%s: Leave rc=%d\n", __FUNCTION__, rc); >-- > - return rc; > + *node = nnode; > + return 0; >@@ -219,33 +209,8 @@ > - struct sf_glob_info *pShFlGlobalInfo; > - SHFLSTRING *pShFlShareName = NULL; > - int cbShFlShareName; >-- >+ > - printf("%s: Enter\n", __FUNCTION__); >-- >-- if (mp->mnt_flag & (MNT_UPDATE | MNT_ROOTFS)) >-- return EOPNOTSUPP; >-- >-- if (vfs_filteropt(mp->mnt_optnew, vboxvfs_opts)) >-- { >-- vfs_mount_error(mp, "%s", "Invalid option"); >-- return EINVAL; >-- } >-- >-- rc = vfs_getopt(mp->mnt_optnew, "from", (void **)&pszShare, &cbShare); >-- if (rc || pszShare[cbShare-1] != '\0' || cbShare > 0xfffe) >-- return EINVAL; >-- >-- rc = vfs_getopt(mp->mnt_optnew, "gid", (void **)&gid, &cbOption); >-- if ((rc != ENOENT) && (rc || cbOption != sizeof(gid))) >-- return EINVAL; >-- >-- rc = vfs_getopt(mp->mnt_optnew, "uid", (void **)&uid, &cbOption); >-- if ((rc != ENOENT) && (rc || cbOption != sizeof(uid))) >-- return EINVAL; >- >-- pShFlGlobalInfo = RTMemAllocZ(sizeof(struct sf_glob_info)); >-- if (!pShFlGlobalInfo) >-- return ENOMEM; > +#ifdef INVARIANTS > + TMPFS_NODE_LOCK(node); > + MPASS(node->sf_vnode == NULL); >@@ -255,16 +220,16 @@ > + if (node->sf_path) > + free(node->sf_path, M_VBOXVFS); > >-- cbShFlShareName = offsetof (SHFLSTRING, String.utf8) + cbShare + 1; >-- pShFlShareName = RTMemAllocZ(cbShFlShareName); >-- if (!pShFlShareName) >-- return VERR_NO_MEMORY; >+- if (mp->mnt_flag & (MNT_UPDATE | MNT_ROOTFS)) >+- return EOPNOTSUPP; > + uma_zfree(vboxfs->sf_node_pool, node); > +} > >-- pShFlShareName->u16Length = cbShare; >-- pShFlShareName->u16Size = cbShare + 1; >-- memcpy (pShFlShareName->String.utf8, pszShare, cbShare + 1); >+- if (vfs_filteropt(mp->mnt_optnew, vboxvfs_opts)) >+- { >+- vfs_mount_error(mp, "%s", "Invalid option"); >+- return EINVAL; >+- } > +static int > +vboxfs_cmount(struct mntarg *ma, void *data, uint64_t flags) > +{ >@@ -271,14 +236,18 @@ > + struct vboxfs_mount_info args; > + int error = 0; > >-- rc = VbglR0SfMapFolder (&g_vboxSFClient, pShFlShareName, &pShFlGlobalInfo->map); >-- RTMemFree(pShFlShareName); >+- rc = vfs_getopt(mp->mnt_optnew, "from", (void **)&pszShare, &cbShare); >+- if (rc || pszShare[cbShare-1] != '\0' || cbShare > 0xfffe) >+- return EINVAL; > + if (data == NULL) > + return (EINVAL); > + error = copyin(data, &args, sizeof(struct vboxfs_mount_info)); > + if (error) > + return (error); >-+ >+ >+- rc = vfs_getopt(mp->mnt_optnew, "gid", (void **)&gid, &cbOption); >+- if ((rc != ENOENT) && (rc || cbOption != sizeof(gid))) >+- return EINVAL; > + ma = mount_argf(ma, "uid", "%d", args.uid); > + ma = mount_argf(ma, "gid", "%d", args.gid); > + ma = mount_argf(ma, "file_mode", "%d", args.fmode); >@@ -285,17 +254,15 @@ > + ma = mount_argf(ma, "dir_mode", "%d", args.dmode); > + ma = mount_arg(ma, "from", args.name, -1); > >-- if (RT_FAILURE (rc)) >-- { >-- RTMemFree(pShFlGlobalInfo); >-- printf("VbglR0SfMapFolder failed rc=%d\n", rc); >-- return EPROTO; >-- } >+- rc = vfs_getopt(mp->mnt_optnew, "uid", (void **)&uid, &cbOption); >+- if ((rc != ENOENT) && (rc || cbOption != sizeof(uid))) >+- return EINVAL; > + return (kernel_mount(ma, flags)); > +} > >-- pShFlGlobalInfo->uid = uid; >-- pShFlGlobalInfo->gid = gid; >+- pShFlGlobalInfo = RTMemAllocZ(sizeof(struct sf_glob_info)); >+- if (!pShFlGlobalInfo) >+- return ENOMEM; > +static const char *vboxfs_opts[] = { > + "fstype", > + "fspath", >@@ -308,7 +275,10 @@ > + NULL > +}; > >-- mp->mnt_data = pShFlGlobalInfo; >+- cbShFlShareName = offsetof (SHFLSTRING, String.utf8) + cbShare + 1; >+- pShFlShareName = RTMemAllocZ(cbShFlShareName); >+- if (!pShFlShareName) >+- return VERR_NO_MEMORY; > +#define VBOX_INTOPT(optname, val, base) do { \ > + char *ep, *optarg = NULL; \ > + if (vfs_getopt(opts, optname, (void **)&optarg, NULL) == 0) { \ >@@ -328,66 +298,69 @@ > + } \ > +} while (0) > >-- /** @todo root vnode. */ >+- pShFlShareName->u16Length = cbShare; >+- pShFlShareName->u16Size = cbShare + 1; >+- memcpy (pShFlShareName->String.utf8, pszShare, cbShare + 1); > +static int > +vboxfs_node_ctor(void *mem, int size, void *arg, int flags) > +{ > + struct vboxfs_node *node = (struct vboxfs_node *)mem; > >-- vfs_getnewfsid(mp); >-- vfs_mountedfrom(mp, pszShare); >+- rc = VbglR0SfMapFolder (&g_vboxSFClient, pShFlShareName, &pShFlGlobalInfo->map); >+- RTMemFree(pShFlShareName); > + node->sf_vnode = NULL; > + node->sf_vpstate = 0; > >-- printf("%s: Leave rc=0\n", __FUNCTION__); >+- if (RT_FAILURE (rc)) >+- { >+- RTMemFree(pShFlGlobalInfo); >+- printf("VbglR0SfMapFolder failed rc=%d\n", rc); >+- return EPROTO; >+- } > + return (0); > +} > >-- return 0; >+- pShFlGlobalInfo->uid = uid; >+- pShFlGlobalInfo->gid = gid; > +static void > +vboxfs_node_dtor(void *mem, int size, void *arg) > +{ > + struct vboxfs_node *node = (struct vboxfs_node *)mem; > + node->sf_type = VNON; >- } >++} > >--static int vboxvfs_unmount(struct mount *mp, int mntflags, struct thread *td) >+- mp->mnt_data = pShFlGlobalInfo; > +static int > +vboxfs_node_init(void *mem, int size, int flags) >- { >-- struct sf_glob_info *pShFlGlobalInfo = VFSMP2SFGLOBINFO(mp); >-- int rc; >-- int flags = 0; >++{ > + struct vboxfs_node *node = (struct vboxfs_node *)mem; > + node->sf_ino = 0; > >-- rc = VbglR0SfUnmapFolder(&g_vboxSFClient, &pShFlGlobalInfo->map); >-- if (RT_FAILURE(rc)) >-- printf("Failed to unmap shared folder\n"); >+- /** @todo root vnode. */ > + mtx_init(&node->sf_interlock, "tmpfs node interlock", NULL, MTX_DEF); > >-- if (mntflags & MNT_FORCE) >-- flags |= FORCECLOSE; >+- vfs_getnewfsid(mp); >+- vfs_mountedfrom(mp, pszShare); > + return (0); > +} > >-- /* There is 1 extra root vnode reference (vnode_root). */ >-- rc = vflush(mp, 1, flags, td); >-- if (rc) >-- return rc; >+- printf("%s: Leave rc=0\n", __FUNCTION__); > +static void > +vboxfs_node_fini(void *mem, int size) > +{ > + struct vboxfs_node *node = (struct vboxfs_node *)mem; > >+- return 0; > + mtx_destroy(&node->sf_interlock); >-+} >+ } > >-- RTMemFree(pShFlGlobalInfo); >-- mp->mnt_data = NULL; >+-static int vboxvfs_unmount(struct mount *mp, int mntflags, struct thread *td) > +static int > +vboxfs_mount(struct mount *mp) >-+{ >+ { >+- struct sf_glob_info *pShFlGlobalInfo = VFSMP2SFGLOBINFO(mp); >+- int rc; >+- int flags = 0; > + struct vboxfs_mnt *vboxfsmp = NULL; > + struct vfsoptlist *opts = mp->mnt_optnew; > + sfp_mount_t *handle = NULL; >@@ -399,27 +372,38 @@ > + uid_t uid = 0; > + gid_t gid = 0; > + struct vboxfs_node *root; >-+ >+ >+- rc = VbglR0SfUnmapFolder(&g_vboxSFClient, &pShFlGlobalInfo->map); >+- if (RT_FAILURE(rc)) >+- printf("Failed to unmap shared folder\n"); > + if (mp->mnt_flag & (MNT_UPDATE | MNT_ROOTFS)) > + return (EOPNOTSUPP); >-+ >+ >+- if (mntflags & MNT_FORCE) >+- flags |= FORCECLOSE; > + if (vfs_filteropt(opts, vboxfs_opts)) { > + vfs_mount_error(mp, "%s", "Invalid option"); > + return (EINVAL); > + } >-+ >+ >+- /* There is 1 extra root vnode reference (vnode_root). */ >+- rc = vflush(mp, 1, flags, td); >+- if (rc) >+- return rc; > + VBOX_INTOPT("uid", uid, 10); > + VBOX_INTOPT("gid", gid, 10); > + VBOX_INTOPT("file_mode", file_mode, 8); > + VBOX_INTOPT("dir_mode", dir_mode, 8); > + VBOX_INTOPT("ro", readonly, 10); >-+ >+ > + error = vfs_getopt(opts, "from", (void **)&share_name, &share_len); > + if (error != 0 || share_len == 0) { > + vfs_mount_error(mp, "Invalid from"); > + return (EINVAL); > + } >-+ >+ >+- RTMemFree(pShFlGlobalInfo); >+- mp->mnt_data = NULL; > + vboxfsmp = malloc(sizeof(struct vboxfs_mnt), M_VBOXVFS, M_WAITOK | M_ZERO); > + vboxfsmp->sf_uid = uid; > + vboxfsmp->sf_gid = gid; >@@ -427,7 +411,8 @@ > + vboxfsmp->sf_dmode = dir_mode & (S_IRWXU | S_IRWXG | S_IRWXO); > + vboxfsmp->sf_ino = 3; > + vboxfsmp->sf_stat_ttl = 200; >-+ >+ >+- return 0; > + /* Invoke Hypervisor mount interface before proceeding */ > + error = sfprov_mount(share_name, &handle); > + if (error) >@@ -466,7 +451,6 @@ > + > + MNT_ILOCK(mp); > + mp->mnt_data = vboxfsmp; >-+ bzero(&mp->mnt_stat.f_fsid, sizeof(&mp->mnt_stat.f_fsid)); > + /* f_fsid is int32_t but serial is uint32_t, convert */ > + memcpy(&mp->mnt_stat.f_fsid, &fsinfo.serial, sizeof(mp->mnt_stat.f_fsid)); > + mp->mnt_flag |= MNT_LOCAL; >@@ -480,8 +464,7 @@ > +#endif > + MNT_IUNLOCK(mp); > + vfs_mountedfrom(mp, share_name); >- >-- return 0; >++ > + return (0); > } > >@@ -502,55 +485,56 @@ > + struct thread *td; > + int error; > + int flags; >-+ >+ >+- printf("%s: Enter\n", __FUNCTION__); > + vboxfsmp = VFSTOVBOXFS(mp); > + td = curthread; > + flags = 0; > + if (mntflags & MNT_FORCE) > + flags |= FORCECLOSE; >-+ >+ >+- vp = pShFlGlobalInfo->vnode_root; >+- VREF(vp); > + error = vflush(mp, 0, flags, td); > + if (error) > + return (error); >-+ >+ >+- vn_lock(vp, flags | LK_RETRY, td); >+- *vpp = vp; > + /* Invoke Hypervisor unmount interface before proceeding */ > + error = sfprov_unmount(vboxfsmp->sf_handle); > + if (error != 0) { > + /* TBD anything here? */ > + } >-+ >+ >+- printf("%s: Leave\n", __FUNCTION__); > + uma_zdestroy(vboxfsmp->sf_node_pool); >-+ >+ >+- return rc; > + free(vboxfsmp, M_VBOXVFS); > + MNT_ILOCK(mp); > + mp->mnt_data = NULL; > + mp->mnt_flag &= ~MNT_LOCAL; > + MNT_IUNLOCK(mp); >- >-- printf("%s: Enter\n", __FUNCTION__); >-- >-- vp = pShFlGlobalInfo->vnode_root; >-- VREF(vp); >++ > + return (0); >-+} >+ } > >-- vn_lock(vp, flags | LK_RETRY, td); >-- *vpp = vp; >+-static int vboxvfs_quotactl(struct mount *mp, int cmd, uid_t uid, void *arg, struct thread *td) > +static int > +vboxfs_root(struct mount *mp, int flags, struct vnode **vpp) >-+{ >+ { >+- return EOPNOTSUPP; > + int error; > + error = vboxfs_alloc_vp(mp, VFSTOVBOXFS(mp)->sf_root, flags, vpp); >- >-- printf("%s: Leave\n", __FUNCTION__); >++ > + if (!error) > + (*vpp)->v_vflag |= VV_ROOT; >- >-- return rc; >++ > + return error; > } > >--static int vboxvfs_quotactl(struct mount *mp, int cmd, uid_t uid, void *arg, struct thread *td) >+-int vboxvfs_init(struct vfsconf *vfsp) > +/* > + * Do operation associated with quotas, not supported > + */ >@@ -557,26 +541,22 @@ > +static int > +vboxfs_quotactl(struct mount *mp, int cmd, uid_t uid, void *arg) > { >-- return EOPNOTSUPP; >+- int rc; > + return (EOPNOTSUPP); >- } >++} > >--int vboxvfs_init(struct vfsconf *vfsp) >+- /* Initialize the R0 guest library. */ >+- rc = VbglR0SfInit(); >+- if (RT_FAILURE(rc)) >+- return ENXIO; > +/* > + * Initialize the filesystem globals. > + */ > +static int > +vboxfs_init(struct vfsconf *vfsp) >- { >-- int rc; >++{ > + int error; > >-- /* Initialize the R0 guest library. */ >-- rc = VbglR0SfInit(); >-- if (RT_FAILURE(rc)) >-- return ENXIO; >-+ DROP_GIANT(); >- > - /* Connect to the host service. */ > - rc = VbglR0SfConnect(&g_vboxSFClient); > - if (RT_FAILURE(rc)) >@@ -585,28 +565,28 @@ > - VbglR0SfTerm(); > - return ENXIO; > - } >++ DROP_GIANT(); >+ >+- rc = VbglR0SfSetUtf8(&g_vboxSFClient); >+- if (RT_FAILURE (rc)) >+- { >+- printf("VbglR0SfSetUtf8 failed, rc=%d\n", rc); >+- VbglR0SfDisconnect(&g_vboxSFClient); >+- VbglR0SfTerm(); >+- return EPROTO; >+- } > + sfprov = sfprov_connect(SFPROV_VERSION); > + if (sfprov == NULL) { > + printf("%s: couldn't connect to sf provider", __func__); > + return (ENODEV); > + } >-+ >+ >+- printf("Successfully loaded shared folder module\n"); > + error = sfprov_set_show_symlinks(); > + if (error != 0) > + printf("%s: host unable to show symlinks, error=%d\n", > + __func__, error); > >-- rc = VbglR0SfSetUtf8(&g_vboxSFClient); >-- if (RT_FAILURE (rc)) >-- { >-- printf("VbglR0SfSetUtf8 failed, rc=%d\n", rc); >-- VbglR0SfDisconnect(&g_vboxSFClient); >-- VbglR0SfTerm(); >-- return EPROTO; >-- } >-- >-- printf("Successfully loaded shared folder module\n"); >-- > - return 0; > + PICKUP_GIANT(); > + return (0); >Index: emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c >=================================================================== >--- emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c (revision 491834) >+++ emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c (working copy) >@@ -1,5 +1,5 @@ >---- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c.orig 2017-04-28 16:59:22.000000000 +0200 >-+++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c 2017-07-14 14:22:09.045026515 +0200 >+--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c.orig 2019-01-25 18:12:34 UTC >++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c > @@ -1,10 +1,6 @@ > -/* $Id: vboxvfs_vnops.c $ */ > -/** @file >@@ -7,12 +7,12 @@ > - */ > - > /* >- * Copyright (C) 2008-2017 Oracle Corporation >+ * Copyright (C) 2008-2019 Oracle Corporation > + * Copyright (C) 2017 Mahdi Mokhtari > * > * This file is part of VirtualBox Open Source Edition (OSE), as > * available from http://www.virtualbox.org. This file is free software; >-@@ -14,228 +9,1334 @@ >+@@ -14,228 +10,1334 @@ > * VirtualBox OSE distribution. VirtualBox OSE is distributed in the > * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. > */ >@@ -45,9 +45,9 @@ > -#include <vm/vm.h> > -#include <vm/vm_extern.h> > +#include <vm/uma.h> >+ >++#include "vboxvfs.h" > + >-+#include "vboxvfs.h" >- > /* > * Prototypes for VBOXVFS vnode operations > */ >@@ -79,10 +79,37 @@ > -static vop_inactive_t vboxvfs_inactive; > -static vop_putpages_t vboxvfs_putpages; > -static vop_reclaim_t vboxvfs_reclaim; >-- >++static vop_create_t vboxfs_create; >++static vop_open_t vboxfs_open; >++static vop_close_t vboxfs_close; >++static vop_access_t vboxfs_access; >++static vop_getattr_t vboxfs_getattr; >++static vop_setattr_t vboxfs_setattr; >++static vop_read_t vboxfs_read; >++static vop_readlink_t vboxfs_readlink; >++static vop_write_t vboxfs_write; >++static vop_fsync_t vboxfs_fsync; >++static vop_remove_t vboxfs_remove; >++static vop_link_t vboxfs_link; >++static vop_cachedlookup_t vboxfs_lookup; >++static vop_rename_t vboxfs_rename; >++static vop_mkdir_t vboxfs_mkdir; >++static vop_rmdir_t vboxfs_rmdir; >++static vop_symlink_t vboxfs_symlink; >++static vop_readdir_t vboxfs_readdir; >++static vop_print_t vboxfs_print; >++static vop_pathconf_t vboxfs_pathconf; >++static vop_advlock_t vboxfs_advlock; >++static vop_ioctl_t vboxfs_ioctl; >++static vop_inactive_t vboxfs_inactive; >++static vop_reclaim_t vboxfs_reclaim; >++static vop_vptofh_t vboxfs_vptofh; >+ > -struct vop_vector vboxvfs_vnodeops = { > - .vop_default = &default_vnodeops, >-- >++struct vop_vector vboxfs_vnodeops = { >++ .vop_default = &default_vnodeops, >+ > - .vop_access = vboxvfs_access, > - .vop_advlock = vboxvfs_advlock, > - .vop_close = vboxvfs_close, >@@ -111,35 +138,6 @@ > - .vop_strategy = vboxvfs_strategy, > - .vop_symlink = vboxvfs_symlink, > - .vop_write = vboxvfs_write, >-+static vop_create_t vboxfs_create; >-+static vop_open_t vboxfs_open; >-+static vop_close_t vboxfs_close; >-+static vop_access_t vboxfs_access; >-+static vop_getattr_t vboxfs_getattr; >-+static vop_setattr_t vboxfs_setattr; >-+static vop_read_t vboxfs_read; >-+static vop_readlink_t vboxfs_readlink; >-+static vop_write_t vboxfs_write; >-+static vop_fsync_t vboxfs_fsync; >-+static vop_remove_t vboxfs_remove; >-+static vop_link_t vboxfs_link; >-+static vop_cachedlookup_t vboxfs_lookup; >-+static vop_rename_t vboxfs_rename; >-+static vop_mkdir_t vboxfs_mkdir; >-+static vop_rmdir_t vboxfs_rmdir; >-+static vop_symlink_t vboxfs_symlink; >-+static vop_readdir_t vboxfs_readdir; >-+static vop_print_t vboxfs_print; >-+static vop_pathconf_t vboxfs_pathconf; >-+static vop_advlock_t vboxfs_advlock; >-+static vop_ioctl_t vboxfs_ioctl; >-+static vop_inactive_t vboxfs_inactive; >-+static vop_reclaim_t vboxfs_reclaim; >-+static vop_vptofh_t vboxfs_vptofh; >-+ >-+struct vop_vector vboxfs_vnodeops = { >-+ .vop_default = &default_vnodeops, >-+ > + .vop_access = vboxfs_access, > + .vop_advlock = VOP_EOPNOTSUPP, > + .vop_close = vboxfs_close, >@@ -176,22 +174,14 @@ > +vsfnode_cur_time_usec(void) > { > - return 0; >--} > + struct timeval now; >- >--static int vboxvfs_open(struct vop_open_args *ap) >--{ >-- return 0; >--} >++ > + getmicrotime(&now); >- >--static int vboxvfs_close(struct vop_close_args *ap) >--{ >-- return 0; >++ > + return (now.tv_sec*1000 + now.tv_usec); > } > >--static int vboxvfs_getattr(struct vop_getattr_args *ap) >+-static int vboxvfs_open(struct vop_open_args *ap) > +static int > +vsfnode_stat_cached(struct vboxfs_node *np) > { >@@ -200,18 +190,13 @@ > + np->vboxfsmp->sf_stat_ttl * 1000UL; > } > >--static int vboxvfs_setattr(struct vop_setattr_args *ap) >+-static int vboxvfs_close(struct vop_close_args *ap) > +static int > +vsfnode_update_stat_cache(struct vboxfs_node *np) > { > - return 0; >--} > + int error; >- >--static int vboxvfs_read(struct vop_read_args *ap) >--{ >-- return 0; >--} >++ > + error = sfprov_get_attr(np->vboxfsmp->sf_handle, np->sf_path, > + &np->sf_stat); > +#if 0 >@@ -220,14 +205,11 @@ > +#endif > + if (error == 0) > + np->sf_stat_time = vsfnode_cur_time_usec(); >- >--static int vboxvfs_write(struct vop_write_args *ap) >--{ >-- return 0; >++ > + return (error); > } > >--static int vboxvfs_create(struct vop_create_args *ap) >+-static int vboxvfs_getattr(struct vop_getattr_args *ap) > +/* > + * Need to clear v_object for insmntque failure. > + */ >@@ -235,11 +217,7 @@ > +vboxfs_insmntque_dtr(struct vnode *vp, void *dtr_arg) > { > - return 0; >--} >- >--static int vboxvfs_remove(struct vop_remove_args *ap) >--{ >-- return 0; >++ > + // XXX: vboxfs_destroy_vobject(vp, vp->v_object); > + vp->v_object = NULL; > + vp->v_data = NULL; >@@ -248,10 +226,7 @@ > + vput(vp); > } > >--static int vboxvfs_rename(struct vop_rename_args *ap) >--{ >-- return 0; >--} >+-static int vboxvfs_setattr(struct vop_setattr_args *ap) > +/* > + * Allocates a new vnode for the node node or returns a new reference to > + * an existing one if the node had already a vnode referencing it. The >@@ -262,7 +237,8 @@ > +int > +vboxfs_alloc_vp(struct mount *mp, struct vboxfs_node *node, int lkflag, > + struct vnode **vpp) >-+{ >+ { >+- return 0; > + struct vnode *vp; > + int error; > + >@@ -406,14 +382,11 @@ > + VBOXFS_NODE_UNLOCK(node); > + } > +#endif >- >--static int vboxvfs_link(struct vop_link_args *ap) >--{ >-- return EOPNOTSUPP; >++ > + return error; > } > >--static int vboxvfs_symlink(struct vop_symlink_args *ap) >+-static int vboxvfs_read(struct vop_read_args *ap) > +/* > + * Destroys the association between the vnode vp and the node it > + * references. >@@ -421,19 +394,11 @@ > +void > +vboxfs_free_vp(struct vnode *vp) > { >-- return EOPNOTSUPP; >--} >+- return 0; > + struct vboxfs_node *node; >- >--static int vboxvfs_mknod(struct vop_mknod_args *ap) >--{ >-- return EOPNOTSUPP; >--} >++ > + node = VP_TO_VBOXFS_NODE(vp); >- >--static int vboxvfs_mkdir(struct vop_mkdir_args *ap) >--{ >-- return 0; >++ > + VBOXFS_NODE_ASSERT_LOCKED(node); > + node->sf_vnode = NULL; > + if ((node->sf_vpstate & VBOXFS_VNODE_WRECLAIM) != 0) >@@ -442,7 +407,7 @@ > + vp->v_data = NULL; > } > >--static int vboxvfs_rmdir(struct vop_rmdir_args *ap) >+-static int vboxvfs_write(struct vop_write_args *ap) > +/* > + * Allocate new vboxfs_node and vnode for given file > + */ >@@ -452,54 +417,34 @@ > + int lkflag, struct vnode **vpp) > { > - return 0; >--} > + int error; > + struct vboxfs_node *unode; >- >--static int vboxvfs_readdir(struct vop_readdir_args *ap) >--{ >-- return 0; >--} >++ > + error = vboxfs_alloc_node(vboxfsmp->sf_vfsp, vboxfsmp, fullpath, type, > + vboxfsmp->sf_uid, vboxfsmp->sf_gid, mode, parent, &unode); >- >--static int vboxvfs_fsync(struct vop_fsync_args *ap) >--{ >-- return 0; >--} >++ > + if (error) > + goto out; >- >--static int vboxvfs_print (struct vop_print_args *ap) >--{ >-- return 0; >--} >++ > + error = vboxfs_alloc_vp(vboxfsmp->sf_vfsp, unode, lkflag, vpp); > + if (error) > + vboxfs_free_node(vboxfsmp, unode); >- >--static int vboxvfs_pathconf (struct vop_pathconf_args *ap) >--{ >-- return 0; >++ > +out: > + return (error); > } > >--static int vboxvfs_strategy (struct vop_strategy_args *ap) >+-static int vboxvfs_create(struct vop_create_args *ap) > +static int > +vboxfs_vn_get_ino_alloc(struct mount *mp, void *arg, int lkflags, > + struct vnode **rvp) > { > - return 0; >--} >- >--static int vboxvfs_ioctl(struct vop_ioctl_args *ap) >--{ >-- return ENOTTY; >++ > + return (vboxfs_alloc_vp(mp, arg, lkflags, rvp)); > } > >--static int vboxvfs_getextattr(struct vop_getextattr_args *ap) >+-static int vboxvfs_remove(struct vop_remove_args *ap) > +/* > + * Construct a new pathname given an sfnode plus an optional tail > + * component of length len >@@ -509,13 +454,8 @@ > +sfnode_construct_path(struct vboxfs_node *node, char *tail, int len) > { > - return 0; >--} > + char *p; >- >--static int vboxvfs_advlock(struct vop_advlock_args *ap) >--{ >-- return 0; >--} >++ > + if (len <= 2 && tail[0] == '.' && (len == 1 || tail[1] == '.')) > + panic("construct path for %s", tail); > + p = malloc(strlen(node->sf_path) + 1 + len + 1, M_VBOXVFS, M_WAITOK); >@@ -523,11 +463,13 @@ > + strcat(p, "/"); > + strcat(p, tail); > + return (p); >-+} >-+ >+ } >+ >+-static int vboxvfs_rename(struct vop_rename_args *ap) > +static int > +vboxfs_access(struct vop_access_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *vp = ap->a_vp; > + accmode_t accmode = ap->a_accmode; > + struct vboxfs_node *node; >@@ -555,15 +497,12 @@ > + else > + error = vsfnode_update_stat_cache(node); > + m = (error == 0) ? node->sf_stat.sf_mode : 0; >- >--static int vboxvfs_lookup(struct vop_lookup_args *ap) >--{ >-- return 0; >++ > + return (vaccess(vp->v_type, m, node->vboxfsmp->sf_uid, > + node->vboxfsmp->sf_gid, accmode, ap->a_cred, NULL)); > } > >--static int vboxvfs_inactive(struct vop_inactive_args *ap) >+-static int vboxvfs_link(struct vop_link_args *ap) > +/* > + * Clears the (cached) directory listing for the node. > + */ >@@ -570,17 +509,19 @@ > +static void > +vfsnode_clear_dir_list(struct vboxfs_node *np) > { >-- return 0; >+- return EOPNOTSUPP; > + while (np->sf_dir_list != NULL) { > + sffs_dirents_t *next = np->sf_dir_list->sf_next; > + free(np->sf_dir_list, M_VBOXVFS); > + np->sf_dir_list = next; > + } >-+} >-+ >+ } >+ >+-static int vboxvfs_symlink(struct vop_symlink_args *ap) > +static int > +vboxfs_open(struct vop_open_args *ap) >-+{ >+ { >+- return EOPNOTSUPP; > + struct vboxfs_node *np; > + sfp_file_t *fp; > + int error; >@@ -599,17 +540,21 @@ > + MPASS(VOP_ISLOCKED(vp)); > + > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_mknod(struct vop_mknod_args *ap) > +static void > +vfsnode_invalidate_stat_cache(struct vboxfs_node *np) >-+{ >+ { >+- return EOPNOTSUPP; > + np->sf_stat_time = 0; >-+} >-+ >+ } >+ >+-static int vboxvfs_mkdir(struct vop_mkdir_args *ap) > +static int > +vboxfs_close(struct vop_close_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *vp = ap->a_vp; > + struct vboxfs_node *np; > + >@@ -634,11 +579,13 @@ > + } > + > + return (0); >-+} >-+ >+ } >+ >+-static int vboxvfs_rmdir(struct vop_rmdir_args *ap) > +static int > +vboxfs_getattr(struct vop_getattr_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *vp = ap->a_vp; > + struct vattr *vap = ap->a_vap; > + struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp); >@@ -713,11 +660,13 @@ > + > +done: > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_readdir(struct vop_readdir_args *ap) > +static int > +vboxfs_setattr(struct vop_setattr_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *vp = ap->a_vp; > + struct vattr *vap = ap->a_vap; > + struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp); >@@ -775,13 +724,15 @@ > + } > + > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_fsync(struct vop_fsync_args *ap) > +#define blkoff(vboxfsmp, loc) ((loc) & (vboxfsmp)->bmask) > + > +static int > +vboxfs_read(struct vop_read_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *vp = ap->a_vp; > + struct uio *uio = ap->a_uio; > + struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp); >@@ -829,11 +780,13 @@ > + error = 0; > + > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_print (struct vop_print_args *ap) > +static int > +vboxfs_write(struct vop_write_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *vp = ap->a_vp; > + struct uio *uio = ap->a_uio; > + struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp); >@@ -888,11 +841,13 @@ > + error = 0; > + > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_pathconf (struct vop_pathconf_args *ap) > +static int > +vboxfs_create(struct vop_create_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *dvp = ap->a_dvp; > + struct vnode **vpp = ap->a_vpp; > + struct componentname *cnp = ap->a_cnp; >@@ -926,11 +881,13 @@ > + } > + > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_strategy (struct vop_strategy_args *ap) > +static int > +vboxfs_remove(struct vop_remove_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *dvp = ap->a_dvp; > + struct vnode *vp = ap->a_vp; > + struct vboxfs_node *np, *dir; >@@ -974,11 +931,13 @@ > + > +out: > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_ioctl(struct vop_ioctl_args *ap) > +static int > +vboxfs_rename(struct vop_rename_args *ap) >-+{ >+ { >+- return ENOTTY; > + struct vnode *fvp; > + struct vnode *fdvp; > + struct vnode *tvp; >@@ -1016,17 +975,21 @@ > + vrele(fdvp); > + vrele(fvp); > + return (ret); >-+} >-+ >+ } >+ >+-static int vboxvfs_getextattr(struct vop_getextattr_args *ap) > +static int > +vboxfs_link(struct vop_link_args *ap) >-+{ >+ { >+- return 0; > + return (EOPNOTSUPP); >-+} >-+ >+ } >+ >+-static int vboxvfs_advlock(struct vop_advlock_args *ap) > +static int > +vboxfs_symlink(struct vop_symlink_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *dvp = ap->a_dvp; > + struct vnode **vpp = ap->a_vpp; > + struct componentname *cnp = ap->a_cnp; >@@ -1055,11 +1018,13 @@ > + vfsnode_clear_dir_list(dir); > + > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_lookup(struct vop_lookup_args *ap) > +static int > +vboxfs_mkdir(struct vop_mkdir_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *dvp = ap->a_dvp; > + struct vnode **vpp = ap->a_vpp; > + struct componentname *cnp = ap->a_cnp; >@@ -1090,11 +1055,13 @@ > + vfsnode_clear_dir_list(dir); > + > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_inactive(struct vop_inactive_args *ap) > +static int > +vboxfs_rmdir(struct vop_rmdir_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *dvp = ap->a_dvp; > + struct vnode *vp = ap->a_vp; > + struct vboxfs_node *np, *dir; >@@ -1137,11 +1104,13 @@ > + > +out: > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_reclaim(struct vop_reclaim_args *ap) > +static int > +vboxfs_readdir(struct vop_readdir_args *ap) >-+{ >+ { >+- return 0; > + int *eofp = ap->a_eofflag; > + struct vnode *vp = ap->a_vp; > + struct uio *uio = ap->a_uio; >@@ -1260,11 +1229,13 @@ > + if (error != 0) > + uio->uio_offset = orig_off; > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_getpages(struct vop_getpages_args *ap) > +static int > +vboxfs_readlink(struct vop_readlink_args *v) >-+{ >+ { >+- return 0; > + struct vnode *vp = v->a_vp; > + struct uio *uio = v->a_uio; > + >@@ -1292,11 +1263,13 @@ > + if (tmpbuf) > + contigfree(tmpbuf, MAXPATHLEN, M_DEVBUF); > + return (error); >-+} >-+ >+ } >+ >+-static int vboxvfs_putpages(struct vop_putpages_args *ap) > +static int > +vboxfs_fsync(struct vop_fsync_args *ap) >-+{ >+ { >+- return 0; > + struct vnode *vp; > + struct vboxfs_node *np; > + int ret; >@@ -1307,8 +1280,8 @@ > + return (0); > + ret = sfprov_fsync(np->sf_file); > + return (ret); >-+} >-+ >+ } >+ > +static int > +vboxfs_print(struct vop_print_args *ap) > +{ >@@ -1349,22 +1322,17 @@ > + break; > + } > + return (error); >- } >- >--static int vboxvfs_reclaim(struct vop_reclaim_args *ap) >++} >++ > +/* > + * File specific ioctls. > + */ > +static int > +vboxfs_ioctl(struct vop_ioctl_args *ap) >- { >-- return 0; >++{ > + return (ENOTTY); >- } >- >--static int vboxvfs_getpages(struct vop_getpages_args *ap) >--{ >-- return 0; >++} >++ > +/* > + * Lookup an entry in a directory and create a new vnode if found. > + */ >@@ -1495,14 +1463,11 @@ > + MPASS(vp->v_data == NULL); > + > + return (0); >- } >- >--static int vboxvfs_putpages(struct vop_putpages_args *ap) >++} >++ > +static int > +vboxfs_vptofh(struct vop_vptofh_args *ap) >- { >-- return 0; >--} >- >++{ >++ > + return (EOPNOTSUPP); > +} >Index: emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp >=================================================================== >--- emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp (nonexistent) >+++ emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp (working copy) >@@ -0,0 +1,38 @@ >+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp.orig 2019-01-25 18:17:47 UTC >++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp >+@@ -1150,7 +1150,7 @@ int vmsvga3dTerminate(PVGASTATE pThis) >+ RTSemEventDestroy(pState->WndRequestSem); >+ #elif defined(RT_OS_DARWIN) >+ >+-#elif defined(RT_OS_LINUX) >++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) >+ /* signal to the thread that it is supposed to exit */ >+ pState->bTerminate = true; >+ /* wait for it to terminate */ >+@@ -2850,7 +2850,7 @@ int vmsvga3dGenerateMipmaps(PVGASTATE pThis, uint32_t >+ } >+ >+ >+-#ifdef RT_OS_LINUX >++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) >+ /** >+ * X11 event handling thread. >+ * >+@@ -2880,7 +2880,7 @@ DECLCALLBACK(int) vmsvga3dXEventThread(RTTHREAD hThrea >+ } >+ return VINF_SUCCESS; >+ } >+-#endif // RT_OS_LINUX >++#endif // RT_OS_FREEBSD || RT_OS_LINUX >+ >+ >+ /** >+@@ -3206,7 +3206,7 @@ static int vmsvga3dContextDestroyOgl(PVGASTATE pThis, >+ AssertRC(rc); >+ #elif defined(RT_OS_DARWIN) >+ vmsvga3dCocoaDestroyViewAndContext(pContext->cocoaView, pContext->cocoaContext); >+-#elif defined(RT_OS_LINUX) >++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) >+ glXMakeCurrent(pState->display, None, NULL); >+ glXDestroyContext(pState->display, pContext->glxContext); >+ XDestroyWindow(pState->display, pContext->window); > >Property changes on: emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: emulators/virtualbox-ose/files/patch-src_VBox_Devices_Makefile.kmk >=================================================================== >--- emulators/virtualbox-ose/files/patch-src_VBox_Devices_Makefile.kmk (nonexistent) >+++ emulators/virtualbox-ose/files/patch-src_VBox_Devices_Makefile.kmk (working copy) >@@ -0,0 +1,20 @@ >+--- src/VBox/Devices/Makefile.kmk.orig 2019-01-25 18:18:06 UTC >++++ src/VBox/Devices/Makefile.kmk >+@@ -277,7 +277,7 @@ if !defined(VBOX_ONLY_EXTPACKS) # Goes on almo >+ VBoxDD_SOURCES += Graphics/DevVGA-SVGA.cpp >+ endif >+ ifdef VBOX_WITH_VMSVGA3D >+- if1of ($(KBUILD_TARGET), linux win) >++ if1of ($(KBUILD_TARGET), freebsd linux win) >+ # Dynamically load 3D library (opengl32, libGL). >+ # This is a temporary solution. In future the 3D backend will be in a separate library. >+ VBOX_WITH_VMSVGA3D_DYNAMIC_LOAD = 1 >+@@ -1484,6 +1484,8 @@ if defined(VBOX_WITH_VMSVGA3D) && !defined(VBOX_ONLY_E >+ VBoxSVGA3D_INCS = $(VBOX_GRAPHICS_INCS) >+ VBoxSVGA3D_INCS.win := \ >+ Graphics/shaderlib/libWineStub/include >++ VBoxSVGA3D_INCS.freebsd := \ >++ Graphics/shaderlib/wine/include >+ VBoxSVGA3D_INCS.linux := \ >+ Graphics/shaderlib/wine/include >+ VBoxSVGA3D_INCS.darwin := \ > >Property changes on: emulators/virtualbox-ose/files/patch-src_VBox_Devices_Makefile.kmk >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: emulators/virtualbox-ose/files/patch-src_VBox_Devices_Storage_DrvHostBase-freebsd.cpp >=================================================================== >--- emulators/virtualbox-ose/files/patch-src_VBox_Devices_Storage_DrvHostBase-freebsd.cpp (revision 491834) >+++ emulators/virtualbox-ose/files/patch-src_VBox_Devices_Storage_DrvHostBase-freebsd.cpp (working copy) >@@ -1,10 +1,29 @@ >---- src/VBox/Devices/Storage/DrvHostBase-freebsd.cpp.orig 2017-10-18 07:11:48 UTC >+--- src/VBox/Devices/Storage/DrvHostBase-freebsd.cpp.orig 2019-01-25 18:18:40 UTC > +++ src/VBox/Devices/Storage/DrvHostBase-freebsd.cpp > @@ -24,6 +24,7 @@ >+ #include <sys/param.h> >+ #include <errno.h> >+ #include <stdio.h> >++#include <string.h> >+ #include <cam/cam.h> >+ #include <cam/cam_ccb.h> > #include <cam/scsi/scsi_message.h> >- #include <cam/scsi/scsi_pass.h> >+@@ -31,7 +32,9 @@ >+ #include <VBox/err.h> >+ > #include <VBox/scsi.h> > +#include <iprt/file.h> > #include <iprt/log.h> >++#include <iprt/string.h> > >- /** Maximum buffer size supported by the CAM subsystem. */ >+ >+ /********************************************************************************************************************************* >+@@ -164,6 +167,8 @@ DECLHIDDEN(int) drvHostBaseScsiCmdOs(PDRVHOSTBASE pThi >+ else >+ rc = RTErrConvertFromErrno(errno); >+ } >++ >++ return rc; >+ } >+ >+ >Index: emulators/virtualbox-ose/files/patch-src_VBox_Devices_VMMDev_VMMDevHGCM.cpp >=================================================================== >--- emulators/virtualbox-ose/files/patch-src_VBox_Devices_VMMDev_VMMDevHGCM.cpp (nonexistent) >+++ emulators/virtualbox-ose/files/patch-src_VBox_Devices_VMMDev_VMMDevHGCM.cpp (working copy) >@@ -0,0 +1,11 @@ >+--- src/VBox/Devices/VMMDev/VMMDevHGCM.cpp.orig 2019-01-25 18:18:41 UTC >++++ src/VBox/Devices/VMMDev/VMMDevHGCM.cpp >+@@ -2390,7 +2390,7 @@ void vmmdevHGCMDestroy(PVMMDEV pThis) >+ RTCritSectDelete(&pThis->critsectHGCMCmdList); >+ } >+ >+- AssertCompile((uintptr_t)NIL_RTMEMCACHE == 0); >++ AssertCompile(NIL_RTMEMCACHE == (RTMEMCACHE)0); >+ if (pThis->hHgcmCmdCache != NIL_RTMEMCACHE) >+ { >+ RTMemCacheDestroy(pThis->hHgcmCmdCache); > >Property changes on: emulators/virtualbox-ose/files/patch-src_VBox_Devices_VMMDev_VMMDevHGCM.cpp >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: emulators/virtualbox-ose/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageHelp.cpp >=================================================================== >--- emulators/virtualbox-ose/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageHelp.cpp (revision 491834) >+++ emulators/virtualbox-ose/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageHelp.cpp (working copy) >@@ -1,6 +1,15 @@ >---- src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp.orig 2016-08-16 19:59:52 UTC >+--- src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp.orig 2019-01-25 18:19:18 UTC > +++ src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp >-@@ -797,7 +797,7 @@ void printUsage(USAGECATEGORY fCategory, >+@@ -610,7 +610,7 @@ void printUsage(USAGECATEGORY fCategory, uint32_t fSub >+ " file <file>|\n" >+ " <devicename>]\n" >+ " [--uarttype<1-N> 16450|16550A|16750\n" >+-#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) >++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) >+ " [--lpt<1-N> off|<I/O base> <IRQ>]\n" >+ " [--lptmode<1-N> <devicename>]\n" >+ #endif >+@@ -624,7 +624,7 @@ void printUsage(USAGECATEGORY fCategory, uint32_t fSub > RTStrmPrintf(pStrm, "|dsound"); > #endif > } >@@ -9,10 +18,11 @@ > { > RTStrmPrintf(pStrm, "" > #ifdef VBOX_WITH_AUDIO_OSS >-@@ -811,22 +811,6 @@ void printUsage(USAGECATEGORY fCategory, >+@@ -637,22 +637,6 @@ void printUsage(USAGECATEGORY fCategory, uint32_t fSub >+ "|pulse" > #endif > ); >- } >+- } > - if (fFreeBSD) > - { > -#ifdef VBOX_WITH_AUDIO_OSS >@@ -28,7 +38,6 @@ > -#ifdef VBOX_WITH_AUDIO_PULSE > - RTStrmPrintf(pStrm, "|pulse"); > -#endif >-- } >+ } > if (fDarwin) > { >- RTStrmPrintf(pStrm, "|coreaudio"); >Index: emulators/virtualbox-ose/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp >=================================================================== >--- emulators/virtualbox-ose/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp (nonexistent) >+++ emulators/virtualbox-ose/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp (working copy) >@@ -0,0 +1,29 @@ >+--- src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp.orig 2019-01-25 18:19:18.000000000 +0000 >++++ src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp 2019-02-01 06:06:37.701231000 +0000 >+@@ -150,7 +150,7 @@ enum >+ MODIFYVM_UARTMODE, >+ MODIFYVM_UARTTYPE, >+ MODIFYVM_UART, >+-#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) >++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) >+ MODIFYVM_LPTMODE, >+ MODIFYVM_LPT, >+ #endif >+@@ -341,7 +341,7 @@ static const RTGETOPTDEF g_aModifyVMOptions[] = >+ { "--uartmode", MODIFYVM_UARTMODE, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX }, >+ { "--uarttype", MODIFYVM_UARTTYPE, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX }, >+ { "--uart", MODIFYVM_UART, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX }, >+-#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) >++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) >+ { "--lptmode", MODIFYVM_LPTMODE, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX }, >+ { "--lpt", MODIFYVM_LPT, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX }, >+ #endif >+@@ -2224,7 +2224,7 @@ RTEXITCODE handleModifyVM(HandlerArg *a) >+ break; >+ } >+ >+-#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) >++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) >+ case MODIFYVM_LPTMODE: >+ { >+ ComPtr<IParallelPort> lpt; > >Property changes on: emulators/virtualbox-ose/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: emulators/virtualbox-ose/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c >=================================================================== >--- emulators/virtualbox-ose/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c (revision 491834) >+++ emulators/virtualbox-ose/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c (working copy) >@@ -1,4 +1,4 @@ >---- src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c.orig 2018-10-15 14:30:57 UTC >+--- src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c.orig 2019-01-25 18:19:55 UTC > +++ src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c > @@ -46,6 +46,7 @@ > #include <sys/uio.h> >@@ -47,7 +47,7 @@ > /* > * Configure character devices. Add symbolic links for compatibility. > */ >-@@ -311,7 +328,21 @@ static int VBoxDrvFreeBSDIOCtl(struct cdev *pDev, u_lo >+@@ -311,11 +328,25 @@ static int VBoxDrvFreeBSDIOCtl(struct cdev *pDev, u_lo > PSUPDRVSESSION pSession; > devfs_get_cdevpriv((void **)&pSession); > >@@ -68,10 +68,15 @@ > + /* > * Deal with the fast ioctl path first. > */ >- if ( ( ulCmd == SUP_IOCTL_FAST_DO_RAW_RUN >-@@ -325,6 +356,45 @@ static int VBoxDrvFreeBSDIOCtl(struct cdev *pDev, u_lo >+ AssertCompile((SUP_IOCTL_FAST_DO_FIRST & 0xff) == (SUP_IOCTL_FLAG | 64)); >+- if ( (uintptr_t)(iCmd - SUP_IOCTL_FAST_DO_FIRST) < (uintptr_t)32 >++ if ( (uintptr_t)(ulCmd - SUP_IOCTL_FAST_DO_FIRST) < (uintptr_t)32 >+ && pSession->fUnrestricted) >+ return supdrvIOCtlFast(ulCmd - SUP_IOCTL_FAST_DO_FIRST, *(uint32_t *)pvData, &g_VBoxDrvFreeBSDDevExt, pSession); > >+@@ -324,6 +355,45 @@ static int VBoxDrvFreeBSDIOCtl(struct cdev *pDev, u_lo > >+ > /** > + * Alternative Device I/O Control entry point on hosts with SMAP support. > + * >@@ -115,7 +120,7 @@ > * Deal with the 'slow' I/O control requests. > * > * @returns 0 on success, appropriate errno on failure. >-@@ -373,11 +443,10 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes >+@@ -372,11 +442,10 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes > */ > SUPREQHDR Hdr; > pvUser = *(void **)pvData; >@@ -130,7 +135,7 @@ > } > if (RT_UNLIKELY((Hdr.fFlags & SUPREQHDR_FLAGS_MAGIC_MASK) != SUPREQHDR_FLAGS_MAGIC)) > { >-@@ -402,13 +471,12 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes >+@@ -401,13 +470,12 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes > OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: failed to allocate buffer of %d bytes; ulCmd=%#lx\n", cbReq, ulCmd)); > return ENOMEM; > } >@@ -148,7 +153,7 @@ > } > if (Hdr.cbIn < cbReq) > RT_BZERO((uint8_t *)pHdr + Hdr.cbIn, cbReq - Hdr.cbIn); >-@@ -436,9 +504,8 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes >+@@ -435,9 +503,8 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes > OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: too much output! %#x > %#x; uCmd=%#lx!\n", cbOut, cbReq, ulCmd)); > cbOut = cbReq; > } >@@ -160,7 +165,7 @@ > > Log(("VBoxDrvFreeBSDIOCtlSlow: returns %d / %d ulCmd=%lx\n", 0, pHdr->rc, ulCmd)); > >-@@ -541,8 +608,7 @@ bool VBOXCALL supdrvOSGetForcedAsyncTscMode(PSUPDRVDE >+@@ -540,8 +607,7 @@ bool VBOXCALL supdrvOSGetForcedAsyncTscMode(PSUPDRVDE > > bool VBOXCALL supdrvOSAreCpusOfflinedOnSuspend(void) > { >@@ -170,7 +175,7 @@ > } > > >-@@ -616,11 +682,25 @@ int VBOXCALL supdrvOSMsrProberModify(RTCPUID idCpu, >+@@ -624,11 +690,25 @@ int VBOXCALL supdrvOSMsrProberModify(RTCPUID idCpu, > #endif /* SUPDRV_WITH_MSR_PROBER */ > > >@@ -196,7 +201,7 @@ > > va_start(va, pszFormat); > cch = RTStrPrintfV(szMsg, sizeof(szMsg), pszFormat, va); >-@@ -628,12 +708,19 @@ SUPR0DECL(int) SUPR0Printf(const char *pszFormat, ...) >+@@ -636,12 +716,19 @@ SUPR0DECL(int) SUPR0Printf(const char *pszFormat, ...) > > printf("%s", szMsg); > >Index: emulators/virtualbox-ose/pkg-plist >=================================================================== >--- emulators/virtualbox-ose/pkg-plist (revision 491834) >+++ emulators/virtualbox-ose/pkg-plist (working copy) >@@ -14,6 +14,7 @@ bin/vboxmanage > %%X11%%bin/vboxsdl > %%WEBSERVICE%%bin/vboxwebsrv > %%QT%%bin/virtualbox >+%%QT%%bin/virtualboxvm > include/virtualbox/VirtualBox_XPCOM.h > include/virtualbox/ipcIClientObserver.h > include/virtualbox/ipcIDConnectService.h >@@ -385,6 +386,7 @@ lib/virtualbox/VBoxDDU.so > lib/virtualbox/VBoxEFI32.fd > lib/virtualbox/VBoxEFI64.fd > lib/virtualbox/VBoxExtPackHelperApp >+%%QT%%lib/virtualbox/VBoxGlobal.so > lib/virtualbox/VBoxGuestControlSvc.so > lib/virtualbox/VBoxGuestPropSvc.so > @(root,%%VBOXGROUP%%,4510) lib/virtualbox/VBoxHeadless >@@ -409,6 +411,7 @@ lib/virtualbox/VBoxRT.so > %%X11%%@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VBoxSDL > %%X11%%lib/virtualbox/VBoxSDL.so > lib/virtualbox/VBoxSVC >+%%X11%%lib/virtualbox/VBoxSVGA3D.so > %%X11%%lib/virtualbox/VBoxSharedClipboard.so > %%X11%%lib/virtualbox/VBoxSharedCrOpenGL.so > lib/virtualbox/VBoxSharedFolders.so >@@ -420,8 +423,9 @@ lib/virtualbox/VBoxXPCOMC.so > lib/virtualbox/VBoxXPCOMIPCD > lib/virtualbox/VMMR0.r0 > lib/virtualbox/VMMRC.rc >-%%QT%%@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VirtualBox >-%%QT%%lib/virtualbox/VirtualBox.so >+%%QT%%lib/virtualbox/VirtualBox >+%%QT%%@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VirtualBoxVM >+%%QT%%lib/virtualbox/VirtualBoxVM.so > %%SDK%%lib/virtualbox/sdk > %%WEBSERVICE%%lib/virtualbox/vboxwebsrv > %%WEBSERVICE%%lib/virtualbox/webtest >Index: emulators/virtualbox-ose-additions/Makefile >=================================================================== >--- emulators/virtualbox-ose-additions/Makefile (revision 491834) >+++ emulators/virtualbox-ose-additions/Makefile (working copy) >@@ -2,7 +2,7 @@ > # $FreeBSD$ > > PORTNAME= virtualbox-ose >-PORTVERSION= 5.2.26 >+PORTVERSION= 6.0.4 > CATEGORIES= emulators > MASTER_SITES= https://download.virtualbox.org/virtualbox/${PORTVERSION}/ > PKGNAMESUFFIX?= -additions >Index: emulators/virtualbox-ose-additions/distinfo >=================================================================== >--- emulators/virtualbox-ose-additions/distinfo (revision 491834) >+++ emulators/virtualbox-ose-additions/distinfo (working copy) >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1548732081 >-SHA256 (VirtualBox-5.2.26.tar.bz2) = 4debe583463be3917ac60ad76a31f6db27586423d86f1f53c060d70d5e70d467 >-SIZE (VirtualBox-5.2.26.tar.bz2) = 118371765 >+TIMESTAMP = 1548976366 >+SHA256 (VirtualBox-6.0.4.tar.bz2) = f80b0c68182c946fb74ada8034960c38159ad91085b153da1277e4f191af6e1f >+SIZE (VirtualBox-6.0.4.tar.bz2) = 155233564 >Index: emulators/virtualbox-ose-additions-nox11/Makefile >=================================================================== >--- emulators/virtualbox-ose-additions-nox11/Makefile (revision 491834) >+++ emulators/virtualbox-ose-additions-nox11/Makefile (working copy) >@@ -1,6 +1,5 @@ > # $FreeBSD$ > >-PORTREVISION= 1 > PKGNAMESUFFIX= -additions-nox11 > > OPTIONS_EXCLUDE= DBUS DEBUG OPENGL X11 >Index: emulators/virtualbox-ose-kmod/Makefile >=================================================================== >--- emulators/virtualbox-ose-kmod/Makefile (revision 491834) >+++ emulators/virtualbox-ose-kmod/Makefile (working copy) >@@ -2,7 +2,7 @@ > # $FreeBSD$ > > PORTNAME= virtualbox-ose >-PORTVERSION= 5.2.26 >+PORTVERSION= 6.0.4 > CATEGORIES= emulators > MASTER_SITES= https://download.virtualbox.org/virtualbox/${PORTVERSION}/ > PKGNAMESUFFIX= -kmod >Index: emulators/virtualbox-ose-kmod/distinfo >=================================================================== >--- emulators/virtualbox-ose-kmod/distinfo (revision 491834) >+++ emulators/virtualbox-ose-kmod/distinfo (working copy) >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1548732081 >-SHA256 (VirtualBox-5.2.26.tar.bz2) = 4debe583463be3917ac60ad76a31f6db27586423d86f1f53c060d70d5e70d467 >-SIZE (VirtualBox-5.2.26.tar.bz2) = 118371765 >+TIMESTAMP = 1548976366 >+SHA256 (VirtualBox-6.0.4.tar.bz2) = f80b0c68182c946fb74ada8034960c38159ad91085b153da1277e4f191af6e1f >+SIZE (VirtualBox-6.0.4.tar.bz2) = 155233564 >Index: emulators/virtualbox-ose-nox11/Makefile >=================================================================== >--- emulators/virtualbox-ose-nox11/Makefile (revision 491834) >+++ emulators/virtualbox-ose-nox11/Makefile (working copy) >@@ -1,10 +1,9 @@ > # $FreeBSD$ > >-PORTREVISION= 1 > PKGNAMESUFFIX= -nox11 > >-OPTIONS_EXCLUDE= ALSA DBUS DEBUG GUESTADDITIONS MANUAL NLS PULSEAUDIO >-OPTIONS_EXCLUDE+= QT5 VPX X11 >+OPTIONS_EXCLUDE= ALSA DBUS DEBUG GUESTADDITIONS MANUAL NLS OPUS >+OPTIONS_EXCLUDE+= PULSEAUDIO QT5 VPX X11 > > MASTERDIR= ${.CURDIR}/../virtualbox-ose >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 234878
:
201612
|
204171
|
204412
|
204430
|
204727
|
204742
|
207660
|
209925
|
209927
|
213495
|
214671
|
216038
|
216039
|
220555
|
222196
|
222197
|
222198
|
222199
|
222201
|
222558
|
222693
|
222701
|
222704
|
222774
|
223033