git: 9ef87f0830a3 - main - emulators/virtualbox-ose{,-kmod,-nox11}-70: Repocopy from emulators/virtualbox-ose{,-kmod,-nox11}
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 02 Feb 2025 23:29:08 UTC
The branch main has been updated by vvd:
URL: https://cgit.FreeBSD.org/ports/commit/?id=9ef87f0830a3c0d08f51082592e84d2116726d6a
commit 9ef87f0830a3c0d08f51082592e84d2116726d6a
Author: Vladimir Druzenko <vvd@FreeBSD.org>
AuthorDate: 2025-02-02 22:50:49 +0000
Commit: Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-02-02 22:54:38 +0000
emulators/virtualbox-ose{,-kmod,-nox11}-70: Repocopy from emulators/virtualbox-ose{,-kmod,-nox11}
PR: 271146
---
emulators/Makefile | 3 +
emulators/virtualbox-ose-70/Makefile | 431 ++++++
emulators/virtualbox-ose-70/distinfo | 7 +
.../virtualbox-ose-70/files/extrapatch-Config.kmk | 11 +
...h-src-VBox-HostDrivers-Support-freebsd-Makefile | 11 +
.../files/extrapatch-vboximg-Config.kmk | 11 +
emulators/virtualbox-ose-70/files/patch-Config.kmk | 234 +++
emulators/virtualbox-ose-70/files/patch-configure | 126 ++
.../files/patch-include-iprt-x86.h | 19 +
.../files/patch-include_VBox_com_array.h | 36 +
.../files/patch-include_iprt_string.h | 14 +
...-Additions-common-VBoxGuest-VBoxGuest-freebsd.c | 290 ++++
...Box-Additions-common-VBoxGuest-freebsd-Makefile | 27 +
...itions-common-VBoxGuest-freebsd-files_vboxguest | 34 +
...-VBox-Additions-x11-Installer-98vboxadd-xclient | 17 +
...VBox-Additions-x11-Installer-vboxclient.desktop | 10 +
...h-src-VBox-Devices-Network-slirp-bsd-sys-mbuf.h | 12 +
...ch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk | 20 +
...HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt | 10 +
.../files/patch-src-VBox-Installer-Makefile.kmk | 14 +
.../files/patch-src-VBox-Installer-freebsd-VBox.sh | 77 +
...h-src-VBox-Installer-freebsd-virtualbox.desktop | 10 +
...tch-src-VBox-Main-src-server-VirtualBoxImpl.cpp | 11 +
.../patch-src-VBox-Main-webservice-Makefile.kmk | 39 +
.../files/patch-src-VBox-Runtime-Makefile.kmk | 14 +
...untime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h | 39 +
...itions_common_VBoxService_VBoxServiceVMInfo.cpp | 71 +
...tch-src_VBox_Additions_common_pam_pam__vbox.cpp | 20 +
.../patch-src_VBox_Additions_freebsd_Makefile | 38 +
.../patch-src_VBox_Additions_freebsd_Makefile.kmk | 31 +
...src_VBox_Additions_freebsd_drm_vboxvideo__drm.c | 17 +
...x_Additions_freebsd_mount__vboxvfs_Makefile.kmk | 26 +
...ditions_freebsd_mount__vboxvfs_mount__vboxvfs.8 | 56 +
...ditions_freebsd_mount__vboxvfs_mount__vboxvfs.c | 171 +++
...src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk | 50 +
...patch-src_VBox_Additions_freebsd_vboxvfs_bcmp.c | 12 +
...ch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h | 428 ++++++
..._VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c | 1015 +++++++++++++
...Box_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c | 645 ++++++++
...VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c | 1543 ++++++++++++++++++++
...h-src_VBox_Additions_x11_VBoxClient_logging.cpp | 10 +
...h-src_VBox_Additions_x11_vboxmouse_Makefile.kmk | 29 +
...h-src_VBox_Additions_x11_vboxvideo_Makefile.kmk | 15 +
...s_x11_x11include_xproto-7.0.18_X11_Xfuncproto.h | 230 +++
.../files/patch-src_VBox_Debugger_Makefile.kmk | 10 +
...c_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp | 29 +
...src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h | 11 +
...src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp | 38 +
.../files/patch-src_VBox_Devices_Makefile.kmk | 44 +
.../patch-src_VBox_Devices_PC_ipxe_Makefile.kmk | 29 +
...src_VBox_Devices_USB_USBProxyDevice-freebsd.cpp | 11 +
.../files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp | 58 +
...rc_VBox_Frontends_VBoxManage_VBoxManageHelp.cpp | 43 +
...Box_Frontends_VBoxManage_VBoxManageModifyVM.cpp | 29 +
...atch-src_VBox_Frontends_VirtualBox_Makefile.kmk | 18 +
.../patch-src_VBox_HostDrivers_Support_SUPDrv.cpp | 11 +
...h-src_VBox_HostDrivers_Support_SUPDrvInternal.h | 11 +
...h-src_VBox_HostDrivers_Support_freebsd_Makefile | 30 +
...ox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c | 224 +++
...VBox_HostDrivers_Support_freebsd_files__vboxdrv | 30 +
...rc_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile | 11 +
...Drivers_VBoxNetAdp_freebsd_VBoxNetAdp-freebsd.c | 147 ++
...ch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk | 11 +
...rc_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile | 11 +
...Drivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c | 471 ++++++
...h-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp | 11 +
.../files/patch-src_VBox_Main_Makefile.kmk | 10 +
.../files/patch-src_VBox_Main_include_HostPower.h | 20 +
.../patch-src_VBox_Main_src-server_HostImpl.cpp | 11 +
..._Main_src-server_freebsd_PerformanceFreeBSD.cpp | 24 +
...src_VBox_NetworkServices_Dhcpd_VBoxNetDhcpd.cpp | 11 +
.../patch-src_VBox_RDP_client-1.8.4_Makefile.kmk | 13 +
...Box_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c | 73 +
...ox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c | 29 +
...ox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c | 412 ++++++
...ime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c | 22 +
...c_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c | 92 ++
..._Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c | 53 +
...ime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c | 73 +
...time_r0drv_freebsd_semfastmutex-r0drv-freebsd.c | 59 +
..._Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c | 80 +
..._Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c | 30 +
...VBox_Runtime_r0drv_freebsd_the-freebsd-kernel.h | 47 +
...ox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c | 91 ++
...x_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c | 35 +
...VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c | 43 +
...Box_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c | 68 +
...c_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp | 39 +
...Box_Runtime_r3_posix_process-creation-posix.cpp | 38 +
...VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp | 59 +
.../files/patch-src_VBox_VMM_VMMR3_PGMPhys.cpp | 11 +
.../files/patch-src_libs_xpcom18a4_Makefile.kmk | 11 +
...ibs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c | 20 +
...h-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h | 17 +
emulators/virtualbox-ose-70/files/pkg-message.in | 120 ++
emulators/virtualbox-ose-70/files/vboxheadless.in | 140 ++
emulators/virtualbox-ose-70/files/vboxinit.in | 91 ++
emulators/virtualbox-ose-70/files/vboxwatchdog.in | 51 +
emulators/virtualbox-ose-70/files/vboxwebsrv.in | 47 +
emulators/virtualbox-ose-70/pkg-descr | 8 +
emulators/virtualbox-ose-70/pkg-plist | 616 ++++++++
emulators/virtualbox-ose-kmod-70/Makefile | 112 ++
emulators/virtualbox-ose-kmod-70/distinfo | 3 +
.../virtualbox-ose-kmod-70/files/pkg-message.in | 10 +
emulators/virtualbox-ose-kmod-70/files/vboxnet.in | 67 +
emulators/virtualbox-ose-kmod-70/pkg-descr | 5 +
emulators/virtualbox-ose-kmod-70/pkg-plist | 6 +
emulators/virtualbox-ose-nox11-70/Makefile | 11 +
108 files changed, 10000 insertions(+)
diff --git a/emulators/Makefile b/emulators/Makefile
index 6094d34a3f08..38474646ade9 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -156,14 +156,17 @@
SUBDIR += vgba-bin
SUBDIR += vice
SUBDIR += virtualbox-ose
+ SUBDIR += virtualbox-ose-70
SUBDIR += virtualbox-ose-additions
SUBDIR += virtualbox-ose-additions-legacy
SUBDIR += virtualbox-ose-additions-nox11
SUBDIR += virtualbox-ose-additions-nox11-legacy
SUBDIR += virtualbox-ose-kmod
+ SUBDIR += virtualbox-ose-kmod-70
SUBDIR += virtualbox-ose-kmod-legacy
SUBDIR += virtualbox-ose-legacy
SUBDIR += virtualbox-ose-nox11
+ SUBDIR += virtualbox-ose-nox11-70
SUBDIR += virtualbox-ose-nox11-legacy
SUBDIR += visualboyadvance-m
SUBDIR += vmips
diff --git a/emulators/virtualbox-ose-70/Makefile b/emulators/virtualbox-ose-70/Makefile
new file mode 100644
index 000000000000..fdd678179189
--- /dev/null
+++ b/emulators/virtualbox-ose-70/Makefile
@@ -0,0 +1,431 @@
+PORTNAME= virtualbox-ose
+DISTVERSION= 6.1.50
+PORTREVISION?= 8
+CATEGORIES= emulators
+MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
+ LOCAL/bofh/emulators/virtualbox-ose:docs
+DISTFILES= VirtualBox-${DISTVERSION}${EXTRACT_SUFX}:src \
+ VirtualBox-docs-${DISTVERSION}${EXTRACT_SUFX}:docs
+EXTRACT_ONLY= VirtualBox-${DISTVERSION}${EXTRACT_SUFX} \
+ VirtualBox-docs-${DISTVERSION}${EXTRACT_SUFX}
+
+MAINTAINER= vbox@FreeBSD.org
+COMMENT= General-purpose full virtualizer for x86 hardware
+WWW= https://www.virtualbox.org/
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+ONLY_FOR_ARCHS= amd64
+
+BUILD_DEPENDS= gtar:archivers/gtar \
+ kmk:devel/kBuild \
+ libIDL-config-2:devel/libIDL \
+ yasm:devel/yasm \
+ xsltproc:textproc/libxslt
+LIB_DEPENDS= libpng.so:graphics/png \
+ libcurl.so:ftp/curl
+RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod
+
+USES= compiler:c++14-lang cpe gnome iconv pkgconfig ssl tar:bzip2
+CPE_VENDOR= oracle
+CPE_PRODUCT= vm_virtualbox
+USE_GNOME= libxml2
+USE_RC_SUBR= vboxheadless vboxwatchdog
+
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS= --disable-java --passive-mesa --disable-docs
+CONFIGURE_ARGS+= --with-gcc="${CC}" --with-g++="${CXX}"
+
+CONFLICTS_INSTALL= virtualbox-ose-legacy \
+ virtualbox-ose-nox11-legacy \
+ virtualbox-ose-70 \
+ virtualbox-ose-nox11-70
+
+PORTSCOUT= limit:^6\.
+SUB_FILES= pkg-message
+SUB_LIST= VBOXDIR=${VBOX_DIR} \
+ VBOX_ETC=${VBOX_ETC} \
+ VBOXGROUP=${VBOXGROUP} \
+ VBOXUSER=${VBOXUSER} \
+ VBOXWSUSER=${VBOXWSUSER}
+
+WRKSRC= ${WRKDIR}/VirtualBox-${DISTVERSION}
+
+VBOXUSER?= vboxusers
+VBOXWSUSER?= vboxusers
+VBOXGROUP?= vboxusers
+USERS= ${VBOXUSER}
+GROUPS= ${VBOXGROUP}
+VBOX_DIR= ${PREFIX}/${VBOX_DIR_REL}
+VBOX_DIR_REL= lib/virtualbox
+VBOX_ETC= ${PREFIX}/etc/vbox
+VBOX_LINKS= VBoxVRDP
+VBOX_PROGS= VBoxAutostart VBoxBalloonCtrl VBoxBugReport VBoxHeadless \
+ VBoxManage
+VBOX_UTILS= VBoxExtPackHelperApp VBoxNetAdpCtl VBoxNetDHCP VBoxNetNAT \
+ VBoxSVC VBoxXPCOMIPCD
+
+PLIST_SUB= GUEST_VER=${DISTVERSION} \
+ PYTHON_VERU=${PYTHON_VER:S/./_/}${PYTHON_ABIVER} \
+ VBOXGROUP=${VBOXGROUP}
+
+SLAVE_PORT?= no
+
+OPTIONS_DEFINE= AIO ALSA DBUS DEBUG DOCS GUESTADDITIONS NLS OPUS PULSEAUDIO \
+ PYTHON QT5 R0LOGGING UDPTUNNEL VBOXIMG VDE VNC WEBSERVICE VPX X11
+OPTIONS_DEFAULT= AIO DBUS QT5 UDPTUNNEL VNC WEBSERVICE X11
+.if ${SLAVE_PORT} == no
+OPTIONS_DEFAULT+= PYTHON
+.endif
+# Since version 6.1.24 pulseaudio is broken at runtime, preventing
+# virtual machines from starting if configured to use it.
+OPTIONS_EXCLUDE+= PULSEAUDIO
+OPTIONS_SUB= yes
+
+AIO_DESC= Enable Asyncronous IO support (check pkg-message)
+DEBUG_DESC= Debug symbols, additional logs and assertions
+GUESTADDITIONS_DESC= Build with Guest Additions
+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
+VBOXIMG_DESC= Build vboximg-mount (requires fuse-libs)
+VDE_DESC= Build with VDE support
+VNC_DESC= Build with VNC support
+VPX_DESC= Use libvpx for video recording
+WEBSERVICE_DESC= Build Webservice
+
+ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
+ALSA_CONFIGURE_OFF= --disable-alsa
+DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
+DBUS_CONFIGURE_OFF= --disable-dbus
+DEBUG_CONFIGURE_ON= --build-debug
+NLS_IMPLIES= QT5
+OPUS_IMPLIES= VPX
+OPUS_LIB_DEPENDS= libopus.so:audio/opus
+OPUS_CONFIGURE_OFF= --disable-libopus
+PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
+PULSEAUDIO_CONFIGURE_OFF= --disable-pulse
+PYTHON_USES= python
+PYTHON_USES_OFF= python:build
+PYTHON_USE= PYTHON=distutils,noegginfo,noflavors
+PYTHON_CONFIGURE_OFF= --disable-python
+PYTHON_VARS= pydistutils_pkgname=vboxapi pydistutils_pkgversion=1.0
+QT5_IMPLIES= X11
+QT5_USES= gl qmake:no_env qt:5 xorg
+QT5_USE= QT=buildtools:build,core,dbus,gui,linguisttools:build,opengl \
+ QT=printsupport,widgets,x11extras XORG=xcb GL=gl
+QT5_CONFIGURE_ON= --enable-qt5
+QT5_CONFIGURE_OFF= --disable-qt
+R0LOGGING_IMPLIES= DEBUG
+UDPTUNNEL_CONFIGURE_OFF= --disable-udptunnel
+VBOXIMG_LIB_DEPENDS= libfuse.so.2:filesystems/fusefs-libs
+VDE_RUN_DEPENDS= vde_switch:net/vde2
+VDE_CONFIGURE_ON= --enable-vde
+VNC_LIB_DEPENDS= libvncserver.so:net/libvncserver
+VNC_CONFIGURE_ON= --enable-vnc
+VPX_LIB_DEPENDS= libvpx.so:multimedia/libvpx
+VPX_CONFIGURE_OFF= --disable-libvpx
+WEBSERVICE_BUILD_DEPENDS= soapcpp2:devel/gsoap
+X11_USES= sdl xorg
+X11_USE= SDL=sdl XORG=x11,xcursor,xext,xinerama,xmu,xorgproto,xt
+X11_CONFIGURE_OFF= --build-headless
+
+ENV=
+.export ENV
+
+.include <bsd.port.options.mk>
+
+.if ${SLAVE_PORT} == no
+CONFLICTS_INSTALL+= virtualbox-ose-nox11
+.else
+CONFLICTS_INSTALL+= virtualbox-ose
+.endif
+
+.if ${PORT_OPTIONS:MDEBUG}
+KMK_BUILDTYPE= debug
+KMK_FLAGS+= BUILD_TYPE=debug
+.else
+KMK_BUILDTYPE= release
+.endif
+
+.if ${PORT_OPTIONS:MGUESTADDITIONS}
+GUESTADDITIONS= VBoxGuestAdditions_${DISTVERSION}.iso
+DISTFILES+= ${GUESTADDITIONS}:src
+LICENSE+= Additions
+LICENSE_COMB= multi
+LICENSE_NAME_Additions= Guest Additions
+LICENSE_PERMS_Additions= auto-accept
+LICENSE_DISTFILES_Additions= ${GUESTADDITIONS}
+.endif
+
+.if ${PORT_OPTIONS:MQT5}
+PLIST_SUB+= QT=""
+VBOX_PROGS+= VirtualBox VirtualBoxVM
+VBOX_UTILS+= VBoxTestOGL
+VBOX_WITH_QT= 1
+.else
+PLIST_SUB+= QT="@comment "
+.endif
+
+.if ${PORT_OPTIONS:MWEBSERVICE}
+USE_RC_SUBR+= vboxinit vboxwebsrv
+VBOX_LINKS+= vboxwebsrv
+VBOX_UTILS+= vboxwebsrv webtest
+.endif
+
+.if ${PORT_OPTIONS:MX11}
+VBOX_PROGS+= VBoxSDL
+.endif
+
+.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE}
+PLIST_SUB+= SDK=""
+.else
+PLIST_SUB+= SDK="@comment "
+.endif
+
+.if ${PORT_OPTIONS:MVBOXIMG}
+EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-vboximg-Config.kmk
+VBOX_UTILS+= vboximg-mount
+PLIST_SUB+= VBOXIMG=""
+.else
+PLIST_SUB+= VBOXIMG="@comment "
+.endif
+
+KMK_ARCH= freebsd.${ARCH}
+PLIST_SUB+= ARCH="${KMK_ARCH}"
+
+KMK_BUILDDIR= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}
+KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys
+KMK_FLAGS+= -j${MAKE_JOBS_NUMBER}
+
+.include <bsd.port.pre.mk>
+
+.if ${CHOSEN_COMPILER_TYPE} == clang
+# 1) llvm10 in FreeBSD before r364284 miscompiles virtualbox 6.1 causing errors.
+# 2) llvm15 in FreeBSD miscompiles virtualbox 6.1 causing errors: PR#270189.
+# Force llvm from ports.
+.if ${OPSYS} == FreeBSD
+# USES must be before .include <bsd.port.pre.mk>, but CHOSEN_COMPILER_TYPE must be after.
+# This is a workaround with possibility to define different llvm via VBOX_LLVM_VER in make.conf.
+#USES+= llvm:min=11,max=14
+#CC= clang${LLVM_VERSION}
+#CXX= clang++${LLVM_VERSION}
+BUILD_DEPENDS+= clang${VBOX_LLVM_VER}:devel/llvm${VBOX_LLVM_VER}
+CC= clang${VBOX_LLVM_VER}
+CXX= clang++${VBOX_LLVM_VER}
+.if ${LLVM_DEFAULT} < 11 || ${LLVM_DEFAULT} > 14
+VBOX_LLVM_VER?= 14
+.else
+VBOX_LLVM_VER?= ${LLVM_DEFAULT}
+.endif
+.endif
+PATCH_DEPENDS+= ${LOCALBASE}/share/kBuild/tools/GXX3.kmk:devel/kBuild
+.endif
+
+.if ${PYTHON_MAJOR_VER} >= 3
+PLIST_SUB+= PYTHON_PYCDIR=/__pycache__/ \
+ PYTHON_PYCEXT=.cpython-${PYTHON_SUFFIX}.pyc
+.else
+PLIST_SUB+= PYTHON_PYCDIR=/ \
+ PYTHON_PYCEXT=.pyc
+.endif
+
+.if ${SSL_DEFAULT} != base
+CONFIGURE_ARGS+= --with-openssl-dir="${OPENSSLBASE}"
+.endif
+
+post-patch:
+ @${ECHO_CMD} 'VBOX_PATH_APP_PRIVATE_ARCH = ${VBOX_DIR}' > \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_DOCBOOK = ${DBKXSLDIR}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_DOCBOOK_DTD = ${DBKXMLDIR}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_SHARED_LIBS = ${VBOX_DIR}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ # Please keep this even if using Clang to avoid repeated regressions.
+ # PR 245048
+ @${ECHO_CMD} "VBOX_WITH_RUNPATH = ${_GCC_RUNTIME:D${_GCC_RUNTIME}\:}${VBOX_DIR}" >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk
+.if ${SSL_DEFAULT} != base
+ @${ECHO_CMD} 'VBOX_WITH_ALT_HASH_CODE = 1' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+ @${ECHO_CMD} 'VBOX_WITH_EXTPACK_VBOXDTRACE =' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_VBOXDRV =' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_TESTCASES =' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'SDK_VBOX_LIBPNG_INCS = ${PREFIX}/include/libpng' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'SDK_VBOX_LIBPNG_LIBS = png' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP = ${VBOX_WITH_QT}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP_GH = ${VBOX_WITH_QT}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_VALIDATIONKIT =' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_X11_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk
+.if ${PORT_OPTIONS:MR0LOGGING}
+ @${ECHO_CMD} 'VBOX_WITH_R0_LOGGING = 1' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+.if ${PORT_OPTIONS:MWEBSERVICE}
+ @${ECHO_CMD} 'VBOX_WITH_WEBSERVICES = 1' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_GSOAP_INSTALLED = 1' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_GSOAP = ${PREFIX}/lib/gsoap' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_GSOAP_BIN = ${PREFIX}/bin' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_GSOAP_IMPORT = ${PREFIX}/share/gsoap/import' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} '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 ${CHOSEN_COMPILER_TYPE} == clang
+ @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \
+ -e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk
+ @${REINPLACE_CMD} -e 's| -fpermissive||' ${WRKSRC}/Config.kmk \
+ ${WRKSRC}/src/VBox/Main/webservice/Makefile.kmk
+ @${ECHO_CMD} 'TOOL_VBoxGccFreeBSD_LD = ${CXX}' >> ${WRKSRC}/LocalConfig.kmk
+ @${SED} -e 's|GXX3|VBoxGccFreeBSD|g' \
+ ${LOCALBASE}/share/kBuild/tools/GXX3.kmk > \
+ ${WRKSRC}/tools/kBuildTools/VBoxGccFreeBSD.kmk
+.endif
+ # Causes a "reinplace" QA warning with default LOCALBASE
+ @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
+ ${WRKSRC}/Config.kmk ${WRKSRC}/configure \
+ ${WRKSRC}/kBuild/header.kmk ${WRKSRC}/kBuild/units/qt4.kmk \
+ ${WRKSRC}/kBuild/units/qt5.kmk ${WRKSRC}/kBuild/sdks/LIBSDL.kmk \
+ ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py
+ @${REINPLACE_CMD} \
+ -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \
+ -e 's|SUPPYTHONLIBS=.*|SUPPYTHONLIBS="${PYTHON_VERSION}${PYTHON_ABIVER}"|' \
+ ${WRKSRC}/configure
+.if empty(ICONV_LIB)
+ @${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.kmk \
+ ${WRKSRC}/src/VBox/Runtime/Makefile.kmk
+ @${ECHO_CMD} 'VBOX_ICONV_DEFS = LIBICONV_PLUG' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+ @${REINPLACE_CMD} -e 's|%%VBOX_DIR%%|${VBOX_DIR}|g' \
+ -e 's|%%VBOX_ETC%%|${VBOX_ETC}|g' \
+ -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
+ ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh
+ @${REINPLACE_CMD} -e 's|%%VBOX_ETC%%|${VBOX_ETC}|g' \
+ ${WRKSRC}/src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
+ @${REINPLACE_CMD} \
+ -e 's|^versions =.*|versions = ["${PYTHON_VER}${PYTHON_ABIVER}"]|' \
+ ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py
+
+post-patch-AIO-off:
+ @${REINPLACE_CMD} 's|r3/freebsd/fileaio-freebsd.cpp|r3/posix/fileaio-posix.cpp|' \
+ ${WRKSRC}/src/VBox/Runtime/Makefile.kmk
+
+do-build:
+ cd ${WRKSRC} && ${SH} -c '. ${WRKSRC}/env.sh && \
+ ${SETENV} ${MAKE_ENV} ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}'
+.if ${PORT_OPTIONS:MPYTHON}
+ ${PYTHON_CMD} -mcompileall \
+ ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/python/xpcom
+.endif
+
+do-install:
+.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE}
+ ${MKDIR} ${STAGEDIR}${DATADIR}/sdk
+.endif
+ cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom && \
+ ${COPYTREE_SHARE} "idl samples" ${STAGEDIR}${DATADIR}
+
+ ${MKDIR} ${STAGEDIR}${PREFIX}/include/virtualbox
+ cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/include && \
+ ${COPYTREE_SHARE} "*" ${STAGEDIR}${PREFIX}/include/virtualbox
+
+ ${MKDIR} ${STAGEDIR}${VBOX_DIR}
+ cd ${KMK_BUILDDIR}/bin && ${COPYTREE_SHARE} \
+ "*.fd *.r0 *.so components" ${STAGEDIR}${VBOX_DIR}
+.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE}
+ ${RLN} ${STAGEDIR}${DATADIR}/sdk ${STAGEDIR}${VBOX_DIR}
+.endif
+
+ ${INSTALL_SCRIPT} ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh \
+ ${STAGEDIR}${VBOX_DIR}
+.for f in ${VBOX_PROGS} ${VBOX_UTILS}
+ ${INSTALL_PROGRAM} ${KMK_BUILDDIR}/bin/${f} ${STAGEDIR}${VBOX_DIR}
+.endfor
+.for f in ${VBOX_PROGS} ${VBOX_LINKS}
+ ${LN} -fs ../${VBOX_DIR_REL}/VBox.sh ${STAGEDIR}${PREFIX}/bin/${f}
+.endfor
+.for f in ${VBOX_PROGS}
+ ${LN} -fs ../${VBOX_DIR_REL}/VBox.sh ${STAGEDIR}${PREFIX}/bin/${f:tl}
+.endfor
+
+.if ${PORT_OPTIONS:MGUESTADDITIONS}
+ ${MKDIR} ${STAGEDIR}${VBOX_DIR}/additions
+ ${INSTALL_DATA} ${DISTDIR}/${GUESTADDITIONS} \
+ ${STAGEDIR}${VBOX_DIR}/additions/
+ ${RLN} ${STAGEDIR}${VBOX_DIR}/additions/${GUESTADDITIONS} \
+ ${STAGEDIR}${VBOX_DIR}/additions/VBoxGuestAdditions.iso
+.endif
+
+.if ${PORT_OPTIONS:MDOCS}
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${WRKDIR}/VirtualBox-docs-${DISTVERSION}/UserManual.pdf \
+ ${STAGEDIR}${DOCSDIR}
+.endif
+
+.if ${PORT_OPTIONS:MNLS}
+ cd ${KMK_BUILDDIR}/obj/VirtualBox/qtnls && \
+ ${COPYTREE_SHARE} "*.qm" ${STAGEDIR}${DATADIR}/nls
+.endif
+
+.if ${PORT_OPTIONS:MPYTHON}
+ cd ${KMK_BUILDDIR}/bin/sdk/installer && \
+ ${SETENV} VBOX_INSTALL_PATH="${VBOX_DIR}" \
+ ${PYTHON_CMD} vboxapisetup.py install --root=${STAGEDIR}
+
+ @${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom
+ cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/python/xpcom && \
+ ${COPYTREE_SHARE} "*" ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom
+ @${MKDIR} ${STAGEDIR}${DATADIR}/sdk/bindings/xpcom/python
+ ${RLN} ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom \
+ ${STAGEDIR}${DATADIR}/sdk/bindings/xpcom/python
+.endif
+
+.if ${PORT_OPTIONS:MQT5}
+ ${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
+
+.if ${PORT_OPTIONS:MVNC}
+ ${MKDIR} ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/${KMK_ARCH}
+ ${INSTALL_DATA} ${KMK_BUILDDIR}/bin/ExtensionPacks/VNC/ExtPack* \
+ ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/
+ ${INSTALL_LIB} ${KMK_BUILDDIR}/bin/ExtensionPacks/VNC/${KMK_ARCH}/* \
+ ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/${KMK_ARCH}/
+.endif
+
+.if ${PORT_OPTIONS:MVBOXIMG}
+ ${LN} -fs ../${VBOX_DIR_REL}/vboximg-mount ${STAGEDIR}${PREFIX}/bin/
+.endif
+
+.if ${PORT_OPTIONS:MWEBSERVICE}
+ ${MKDIR} ${STAGEDIR}${DATADIR}/sdk/bindings/webservice
+ ${INSTALL_DATA} ${KMK_BUILDDIR}/obj/webservice/vboxweb.wsdl \
+ ${STAGEDIR}${DATADIR}/sdk/bindings/webservice/
+.endif
+
+post-install:
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/virtualbox/*.so \
+ ${STAGEDIR}${PREFIX}/lib/virtualbox/components/*.so
+
+.include <bsd.port.post.mk>
diff --git a/emulators/virtualbox-ose-70/distinfo b/emulators/virtualbox-ose-70/distinfo
new file mode 100644
index 000000000000..08ac88176444
--- /dev/null
+++ b/emulators/virtualbox-ose-70/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1716920210
+SHA256 (VirtualBox-6.1.50.tar.bz2) = 73ff603842896cb8d86ac5a817eb5037d7d225d3c46ea238e39d7ba5aaf61a57
+SIZE (VirtualBox-6.1.50.tar.bz2) = 165959648
+SHA256 (VBoxGuestAdditions_6.1.50.iso) = af53e34c5a5ec143f3418ac01d00ed5f33f6b31bfdc92eb4714c99d9bccb6602
+SIZE (VBoxGuestAdditions_6.1.50.iso) = 64051200
+SHA256 (VirtualBox-docs-6.1.50.tar.bz2) = e5dc118e8bb8352c06d5359e4f75ceb339a3917f0727fd74ad02ff07251e67db
+SIZE (VirtualBox-docs-6.1.50.tar.bz2) = 4063302
diff --git a/emulators/virtualbox-ose-70/files/extrapatch-Config.kmk b/emulators/virtualbox-ose-70/files/extrapatch-Config.kmk
new file mode 100644
index 000000000000..775508d23b1b
--- /dev/null
+++ b/emulators/virtualbox-ose-70/files/extrapatch-Config.kmk
@@ -0,0 +1,11 @@
+--- Config.kmk.orig 2021-04-28 16:21:25 UTC
++++ Config.kmk
+@@ -4931,7 +4931,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS
+ | 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
diff --git a/emulators/virtualbox-ose-70/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile b/emulators/virtualbox-ose-70/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile
new file mode 100644
index 000000000000..67361da543f7
--- /dev/null
+++ b/emulators/virtualbox-ose-70/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile
@@ -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
diff --git a/emulators/virtualbox-ose-70/files/extrapatch-vboximg-Config.kmk b/emulators/virtualbox-ose-70/files/extrapatch-vboximg-Config.kmk
new file mode 100644
index 000000000000..d84209faa8cd
--- /dev/null
+++ b/emulators/virtualbox-ose-70/files/extrapatch-vboximg-Config.kmk
@@ -0,0 +1,11 @@
+--- Config.kmk.orig 2023-10-12 15:43:35.000000000 +0700
++++ Config.kmk 2023-10-30 22:11:09.119922000 +0700
+@@ -869,7 +869,7 @@
+ # windows versions (only define when buildling win.x86).
+ #VBOX_WITH_MORE_NT4_COMPAT_BINARIES = 1
+ # Set this to enable building of the vboximg-mount FUSE mounting utility.
+-if1of ($(KBUILD_TARGET), darwin linux)
++if1of ($(KBUILD_TARGET), darwin freebsd linux)
+ VBOX_WITH_VBOXIMGMOUNT = 1
+ endif
+ # Set this to enable packaging the fuse related bits into our installer.
diff --git a/emulators/virtualbox-ose-70/files/patch-Config.kmk b/emulators/virtualbox-ose-70/files/patch-Config.kmk
new file mode 100644
index 000000000000..119926c9e025
--- /dev/null
+++ b/emulators/virtualbox-ose-70/files/patch-Config.kmk
@@ -0,0 +1,234 @@
+--- Config.kmk.orig 2021-01-07 15:31:21 UTC
++++ Config.kmk
+@@ -469,11 +469,11 @@ ifn1of ($(KBUILD_TARGET), win darwin)
+ # Enable OSS audio support.
+ VBOX_WITH_AUDIO_OSS = 1
+ endif
+-if1of ($(KBUILD_TARGET), linux)
++if1of ($(KBUILD_TARGET), freebsd linux)
+ # Enable ALSA audio support.
+ VBOX_WITH_AUDIO_ALSA = 1
+ endif
+-if1of ($(KBUILD_TARGET), linux)
++if1of ($(KBUILD_TARGET), freebsd linux)
+ # Enable PulseAudio audio support.
+ VBOX_WITH_AUDIO_PULSE = 1
+ endif
+@@ -489,11 +489,11 @@ VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT = 1
+ # (disabled with 6.1, since it's not complete/useful enough)
+ VBOX_WITH_PCI_PASSTHROUGH =
+ # Enable statically linked dbus support.
+-if1of ($(KBUILD_TARGET), linux solaris)
++if1of ($(KBUILD_TARGET), freebsd linux solaris)
+ VBOX_WITH_DBUS = 1
+ endif
+ # Enable building PAM modules.
+-if1of ($(KBUILD_TARGET), linux solaris)
++if1of ($(KBUILD_TARGET), freebsd linux solaris)
+ VBOX_WITH_PAM = 1
+ endif
+ # Enable internal networking.
+@@ -501,7 +501,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 the generic 3D settings support if at least one 3D capable solution is enabled
+@@ -647,7 +647,7 @@ VBOX_WITH_MAIN_USB_ID_DATABASE = 1
+ #endif
+ # Set this to prefix all C symbols in XPCOM, to avoid dynamic linking problems
+ # caused by our XPCOM library polluting the symbol namespace for system libs.
+-if1of ($(KBUILD_TARGET), linux solaris)
++if1of ($(KBUILD_TARGET), freebsd linux solaris)
+ VBOX_WITH_XPCOM_NAMESPACE_CLEANUP = 1
+ endif
+ # The webservices api.
+@@ -1064,10 +1064,6 @@ ifeq ($(KBUILD_TARGET),darwin)
+ VBOX_WITH_VBOXSDL=
+ endif
+
+-ifeq ($(KBUILD_TARGET),freebsd)
+- VBOX_WITH_DOCS=
+-endif
+-
+ ifeq ($(KBUILD_TARGET),haiku)
+ # Don't bother with SDL ttf for now.
+ VBOX_WITH_SECURELABEL=
+@@ -1228,7 +1224,7 @@ ifdef VBOX_OSE
+ VBOX_WITH_KCHMVIEWER=
+ VBOX_WITH_PLUGIN_CRYPT=
+ VBOX_WITH_DRAG_AND_DROP_PROMISES=
+- ifn1of ($(KBUILD_TARGET), linux)
++ ifn1of ($(KBUILD_TARGET), freebsd linux)
+ VBOX_WITH_DOCS=
+ VBOX_WITH_DOCS_PACKING=
+ endif
+@@ -4928,7 +4924,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS
+ | xargs -J% objcopy % $(outbase).kld
+
+ # Link the final .ko (a shared object).
+- ld $(flags) -Bshareable -o $(out) $(outbase).kld
++ ld $(flags) -Bshareable -znotext -o $(out) $(outbase).kld
+ endef
+ endif # x86
+
+@@ -5205,6 +5201,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) $(VBOX_GCC_SANITIZER_LDFLAGS)
+@@ -5238,10 +5235,18 @@ TEMPLATE_VBOXR3EXE_LIBPATH += \
+ TEMPLATE_VBOXR3EXE_CFLAGS += -fno-pic
+ TEMPLATE_VBOXR3EXE_CXXFLAGS += -fno-pic
+ TEMPLATE_VBOXR3EXE_LDFLAGS += -fno-pic
+- else if1of ($(KBUILD_TARGET), freebsd openbsd)
++ else ifeq ($(KBUILD_TARGET),freebsd)
+ TEMPLATE_VBOXR3EXE_TOOL = GXX3
+ TEMPLATE_VBOXR3EXE_LIBS = pthread
++TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext
+ TEMPLATE_VBOXR3EXE_INCS += \
++ /usr/local/include
++TEMPLATE_VBOXR3EXE_LIBPATH += \
++ /usr/local/lib
++ else ifeq ($(KBUILD_TARGET),openbsd)
++TEMPLATE_VBOXR3EXE_TOOL = GXX3
++TEMPLATE_VBOXR3EXE_LIBS = pthread
++TEMPLATE_VBOXR3EXE_INCS += \
+ /usr/include \
+ /usr/X11R6/include \
+ /usr/local/include
+@@ -5273,6 +5278,7 @@ TEMPLATE_VBOXR3EXE_CXXFLAGS.kprofile = $(TEMPLATE_VB
+ TEMPLATE_VBOXR3EXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
+ endif
+ ifdef VBOX_WITH_ORIGIN
++ TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT)
+ TEMPLATE_VBOXR3EXE_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
+ endif
+ endif
+@@ -5412,7 +5418,7 @@ ifeq ($(KBUILD_TARGET),win)
+ $(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
+ $(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib \
+ $(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/oldnames.lib
+-else ifn1of ($(KBUILD_TARGET), darwin linux solaris)
++else ifn1of ($(KBUILD_TARGET), darwin freebsd linux solaris)
+ # The gcc guys sans darwin, linux and solaris (don't depend on statically compiled system libs there)
+ TEMPLATE_VBOXR3STATIC_CFLAGS = $(TEMPLATE_VBOXR3EXE_CFLAGS) -static
+ TEMPLATE_VBOXR3STATIC_CXXFLAGS = $(TEMPLATE_VBOXR3EXE_CXXFLAGS) -static
+@@ -5557,6 +5563,7 @@ ifeq ($(KBUILD_TARGET),win) # No CRT!
+ else ifn1of ($(KBUILD_TARGET), os2 solaris)
+ # 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_VBoxR3HardenedTstDll_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.freebsd))
+ TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux))
+ endif
+
+@@ -5584,6 +5591,7 @@ TEMPLATE_VBoxR3HardenedTstDll_INST = $(INST_TESTCASE)
+ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.win = $(TEMPLATE_VBoxR3TstDll_LDFLAGS.win) -IntegrityCheck
+ ifn1of ($(KBUILD_TARGET), win os2)
+ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3TstDll_LDFLAGS))
++ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.freebsd))
+ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.linux))
+ endif
+
+@@ -5606,6 +5614,7 @@ ifndef VBOX_WITH_HARDENING
+ TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
+ endif
+ ifdef VBOX_WITH_ORIGIN
++ TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT)
+ TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
+ endif
+ endif
+@@ -6132,10 +6141,19 @@ TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTI
+ else ifeq ($(KBUILD_TARGET),haiku)
+ TEMPLATE_VBOXMAINEXE_TOOL = GXX3
+ TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) network stdc++ supc++
+- else if1of ($(KBUILD_TARGET), freebsd openbsd)
++ else ifeq ($(KBUILD_TARGET),freebsd)
+ TEMPLATE_VBOXMAINEXE_TOOL = GXX3
+ TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME)
++TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
++TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext
+ TEMPLATE_VBOXMAINEXE_INCS += \
++ /usr/local/include
++TEMPLATE_VBOXMAINEXE_LIBPATH += \
++ /usr/local/lib
++ else ifeq ($(KBUILD_TARGET),openbsd)
++TEMPLATE_VBOXMAINEXE_TOOL = GXX3
++TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME)
++TEMPLATE_VBOXMAINEXE_INCS += \
+ /usr/include \
+ /usr/X11R6/include \
+ /usr/local/include
+@@ -6167,6 +6185,7 @@ TEMPLATE_VBOXMAINEXE_LDFLAGS += '$(VBOX_GCC
+ TEMPLATE_VBOXMAINEXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
+ endif
+ ifdef VBOX_WITH_ORIGIN
++TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT)
+ TEMPLATE_VBOXMAINEXE_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
+ endif
+
+@@ -6735,13 +6754,11 @@ ifdef VBOX_WITH_QTGUI
+ TEMPLATE_VBOXQTGUIEXE_LIBPATH += \
+ $(VBOX_LIBPATH_X11)
+ ifeq ($(KBUILD_TARGET),freebsd)
++ TEMPLATE_VBOXQTGUIEXE_LDFLAGS += -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
++ TEMPLATE_VBOXQTGUIEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext
+ TEMPLATE_VBOXQTGUIEXE_INCS += \
+- /usr/include \
+- /usr/X11R6/include \
+ /usr/local/include
+ TEMPLATE_VBOXQTGUIEXE_LIBPATH += \
+- /usr/lib \
+- /usr/X11R6/lib \
+ /usr/local/lib
+ endif
+ ifeq ($(KBUILD_TARGET),solaris)
+@@ -6988,10 +7005,17 @@ TEMPLATE_VBoxBldProg_TOOL = GXX3
+ TEMPLATE_VBoxBldProg_LIBS = network iconv
+ TEMPLATE_VBoxBldProg_LIBPATH += \
+ /boot/common/lib
+- else if1of ($(KBUILD_HOST), freebsd openbsd)
++ else ifeq ($(KBUILD_HOST),freebsd)
+ TEMPLATE_VBoxBldProg_TOOL = GXX3
+ TEMPLATE_VBoxBldProg_LIBS = pthread
+ TEMPLATE_VBoxBldProg_INCS += \
++ /usr/local/include
++TEMPLATE_VBoxBldProg_LIBPATH += \
++ /usr/local/lib
++ else ifeq ($(KBUILD_HOST),openbsd)
++TEMPLATE_VBoxBldProg_TOOL = GXX3
++TEMPLATE_VBoxBldProg_LIBS = pthread
++TEMPLATE_VBoxBldProg_INCS += \
+ /usr/include \
+ /usr/X11R6/include \
+ /usr/local/include
+@@ -7115,6 +7139,7 @@ else # the gcc guys
+ # Do not inherit sanitizer flags from VBOXR3EXE in guest executables. Deal with them separately.
+ TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.debug = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBOXGUESTR3EXE_CFLAGS.debug = $(NO_SUCH_VARIABLE)
++ TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd))
+ TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux))
+ TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.debug = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBOXGUESTR3EXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS))
+@@ -7138,6 +7163,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)
+
+ #
+@@ -7345,6 +7371,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
diff --git a/emulators/virtualbox-ose-70/files/patch-configure b/emulators/virtualbox-ose-70/files/patch-configure
new file mode 100644
index 000000000000..25015e642bc1
--- /dev/null
+++ b/emulators/virtualbox-ose-70/files/patch-configure
@@ -0,0 +1,126 @@
+--- configure.orig 2021-10-18 17:47:25 UTC
++++ configure
+@@ -139,10 +139,14 @@ CXX_FLAGS=""
+ if [ "$OS" = "freebsd" ]; then
+ INCCURL="-I/usr/local/include"
+ LIBCURL="-L/usr/local/lib -lcurl"
++ INCALSA="-I/usr/local/include"
++ LIBALSA="-L/usr/local/lib"
+ INCPULSE="-I/usr/local/include"
+ LIBPULSE="-L/usr/local/lib"
+ INCPNG="-I/usr/local/include"
+ LIBPNG="-L/usr/local/lib -lpng"
++ INCVNCSERVER="-I/usr/local/include"
++ LIBVNCSERVER="-L/usr/local/lib"
+ else
+ INCCURL=""
+ LIBCURL="-lcurl"
+@@ -1173,6 +1177,9 @@ extern "C" int main(int argc, char** arg
+ printf("found version %d.%d.%d",
+ SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL);
+ #if SDL_VERSION_ATLEAST(1,2,7)
++#if !defined(SDL_VIDEO_DRIVER_X11)
++#error SDL must be compiled with X11 support
++#endif
+ printf(", OK.\n");
+ return 0;
+ #else
+@@ -1257,7 +1264,7 @@ extern "C" int main(void)
+ #endif
+ }
+ EOF
+- if test_compile "-lasound" asound asound; then
++ if test_compile "$INCALSA $LIBALSA -lasound" asound asound; then
+ test_execute
+ fi
+ }
+@@ -1564,6 +1571,7 @@ EOF
+ FLGQT5=`pkg-config Qt5Core --cflags`
+ # gcc 4.8 is able to compile with C++11 (see also VBOX_GCC_std in Config.kmk)
+ [ $(($cc_maj * 100 + $cc_min)) -ge 408 ] && FLGQT5="$FLGQT5 -std=c++11"
++ FLGQT5="$FLGQT5 -std=c++11"
+ INCQT5=`strip_I "$FLGQT5"`
+ LIBDIR5=`pkg-config Qt5Core --variable=libdir`
+ LIBQT5=`pkg-config Qt5Core Qt5Gui --libs`
+@@ -1702,7 +1710,7 @@ check_libopus()
+ fi
+ cat > $ODIR.tmp_src.cc << EOF
+ #include <cstdio>
+-#include <opus/opus.h>
++#include <opus.h>
+ extern "C" int main(void)
+ {
+ OpusEncoder *test;
+@@ -2034,8 +2042,8 @@ EOF
+ echo "compiling the following source file:" >> $LOG
+ cat $ODIR.tmp_src.cc >> $LOG
+ echo "using the following command line:" >> $LOG
+- echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so" >> $LOG
+- $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so >> $LOG 2>&1
++ echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so -pthread" >> $LOG
++ $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so -pthread >> $LOG 2>&1
+ if [ $? -eq 0 ]; then
+ found=1
+ break
+@@ -2151,7 +2159,7 @@ check_gsoap()
+ else
+ cnf_append "VBOX_GSOAP_CXX_SOURCES" ""
+ fi
+- cnf_append "VBOX_GSOAP_CXX_LIBS" "`strip_l "$GSOAP_CXX_LIBS"`"
++ cnf_append "VBOX_GSOAP_CXX_LIBS" "`strip_l "$GSOAP_CXX_LIBS"` z"
+ gsoap_version=`pkg-config gsoapssl++ --modversion`
+ log_success "found version $gsoap_version"
+ return
+@@ -2519,7 +2527,7 @@ for option in "$@"; do
+ --with-openssl-dir=*)
+ OPENSSLDIR=`echo $option | cut -d'=' -f2`
+ INCCRYPTO="-I${OPENSSLDIR}/include"
+- LIBCRYPTO="${OPENSSLDIR}/lib/libssl.a ${OPENSSLDIR}/lib/libcrypto.a"
++ LIBCRYPTO="-L${OPENSSLDIR}/lib -lssl -lcrypto"
+ # On Linux static OpenSSL typically needs a few additional libraries.
+ [ "$OS" = "linux" ] && LIBCRYPTO="-ldl $LIBPTHREAD -lm"
+ ;;
+@@ -2865,12 +2873,22 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then
+ [ $WITH_JAVA -eq 1 ] && check_java
+
+ # PulseAudio
+- if [ $WITH_PULSE -eq 1 ]; then
+- check_pulse
+- elif [ $WITH_PULSE -eq 0 ]; then # Force disabling PulseAudio.
+- cnf_append "VBOX_WITH_AUDIO_PULSE" ""
+- elif [ $WITH_PULSE -eq 2 ]; then # --enable-pulse was passed, force PulseAudio.
+- cnf_append "VBOX_WITH_AUDIO_PULSE" "1"
*** 9800 LINES SKIPPED ***