aboutsummaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
Diffstat (limited to 'emulators')
-rw-r--r--emulators/86Box/Makefile36
-rw-r--r--emulators/86Box/distinfo6
-rw-r--r--emulators/86Box/files/patch-cmake_flags-gcc-aarch64.cmake10
-rw-r--r--emulators/86Box/files/patch-cmake_flags-gcc-armv7.cmake10
-rw-r--r--emulators/86Box/files/patch-cmake_flags-gcc-x86__64.cmake12
-rw-r--r--emulators/86Box/files/patch-cmake_flags-gcc.cmake11
-rw-r--r--emulators/86Box/files/patch-src_cdrom_CMakeLists.txt10
-rw-r--r--emulators/86Box/files/patch-src_network_CMakeLists.txt10
-rw-r--r--emulators/86Box/files/patch-src_printer_CMakeLists.txt10
-rw-r--r--emulators/86Box/files/patch-src_qt_qt__mainwindow.cpp10
-rw-r--r--emulators/86Box/files/patch-src_qt_qt__vmmanager__details.cpp79
-rw-r--r--emulators/86Box/files/patch-src_qt_qt__vmmanager__detailsection.cpp11
-rw-r--r--emulators/86Box/files/patch-src_qt_qt__vmmanager__system.cpp219
-rw-r--r--emulators/86Box/files/patch-src_video_CMakeLists.txt11
-rw-r--r--emulators/Makefile8
-rw-r--r--emulators/Ymir/Makefile20
-rw-r--r--emulators/Ymir/distinfo10
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt27
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cdblock__settings__view.cpp11
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_windows_about__window.cpp14
-rw-r--r--emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt12
-rw-r--r--emulators/Ymir/files/patch-vendor_CMakeLists.txt78
-rw-r--r--emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp13
-rw-r--r--emulators/Ymir/pkg-descr10
-rw-r--r--emulators/adamem/Makefile4
-rw-r--r--emulators/ares/Makefile1
-rw-r--r--emulators/citra-qt5/Makefile8
-rw-r--r--emulators/citra/Makefile112
-rw-r--r--emulators/citra/distinfo39
-rw-r--r--emulators/citra/files/patch-CMakeLists.txt36
-rw-r--r--emulators/citra/files/patch-externals_teakra_src_test.h13
-rw-r--r--emulators/citra/files/patch-src_input__common_udp_client.cpp11
-rw-r--r--emulators/citra/pkg-descr8
-rw-r--r--emulators/dolphin-emu/Makefile1
-rw-r--r--emulators/dosbox-x/Makefile2
-rw-r--r--emulators/dosbox-x/distinfo6
-rw-r--r--emulators/dosbox-x/files/patch-configure.ac4
-rw-r--r--emulators/dosbox-x/files/patch-fix-ffmpeg888
-rw-r--r--emulators/dosbox-x/files/patch-src_gui_sdl__gui.cpp8
-rw-r--r--emulators/emu64/Makefile2
-rw-r--r--emulators/emulationstation/Makefile4
-rw-r--r--emulators/flycast/Makefile2
-rw-r--r--emulators/libc6-shim/Makefile2
-rw-r--r--emulators/libc6-shim/distinfo6
-rw-r--r--emulators/magia/Makefile2
-rw-r--r--emulators/mame/Makefile33
-rw-r--r--emulators/mame/distinfo6
-rw-r--r--emulators/mame/files/patch-3rdparty_lzma_C_CpuArch.c6
-rw-r--r--emulators/mame/files/patch-3rdparty_lzma_C_Sha256Opt.c4
-rw-r--r--emulators/mame/files/patch-makefile10
-rw-r--r--emulators/mame/files/patch-scripts_genie.lua34
-rw-r--r--emulators/mame/files/patch-scripts_src_main.lua4
-rw-r--r--emulators/mame/files/patch-scripts_src_osd_modules.lua26
-rw-r--r--emulators/mame/pkg-plist17
-rw-r--r--emulators/mupen64plus-video-glide64mk2/Makefile2
-rw-r--r--emulators/nemu/Makefile3
-rw-r--r--emulators/nemu/distinfo6
-rw-r--r--emulators/nestopia/Makefile9
-rw-r--r--emulators/nestopia/distinfo6
-rw-r--r--emulators/open-vm-tools/files/patch-Makefile.am2
-rw-r--r--emulators/open-vm-tools/pkg-plist2
-rw-r--r--emulators/pcsx2/Makefile6
-rw-r--r--emulators/pcsx2/distinfo6
-rw-r--r--emulators/ppsspp/Makefile1
-rw-r--r--emulators/qemu/Makefile3
-rw-r--r--emulators/qemu/distinfo6
-rw-r--r--emulators/rpcs3/Makefile1
-rw-r--r--emulators/virtualbox-ose-70/Makefile2
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c44
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile23
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk4
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk50
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk6
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk15
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c70
-rw-r--r--emulators/virtualbox-ose-70/files/vboxinit.in2
-rw-r--r--emulators/virtualbox-ose-71/Makefile6
-rw-r--r--emulators/virtualbox-ose-71/distinfo14
-rw-r--r--emulators/virtualbox-ose-71/files/patch-configure41
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c44
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile23
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk4
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk50
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk6
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk15
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_common_misc_handletablectx.cpp24
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c76
-rw-r--r--emulators/virtualbox-ose-71/files/vboxinit.in2
-rw-r--r--emulators/virtualbox-ose-72/Makefile6
-rw-r--r--emulators/virtualbox-ose-72/distinfo14
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c32
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile23
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk4
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk50
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk4
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk15
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_common_misc_handletablectx.cpp24
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c76
-rw-r--r--emulators/virtualbox-ose-72/files/vboxinit.in2
-rw-r--r--emulators/virtualbox-ose-additions-70/Makefile174
-rw-r--r--emulators/virtualbox-ose-additions-70/distinfo3
-rw-r--r--emulators/virtualbox-ose-additions-70/files/vboxguest.in64
-rw-r--r--emulators/virtualbox-ose-additions-70/files/vboxservice.in23
-rw-r--r--emulators/virtualbox-ose-additions-70/files/vboxvideo.conf5
-rw-r--r--emulators/virtualbox-ose-additions-70/pkg-descr6
-rw-r--r--emulators/virtualbox-ose-additions-70/pkg-message36
-rw-r--r--emulators/virtualbox-ose-additions-70/pkg-plist12
-rw-r--r--emulators/virtualbox-ose-additions-71/Makefile174
-rw-r--r--emulators/virtualbox-ose-additions-71/distinfo3
-rw-r--r--emulators/virtualbox-ose-additions-71/files/vboxguest.in64
-rw-r--r--emulators/virtualbox-ose-additions-71/files/vboxservice.in23
-rw-r--r--emulators/virtualbox-ose-additions-71/files/vboxvideo.conf5
-rw-r--r--emulators/virtualbox-ose-additions-71/pkg-descr6
-rw-r--r--emulators/virtualbox-ose-additions-71/pkg-message36
-rw-r--r--emulators/virtualbox-ose-additions-71/pkg-plist12
-rw-r--r--emulators/virtualbox-ose-additions-72/Makefile174
-rw-r--r--emulators/virtualbox-ose-additions-72/distinfo3
-rw-r--r--emulators/virtualbox-ose-additions-72/files/vboxguest.in64
-rw-r--r--emulators/virtualbox-ose-additions-72/files/vboxservice.in23
-rw-r--r--emulators/virtualbox-ose-additions-72/files/vboxvideo.conf5
-rw-r--r--emulators/virtualbox-ose-additions-72/pkg-descr6
-rw-r--r--emulators/virtualbox-ose-additions-72/pkg-message36
-rw-r--r--emulators/virtualbox-ose-additions-72/pkg-plist12
-rw-r--r--emulators/virtualbox-ose-additions-nox11-70/Makefile8
-rw-r--r--emulators/virtualbox-ose-additions-nox11-71/Makefile8
-rw-r--r--emulators/virtualbox-ose-additions-nox11-72/Makefile8
-rw-r--r--emulators/virtualbox-ose-kmod-71/Makefile2
-rw-r--r--emulators/virtualbox-ose-kmod-71/distinfo6
-rw-r--r--emulators/virtualbox-ose-kmod-72/Makefile2
-rw-r--r--emulators/virtualbox-ose-kmod-72/distinfo6
-rw-r--r--emulators/virtualbox-ose-legacy/Makefile2
-rw-r--r--emulators/virtualbox-ose-legacy/files/vboxinit.in2
-rw-r--r--emulators/virtualbox-ose-nox11-71/Makefile2
-rw-r--r--emulators/virtualbox-ose-nox11-72/Makefile2
-rw-r--r--emulators/virtualbox-ose/Makefile2
-rw-r--r--emulators/virtualbox-ose/files/vboxinit.in2
-rw-r--r--emulators/wine-devel/Makefile14
-rw-r--r--emulators/wine-devel/distinfo6
-rw-r--r--emulators/wine-devel/files/pkg-message.in11
-rw-r--r--emulators/wine-devel/pkg-plist8
-rw-r--r--emulators/wine-gecko-devel/Makefile2
-rw-r--r--emulators/wine-mono-devel/Makefile2
-rw-r--r--emulators/wine-mono-devel/distinfo6
-rw-r--r--emulators/wine/Makefile45
-rw-r--r--emulators/yuzu/Makefile2
145 files changed, 1812 insertions, 1276 deletions
diff --git a/emulators/86Box/Makefile b/emulators/86Box/Makefile
index 6ed2545ec34e..b9d9eb97d46d 100644
--- a/emulators/86Box/Makefile
+++ b/emulators/86Box/Makefile
@@ -1,6 +1,6 @@
PORTNAME= 86Box
DISTVERSIONPREFIX= v
-DISTVERSION= 5.0
+DISTVERSION= 5.2
CATEGORIES= emulators
MAINTAINER= tiga@FreeBSD.org
@@ -23,38 +23,28 @@ LIB_DEPENDS= libevdev.so:devel/libevdev \
libsndfile.so:audio/libsndfile \
libxkbcommon.so:x11/libxkbcommon
-FLAVORS= qt6 qt5
-FLAVOR?= qt6
-qt5_PKGNAMESUFFIX= -qt5
-qt6_PKGNAMESUFFIX= -qt6
-
-USES= cmake compiler:c++11-lang gnome pkgconfig qmake sdl xorg
+USES= cmake compiler:c++11-lang gl gnome pkgconfig qmake qt:6 sdl \
+ xorg
USE_GITHUB= yes
+USE_GL= opengl
USE_GNOME= glib20
+USE_QT= base tools:build
USE_SDL= sdl2
USE_XORG= x11 xcb xext xi
-.if ${FLAVOR} == qt5
-USES+= qt:5
-USE_QT= core gui network opengl widgets buildtools:build \
- linguisttools:build
-.else
BUILD_DEPENDS+= vulkan-headers>0:graphics/vulkan-headers
-USES+= gl qt:6
-USE_GL= opengl
-USE_QT= base tools:build
CMAKE_ON= USE_QT6
-CXXFLAGS+= -I${LOCALBASE}/include/qt6/QtGui/`pkg-config --modversion Qt6Gui`/QtGui
-.endif
-CMAKE_ON+= RELEASE ${CMAKE_ON_${ARCH}}
+CMAKE_ON+= ${CMAKE_ON_${ARCH}} RELEASE
CMAKE_ON_aarch64= NEW_DYNAREC
-CMAKE_OFF= DISCORD ${CMAKE_OFF_${ARCH}}
+CMAKE_OFF= ${CMAKE_OFF_${ARCH}} DISCORD
CMAKE_OFF_powerpc64le= DYNAREC
-SUB_FILES= 86Box-install-roms.sh
-SUB_LIST= DISTVERSION=${DISTVERSION} \
- DISTVERSIONPREFIX=${DISTVERSIONPREFIX}
+CXXFLAGS+= -I${LOCALBASE}/include/qt6/QtGui/`pkg-config --modversion Qt6Gui`/QtGui
+
+SUB_FILES= 86Box-install-roms.sh
+SUB_LIST= DISTVERSION=${DISTVERSION} \
+ DISTVERSIONPREFIX=${DISTVERSIONPREFIX}
OPTIONS_DEFINE= NLS WAYLAND
OPTIONS_DEFAULT= WAYLAND
@@ -64,7 +54,7 @@ NLS_CONFIGURE_ENABLE= nls
WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland
WAYLAND_USES= kde:5
-WAYLAND_USE= kde=ecm:build
+WAYLAND_USE= KDE=ecm:build
WAYLAND_CMAKE_OFF= -DCMAKE_DISABLE_FIND_PACKAGE_Wayland:BOOL=ON
ICON_RESOLUTIONS= 128x128 192x192 256x256 48x48 512x512 64x64 72x72 96x96
diff --git a/emulators/86Box/distinfo b/emulators/86Box/distinfo
index a08ab5ac5399..ca8e7d02684b 100644
--- a/emulators/86Box/distinfo
+++ b/emulators/86Box/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1756060000
-SHA256 (86Box-86Box-v5.0_GH0.tar.gz) = 00899cb06eb5591df57756d13929a470e50d5d87bc219d1d1d36ae7bbe83a4bf
-SIZE (86Box-86Box-v5.0_GH0.tar.gz) = 13880473
+TIMESTAMP = 1761772842
+SHA256 (86Box-86Box-v5.2_GH0.tar.gz) = 0cdc51993563f88c1b586429207f004cdb08917887008d6b224d3cc2779559a3
+SIZE (86Box-86Box-v5.2_GH0.tar.gz) = 13933308
diff --git a/emulators/86Box/files/patch-cmake_flags-gcc-aarch64.cmake b/emulators/86Box/files/patch-cmake_flags-gcc-aarch64.cmake
deleted file mode 100644
index 3a58a593294f..000000000000
--- a/emulators/86Box/files/patch-cmake_flags-gcc-aarch64.cmake
+++ /dev/null
@@ -1,10 +0,0 @@
---- cmake/flags-gcc-aarch64.cmake.orig 2024-07-26 18:14:45 UTC
-+++ cmake/flags-gcc-aarch64.cmake
-@@ -14,7 +14,4 @@
- # Copyright 2021 David Hrdlička.
- #
-
--string(APPEND CMAKE_C_FLAGS_INIT " -march=armv8-a")
--string(APPEND CMAKE_CXX_FLAGS_INIT " -march=armv8-a")
--
- include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc.cmake)
diff --git a/emulators/86Box/files/patch-cmake_flags-gcc-armv7.cmake b/emulators/86Box/files/patch-cmake_flags-gcc-armv7.cmake
deleted file mode 100644
index 5809748fa55e..000000000000
--- a/emulators/86Box/files/patch-cmake_flags-gcc-armv7.cmake
+++ /dev/null
@@ -1,10 +0,0 @@
---- cmake/flags-gcc-armv7.cmake.orig 2024-07-26 18:16:08 UTC
-+++ cmake/flags-gcc-armv7.cmake
-@@ -14,7 +14,4 @@
- # Copyright 2021 David Hrdlička.
- #
-
--string(APPEND CMAKE_C_FLAGS_INIT " -march=armv7-a+fp -mfloat-abi=hard")
--string(APPEND CMAKE_CXX_FLAGS_INIT " -march=armv7-a+fp -mfloat-abi=hard")
--
- include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc.cmake)
diff --git a/emulators/86Box/files/patch-cmake_flags-gcc-x86__64.cmake b/emulators/86Box/files/patch-cmake_flags-gcc-x86__64.cmake
deleted file mode 100644
index 100bdd0cb47c..000000000000
--- a/emulators/86Box/files/patch-cmake_flags-gcc-x86__64.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
---- cmake/flags-gcc-x86_64.cmake.orig 2024-07-26 18:16:26 UTC
-+++ cmake/flags-gcc-x86_64.cmake
-@@ -14,7 +14,7 @@
- # Copyright 2021 David Hrdlička.
- #
-
--string(APPEND CMAKE_C_FLAGS_INIT " -m64 -march=x86-64 -msse2 -mfpmath=sse -mstackrealign")
--string(APPEND CMAKE_CXX_FLAGS_INIT " -m64 -march=x86-64 -msse2 -mfpmath=sse -mstackrealign")
-+string(APPEND CMAKE_C_FLAGS_INIT " -mstackrealign")
-+string(APPEND CMAKE_CXX_FLAGS_INIT " -mstackrealign")
-
- include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc.cmake)
diff --git a/emulators/86Box/files/patch-cmake_flags-gcc.cmake b/emulators/86Box/files/patch-cmake_flags-gcc.cmake
deleted file mode 100644
index d9b56c9c71ed..000000000000
--- a/emulators/86Box/files/patch-cmake_flags-gcc.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
---- cmake/flags-gcc.cmake.orig 2024-07-26 18:17:03 UTC
-+++ cmake/flags-gcc.cmake
-@@ -16,8 +16,6 @@ string(APPEND CMAKE_CXX_FLAGS_INIT " -fom
- # Define our flags
- string(APPEND CMAKE_C_FLAGS_INIT " -fomit-frame-pointer -Wall -fno-strict-aliasing -Werror=implicit-int -Werror=implicit-function-declaration -Werror=int-conversion -Werror=strict-prototypes -Werror=old-style-definition")
- string(APPEND CMAKE_CXX_FLAGS_INIT " -fomit-frame-pointer -Wall -fno-strict-aliasing")
--string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " -g0 -O3")
--string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -g0 -O3")
- string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " -ggdb -Og")
- string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " -ggdb -Og")
- string(APPEND CMAKE_C_FLAGS_OPTIMIZED_INIT " -march=native -mtune=native -O3 -ffp-contract=fast -flto")
diff --git a/emulators/86Box/files/patch-src_cdrom_CMakeLists.txt b/emulators/86Box/files/patch-src_cdrom_CMakeLists.txt
deleted file mode 100644
index c02dd2399e58..000000000000
--- a/emulators/86Box/files/patch-src_cdrom_CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/cdrom/CMakeLists.txt.orig 2025-08-24 18:40:59 UTC
-+++ src/cdrom/CMakeLists.txt
-@@ -26,6 +26,7 @@ target_link_libraries(86Box PkgConfig::SNDFILE)
- cdrom_mke.c
- )
- target_link_libraries(86Box PkgConfig::SNDFILE)
-+target_include_directories(cdrom PRIVATE /usr/local/include)
-
- if(CDROM_MITSUMI)
- target_compile_definitions(cdrom PRIVATE USE_CDROM_MITSUMI)
diff --git a/emulators/86Box/files/patch-src_network_CMakeLists.txt b/emulators/86Box/files/patch-src_network_CMakeLists.txt
deleted file mode 100644
index 6009eef2e7cb..000000000000
--- a/emulators/86Box/files/patch-src_network_CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/network/CMakeLists.txt.orig 2025-08-24 18:50:29 UTC
-+++ src/network/CMakeLists.txt
-@@ -71,6 +71,7 @@ if (UNIX)
- endif()
-
- if (UNIX)
-+ set_source_files_properties(net_slirp.c PROPERTIES COMPILE_FLAGS "-I/usr/local/include")
- find_path(HAS_VDE "libvdeplug.h" PATHS ${VDE_INCLUDE_DIR} "/usr/include /usr/local/include" "/opt/homebrew/include" )
- if(HAS_VDE)
- find_library(VDE_LIB vdeplug)
diff --git a/emulators/86Box/files/patch-src_printer_CMakeLists.txt b/emulators/86Box/files/patch-src_printer_CMakeLists.txt
deleted file mode 100644
index a07e28d70427..000000000000
--- a/emulators/86Box/files/patch-src_printer_CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/printer/CMakeLists.txt.orig 2025-08-24 12:26:31 UTC
-+++ src/printer/CMakeLists.txt
-@@ -37,6 +37,7 @@ target_link_libraries(86Box PkgConfig::FREETYPE)
- find_package(PkgConfig REQUIRED)
- pkg_check_modules(FREETYPE REQUIRED IMPORTED_TARGET freetype2)
- target_link_libraries(86Box PkgConfig::FREETYPE)
-+target_include_directories(print PRIVATE ${FREETYPE_INCLUDE_DIRS})
- if(STATIC_BUILD)
- # if(QT)
- # Qt provides its own version of harfbuzz which leads to duplicated symbols.
diff --git a/emulators/86Box/files/patch-src_qt_qt__mainwindow.cpp b/emulators/86Box/files/patch-src_qt_qt__mainwindow.cpp
deleted file mode 100644
index 89635e4db214..000000000000
--- a/emulators/86Box/files/patch-src_qt_qt__mainwindow.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/qt/qt_mainwindow.cpp.orig 2025-08-24 12:26:31 UTC
-+++ src/qt/qt_mainwindow.cpp
-@@ -469,6 +469,7 @@ MainWindow::MainWindow(QWidget *parent)
-
- #if QT_CONFIG(vulkan)
- bool vulkanAvailable = false;
-+ if (0)
- {
- QVulkanInstance instance;
- instance.setApiVersion(QVersionNumber(1, 0));
diff --git a/emulators/86Box/files/patch-src_qt_qt__vmmanager__details.cpp b/emulators/86Box/files/patch-src_qt_qt__vmmanager__details.cpp
deleted file mode 100644
index 6386154d5c15..000000000000
--- a/emulators/86Box/files/patch-src_qt_qt__vmmanager__details.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
---- src/qt/qt_vmmanager_details.cpp.orig 2025-08-24 19:07:21 UTC
-+++ src/qt/qt_vmmanager_details.cpp
-@@ -248,52 +248,52 @@ VMManagerDetails::updateConfig(VMManagerSystem *passed
-
- // System
- systemSection->clear();
-- systemSection->addSection("Machine", passed_sysconfig->getDisplayValue(Display::Name::Machine));
-- systemSection->addSection("CPU", passed_sysconfig->getDisplayValue(Display::Name::CPU));
-- systemSection->addSection("Memory", passed_sysconfig->getDisplayValue(Display::Name::Memory));
-+ systemSection->addSection("Machine", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Machine));
-+ systemSection->addSection("CPU", passed_sysconfig->getDisplayValue(VMManager::Display::Name::CPU));
-+ systemSection->addSection("Memory", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Memory));
-
- // Video
- videoSection->clear();
-- videoSection->addSection("Video", passed_sysconfig->getDisplayValue(Display::Name::Video));
-- if(!passed_sysconfig->getDisplayValue(Display::Name::Voodoo).isEmpty()) {
-- videoSection->addSection("Voodoo", passed_sysconfig->getDisplayValue(Display::Name::Voodoo));
-+ videoSection->addSection("Video", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Video));
-+ if(!passed_sysconfig->getDisplayValue(VMManager::Display::Name::Voodoo).isEmpty()) {
-+ videoSection->addSection("Voodoo", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Voodoo));
- }
-
- // Disks
- storageSection->clear();
-- storageSection->addSection("Disks", passed_sysconfig->getDisplayValue(Display::Name::Disks));
-- storageSection->addSection("Floppy", passed_sysconfig->getDisplayValue(Display::Name::Floppy));
-- storageSection->addSection("CD-ROM", passed_sysconfig->getDisplayValue(Display::Name::CD));
-- storageSection->addSection("Removable disks", passed_sysconfig->getDisplayValue(Display::Name::RDisk));
-- storageSection->addSection("MO", passed_sysconfig->getDisplayValue(Display::Name::MO));
-- storageSection->addSection("SCSI", passed_sysconfig->getDisplayValue(Display::Name::SCSIController));
-- storageSection->addSection("Controllers", passed_sysconfig->getDisplayValue(Display::Name::StorageController));
-+ storageSection->addSection("Disks", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Disks));
-+ storageSection->addSection("Floppy", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Floppy));
-+ storageSection->addSection("CD-ROM", passed_sysconfig->getDisplayValue(VMManager::Display::Name::CD));
-+ storageSection->addSection("Removable disks", passed_sysconfig->getDisplayValue(VMManager::Display::Name::RDisk));
-+ storageSection->addSection("MO", passed_sysconfig->getDisplayValue(VMManager::Display::Name::MO));
-+ storageSection->addSection("SCSI", passed_sysconfig->getDisplayValue(VMManager::Display::Name::SCSIController));
-+ storageSection->addSection("Controllers", passed_sysconfig->getDisplayValue(VMManager::Display::Name::StorageController));
-
- // Audio
- audioSection->clear();
-- audioSection->addSection("Audio", passed_sysconfig->getDisplayValue(Display::Name::Audio));
-- audioSection->addSection("MIDI Out", passed_sysconfig->getDisplayValue(Display::Name::MidiOut));
-+ audioSection->addSection("Audio", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Audio));
-+ audioSection->addSection("MIDI Out", passed_sysconfig->getDisplayValue(VMManager::Display::Name::MidiOut));
-
- // Network
- networkSection->clear();
-- networkSection->addSection("NIC", passed_sysconfig->getDisplayValue(Display::Name::NIC));
-+ networkSection->addSection("NIC", passed_sysconfig->getDisplayValue(VMManager::Display::Name::NIC));
-
- // Input
- inputSection->clear();
-- inputSection->addSection("Keyboard", passed_sysconfig->getDisplayValue(Display::Name::Keyboard));
-- inputSection->addSection("Mouse", passed_sysconfig->getDisplayValue(Display::Name::Mouse));
-- inputSection->addSection("Joystick", passed_sysconfig->getDisplayValue(Display::Name::Joystick));
-+ inputSection->addSection("Keyboard", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Keyboard));
-+ inputSection->addSection("Mouse", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Mouse));
-+ inputSection->addSection("Joystick", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Joystick));
-
- // Ports
- portsSection->clear();
-- portsSection->addSection("Serial ports", passed_sysconfig->getDisplayValue(Display::Name::Serial));
-- portsSection->addSection("Parallel ports", passed_sysconfig->getDisplayValue(Display::Name::Parallel));
-+ portsSection->addSection("Serial ports", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Serial));
-+ portsSection->addSection("Parallel ports", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Parallel));
-
- // Other devices
- otherSection->clear();
-- otherSection->addSection("ISA RTC", passed_sysconfig->getDisplayValue(Display::Name::IsaRtc));
-- otherSection->addSection("ISA RAM", passed_sysconfig->getDisplayValue(Display::Name::IsaMem));
-- otherSection->addSection("ISA ROM", passed_sysconfig->getDisplayValue(Display::Name::IsaRom));
-+ otherSection->addSection("ISA RTC", passed_sysconfig->getDisplayValue(VMManager::Display::Name::IsaRtc));
-+ otherSection->addSection("ISA RAM", passed_sysconfig->getDisplayValue(VMManager::Display::Name::IsaMem));
-+ otherSection->addSection("ISA ROM", passed_sysconfig->getDisplayValue(VMManager::Display::Name::IsaRom));
-
- systemSection->setSections();
- videoSection->setSections();
diff --git a/emulators/86Box/files/patch-src_qt_qt__vmmanager__detailsection.cpp b/emulators/86Box/files/patch-src_qt_qt__vmmanager__detailsection.cpp
deleted file mode 100644
index 4b35ec0aa35b..000000000000
--- a/emulators/86Box/files/patch-src_qt_qt__vmmanager__detailsection.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/qt/qt_vmmanager_detailsection.cpp.orig 2025-08-24 19:05:30 UTC
-+++ src/qt/qt_vmmanager_detailsection.cpp
-@@ -145,7 +145,7 @@ void
- }
-
- void
--VMManagerDetailSection::addSection(const QString &name, const QString &value, Display::Name displayField)
-+VMManagerDetailSection::addSection(const QString &name, const QString &value, VMManager::Display::Name displayField)
- {
- const auto new_section = DetailSection { name, value};
- sections.push_back(new_section);
diff --git a/emulators/86Box/files/patch-src_qt_qt__vmmanager__system.cpp b/emulators/86Box/files/patch-src_qt_qt__vmmanager__system.cpp
deleted file mode 100644
index aa94a21eab29..000000000000
--- a/emulators/86Box/files/patch-src_qt_qt__vmmanager__system.cpp
+++ /dev/null
@@ -1,219 +0,0 @@
---- src/qt/qt_vmmanager_system.cpp.orig 2025-08-24 19:09:53 UTC
-+++ src/qt/qt_vmmanager_system.cpp
-@@ -557,7 +557,7 @@ VMManagerSystem::setupVars() {
- }
- }
- }
-- display_table[Display::Name::Machine] = machine_name;
-+ display_table[VMManager::Display::Name::Machine] = machine_name;
-
- // CPU: Combine name with speed and FPU
- QString cpu_name = "Unknown";
-@@ -592,34 +592,34 @@ VMManagerSystem::setupVars() {
- // int speed_display = machine_config["cpu_speed"].toInt() / 1000000;
- // cpu_name.append(QString::number(speed_display).prepend(" / "));
- // cpu_name.append(QCoreApplication::translate("", "MHz").prepend(' '));
-- display_table[Display::Name::CPU] = cpu_name;
-+ display_table[VMManager::Display::Name::CPU] = cpu_name;
-
- // Memory
- int divisor = (ram_granularity < 1024) ? 1 : 1024;
- QString display_unit = (divisor == 1) ? "KB" : "MB";
- auto mem_display = QString::number(machine_config["mem_size"].toInt() / divisor);
- mem_display.append(QCoreApplication::translate("", display_unit.toUtf8().constData()).prepend(' '));
-- display_table[Display::Name::Memory] = mem_display;
-+ display_table[VMManager::Display::Name::Memory] = mem_display;
-
- // Video card
- int video_int = video_get_video_from_internal_name(video_config["gfxcard"].toUtf8().data());
- const device_t* video_dev = video_card_getdevice(video_int);
-- display_table[Display::Name::Video] = DeviceConfig::DeviceName(video_dev, video_get_internal_name(video_int), 1);
-+ display_table[VMManager::Display::Name::Video] = DeviceConfig::DeviceName(video_dev, video_get_internal_name(video_int), 1);
-
- // Secondary video
- if (video_config.contains("gfxcard_2")) {
- int video2_int = video_get_video_from_internal_name(video_config["gfxcard_2"].toUtf8().data());
- const device_t* video2_dev = video_card_getdevice(video2_int);
-- display_table[Display::Name::Video].append(DeviceConfig::DeviceName(video2_dev, video_get_internal_name(video2_int), 1).prepend(VMManagerDetailSection::sectionSeparator));
-+ display_table[VMManager::Display::Name::Video].append(DeviceConfig::DeviceName(video2_dev, video_get_internal_name(video2_int), 1).prepend(VMManagerDetailSection::sectionSeparator));
- }
-
- // Add-on video that's not Voodoo
- if (video_config.contains("8514a") && (video_config["8514a"].toInt() != 0))
-- display_table[Display::Name::Video].append(tr("IBM 8514/A Graphics").prepend(VMManagerDetailSection::sectionSeparator));
-+ display_table[VMManager::Display::Name::Video].append(tr("IBM 8514/A Graphics").prepend(VMManagerDetailSection::sectionSeparator));
- if (video_config.contains("xga") && (video_config["xga"].toInt() != 0))
-- display_table[Display::Name::Video].append(tr("XGA Graphics").prepend(VMManagerDetailSection::sectionSeparator));
-+ display_table[VMManager::Display::Name::Video].append(tr("XGA Graphics").prepend(VMManagerDetailSection::sectionSeparator));
- if (video_config.contains("da2") && (video_config["da2"].toInt() != 0))
-- display_table[Display::Name::Video].append(tr("IBM PS/55 Display Adapter Graphics").prepend(VMManagerDetailSection::sectionSeparator));
-+ display_table[VMManager::Display::Name::Video].append(tr("IBM PS/55 Display Adapter Graphics").prepend(VMManagerDetailSection::sectionSeparator));
-
- // Voodoo
- QString voodoo_name = "";
-@@ -641,7 +641,7 @@ VMManagerSystem::setupVars() {
- break;
- }
- }
-- display_table[Display::Name::Voodoo] = voodoo_name;
-+ display_table[VMManager::Display::Name::Voodoo] = voodoo_name;
-
- // Drives
- // First the number of disks
-@@ -666,7 +666,7 @@ VMManagerSystem::setupVars() {
- if (disks.count()) {
- disks_display.append(" / ").append(bus_types.keys().join(", ").toUpper());
- }
--// display_table[Display::Name::Disks] = disks_display;
-+// display_table[VMManager::Display::Name::Disks] = disks_display;
-
- // Drives
- QString new_disk_display;
-@@ -699,7 +699,7 @@ VMManagerSystem::setupVars() {
- if(new_disk_display.isEmpty()) {
- new_disk_display = tr("No disks");
- }
-- display_table[Display::Name::Disks] = new_disk_display;
-+ display_table[VMManager::Display::Name::Disks] = new_disk_display;
-
- // Floppy & CD-ROM
- QStringList floppyDevices;
-@@ -748,8 +748,8 @@ VMManagerSystem::setupVars() {
- }
- }
-
-- display_table[Display::Name::Floppy] = floppyDevices.join(VMManagerDetailSection::sectionSeparator);
-- display_table[Display::Name::CD] = cdromDevices.join(VMManagerDetailSection::sectionSeparator);
-+ display_table[VMManager::Display::Name::Floppy] = floppyDevices.join(VMManagerDetailSection::sectionSeparator);
-+ display_table[VMManager::Display::Name::CD] = cdromDevices.join(VMManagerDetailSection::sectionSeparator);
-
- // Removable disks & MO
- QStringList rdiskDevices;
-@@ -786,8 +786,8 @@ VMManagerSystem::setupVars() {
- }
- }
-
-- display_table[Display::Name::RDisk] = rdiskDevices.join(VMManagerDetailSection::sectionSeparator);
-- display_table[Display::Name::MO] = moDevices.join(VMManagerDetailSection::sectionSeparator);
-+ display_table[VMManager::Display::Name::RDisk] = rdiskDevices.join(VMManagerDetailSection::sectionSeparator);
-+ display_table[VMManager::Display::Name::MO] = moDevices.join(VMManagerDetailSection::sectionSeparator);
-
-
- // SCSI controllers
-@@ -805,7 +805,7 @@ VMManagerSystem::setupVars() {
- }
- }
- }
-- display_table[Display::Name::SCSIController] = scsiControllers.join(VMManagerDetailSection::sectionSeparator);
-+ display_table[VMManager::Display::Name::SCSIController] = scsiControllers.join(VMManagerDetailSection::sectionSeparator);
-
- // Hard and floppy disk controllers
- QStringList storageControllers;
-@@ -864,7 +864,7 @@ VMManagerSystem::setupVars() {
- if (storage_config.contains(ide_qua_internal_name) && (storage_config[ide_qua_internal_name].toInt() != 0))
- storageControllers.append(DeviceConfig::DeviceName(hdc_get_device(hdc_get_from_internal_name(ide_qua_internal_name.toUtf8().data())), ide_qua_internal_name.toUtf8().constData(), 1));
-
-- display_table[Display::Name::StorageController] = storageControllers.join(VMManagerDetailSection::sectionSeparator);
-+ display_table[VMManager::Display::Name::StorageController] = storageControllers.join(VMManagerDetailSection::sectionSeparator);
-
- // Audio
- QStringList sndCards;
-@@ -889,7 +889,7 @@ VMManagerSystem::setupVars() {
- if(sndCards.isEmpty()) {
- sndCards.append(tr("None"));
- }
-- display_table[Display::Name::Audio] = sndCards.join(VMManagerDetailSection::sectionSeparator);
-+ display_table[VMManager::Display::Name::Audio] = sndCards.join(VMManagerDetailSection::sectionSeparator);
-
- // MIDI
- QString midiOutDev;
-@@ -901,7 +901,7 @@ VMManagerSystem::setupVars() {
- midiOutDev = midiDevName;
- }
- }
-- display_table[Display::Name::MidiOut] = midiOutDev;
-+ display_table[VMManager::Display::Name::MidiOut] = midiOutDev;
-
- // midi_device = mt32 (output)
- // mpu401_standalone = 1
-@@ -940,21 +940,21 @@ VMManagerSystem::setupVars() {
- if(nicList.isEmpty()) {
- nicList.append(tr("None"));
- }
-- display_table[Display::Name::NIC] = nicList.join(VMManagerDetailSection::sectionSeparator);
-+ display_table[VMManager::Display::Name::NIC] = nicList.join(VMManagerDetailSection::sectionSeparator);
-
- // Input (Keyboard)
- if (input_config.contains("keyboard_type")) {
- auto keyboard_internal_name = input_config["keyboard_type"];
- auto keyboard_dev = keyboard_get_from_internal_name(keyboard_internal_name.toUtf8().data());
- auto keyboard_dev_name = DeviceConfig::DeviceName(keyboard_get_device(keyboard_dev), keyboard_get_internal_name(keyboard_dev), 0);
-- display_table[Display::Name::Keyboard] = keyboard_dev_name;
-+ display_table[VMManager::Display::Name::Keyboard] = keyboard_dev_name;
- }
-
- // Input (Mouse)
- auto mouse_internal_name = input_config["mouse_type"];
- auto mouse_dev = mouse_get_from_internal_name(mouse_internal_name.toUtf8().data());
- auto mouse_dev_name = DeviceConfig::DeviceName(mouse_get_device(mouse_dev), mouse_get_internal_name(mouse_dev), 0);
-- display_table[Display::Name::Mouse] = mouse_dev_name;
-+ display_table[VMManager::Display::Name::Mouse] = mouse_dev_name;
-
- // Input (joystick)
- QString joystickDevice;
-@@ -965,7 +965,7 @@ VMManagerSystem::setupVars() {
- joystickDevice = joystickName;
- }
- }
-- display_table[Display::Name::Joystick] = joystickDevice;
-+ display_table[VMManager::Display::Name::Joystick] = joystickDevice;
-
- // # Ports
- // Serial
-@@ -1026,8 +1026,8 @@ VMManagerSystem::setupVars() {
- if (portIndex == PARALLEL_MAX)
- break;
- }
-- display_table[Display::Name::Serial] = (serialFinal.empty() ? tr("None") : serialFinal.join(", "));
-- display_table[Display::Name::Parallel] = (lptFinal.empty() ? tr("None") : lptFinal.join((hasLptDevices ? VMManagerDetailSection::sectionSeparator : ", ")));
-+ display_table[VMManager::Display::Name::Serial] = (serialFinal.empty() ? tr("None") : serialFinal.join(", "));
-+ display_table[VMManager::Display::Name::Parallel] = (lptFinal.empty() ? tr("None") : lptFinal.join((hasLptDevices ? VMManagerDetailSection::sectionSeparator : ", ")));
-
- // ISA RTC
- QString isartc_dev_name = "";
-@@ -1036,7 +1036,7 @@ VMManagerSystem::setupVars() {
- auto isartc_dev = isartc_get_from_internal_name(isartc_internal_name.toUtf8().data());
- isartc_dev_name = DeviceConfig::DeviceName(isartc_get_device(isartc_dev), isartc_get_internal_name(isartc_dev), 0);
- }
-- display_table[Display::Name::IsaRtc] = isartc_dev_name;
-+ display_table[VMManager::Display::Name::IsaRtc] = isartc_dev_name;
-
- // ISA RAM
- QStringList IsaMemCards;
-@@ -1053,7 +1053,7 @@ VMManagerSystem::setupVars() {
- }
- }
- }
-- display_table[Display::Name::IsaMem] = IsaMemCards.join(VMManagerDetailSection::sectionSeparator);
-+ display_table[VMManager::Display::Name::IsaMem] = IsaMemCards.join(VMManagerDetailSection::sectionSeparator);
-
- // ISA ROM
- QStringList IsaRomCards;
-@@ -1070,7 +1070,7 @@ VMManagerSystem::setupVars() {
- }
- }
- }
-- display_table[Display::Name::IsaRom] = IsaRomCards.join(VMManagerDetailSection::sectionSeparator);
-+ display_table[VMManager::Display::Name::IsaRom] = IsaRomCards.join(VMManagerDetailSection::sectionSeparator);
- }
-
- bool
-@@ -1119,7 +1119,7 @@ QString
- processStatusChanged();
- }
- QString
--VMManagerSystem::getDisplayValue(Display::Name key)
-+VMManagerSystem::getDisplayValue(VMManager::Display::Name key)
- {
- return (display_table.contains(key)) ? display_table[key] : "";
- }
diff --git a/emulators/86Box/files/patch-src_video_CMakeLists.txt b/emulators/86Box/files/patch-src_video_CMakeLists.txt
deleted file mode 100644
index 36e929c16c4b..000000000000
--- a/emulators/86Box/files/patch-src_video_CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/video/CMakeLists.txt.orig 2025-08-24 18:56:26 UTC
-+++ src/video/CMakeLists.txt
-@@ -143,6 +143,8 @@ add_library(vid OBJECT
-
- )
-
-+target_include_directories(vid PRIVATE /usr/local/include)
-+
- if(G100)
- target_compile_definitions(vid PRIVATE USE_G100)
- endif()
diff --git a/emulators/Makefile b/emulators/Makefile
index dc3ed992a512..dfd04a82b365 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -17,8 +17,6 @@
SUBDIR += catapult
SUBDIR += cemu
SUBDIR += cingb
- SUBDIR += citra
- SUBDIR += citra-qt5
SUBDIR += cpmtools
SUBDIR += cpmtools2
SUBDIR += darcnes
@@ -161,8 +159,14 @@
SUBDIR += virtualbox-ose-71
SUBDIR += virtualbox-ose-72
SUBDIR += virtualbox-ose-additions
+ SUBDIR += virtualbox-ose-additions-70
+ SUBDIR += virtualbox-ose-additions-71
+ SUBDIR += virtualbox-ose-additions-72
SUBDIR += virtualbox-ose-additions-legacy
SUBDIR += virtualbox-ose-additions-nox11
+ SUBDIR += virtualbox-ose-additions-nox11-70
+ SUBDIR += virtualbox-ose-additions-nox11-71
+ SUBDIR += virtualbox-ose-additions-nox11-72
SUBDIR += virtualbox-ose-additions-nox11-legacy
SUBDIR += virtualbox-ose-kmod
SUBDIR += virtualbox-ose-kmod-70
diff --git a/emulators/Ymir/Makefile b/emulators/Ymir/Makefile
index aaf5d4ed0a8c..f0c983419558 100644
--- a/emulators/Ymir/Makefile
+++ b/emulators/Ymir/Makefile
@@ -1,6 +1,7 @@
PORTNAME= Ymir
DISTVERSIONPREFIX= v
-DISTVERSION= 0.1.8
+DISTVERSION= 0.2.0
+PORTREVISION= 1
CATEGORIES= emulators
MAINTAINER= bsdcode@disroot.org
@@ -16,17 +17,23 @@ ONLY_FOR_ARCHS_REASON= upstream only supports aarch64 and amd64
BUILD_DEPENDS= cereal>0:devel/cereal \
concurrentqueue>0:devel/concurrentqueue \
cxxopts>0:devel/cxxopts \
+ date>0:devel/date \
glslangValidator:graphics/glslang \
glslc:graphics/shaderc \
+ libnghttp3>0:www/libnghttp3 \
+ libngtcp2>0:net/libngtcp2 \
+ nlohmann-json>0:devel/nlohmann-json \
+ semver>0:devel/semver \
stb>0:devel/stb \
- tomlplusplus>0:devel/tomlplusplus \
vulkan-headers>0:graphics/vulkan-headers
LIB_DEPENDS= libchdr.so:devel/libchdr \
+ libcurl.so:ftp/curl \
libfmt.so:devel/libfmt \
libglfw.so:graphics/glfw \
libimgui.so:x11-toolkits/imgui \
liblz4.so:archivers/liblz4 \
librtmidi.so:audio/rtmidi \
+ libtomlplusplus.so:devel/tomlplusplus \
libvulkan.so:graphics/vulkan-loader \
libxxhash.so:devel/xxhash
@@ -39,11 +46,11 @@ ${FLAVOR}_BUILD_DEPENDS= ${_${FLAVOR}_BR_DEPENDS}
${FLAVOR}_RUN_DEPENDS= ${_${FLAVOR}_BR_DEPENDS}
USES= cmake compiler:c++20-lang desktop-file-utils gl \
- llvm${_LLVM_${ARCH}} pkgconfig sdl xorg
+ llvm${_LLVM_${ARCH}} localbase pkgconfig sdl xorg
_LLVM_aarch64= :min=21
USE_GITHUB= yes
GH_ACCOUNT= StrikerX3
-GH_TUPLE= StrikerX3:mio:c9dbe3a6f74b2c2c4a6c9621005c3df213a33eaa:mio/vendor/mio
+GH_TUPLE= StrikerX3:mio:4e4cdc711d73d9dc96c0cb9475e6951f476218e6:mio/vendor/mio
USE_GL= glut
USE_SDL= sdl3
USE_XORG= xi xmu
@@ -52,8 +59,7 @@ CMAKE_OFF= Ymir_DEV_BUILD \
Ymir_ENABLE_IMGUI_DEMO \
Ymir_ENABLE_SANDBOX \
Ymir_ENABLE_TESTS \
- Ymir_INCLUDE_PACKAGING \
- Ymir_SHARED_LIBS
+ Ymir_INCLUDE_PACKAGING
CFLAGS+= -I${LOCALBASE}/include/concurrentqueue/moodycamel \
-I${LOCALBASE}/include/stb \
@@ -80,7 +86,7 @@ post-install:
${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/io.github.strikerx3.ymir.desktop \
${STAGEDIR}${DESKTOPDIR}
${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps \
- ${STAGEDIR}${PREFIX}/share/metainfo
+ ${STAGEDIR}${PREFIX}/share/metainfo
${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/ymir.png \
${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps
${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/io.github.strikerx3.ymir.xml \
diff --git a/emulators/Ymir/distinfo b/emulators/Ymir/distinfo
index ea0e78976f0f..26b0995b0a76 100644
--- a/emulators/Ymir/distinfo
+++ b/emulators/Ymir/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1757486628
-SHA256 (StrikerX3-Ymir-v0.1.8_GH0.tar.gz) = 6a5951c25a4a1796c0643aacdced3f31099014e4f89412c5eb11bb385c0218d3
-SIZE (StrikerX3-Ymir-v0.1.8_GH0.tar.gz) = 5477804
-SHA256 (StrikerX3-mio-c9dbe3a6f74b2c2c4a6c9621005c3df213a33eaa_GH0.tar.gz) = 384d3a3ee249ebda0766fa5dc9f8bc5a871c8b2e3d3eedf46f330e6350058738
-SIZE (StrikerX3-mio-c9dbe3a6f74b2c2c4a6c9621005c3df213a33eaa_GH0.tar.gz) = 34871
+TIMESTAMP = 1760363610
+SHA256 (StrikerX3-Ymir-v0.2.0_GH0.tar.gz) = 82270cd8cb0694d7575e1437e9a378e925d85c02cdb2c7eb7557eb8870fd5894
+SIZE (StrikerX3-Ymir-v0.2.0_GH0.tar.gz) = 6306947
+SHA256 (StrikerX3-mio-4e4cdc711d73d9dc96c0cb9475e6951f476218e6_GH0.tar.gz) = 5da72ba39d70edab8cc42075c40895758c4a4ad905f9254ed5fd216757331773
+SIZE (StrikerX3-mio-4e4cdc711d73d9dc96c0cb9475e6951f476218e6_GH0.tar.gz) = 34878
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt b/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt
index e18e7f768ee3..8ba4d51260aa 100644
--- a/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt
@@ -1,11 +1,18 @@
---- apps/ymir-sdl3/CMakeLists.txt.orig 2025-07-20 22:35:27 UTC
+--- apps/ymir-sdl3/CMakeLists.txt.orig 2025-10-12 17:41:59 UTC
+++ apps/ymir-sdl3/CMakeLists.txt
-@@ -256,7 +256,7 @@ target_link_libraries(ymir-sdl3 PRIVATE
- fmt
- cxxopts
- imgui::imgui
-- tomlplusplus::tomlplusplus
-+# tomlplusplus::tomlplusplus
- cereal::cereal
- lz4::lz4
- stb::stb
+@@ -352,12 +352,12 @@ find_package(date CONFIG REQUIRED)
+ find_package(cereal CONFIG REQUIRED)
+ find_package(cxxopts CONFIG REQUIRED)
+ find_package(date CONFIG REQUIRED)
+-find_package(OpenSSL CONFIG REQUIRED)
+ find_package(CURL REQUIRED)
++add_library(CURL::libcurl_static ALIAS CURL::libcurl)
+ find_package(fmt CONFIG REQUIRED)
+-find_package(rtmidi CONFIG REQUIRED)
++pkg_check_modules(rtmidi REQUIRED IMPORTED_TARGET rtmidi)
++add_library(RtMidi::rtmidi ALIAS PkgConfig::rtmidi)
+ find_package(SDL3 CONFIG REQUIRED)
+-find_package(Stb REQUIRED)
+ find_package(tomlplusplus CONFIG REQUIRED)
+
+ target_include_directories(ymir-sdl3
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cdblock__settings__view.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cdblock__settings__view.cpp
new file mode 100644
index 000000000000..b9ecadb667d6
--- /dev/null
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cdblock__settings__view.cpp
@@ -0,0 +1,11 @@
+--- apps/ymir-sdl3/src/app/ui/views/settings/cdblock_settings_view.cpp.orig 2025-10-13 11:40:42 UTC
++++ apps/ymir-sdl3/src/app/ui/views/settings/cdblock_settings_view.cpp
+@@ -6,7 +6,7 @@
+
+ #include <util/sdl_file_dialog.hpp>
+
+-#include <misc/cpp/imgui_stdlib.h>
++#include <imgui_stdlib.h>
+
+ #include <SDL3/SDL_misc.h>
+
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_windows_about__window.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_windows_about__window.cpp
new file mode 100644
index 000000000000..a42fe54d23b6
--- /dev/null
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_windows_about__window.cpp
@@ -0,0 +1,14 @@
+--- apps/ymir-sdl3/src/app/ui/windows/about_window.cpp.orig 2025-10-14 17:56:52 UTC
++++ apps/ymir-sdl3/src/app/ui/windows/about_window.cpp
+@@ -48,6 +48,11 @@
+ #define ZLIB_VERSION "1.3.1" // Private dependency of libchdr
+ #define ZSTD_VERSION "1.5.6" // Private dependency of libchdr
+
++// Needed on 13.5, openssl in base is too old
++#ifndef OPENSSL_FULL_VERSION_STR
++#define OPENSSL_FULL_VERSION_STR OPENSSL_VERSION_TEXT
++#endif
++
+ static const std::string fmtVersion = std::to_string(FMT_VERSION / 10000) + "." +
+ std::to_string(FMT_VERSION / 100 % 100) + "." + std::to_string(FMT_VERSION % 100);
+
diff --git a/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt b/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt
index 2c971a407b7a..607ae6341003 100644
--- a/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt
+++ b/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt
@@ -1,13 +1,15 @@
---- libs/ymir-core/CMakeLists.txt.orig 2025-07-20 22:35:27 UTC
+--- libs/ymir-core/CMakeLists.txt.orig 2025-10-13 12:04:15 UTC
+++ libs/ymir-core/CMakeLists.txt
-@@ -239,7 +239,10 @@ target_compile_features(ymir-core PUBLIC cxx_std_20)
+@@ -289,10 +289,12 @@ target_compile_features(ymir-core PUBLIC cxx_std_20)
+ )
target_compile_features(ymir-core PUBLIC cxx_std_20)
- ## Add dependencies
+find_package(Threads REQUIRED)
-+
+ find_package(fmt CONFIG REQUIRED)
+
+ ## Add dependencies
target_link_libraries(ymir-core PUBLIC
+ Threads::Threads
- fmt
+ fmt::fmt
mio
concurrentqueue
diff --git a/emulators/Ymir/files/patch-vendor_CMakeLists.txt b/emulators/Ymir/files/patch-vendor_CMakeLists.txt
index c6c095066435..7b6c480df4a9 100644
--- a/emulators/Ymir/files/patch-vendor_CMakeLists.txt
+++ b/emulators/Ymir/files/patch-vendor_CMakeLists.txt
@@ -1,100 +1,40 @@
---- vendor/CMakeLists.txt.orig 2025-07-20 22:35:27 UTC
+--- vendor/CMakeLists.txt.orig 2025-10-12 17:41:59 UTC
+++ vendor/CMakeLists.txt
-@@ -22,9 +22,12 @@ message(STATUS "Adding vendored libraries")
-
- message(STATUS "Adding vendored libraries")
-
-+find_package(PkgConfig REQUIRED)
-+
- # {fmt} - https://github.com/fmtlib/fmt
- message(STATUS "==> {fmt}")
--add_subdirectory(fmt EXCLUDE_FROM_ALL)
-+pkg_check_modules(fmt REQUIRED IMPORTED_TARGET GLOBAL fmt)
-+add_library(fmt ALIAS PkgConfig::fmt)
-
- # mio - https://github.com/vimpunk/mio
- # Notes:
-@@ -36,65 +39,55 @@ message(STATUS "==> SDL")
-
- # SDL - https://github.com/libsdl-org/SDL
- message(STATUS "==> SDL")
--set(SDL_DISABLE_UNINSTALL ON)
--set(SDL_TEST_LIBRARY OFF)
--set(SDL_TESTS OFF)
--set(SDL_EXAMPLES OFF)
--if (BUILD_SHARED_LIBS)
-- set(SDL_SHARED ON)
-- set(SDL_STATIC OFF)
--else ()
-- set(SDL_SHARED OFF)
-- set(SDL_STATIC ON)
--endif ()
--add_subdirectory_quiet(SDL EXCLUDE_FROM_ALL)
-+find_package(SDL3 REQUIRED GLOBAL)
-
- # cxxopts - https://github.com/jarro2783/cxxopts
- message(STATUS "==> cxxopts")
--add_subdirectory(cxxopts EXCLUDE_FROM_ALL)
-+find_package(cxxopts REQUIRED GLOBAL)
-+add_library(cxxopts ALIAS cxxopts::cxxopts)
-
+@@ -36,28 +36,31 @@ message(STATUS "==> concurrentqueue")
# concurrentqueue - https://github.com/cameron314/concurrentqueue
+ # - Not available as a vcpkg port
message(STATUS "==> concurrentqueue")
-add_subdirectory(concurrentqueue EXCLUDE_FROM_ALL)
+find_package(concurrentqueue REQUIRED GLOBAL)
+add_library(concurrentqueue ALIAS concurrentqueue::concurrentqueue)
# dear ImGui - https://github.com/ocornut/imgui
- # docking branch
+ # - Using the docking branch
message(STATUS "==> dear ImGui")
-add_subdirectory(imgui EXCLUDE_FROM_ALL)
+find_package(imgui REQUIRED GLOBAL)
- # toml++ - https://github.com/marzer/tomlplusplus
- message(STATUS "==> toml++")
--add_subdirectory(tomlplusplus EXCLUDE_FROM_ALL)
-+find_package(tomlplusplus REQUIRED GLOBAL)
-
# xxHash - https://github.com/Cyan4973/xxHash
+ # - Unable to configure AVX2 support
message(STATUS "==> xxHash")
-add_subdirectory(xxHash EXCLUDE_FROM_ALL)
+pkg_check_modules(libxxhash REQUIRED IMPORTED_TARGET GLOBAL libxxhash)
+add_library(xxHash::xxHash ALIAS PkgConfig::libxxhash)
# lz4 - https://github.com/lz4/lz4
+ # - Unable to configure AVX2 support
message(STATUS "==> lz4")
-add_subdirectory(lz4 EXCLUDE_FROM_ALL)
+pkg_check_modules(liblz4 REQUIRED IMPORTED_TARGET GLOBAL liblz4)
+add_library(lz4::lz4 ALIAS PkgConfig::liblz4)
- # cereal - https://github.com/USCiLab/cereal
- message(STATUS "==> cereal")
--set(BUILD_DOC OFF)
--set(BUILD_SANDBOX OFF)
--set(JUST_INSTALL_CEREAL ON)
--add_subdirectory(cereal EXCLUDE_FROM_ALL)
-+find_package(cereal REQUIRED GLOBAL)
-
- # stb - https://github.com/nothings/stb
- message(STATUS "==> stb")
--add_subdirectory(stb)
-+add_library(stb INTERFACE)
-+add_library(stb::stb ALIAS stb)
-
# libchdr - https://github.com/rtissera/libchdr
+ # - Not available as a vcpkg port
message(STATUS "==> libchdr")
-set(BUILD_FUZZER OFF)
-add_subdirectory(libchdr)
+pkg_check_modules(libchdr REQUIRED IMPORTED_TARGET GLOBAL libchdr)
+add_library(chdr-static ALIAS PkgConfig::libchdr)
- # rtmidi - https://github.com/thestk/rtmidi
- message(STATUS "==> rtmidi")
--set(RTMIDI_BUILD_STATIC_LIBS ON)
--set(RTMIDI_BUILD_TESTING OFF)
--add_subdirectory(rtmidi)
-+pkg_check_modules(rtmidi REQUIRED IMPORTED_TARGET GLOBAL rtmidi)
-+add_library(rtmidi ALIAS PkgConfig::rtmidi)
-
- # --------------------------------------------------------------------------------------------------
- # Test dependencies
+ # Place vendored library projects under a Vendored folder in Visual Studio solutions
+ if (MSVC)
diff --git a/emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp b/emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp
deleted file mode 100644
index cf610729c0d1..000000000000
--- a/emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp
+++ /dev/null
@@ -1,13 +0,0 @@
-https://github.com/vimpunk/mio/issues/110
-
---- vendor/mio/include/mio/detail/mmap.ipp.orig 2025-02-12 00:14:41 UTC
-+++ vendor/mio/include/mio/detail/mmap.ipp
-@@ -208,7 +208,7 @@ inline mmap_context memory_map(const file_handle_type
- char* mapping_start = static_cast<char*>(::mmap(
- 0, // Don't give hint as to where to map.
- length_to_map,
-- mode == access_mode::read ? PROT_READ : PROT_WRITE,
-+ mode == access_mode::read ? PROT_READ : PROT_READ | PROT_WRITE,
- mode == access_mode::copy_on_write ? MAP_PRIVATE : MAP_SHARED,
- file_handle,
- aligned_offset));
diff --git a/emulators/Ymir/pkg-descr b/emulators/Ymir/pkg-descr
index 2eae362fc391..907adbc7aaba 100644
--- a/emulators/Ymir/pkg-descr
+++ b/emulators/Ymir/pkg-descr
@@ -3,14 +3,16 @@ Ymir is a Sega Saturn emulator with the following features:
- Load games from MAME CHD, BIN+CUE, IMG+CCD, MDF+MDS or ISO files
- Automatic IPL (BIOS) ROM detection
- Automatic region switching
-- Up to two players with standard Control Pads or 3D Control Pads on both ports
+- Up to two players with a variety of controllers on both ports
- Fully customizable keybindings
-- Backup RAM, DRAM and ROM cartridges
+- Backup RAM, DRAM and ROM cartridges (more to come)
- Integrated backup memory manager to import and export saves, and transfer
between internal and cartridge RAM
-- Save states
+- Forwards-compatible save states
- Rewinding (up to one minute at 60 fps), turbo speed, frame step (forwards and
backwards)
- Full screen mode with VRR support and low input lag
-- Optional deinterlaced/progressive rendering of high resolution modes
+- Graphics enhancements such as optional deinterlaced/progressive rendering of
+ high resolution modes and transparent mesh polygon rendering
+- Optional low level CD block emulation
- A feature-rich debugger
diff --git a/emulators/adamem/Makefile b/emulators/adamem/Makefile
index edb52404816e..efec258bfcad 100644
--- a/emulators/adamem/Makefile
+++ b/emulators/adamem/Makefile
@@ -9,10 +9,6 @@ MAINTAINER= ports@FreeBSD.org
COMMENT= Portable Coleco ADAM and ColecoVision emulator
WWW= https://www.komkon.org/~dekogel/adamem.html
-BROKEN_aarch64= fails to build: regparm is not valid on this platform
-BROKEN_armv6= fails to build: regparm is not valid on this platform
-BROKEN_armv7= fails to build: regparm is not valid on this platform
-
NO_WRKSUBDIR= yes
USES= xorg
USE_XORG= sm x11 xau xext xfixes xi xrandr
diff --git a/emulators/ares/Makefile b/emulators/ares/Makefile
index 0ce6c3aaf5c9..82c1c0a2a4de 100644
--- a/emulators/ares/Makefile
+++ b/emulators/ares/Makefile
@@ -1,6 +1,7 @@
PORTNAME= ares
DISTVERSIONPREFIX= v
DISTVERSION= 146
+PORTREVISION= 1
CATEGORIES= emulators
MASTER_SITES= https://github.com/${PORTNAME}-emulator/${PORTNAME}/releases/download/${DISTVERSIONFULL}/
DISTNAME= ${PORTNAME}-source
diff --git a/emulators/citra-qt5/Makefile b/emulators/citra-qt5/Makefile
deleted file mode 100644
index b8bf5b627550..000000000000
--- a/emulators/citra-qt5/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-PORTREVISION= 2
-PKGNAMESUFFIX= -qt5
-
-MASTERDIR= ${.CURDIR}/../citra
-
-OPTIONS_SLAVE= QT5
-
-.include "${MASTERDIR}/Makefile"
diff --git a/emulators/citra/Makefile b/emulators/citra/Makefile
deleted file mode 100644
index 56bae20fca16..000000000000
--- a/emulators/citra/Makefile
+++ /dev/null
@@ -1,112 +0,0 @@
-PORTNAME= citra
-PORTVERSION= s20220902
-PORTREVISION?= 4
-CATEGORIES= emulators
-.if make(makesum)
-MASTER_SITES= https://api.citra-emu.org/gamedb/?dummy=/:gamedb
-.else
-MASTER_SITES= LOCAL/jbeich:gamedb
-.endif
-DISTFILES= ${PORTNAME}-${DISTVERSIONFULL}/compatibility_list.json:gamedb
-EXTRACT_ONLY= ${DISTFILES:N*\:gamedb:C/\:.*//}
-
-MAINTAINER= ports@FreeBSD.org
-COMMENT= Nintendo 3DS emulator/debugger
-WWW= https://citra-emu.org
-
-LICENSE= BSD2CLAUSE BSD3CLAUSE BSL GPLv2+ ISCL LGPL21+ MIT OpenSSL UNLICENSE
-LICENSE_COMB= multi
-LICENSE_FILE_BSD2CLAUSE=${WRKSRC}/externals/fmt/LICENSE.rst
-LICENSE_FILE_BSD3CLAUSE=${WRKSRC}/externals/inih/inih/LICENSE.txt
-LICENSE_FILE_BSL= ${WRKSRC}/externals/catch/LICENSE.txt
-LICENSE_FILE_GPLv2+ = ${WRKSRC}/license.txt
-LICENSE_FILE_ISCL= ${WRKSRC}/externals/cubeb/LICENSE
-LICENSE_FILE_LGPL21+ = ${_LICENSE_STORE}/LGPL21 # soundtouch
-LICENSE_FILE_MIT= ${WRKSRC}/externals/enet/LICENSE
-LICENSE_FILE_OpenSSL= ${WRKSRC}/externals/libressl/COPYING
-
-DEPRECATED= project has been discontinued and build fails with FFmpeg >7
-EXPIRATION_DATE= 2025-10-31
-BROKEN_aarch64= https://github.com/citra-emu/citra/issues/5921
-
-BUILD_DEPENDS= boost-libs>0:devel/boost-libs
-
-USE_GITHUB= yes
-GH_ACCOUNT= citra-emu
-GH_TAGNAME= 746609f35
-GH_TUPLE= citra-emu:ext-boost:36603a1:boost/externals/boost \
- citra-emu:ext-libressl-portable:8929f81:libressl/externals/libressl \
- citra-emu:ext-soundtouch:060181e:soundtouch/externals/soundtouch \
- MerryMage:dynarmic:r3-223-g9f88f234:dynarmic/externals/dynarmic \
- arsenm:sanitizers-cmake:aab6948:sanitizers_cmake/externals/cubeb/cmake/sanitizers-cmake \
- arun11299:cpp-jwt:v1.4-14-ge12ef06:cpp_jwt/externals/cpp-jwt \
- benhoyt:inih:r52:inih/externals/inih/inih \
- catchorg:Catch2:v2.13.7:catch/externals/catch \
- facebook:zstd:v1.4.8:zstd/externals/zstd \
- fmtlib:fmt:7.1.2:fmt/externals/fmt \
- herumi:xbyak:v5.96:xbyak/externals/xbyak \
- kinetiknz:cubeb:cubeb-0.2-1350-gf79e0cf:cubeb/externals/cubeb \
- lsalzman:enet:v1.3.17-8-g498b9e3:enet/externals/enet \
- lvandeve:lodepng:31d9704:lodepng/externals/lodepng/lodepng \
- neobrain:nihstro:fd69de1:nihstro/externals/nihstro \
- weidai11:cryptopp:CRYPTOPP_8_5_0:cryptopp/externals/cryptopp/cryptopp \
- wwylele:teakra:01db7cd:teakra/externals/teakra
-
-USES= cmake:testing compiler:c++17-lang localbase:ldflags sdl
-USE_SDL= sdl2
-CMAKE_ON= USE_SYSTEM_BOOST Boost_USE_STATIC_LIBS
-LDFLAGS+= -Wl,--as-needed # Qt5Network
-
-OPTIONS_DEFINE= ALSA FFMPEG PULSEAUDIO JACK SNDIO
-OPTIONS_DEFAULT=FFMPEG PULSEAUDIO JACK SNDIO
-OPTIONS_MULTI= GUI
-OPTIONS_MULTI_GUI= QT5 SDL
-OPTIONS_SLAVE?= SDL
-OPTIONS_EXCLUDE:= ${OPTIONS_MULTI_GUI}
-
-ALSA_BUILD_DEPENDS= alsa-lib>0:audio/alsa-lib
-ALSA_CMAKE_BOOL= USE_ALSA
-
-FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg
-FFMPEG_CMAKE_BOOL= ENABLE_FFMPEG_AUDIO_DECODER ENABLE_FFMPEG_VIDEO_DUMPER
-
-JACK_BUILD_DEPENDS= jackit>0:audio/jack
-JACK_CMAKE_BOOL= USE_JACK
-
-PULSEAUDIO_BUILD_DEPENDS=pulseaudio>0:audio/pulseaudio
-PULSEAUDIO_CMAKE_BOOL= USE_PULSE
-
-SNDIO_BUILD_DEPENDS= sndio>0:audio/sndio
-SNDIO_CMAKE_BOOL= USE_SNDIO
-
-SDL_CMAKE_BOOL= ENABLE_SDL2
-SDL_PLIST_FILES=bin/${PORTNAME} \
- bin/${PORTNAME}-room \
- share/man/man6/${PORTNAME}.6.gz
-
-QT5_USES= desktop-file-utils qt:5 shared-mime-info
-QT5_USE= QT=qmake:build,buildtools:build,linguisttools:build,concurrent:build,core,gui,multimedia,widgets
-QT5_CMAKE_BOOL= ENABLE_QT ENABLE_QT_TRANSLATION
-QT5_PLIST_FILES=bin/${PORTNAME}-qt \
- "@comment bin/${PORTNAME}-room" \
- share/applications/${PORTNAME}.desktop \
- share/icons/hicolor/scalable/apps/${PORTNAME}.svg \
- share/man/man6/${PORTNAME}-qt.6.gz \
- share/mime/packages/${PORTNAME}.xml
-
-.include <bsd.port.pre.mk>
-
-post-patch:
- @${REINPLACE_CMD} -e 's/@GIT_BRANCH@/master/' \
- -e 's/@GIT_DESC@/${GH_TAGNAME}/' \
- ${WRKSRC}/src/common/scm_rev.cpp.in
-.if ${COMPILER_TYPE} == clang
- @${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \
- ${WRKSRC}/externals/boost/boost/container_hash/hash.hpp
-.endif
-
-post-configure:
- @${CP} ${DISTFILES:M*\:gamedb:C/\:.*//:S,^,${DISTDIR}/,} \
- ${BUILD_WRKSRC}/dist/compatibility_list/
-
-.include <bsd.port.post.mk>
diff --git a/emulators/citra/distinfo b/emulators/citra/distinfo
deleted file mode 100644
index 28eaf6147024..000000000000
--- a/emulators/citra/distinfo
+++ /dev/null
@@ -1,39 +0,0 @@
-TIMESTAMP = 1662057466
-SHA256 (citra-s20220902/compatibility_list.json) = 6e5225698694423c3b033820f8377b64f1107fe75d64c3bef98c629f07be546d
-SIZE (citra-s20220902/compatibility_list.json) = 327573
-SHA256 (citra-emu-citra-s20220902-746609f35_GH0.tar.gz) = 00fa01f1daa46ff4371ba72b4f7bbf8f27a64185cf0958b1c766c65d833ba38a
-SIZE (citra-emu-citra-s20220902-746609f35_GH0.tar.gz) = 7582369
-SHA256 (citra-emu-ext-boost-36603a1_GH0.tar.gz) = a1885cf0f7b1c790f8a83e963fec591bad1232e6b824e64d8db136920ec1b67d
-SIZE (citra-emu-ext-boost-36603a1_GH0.tar.gz) = 2351603
-SHA256 (citra-emu-ext-libressl-portable-8929f81_GH0.tar.gz) = 90b580a6ce6686dfdc16528c9c3b50468540d955456f096652317a333e21a160
-SIZE (citra-emu-ext-libressl-portable-8929f81_GH0.tar.gz) = 2370673
-SHA256 (citra-emu-ext-soundtouch-060181e_GH0.tar.gz) = a593ab188e4feaeef8376c27b554cc413986efc777c195e44c6d3d223de9a63c
-SIZE (citra-emu-ext-soundtouch-060181e_GH0.tar.gz) = 59514
-SHA256 (MerryMage-dynarmic-r3-223-g9f88f234_GH0.tar.gz) = cf2fedd00d689ae118bdb76680d2621ea7b4db5d67a5d9a1910eac35e3f848d4
-SIZE (MerryMage-dynarmic-r3-223-g9f88f234_GH0.tar.gz) = 1709689
-SHA256 (arsenm-sanitizers-cmake-aab6948_GH0.tar.gz) = d9009e17948aff769a6f6e16b52d4d8752c5cc2cab1e9c381d3a31fd1a680b58
-SIZE (arsenm-sanitizers-cmake-aab6948_GH0.tar.gz) = 7240
-SHA256 (arun11299-cpp-jwt-v1.4-14-ge12ef06_GH0.tar.gz) = 0409fa5413800fb291251cf3142e07a43fd4064996fee0e793323d3a74dd33b8
-SIZE (arun11299-cpp-jwt-v1.4-14-ge12ef06_GH0.tar.gz) = 1246634
-SHA256 (benhoyt-inih-r52_GH0.tar.gz) = 439cff9ce9a8afc52d08772ac3e93b3cecd79c7707f871fb4534fb3a48201880
-SIZE (benhoyt-inih-r52_GH0.tar.gz) = 16808
-SHA256 (catchorg-Catch2-v2.13.7_GH0.tar.gz) = 3cdb4138a072e4c0290034fe22d9f0a80d3bcfb8d7a8a5c49ad75d3a5da24fae
-SIZE (catchorg-Catch2-v2.13.7_GH0.tar.gz) = 661014
-SHA256 (facebook-zstd-v1.4.8_GH0.tar.gz) = f176f0626cb797022fbf257c3c644d71c1c747bb74c32201f9203654da35e9fa
-SIZE (facebook-zstd-v1.4.8_GH0.tar.gz) = 1816546
-SHA256 (fmtlib-fmt-7.1.2_GH0.tar.gz) = 4119a1c34dff91631e1d0a3707428f764f1ea22fe3cd5e70af5b4ccd5513831c
-SIZE (fmtlib-fmt-7.1.2_GH0.tar.gz) = 769401
-SHA256 (herumi-xbyak-v5.96_GH0.tar.gz) = 727f15d3ed786cae255ebfed1829a84a357c0e4856c6304456d77f1b56c3d2c6
-SIZE (herumi-xbyak-v5.96_GH0.tar.gz) = 226999
-SHA256 (kinetiknz-cubeb-cubeb-0.2-1350-gf79e0cf_GH0.tar.gz) = 8629757290774a34ed3fcd53b6491e9ccc96231018406c58c493f336b3ced908
-SIZE (kinetiknz-cubeb-cubeb-0.2-1350-gf79e0cf_GH0.tar.gz) = 220847
-SHA256 (lsalzman-enet-v1.3.17-8-g498b9e3_GH0.tar.gz) = d8b51de11421bc38909977ece11e35bff656ef15a5838c218c87314d76e757a6
-SIZE (lsalzman-enet-v1.3.17-8-g498b9e3_GH0.tar.gz) = 79921
-SHA256 (lvandeve-lodepng-31d9704_GH0.tar.gz) = 86e140a13d1f425d45f891a082111435d3333385d36b66c94a031c029f4422c1
-SIZE (lvandeve-lodepng-31d9704_GH0.tar.gz) = 161881
-SHA256 (neobrain-nihstro-fd69de1_GH0.tar.gz) = cebeb307aad4b9fbc4d26eb54c01c90e118bc6287ab65688a50303a59272be5a
-SIZE (neobrain-nihstro-fd69de1_GH0.tar.gz) = 110417
-SHA256 (weidai11-cryptopp-CRYPTOPP_8_5_0_GH0.tar.gz) = 8f64cf09cf4f61d5d74bca53574b8cc9959186cc0f072a2e6597e4999d6ad5db
-SIZE (weidai11-cryptopp-CRYPTOPP_8_5_0_GH0.tar.gz) = 8998459
-SHA256 (wwylele-teakra-01db7cd_GH0.tar.gz) = 82f6c373ab0eacfcf376ab7270d5788177df7d79bd86bfa5a5eb6c66801c8c73
-SIZE (wwylele-teakra-01db7cd_GH0.tar.gz) = 983116
diff --git a/emulators/citra/files/patch-CMakeLists.txt b/emulators/citra/files/patch-CMakeLists.txt
deleted file mode 100644
index 57c9d442a244..000000000000
--- a/emulators/citra/files/patch-CMakeLists.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-citra-qt currently needs SDL for audio and input
-
---- CMakeLists.txt.orig 2022-09-01 18:37:46 UTC
-+++ CMakeLists.txt
-@@ -71,7 +71,6 @@ endfunction()
- endif()
- endforeach()
- endfunction()
--check_submodules_present()
-
- configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc
- ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
-@@ -168,15 +167,15 @@ if (ENABLE_SDL2)
- else()
- find_package(SDL2 REQUIRED)
- endif()
--
-- if (SDL2_FOUND)
-- # TODO(yuriks): Make FindSDL2.cmake export an IMPORTED library instead
-- add_library(SDL2 INTERFACE)
-- target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARY}")
-- target_include_directories(SDL2 INTERFACE "${SDL2_INCLUDE_DIR}")
-- endif()
- else()
-- set(SDL2_FOUND NO)
-+ find_package(SDL2)
-+endif()
-+
-+if (SDL2_FOUND)
-+ # TODO(yuriks): Make FindSDL2.cmake export an IMPORTED library instead
-+ add_library(SDL2 INTERFACE)
-+ target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARY}")
-+ target_include_directories(SDL2 INTERFACE "${SDL2_INCLUDE_DIR}")
- endif()
-
- if (ENABLE_QT)
diff --git a/emulators/citra/files/patch-externals_teakra_src_test.h b/emulators/citra/files/patch-externals_teakra_src_test.h
deleted file mode 100644
index 96ceb0b0b4af..000000000000
--- a/emulators/citra/files/patch-externals_teakra_src_test.h
+++ /dev/null
@@ -1,13 +0,0 @@
-https://github.com/wwylele/teakra/pull/35
-
---- externals/teakra/src/test.h.orig 2018-12-21 16:34:51 UTC
-+++ externals/teakra/src/test.h
-@@ -31,7 +31,7 @@ static_assert(std::is_trivially_copyable_v<State>);
-
- struct TestCase {
- State before, after;
-- u16 opcode, expand;
-+ u16 opcode, expand, unused;
- };
-
- static_assert(sizeof(TestCase) == 4312);
diff --git a/emulators/citra/files/patch-src_input__common_udp_client.cpp b/emulators/citra/files/patch-src_input__common_udp_client.cpp
deleted file mode 100644
index 111f6bc85c46..000000000000
--- a/emulators/citra/files/patch-src_input__common_udp_client.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/input_common/udp/client.cpp.orig 2025-02-16 22:55:21 UTC
-+++ src/input_common/udp/client.cpp
-@@ -109,7 +109,7 @@ class Socket { (private)
- }
-
- SocketCallback callback;
-- boost::asio::io_service io_service;
-+ boost::asio::io_context io_service;
- boost::asio::basic_waitable_timer<clock> timer;
- udp::socket socket;
-
diff --git a/emulators/citra/pkg-descr b/emulators/citra/pkg-descr
deleted file mode 100644
index 945b12a62228..000000000000
--- a/emulators/citra/pkg-descr
+++ /dev/null
@@ -1,8 +0,0 @@
-Citra is an experimental open-source Nintendo 3DS emulator/debugger
-written in C++. It is written with portability in mind, with builds
-actively maintained for Windows, Linux and OS X. Citra only emulates a
-subset of 3DS hardware, and therefore is generally only useful for
-running/debugging homebrew applications. At this time, Citra is even
-able to boot several commercial games! Most of these do not run to a
-playable state, but we are working every day to advance the project
-forward.
diff --git a/emulators/dolphin-emu/Makefile b/emulators/dolphin-emu/Makefile
index ccf8ae0eb0a5..6db2e24031ca 100644
--- a/emulators/dolphin-emu/Makefile
+++ b/emulators/dolphin-emu/Makefile
@@ -1,5 +1,6 @@
PORTNAME= dolphin-emu
PORTVERSION= 2509
+PORTREVISION= 2
CATEGORIES= emulators
MAINTAINER= martymac@FreeBSD.org
diff --git a/emulators/dosbox-x/Makefile b/emulators/dosbox-x/Makefile
index 03c0416c7b26..9d8ae42d2c01 100644
--- a/emulators/dosbox-x/Makefile
+++ b/emulators/dosbox-x/Makefile
@@ -1,6 +1,6 @@
PORTNAME= dosbox-x
DISTVERSIONPREFIX= ${PORTNAME}-v
-DISTVERSION= 2025.05.03
+DISTVERSION= 2025.10.07
CATEGORIES= emulators
MAINTAINER= eduardo@FreeBSD.org
diff --git a/emulators/dosbox-x/distinfo b/emulators/dosbox-x/distinfo
index 219e59f0ef95..4897e7dc05d4 100644
--- a/emulators/dosbox-x/distinfo
+++ b/emulators/dosbox-x/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1746305468
-SHA256 (joncampbell123-dosbox-x-dosbox-x-v2025.05.03_GH0.tar.gz) = b29a2c9c38bfe1d1c1f2420d546b8c2456ae2ddce4c1f6b4d19f258841ce1581
-SIZE (joncampbell123-dosbox-x-dosbox-x-v2025.05.03_GH0.tar.gz) = 122834930
+TIMESTAMP = 1759852684
+SHA256 (joncampbell123-dosbox-x-dosbox-x-v2025.10.07_GH0.tar.gz) = fed630dba74f1ad1552bc5ec94cb68f70737e67a7ca1768f6071b255426ce117
+SIZE (joncampbell123-dosbox-x-dosbox-x-v2025.10.07_GH0.tar.gz) = 124274305
diff --git a/emulators/dosbox-x/files/patch-configure.ac b/emulators/dosbox-x/files/patch-configure.ac
index cfdc8b7bb563..a0fe5a986c29 100644
--- a/emulators/dosbox-x/files/patch-configure.ac
+++ b/emulators/dosbox-x/files/patch-configure.ac
@@ -1,6 +1,6 @@
---- configure.ac.orig 2024-10-02 06:16:36 UTC
+--- configure.ac.orig 2025-10-07 15:49:14 UTC
+++ configure.ac
-@@ -672,7 +672,10 @@ dnl LIBRARY TEST: ALSA
+@@ -728,7 +728,10 @@ dnl LIBRARY TEST: ALSA
dnl TODO: Need GCC to know this code is using C++ lambda functions
dnl LIBRARY TEST: ALSA
diff --git a/emulators/dosbox-x/files/patch-fix-ffmpeg8 b/emulators/dosbox-x/files/patch-fix-ffmpeg8
deleted file mode 100644
index 7c1782a7b3bd..000000000000
--- a/emulators/dosbox-x/files/patch-fix-ffmpeg8
+++ /dev/null
@@ -1,88 +0,0 @@
-Fix build with FFmpeg 8
-https://github.com/joncampbell123/dosbox-x/issues/5803
-
---- src/hardware/hardware.cpp.orig 2025-08-25 08:00:00 UTC
-+++ src/hardware/hardware.cpp
-@@ -123,20 +123,18 @@ void ffmpeg_closeall() {
- ffmpeg_avformat_began = false;
- }
- avio_close(ffmpeg_fmt_ctx->pb);
-- if (ffmpeg_vid_ctx != NULL) avcodec_close(ffmpeg_vid_ctx);
-- if (ffmpeg_aud_ctx != NULL) avcodec_close(ffmpeg_aud_ctx);
-+ if (ffmpeg_vid_ctx != NULL) avcodec_free_context(&ffmpeg_vid_ctx);
-+ if (ffmpeg_aud_ctx != NULL) avcodec_free_context(&ffmpeg_aud_ctx);
- avformat_free_context(ffmpeg_fmt_ctx);
- ffmpeg_fmt_ctx = NULL;
- ffmpeg_vid_ctx = NULL; // NTS: avformat_free_context() freed this for us, don't free again
- ffmpeg_aud_ctx = NULL; // NTS: avformat_free_context() freed this for us, don't free again
- }
- if (ffmpeg_vid_ctx != NULL) {
-- avcodec_close(ffmpeg_vid_ctx);
- avcodec_free_context(&ffmpeg_vid_ctx);
- ffmpeg_vid_ctx = NULL;
- }
- if (ffmpeg_aud_ctx != NULL) {
-- avcodec_close(ffmpeg_aud_ctx);
- avcodec_free_context(&ffmpeg_aud_ctx);
- ffmpeg_aud_ctx = NULL;
- }
-@@ -171,7 +169,6 @@ void ffmpeg_audio_frame_send() {
-
- if (!pkt) E_Exit("Error: Unable to alloc packet");
-
-- ffmpeg_aud_frame->key_frame = 1;
- ffmpeg_aud_frame->pts = (int64_t)ffmpeg_audio_sample_counter;
- r=avcodec_send_frame(ffmpeg_aud_ctx,ffmpeg_aud_frame);
- if (r < 0 && r != AVERROR(EAGAIN))
-@@ -426,7 +423,6 @@ void ffmpeg_reopen_video(double fps,const int bpp) {
-
- void ffmpeg_reopen_video(double fps,const int bpp) {
- if (ffmpeg_vid_ctx != NULL) {
-- avcodec_close(ffmpeg_vid_ctx);
- avcodec_free_context(&ffmpeg_vid_ctx);
- ffmpeg_vid_ctx = NULL;
- }
-@@ -1271,7 +1267,7 @@ skip_shot:
- ffmpeg_aud_ctx->sample_rate = (int)capture.video.audiorate;
- ffmpeg_aud_ctx->flags = 0; // do not use global headers
- ffmpeg_aud_ctx->bit_rate = 320000;
-- ffmpeg_aud_ctx->profile = FF_PROFILE_AAC_LOW;
-+ // ffmpeg_aud_ctx->profile = FF_PROFILE_AAC_LOW;
-
- #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59,24,100)
- ffmpeg_aud_ctx->channels = 2;
-@@ -1531,7 +1527,6 @@ skip_shot:
-
- // encode it
- ffmpeg_vid_frame->pts = (int64_t)capture.video.frames; // or else libx264 complains about non-monotonic timestamps
-- ffmpeg_vid_frame->key_frame = ((capture.video.frames % 15) == 0)?1:0;
-
- r=avcodec_send_frame(ffmpeg_vid_ctx,ffmpeg_vid_frame);
- if (r < 0 && r != AVERROR(EAGAIN))
-@@ -1768,7 +1763,7 @@ skip_mt_wav:
- }
-
- #pragma pack(push,1)
--typedef struct pcap_hdr_struct_t {
-+typedef struct {
- uint32_t magic_number; /* magic number */
- uint16_t version_major; /* major version number */
- uint16_t version_minor; /* minor version number */
-@@ -1776,14 +1771,14 @@ typedef struct pcap_hdr_struct_t {
- uint32_t sigfigs; /* accuracy of timestamps */
- uint32_t snaplen; /* max length of captured packets, in octets */
- uint32_t network; /* data link type */
--};
-+} pcap_hdr_struct_t;
-
--typedef struct pcaprec_hdr_struct_t {
-+typedef struct {
- uint32_t ts_sec; /* timestamp seconds */
- uint32_t ts_usec; /* timestamp microseconds */
- uint32_t incl_len; /* number of octets of packet saved in file */
- uint32_t orig_len; /* actual length of packet */
--};
-+} pcaprec_hdr_struct_t;
- #pragma pack(pop)
-
- void Capture_WritePacket(bool /*send*/,const unsigned char *buf,size_t len) {
diff --git a/emulators/dosbox-x/files/patch-src_gui_sdl__gui.cpp b/emulators/dosbox-x/files/patch-src_gui_sdl__gui.cpp
index 80b3eeb0c45a..29dc9baa8070 100644
--- a/emulators/dosbox-x/files/patch-src_gui_sdl__gui.cpp
+++ b/emulators/dosbox-x/files/patch-src_gui_sdl__gui.cpp
@@ -1,6 +1,6 @@
---- src/gui/sdl_gui.cpp.orig 2024-10-02 06:16:36 UTC
+--- src/gui/sdl_gui.cpp.orig 2025-10-07 15:49:14 UTC
+++ src/gui/sdl_gui.cpp
-@@ -3888,6 +3888,7 @@ void GUI_Shortcut(int select) {
+@@ -3886,6 +3886,7 @@ void GUI_Shortcut(int select) {
shortcutid=select;
shortcut=true;
sel = select;
@@ -8,7 +8,7 @@
#if defined(USE_TTF)
if (ttf.inUse && !confres) {
ttf_switch_off();
-@@ -3897,12 +3898,14 @@ void GUI_Shortcut(int select) {
+@@ -3895,12 +3896,14 @@ void GUI_Shortcut(int select) {
} else
#endif
RunCfgTool(0);
@@ -23,7 +23,7 @@
#if defined(USE_TTF)
if (ttf.inUse) {
ttf_switch_off();
-@@ -3912,4 +3915,5 @@ void GUI_Run(bool pressed) {
+@@ -3910,4 +3913,5 @@ void GUI_Run(bool pressed) {
} else
#endif
RunCfgTool(0);
diff --git a/emulators/emu64/Makefile b/emulators/emu64/Makefile
index 4d7d2f826330..d27594aa11a2 100644
--- a/emulators/emu64/Makefile
+++ b/emulators/emu64/Makefile
@@ -3,7 +3,7 @@ DISTVERSION= 5.1.0
PORTREVISION= 1
CATEGORIES= emulators
-MAINTAINER= zirias@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Commodore 64 emulator
WWW= https://github.com/ThKattanek/emu64
diff --git a/emulators/emulationstation/Makefile b/emulators/emulationstation/Makefile
index a27f69efbbf9..e7184087ac91 100644
--- a/emulators/emulationstation/Makefile
+++ b/emulators/emulationstation/Makefile
@@ -1,7 +1,7 @@
PORTNAME= emulationstation
DISTVERSIONPREFIX= v
DISTVERSION= 2.11.2
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= emulators
MAINTAINER= freebsd@coombscloud.com
@@ -18,7 +18,7 @@ BUILD_DEPENDS= ${LOCALBASE}/include/rapidjson/document.h:devel/rapidjson \
LIB_DEPENDS= libboost_date_time.so:devel/boost-libs \
libboost_filesystem.so:devel/boost-libs \
libboost_locale.so:devel/boost-libs \
- libboost_system.so:devel/boost-libs \
+ libboost_thread.so:devel/boost-libs \
libcurl.so:ftp/curl \
libfreeimage.so:graphics/freeimage \
libfreetype.so:print/freetype2 \
diff --git a/emulators/flycast/Makefile b/emulators/flycast/Makefile
index 770d580c03ca..d6efc271a1a4 100644
--- a/emulators/flycast/Makefile
+++ b/emulators/flycast/Makefile
@@ -1,7 +1,7 @@
PORTNAME= flycast
DISTVERSIONPREFIX= v
DISTVERSION= 2.5
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= emulators
MAINTAINER= bsdcode@disroot.org
diff --git a/emulators/libc6-shim/Makefile b/emulators/libc6-shim/Makefile
index f405dbf7db77..fd4e553e7902 100644
--- a/emulators/libc6-shim/Makefile
+++ b/emulators/libc6-shim/Makefile
@@ -1,5 +1,5 @@
PORTNAME= libc6-shim
-DISTVERSION= 20250323
+DISTVERSION= 20251025
CATEGORIES= emulators
MAINTAINER= iwtcex@gmail.com
diff --git a/emulators/libc6-shim/distinfo b/emulators/libc6-shim/distinfo
index 9ab2fdd543a9..4cfa23a50348 100644
--- a/emulators/libc6-shim/distinfo
+++ b/emulators/libc6-shim/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1742733124
-SHA256 (shkhln-libc6-shim-20250323_GH0.tar.gz) = 600f0b25ae419f79e6a663dbc22e74d2c10f142e770044ff4744d8b04922e5fa
-SIZE (shkhln-libc6-shim-20250323_GH0.tar.gz) = 105087
+TIMESTAMP = 1761432145
+SHA256 (shkhln-libc6-shim-20251025_GH0.tar.gz) = ca83120384be7af526d63aafddaf617d7bb3c63da957950536740aa2c0d38ab3
+SIZE (shkhln-libc6-shim-20251025_GH0.tar.gz) = 105640
diff --git a/emulators/magia/Makefile b/emulators/magia/Makefile
index 67772e93cc50..17431bef420d 100644
--- a/emulators/magia/Makefile
+++ b/emulators/magia/Makefile
@@ -1,7 +1,7 @@
PORTNAME= magia
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.0
-PORTREVISION= 30
+PORTREVISION= 33
CATEGORIES= emulators
MAINTAINER= ports@FreeBSD.org
diff --git a/emulators/mame/Makefile b/emulators/mame/Makefile
index c4cda0872bf7..201d86d0034c 100644
--- a/emulators/mame/Makefile
+++ b/emulators/mame/Makefile
@@ -1,12 +1,8 @@
PORTNAME= mame
-DISTVERSION= 0.277
-PORTREVISION= 2
+DISTVERSION= 0.281
CATEGORIES= emulators games
-PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
-PATCHFILES= b4e1f5f1b50fd3402232dd0385cac021ba488db6.patch:-p1 # Only link asmjit if native DRCs are built.
-
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= laurent.chardon@gmail.com
COMMENT= MAME: a multi-purpose emulation framework
WWW= https://mamedev.org/
@@ -25,7 +21,8 @@ ONLY_FOR_ARCHS= aarch64 amd64 armv7 i386 powerpc powerpc64 powerpc64le
ONLY_FOR_ARCHS_REASON= not yet ported to any architecture other than armv7, arm64, x86, and powerpc*
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinxcontrib-svg2pdfconverter>0:textproc/py-sphinxcontrib-svg2pdfconverter@${PY_FLAVOR} \
- asio>0:net/asio \
+ ${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx@${PY_FLAVOR} \
+ asio130>0:net/asio130 \
genie:devel/genie \
glm>0:math/glm \
rapidjson>0:devel/rapidjson
@@ -35,8 +32,8 @@ LIB_DEPENDS= libexpat.so:textproc/expat2 \
libutf8proc.so:textproc/utf8proc \
libzstd.so:archivers/zstd
-USES= compiler:c++17-lang gmake jpeg llvm:min=16 localbase pkgconfig \
- python:build sdl shebangfix sqlite:3 xorg
+USES= compiler:c++17-lang gmake jpeg llvm:min=16 localbase \
+ pkgconfig python:build sdl sqlite:3 xorg
USE_GITHUB= yes
GH_ACCOUNT= mamedev
@@ -82,6 +79,7 @@ PORTDOCS= *
OPTIONS_DEFINE= DOCS
OPTIONS_DEFAULT= MAME
+OPTIONS_DEFAULT+= ${ARCH:Mamd64:C/.+/SSE2/}
OPTIONS_GROUP= EMULATORS EXTRATOOLS HARDWARE
OPTIONS_GROUP_EMULATORS= MAME MAMENL MAMEVIRTUAL NLS QTDEBUGGER
OPTIONS_GROUP_EXTRATOOLS= TOOLS
@@ -89,9 +87,7 @@ OPTIONS_GROUP_HARDWARE= OPENMP SSE2
OPTIONS_RADIO= BUILDTYPE
OPTIONS_RADIO_BUILDTYPE= DEBUG SIZE_OPTIMIZED_CFLAGS \
SPEED_OPTIMIZED_CFLAGS
-.if !exists(/usr/include/omp.h)
-OPTIONS_EXCLUDE= OPENMP
-.endif
+OPTIONS_EXCLUDE+= ${ARCH:Namd64:Ni386:C/.+/SSE2/}
OPTIONS_SUB= yes
BUILDTYPE_DESC= Application production type
@@ -139,6 +135,7 @@ MAME_MAKE_ENV= ${_EMULATORS_MAKE_ENV}
MAME_PLIST_SUB= MAMEDATA=""
MAME_PLIST_SUB_OFF= MAMEDATA="@comment "
NLS_USES= gettext-runtime
+OPENMP_USES= compiler:openmp
OPENMP_MAKE_ENV= OPENMP=1
OPENMP_MAKE_ENV_OFF= OPENMP=0
QTDEBUGGER_USES= qt:6
@@ -192,25 +189,25 @@ _TOOLS_MANUALS= -name *.1 -depth 1 -type f -and -not -type d -and -not \
.include <bsd.port.options.mk>
.if ${ARCH:Maarch64} || ${ARCH:Mamd64} || ${ARCH:Mpowerpc64*}
-MAKE_ENV+= PTR64=1
+MAKE_ENV+= PTR64=1
.endif
.if ${ARCH} == aarch64 || ${ARCH} == armv7
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-3rdparty_lzma_C_AesOpt.c
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-3rdparty_lzma_C_AesOpt.c
.endif
# Compiling with -pg (PROFILE) causes the linker to run out of memory on i386,
# build with less profiling data:
.if ${ARCH:Mi386}
-DEBUG_MAKE_ENV= PROFILER=1
+DEBUG_MAKE_ENV= PROFILER=1
.else
-DEBUG_MAKE_ENV= PROFILE=1
+DEBUG_MAKE_ENV= PROFILE=1
.endif
.if empty(PORT_OPTIONS:MMAME) && empty(PORT_OPTIONS:MMAMENL) && \
empty(PORT_OPTIONS:MMAMEVIRTUAL)
-MAKE_ENV+= EMULATOR=0
-PLIST_SUB+= MAMEDATA="@comment "
+MAKE_ENV+= EMULATOR=0
+PLIST_SUB+= MAMEDATA="@comment "
.endif
post-extract:
diff --git a/emulators/mame/distinfo b/emulators/mame/distinfo
index 7a33b39a0b9d..0f735deaf410 100644
--- a/emulators/mame/distinfo
+++ b/emulators/mame/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1748505208
-SHA256 (mamedev-mame-0.277-mame0277_GH0.tar.gz) = 60055b19fc96306927257c5ffc265ecebcbe5c944cf98113d4d78f6304556c67
-SIZE (mamedev-mame-0.277-mame0277_GH0.tar.gz) = 209399226
+TIMESTAMP = 1759055187
+SHA256 (mamedev-mame-0.281-mame0281_GH0.tar.gz) = 8d648b43b0072b3efabc30290c1767a3c22a46ca3c4111a2f456b9f5d2a08319
+SIZE (mamedev-mame-0.281-mame0281_GH0.tar.gz) = 210289013
SHA256 (b4e1f5f1b50fd3402232dd0385cac021ba488db6.patch) = 431ce0bf9dff15632f8ed176b6ea8245c74089439f1af766a26ea4a140db1f92
SIZE (b4e1f5f1b50fd3402232dd0385cac021ba488db6.patch) = 2652
diff --git a/emulators/mame/files/patch-3rdparty_lzma_C_CpuArch.c b/emulators/mame/files/patch-3rdparty_lzma_C_CpuArch.c
index 0845a73832cb..96e75eb9da56 100644
--- a/emulators/mame/files/patch-3rdparty_lzma_C_CpuArch.c
+++ b/emulators/mame/files/patch-3rdparty_lzma_C_CpuArch.c
@@ -1,6 +1,6 @@
---- 3rdparty/lzma/C/CpuArch.c.orig 2023-05-30 17:50:57 UTC
+--- 3rdparty/lzma/C/CpuArch.c.orig 2025-09-24 14:56:11 UTC
+++ 3rdparty/lzma/C/CpuArch.c
-@@ -417,6 +417,31 @@ BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYP
+@@ -762,6 +762,31 @@ BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYP
#include <sys/auxv.h>
@@ -32,7 +32,7 @@
#define USE_HWCAP
#ifdef USE_HWCAP
-@@ -450,6 +475,7 @@ MY_HWCAP_CHECK_FUNC (SHA1)
+@@ -795,6 +820,7 @@ MY_HWCAP_CHECK_FUNC (AES)
MY_HWCAP_CHECK_FUNC (SHA2)
MY_HWCAP_CHECK_FUNC (AES)
diff --git a/emulators/mame/files/patch-3rdparty_lzma_C_Sha256Opt.c b/emulators/mame/files/patch-3rdparty_lzma_C_Sha256Opt.c
index 525d4f9e96e0..eeafd8402ec6 100644
--- a/emulators/mame/files/patch-3rdparty_lzma_C_Sha256Opt.c
+++ b/emulators/mame/files/patch-3rdparty_lzma_C_Sha256Opt.c
@@ -1,6 +1,6 @@
---- 3rdparty/lzma/C/Sha256Opt.c.orig 2023-05-30 17:50:57 UTC
+--- 3rdparty/lzma/C/Sha256Opt.c.orig 2025-09-24 14:56:11 UTC
+++ 3rdparty/lzma/C/Sha256Opt.c
-@@ -212,7 +212,7 @@ void MY_FAST_CALL Sha256_UpdateBlocks_HW(UInt32 state[
+@@ -202,7 +202,7 @@ void Z7_FASTCALL Sha256_UpdateBlocks_HW(UInt32 state[8
#endif // USE_HW_SHA
diff --git a/emulators/mame/files/patch-makefile b/emulators/mame/files/patch-makefile
index 5c87b1f66af7..53f4858b0d29 100644
--- a/emulators/mame/files/patch-makefile
+++ b/emulators/mame/files/patch-makefile
@@ -1,9 +1,9 @@
Remove redefinitions of toolchain, and hardcoded optimisations. Replace GENie
build target with devel/genie binary. Add Clang ARM64 support.
---- makefile.orig 2023-10-23 15:53:41 UTC
+--- makefile.orig 2025-09-24 14:56:11 UTC
+++ makefile
-@@ -448,9 +448,9 @@ ifneq ($(TARGETOS),asmjs)
+@@ -430,9 +430,9 @@ ifneq ($(TARGETOS),asmjs)
endif
ifneq ($(TARGETOS),asmjs)
@@ -16,7 +16,7 @@
endif
#-------------------------------------------------
-@@ -620,11 +620,6 @@ endif
+@@ -578,11 +578,6 @@ endif
SYMBOLS = 1
endif
@@ -28,7 +28,7 @@
# set the symbols level
ifdef SYMBOLS
PARAMS += --SYMBOLS='$(SYMBOLS)'
-@@ -1078,7 +1073,7 @@ endif
+@@ -1042,7 +1037,7 @@ endif
NEW_GIT_VERSION := unknown
endif
@@ -37,7 +37,7 @@
ifeq ($(TARGET),$(SUBTARGET_FULL))
FULLTARGET := $(TARGET)
-@@ -1412,6 +1407,11 @@ $(PROJECTDIR)/$(MAKETYPE)-freebsd-clang/Makefile: make
+@@ -1376,6 +1371,11 @@ $(PROJECTDIR)/$(MAKETYPE)-freebsd-clang/Makefile: make
$(PROJECTDIR)/$(MAKETYPE)-freebsd-clang/Makefile: makefile $(SCRIPTS) $(GENIE)
$(SILENT) $(GENIE) $(PARAMS) $(TARGET_PARAMS) --gcc=freebsd-clang --gcc_version=$(CLANG_VERSION) $(MAKETYPE)
diff --git a/emulators/mame/files/patch-scripts_genie.lua b/emulators/mame/files/patch-scripts_genie.lua
deleted file mode 100644
index 857219cdad87..000000000000
--- a/emulators/mame/files/patch-scripts_genie.lua
+++ /dev/null
@@ -1,34 +0,0 @@
- Reduce noise from build logs, and remove duplicate use of
- -fno-strict-aliasing. Move a hard coded linktime optimisation to be covered by
- the same OPTIMIZE conditional used elsewhere.
-
---- scripts/genie.lua.orig 2023-11-15 01:11:29 UTC
-+++ scripts/genie.lua
-@@ -804,7 +804,6 @@ if _OPTIONS["OPTIMIZE"] then
- if _OPTIONS["OPTIMIZE"] then
- buildoptions {
- "-O".. _OPTIONS["OPTIMIZE"],
-- "-fno-strict-aliasing"
- }
- if _OPTIONS["OPT_FLAGS"] then
- buildoptions {
-@@ -1168,7 +1167,6 @@ configuration { "asmjs" }
- }
- linkoptions {
- "-Wl,--start-group",
-- "-O" .. _OPTIONS["OPTIMIZE"],
- "-s USE_SDL=2",
- "-s USE_SDL_TTF=2",
- "--memory-init-file 0",
-@@ -1187,6 +1185,11 @@ configuration { "asmjs" }
- "--embed-file " .. _MAKE.esc(MAME_DIR) .. "artwork/bgfx@artwork/bgfx",
- "--embed-file " .. _MAKE.esc(MAME_DIR) .. "artwork/slot-mask.png@artwork/slot-mask.png",
- }
-+ if _OPTIONS["OPTIMIZE"] then
-+ linkoptions {
-+ "-O".. _OPTIONS["OPTIMIZE"],
-+ }
-+ end
- if _OPTIONS["SYMBOLS"]~=nil and _OPTIONS["SYMBOLS"]~="0" then
- linkoptions {
- "-g" .. _OPTIONS["SYMLEVEL"],
diff --git a/emulators/mame/files/patch-scripts_src_main.lua b/emulators/mame/files/patch-scripts_src_main.lua
index 391ffc7f10fb..0bb6d887d409 100644
--- a/emulators/mame/files/patch-scripts_src_main.lua
+++ b/emulators/mame/files/patch-scripts_src_main.lua
@@ -1,8 +1,8 @@
Remove suffixes from mame binary for debug/profile builds.
---- scripts/src/main.lua.orig 2023-11-14 03:17:20 UTC
+--- scripts/src/main.lua.orig 2025-09-24 14:56:11 UTC
+++ scripts/src/main.lua
-@@ -58,13 +58,13 @@ end
+@@ -71,13 +71,13 @@ end
configuration { "Release" }
targetsuffix ""
if _OPTIONS["PROFILE"] then
diff --git a/emulators/mame/files/patch-scripts_src_osd_modules.lua b/emulators/mame/files/patch-scripts_src_osd_modules.lua
index 2d5699969a93..c752c9d1668b 100644
--- a/emulators/mame/files/patch-scripts_src_osd_modules.lua
+++ b/emulators/mame/files/patch-scripts_src_osd_modules.lua
@@ -1,26 +1,26 @@
Enable the build to find Qt-6.
---- scripts/src/osd/modules.lua.orig 2023-10-23 15:53:41 UTC
+--- scripts/src/osd/modules.lua.orig 2025-09-24 14:56:11 UTC
+++ scripts/src/osd/modules.lua
-@@ -378,7 +378,7 @@ function qtdebuggerbuild()
+@@ -405,7 +405,7 @@ function qtdebuggerbuild()
MOC = "moc"
else
if _OPTIONS["QT_HOME"]~=nil then
-- MOCTST = backtick(_OPTIONS["QT_HOME"] .. "/bin/moc --version 2>/dev/null")
-+ MOCTST = backtick(_OPTIONS["QT_HOME"] .. "/libexec/qt6/moc --version 2>/dev/null")
- if (MOCTST=='') then
- MOCTST = backtick(_OPTIONS["QT_HOME"] .. "/libexec/moc --version 2>/dev/null")
- if (MOCTST=='') then
-@@ -388,7 +388,7 @@ function qtdebuggerbuild()
- MOC = _OPTIONS["QT_HOME"] .. "/libexec/moc"
+- local MOCTST = backtick(_OPTIONS["QT_HOME"] .. "/bin/moc --version 2>/dev/null")
++ local MOCTST = backtick(_OPTIONS["QT_HOME"] .. "/libexec/qt6/moc --version 2>/dev/null")
+ if MOCTST=='' then
+ local qt_host_libexecs = backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_HOST_LIBEXECS")
+ if not string.starts(qt_host_libexecs,"/") then
+@@ -419,7 +419,7 @@ function qtdebuggerbuild()
+ MOC = qt_host_libexecs .. "/moc"
end
else
- MOC = _OPTIONS["QT_HOME"] .. "/bin/moc"
+ MOC = _OPTIONS["QT_HOME"] .. "/libexec/qt6/moc"
end
else
- MOCTST = backtick("which moc-qt5 2>/dev/null")
-@@ -430,7 +430,7 @@ function qtdebuggerbuild()
+ local MOCTST = backtick("which moc-qt5 2>/dev/null")
+@@ -461,7 +461,7 @@ function qtdebuggerbuild()
else
if _OPTIONS["QT_HOME"]~=nil then
buildoptions {
@@ -29,8 +29,8 @@
}
else
buildoptions {
-@@ -500,9 +500,9 @@ function osdmodulestargetconf()
- }
+@@ -540,9 +540,9 @@ function osdmodulestargetconf()
+ end
else
if _OPTIONS["QT_HOME"]~=nil then
- local qt_version = str_to_version(backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_VERSION"))
diff --git a/emulators/mame/pkg-plist b/emulators/mame/pkg-plist
index 7236f88f8a3e..5ab30d4a8657 100644
--- a/emulators/mame/pkg-plist
+++ b/emulators/mame/pkg-plist
@@ -879,6 +879,7 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/b2m.xml
%%MAMEDATA%%%%DATADIR%%/hash/basf7100.xml
%%MAMEDATA%%%%DATADIR%%/hash/bbc_cass.xml
+%%MAMEDATA%%%%DATADIR%%/hash/bbc_vsm.xml
%%MAMEDATA%%%%DATADIR%%/hash/bbc_flop_32016.xml
%%MAMEDATA%%%%DATADIR%%/hash/bbc_flop_6502.xml
%%MAMEDATA%%%%DATADIR%%/hash/bbc_flop_68000.xml
@@ -975,6 +976,7 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/dragon_flex.xml
%%MAMEDATA%%%%DATADIR%%/hash/dragon_flop.xml
%%MAMEDATA%%%%DATADIR%%/hash/dragon_os9.xml
+%%MAMEDATA%%%%DATADIR%%/hash/duelmast_cart.xml
%%MAMEDATA%%%%DATADIR%%/hash/e01_flop.xml
%%MAMEDATA%%%%DATADIR%%/hash/easy_karaoke_cart.xml
%%MAMEDATA%%%%DATADIR%%/hash/ec1841.xml
@@ -1010,6 +1012,7 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/fmtowns_flop_misc.xml
%%MAMEDATA%%%%DATADIR%%/hash/fmtowns_flop_orig.xml
%%MAMEDATA%%%%DATADIR%%/hash/fp1100_cass.xml
+%%MAMEDATA%%%%DATADIR%%/hash/gaelco_ds5002fp_rom.xml
%%MAMEDATA%%%%DATADIR%%/hash/galaxy.xml
%%MAMEDATA%%%%DATADIR%%/hash/gamate.xml
%%MAMEDATA%%%%DATADIR%%/hash/gameboy.xml
@@ -1022,6 +1025,7 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/gba_ereader.xml
%%MAMEDATA%%%%DATADIR%%/hash/gbcolor.xml
%%MAMEDATA%%%%DATADIR%%/hash/gcslottv.xml
+%%MAMEDATA%%%%DATADIR%%/hash/generic_flop_525.xml
%%MAMEDATA%%%%DATADIR%%/hash/ggm.xml
%%MAMEDATA%%%%DATADIR%%/hash/gimix.xml
%%MAMEDATA%%%%DATADIR%%/hash/gj4000.xml
@@ -1070,6 +1074,7 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/ibm6580.xml
%%MAMEDATA%%%%DATADIR%%/hash/ibmpcjr_cart.xml
%%MAMEDATA%%%%DATADIR%%/hash/ibmpcjr_flop.xml
+%%MAMEDATA%%%%DATADIR%%/hash/ibmpcjx.xml
%%MAMEDATA%%%%DATADIR%%/hash/icanguit.xml
%%MAMEDATA%%%%DATADIR%%/hash/icanpian.xml
%%MAMEDATA%%%%DATADIR%%/hash/intellect02.xml
@@ -1207,9 +1212,11 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/myvision.xml
%%MAMEDATA%%%%DATADIR%%/hash/mz2000_cass.xml
%%MAMEDATA%%%%DATADIR%%/hash/mz2000_flop.xml
-%%MAMEDATA%%%%DATADIR%%/hash/mz2200_cass.xml
-%%MAMEDATA%%%%DATADIR%%/hash/mz2500.xml
+%%MAMEDATA%%%%DATADIR%%/hash/mz2500_flop.xml
+%%MAMEDATA%%%%DATADIR%%/hash/mz5500_flop.xml
%%MAMEDATA%%%%DATADIR%%/hash/mz700_cass.xml
+%%MAMEDATA%%%%DATADIR%%/hash/mz80b_cass.xml
+%%MAMEDATA%%%%DATADIR%%/hash/mz80b_flop.xml
%%MAMEDATA%%%%DATADIR%%/hash/mz800_cass.xml
%%MAMEDATA%%%%DATADIR%%/hash/n64.xml
%%MAMEDATA%%%%DATADIR%%/hash/n64_lodgenet.xml
@@ -1248,8 +1255,10 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/partner_cass.xml
%%MAMEDATA%%%%DATADIR%%/hash/partner_flop.xml
%%MAMEDATA%%%%DATADIR%%/hash/pasogo.xml
+%%MAMEDATA%%%%DATADIR%%/hash/pasopia7_cass.xml
%%MAMEDATA%%%%DATADIR%%/hash/pasopia_cass.xml
%%MAMEDATA%%%%DATADIR%%/hash/pb2000c.xml
+%%MAMEDATA%%%%DATADIR%%/hash/pc100_flop.xml
%%MAMEDATA%%%%DATADIR%%/hash/pc1000.xml
%%MAMEDATA%%%%DATADIR%%/hash/pc1512_flop.xml
%%MAMEDATA%%%%DATADIR%%/hash/pc1512_hdd.xml
@@ -1368,6 +1377,7 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/sgx.xml
%%MAMEDATA%%%%DATADIR%%/hash/singingstarkaraoke_cart.xml
%%MAMEDATA%%%%DATADIR%%/hash/sitcom.xml
+%%MAMEDATA%%%%DATADIR%%/hash/smartcycle_cart.xml
%%MAMEDATA%%%%DATADIR%%/hash/smarttv_cart.xml
%%MAMEDATA%%%%DATADIR%%/hash/smc777.xml
%%MAMEDATA%%%%DATADIR%%/hash/sms.xml
@@ -1427,6 +1437,7 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/tdv2324.xml
%%MAMEDATA%%%%DATADIR%%/hash/tek4052_cart.xml
%%MAMEDATA%%%%DATADIR%%/hash/telestory_cart.xml
+%%MAMEDATA%%%%DATADIR%%/hash/teradrive_flop.xml
%%MAMEDATA%%%%DATADIR%%/hash/tg16.xml
%%MAMEDATA%%%%DATADIR%%/hash/thinkpad8xx.xml
%%MAMEDATA%%%%DATADIR%%/hash/ti74_cart.xml
@@ -1669,8 +1680,6 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/plugins/xml/init.lua
%%MAMEDATA%%%%DATADIR%%/plugins/xml/plugin.json
%%MAMEDATA%%%%DATADIR%%/samples/LICENSE
-%%MAMEDATA%%%%DATADIR%%/samples/MM1_keyboard/beep.wav
-%%MAMEDATA%%%%DATADIR%%/samples/MM1_keyboard/power_switch.wav
%%MAMEDATA%%%%DATADIR%%/samples/README.md
%%MAMEDATA%%%%DATADIR%%/samples/dir.txt
%%MAMEDATA%%%%DATADIR%%/samples/floppy/35_seek_12ms.wav
diff --git a/emulators/mupen64plus-video-glide64mk2/Makefile b/emulators/mupen64plus-video-glide64mk2/Makefile
index f07402c75ce3..ba0f56e66113 100644
--- a/emulators/mupen64plus-video-glide64mk2/Makefile
+++ b/emulators/mupen64plus-video-glide64mk2/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 4
+PORTREVISION= 5
PKGNAMESUFFIX= -video-glide64mk2
COMMENT= Glide64mk2 video plugin for Mupen64Plus
diff --git a/emulators/nemu/Makefile b/emulators/nemu/Makefile
index e8a4917abe13..6f70ad0dfaa7 100644
--- a/emulators/nemu/Makefile
+++ b/emulators/nemu/Makefile
@@ -1,7 +1,6 @@
PORTNAME= nemu
DISTVERSIONPREFIX= v
-DISTVERSION= 3.3.1
-PORTREVISION= 1
+DISTVERSION= 3.4.0
CATEGORIES= emulators
MAINTAINER= arrowd@FreeBSD.org
diff --git a/emulators/nemu/distinfo b/emulators/nemu/distinfo
index 2165ecd2478c..1434b692581d 100644
--- a/emulators/nemu/distinfo
+++ b/emulators/nemu/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709378812
-SHA256 (nemuTUI-nemu-v3.3.1_GH0.tar.gz) = 7cdb27cbf5df1957d0f0a258fc334f15d9e2d06a450a982bb796094efc3960c0
-SIZE (nemuTUI-nemu-v3.3.1_GH0.tar.gz) = 174868
+TIMESTAMP = 1761325528
+SHA256 (nemuTUI-nemu-v3.4.0_GH0.tar.gz) = e272b3e80623f8aef66c3ecb5e2d8846ac89b2514a4bbb5026e74f51c1a5ef42
+SIZE (nemuTUI-nemu-v3.4.0_GH0.tar.gz) = 177146
diff --git a/emulators/nestopia/Makefile b/emulators/nestopia/Makefile
index 64dfc49d3821..99d97a1d7a45 100644
--- a/emulators/nestopia/Makefile
+++ b/emulators/nestopia/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nestopia
-DISTVERSION= 1.53.1
+DISTVERSION= 1.53.2
CATEGORIES= emulators
MAINTAINER= mclay@astate.edu
@@ -18,14 +18,15 @@ LIB_DEPENDS= libepoxy.so:graphics/libepoxy \
libsamplerate.so:audio/libsamplerate
USES= autoreconf gl gnome jpeg libarchive \
- localbase:ldflags pkgconfig sdl
+ localbase:ldflags pkgconfig sdl xorg
USE_CXXSTD= c++17
USE_GITHUB= yes
GH_ACCOUNT= 0ldsk00l
-GNU_CONFIGURE= yes
USE_GL= gl glu
USE_SDL= sdl2
-USE_XORG= xrender xcursor xfixes xext xft xinerama x11
+USE_XORG= x11 xcursor xext xfixes xft xinerama xrender
+
+GNU_CONFIGURE= yes
OPTIONS_DEFINE= DOCS JACK
diff --git a/emulators/nestopia/distinfo b/emulators/nestopia/distinfo
index b846fbdcf39b..045ff911d53c 100644
--- a/emulators/nestopia/distinfo
+++ b/emulators/nestopia/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1742944821
-SHA256 (0ldsk00l-nestopia-1.53.1_GH0.tar.gz) = 21aa45f6c608fe290d73fdec0e6f362538a975455b16a4cc54bcdd10962fff3e
-SIZE (0ldsk00l-nestopia-1.53.1_GH0.tar.gz) = 1704326
+TIMESTAMP = 1756411038
+SHA256 (0ldsk00l-nestopia-1.53.2_GH0.tar.gz) = 7783d2673ad496109e7dd3d75756cfef30c5b400409131b83b45c2fa3ddd735b
+SIZE (0ldsk00l-nestopia-1.53.2_GH0.tar.gz) = 1709367
diff --git a/emulators/open-vm-tools/files/patch-Makefile.am b/emulators/open-vm-tools/files/patch-Makefile.am
index 7bee47e68728..acda99766f9f 100644
--- a/emulators/open-vm-tools/files/patch-Makefile.am
+++ b/emulators/open-vm-tools/files/patch-Makefile.am
@@ -7,5 +7,5 @@
- $(INSTALL) -d $(DESTDIR)/etc/vmware-tools/
- $(INSTALL) -m 644 $(srcdir)/tools.conf $(DESTDIR)/etc/vmware-tools/tools.conf.example
+ $(INSTALL) -d $(DESTDIR)%%PREFIX%%/etc/vmware-tools/
-+ $(INSTALL) -m 644 $(srcdir)/tools.conf $(DESTDIR)%%PREFIX%%/etc/vmware-tools/tools.conf.example
++ $(INSTALL) -m 644 $(srcdir)/tools.conf $(DESTDIR)%%PREFIX%%/etc/vmware-tools/tools.conf.sample
diff --git a/emulators/open-vm-tools/pkg-plist b/emulators/open-vm-tools/pkg-plist
index d8cd7adcfaee..a5a9f3428e99 100644
--- a/emulators/open-vm-tools/pkg-plist
+++ b/emulators/open-vm-tools/pkg-plist
@@ -11,7 +11,7 @@ bin/vmware-toolbox-cmd
%%FUSE%%bin/vmware-vmblock-fuse
bin/vmware-xferlogs
etc/pam.d/vmtoolsd
-@sample etc/vmware-tools/tools.conf.example
+@sample etc/vmware-tools/tools.conf.sample
%%X11%%etc/xdg/autostart/vmware-user.desktop
%%DEPLOYPKG%%include/libDeployPkg/deployPkgFormat.h
%%DEPLOYPKG%%include/libDeployPkg/deploypkg.h
diff --git a/emulators/pcsx2/Makefile b/emulators/pcsx2/Makefile
index 4affe0e991ad..2a27df254f49 100644
--- a/emulators/pcsx2/Makefile
+++ b/emulators/pcsx2/Makefile
@@ -1,6 +1,5 @@
PORTNAME= pcsx2
-PORTVERSION= 2.3.439
-PORTREVISION= 3
+PORTVERSION= 2.4.0
DISTVERSIONPREFIX= v
CATEGORIES= emulators
@@ -75,6 +74,9 @@ CMAKE_ARGS+= \
OPTIONS_DEFINE= DOCS
PORTDOCS= Debugger.pdf GameIndex.pdf
+# Stable releases use an even minor number
+PORTSCOUT= limit:^v[0-9]+.[02468].
+
# - Program and resources are copied from target dir ${CONFIGURE_WRKSRC}/bin
# because only necessary resources are installed there (e.g. no dx11 stuff)
do-install:
diff --git a/emulators/pcsx2/distinfo b/emulators/pcsx2/distinfo
index 742e5ac06800..fc07e9b05e9d 100644
--- a/emulators/pcsx2/distinfo
+++ b/emulators/pcsx2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1750709445
-SHA256 (pcsx2-pcsx2-v2.3.439_GH0.tar.gz) = ed75141b426964a63b87b19ddfdd7b3659d3652254de4e694eea1784cf3ace3f
-SIZE (pcsx2-pcsx2-v2.3.439_GH0.tar.gz) = 19851256
+TIMESTAMP = 1760465569
+SHA256 (pcsx2-pcsx2-v2.4.0_GH0.tar.gz) = b18f0f4c28e482e7f88c5f428bd445fd511facabbb426dfd72d55ee904cc74c1
+SIZE (pcsx2-pcsx2-v2.4.0_GH0.tar.gz) = 20096340
diff --git a/emulators/ppsspp/Makefile b/emulators/ppsspp/Makefile
index 18747dd52b1d..532d819af086 100644
--- a/emulators/ppsspp/Makefile
+++ b/emulators/ppsspp/Makefile
@@ -1,6 +1,7 @@
PORTNAME= ppsspp
DISTVERSIONPREFIX= v
DISTVERSION?= 1.19.3
+PORTREVISION= 1
CATEGORIES= emulators
MAINTAINER= kreinholz@gmail.com
diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile
index f6eff65b8ff2..db43eab2d357 100644
--- a/emulators/qemu/Makefile
+++ b/emulators/qemu/Makefile
@@ -1,5 +1,6 @@
PORTNAME= qemu
-DISTVERSION= 10.1.0
+DISTVERSION= 10.1.2
+PORTREVISION= 1
CATEGORIES= emulators
MASTER_SITES= https://download.qemu.org/
DIST_SUBDIR= qemu/${PORTVERSION}
diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo
index da4eef02182e..5e2a252aab2a 100644
--- a/emulators/qemu/distinfo
+++ b/emulators/qemu/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1756287018
-SHA256 (qemu/10.1.0/qemu-10.1.0.tar.xz) = e0517349b50ca73ebec2fa85b06050d5c463ca65c738833bd8fc1f15f180be51
-SIZE (qemu/10.1.0/qemu-10.1.0.tar.xz) = 141999456
+TIMESTAMP = 1761563277
+SHA256 (qemu/10.1.2/qemu-10.1.2.tar.xz) = 9d75f331c1a5cb9b6eb8fd9f64f563ec2eab346c822cb97f8b35cd82d3f11479
+SIZE (qemu/10.1.2/qemu-10.1.2.tar.xz) = 142050300
diff --git a/emulators/rpcs3/Makefile b/emulators/rpcs3/Makefile
index 1ddffd7839de..0aeae0be30c0 100644
--- a/emulators/rpcs3/Makefile
+++ b/emulators/rpcs3/Makefile
@@ -1,6 +1,7 @@
PORTNAME= rpcs3
DISTVERSIONPREFIX= v
DISTVERSION= 0.0.38 # git rev-list --count HEAD
+PORTREVISION= 1
DISTVERSIONSUFFIX= -18170-g23b339d410
CATEGORIES= emulators wayland
diff --git a/emulators/virtualbox-ose-70/Makefile b/emulators/virtualbox-ose-70/Makefile
index 14e02f5abe9e..7371a4528b90 100644
--- a/emulators/virtualbox-ose-70/Makefile
+++ b/emulators/virtualbox-ose-70/Makefile
@@ -96,7 +96,7 @@ DEBUG_DESC= Debug symbols, additional logs and assertions
GUESTADDITIONS_DESC= Build with Guest Additions
NLS_DESC= Native language support (requires QT5)
OGG_DESC= Use libogg from audio/libogg instead of bundled one
-QT5_DESC= Build with QT5 frontend (requires X11)
+QT5_DESC= Build with Qt5 frontend (requires X11)
R0LOGGING_DESC= Enable R0 logging (requires DEBUG)
TPM_DESC= Enable TPM device emulation using sysutils/libtpms
UDPTUNNEL_DESC= Build with UDP tunnel support
diff --git a/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
index e790f372f95f..5ac0dc7e17c8 100644
--- a/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
+++ b/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
@@ -1,5 +1,5 @@
---- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2022-10-06 19:03:06.000000000 +0200
-+++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c 2024-12-26 15:28:38.066230000 +0100
+--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2025-04-11 12:02:54 UTC
++++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c
@@ -55,6 +55,7 @@
#include <sys/uio.h>
#include <sys/bus.h>
@@ -16,7 +16,7 @@
#include <iprt/initterm.h>
#include <iprt/process.h>
#include <iprt/string.h>
-@@ -112,8 +114,6 @@
+@@ -112,8 +114,6 @@ struct VBoxGuestDeviceState
struct resource *pIrqRes;
/** Pointer to the IRQ handler. */
void *pfnIrqHandler;
@@ -25,7 +25,7 @@
};
-@@ -123,8 +123,7 @@
+@@ -123,8 +123,7 @@ struct VBoxGuestDeviceState
/*
* Character device file handlers.
*/
@@ -35,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;
-@@ -155,8 +154,7 @@
+@@ -155,8 +154,7 @@ static struct cdevsw g_vgdrvFreeBSDChrDevSW =
{
.d_version = D_VERSION,
.d_flags = D_TRACKCLOSE | D_NEEDMINOR,
@@ -45,7 +45,7 @@
.d_ioctl = vgdrvFreeBSDIOCtl,
.d_read = vgdrvFreeBSDRead,
.d_write = vgdrvFreeBSDWrite,
-@@ -164,81 +162,28 @@
+@@ -164,81 +162,28 @@ static struct cdevsw g_vgdrvFreeBSDChrDevSW =
.d_name = "vboxguest"
};
@@ -134,7 +134,7 @@
{
int rc;
PVBOXGUESTSESSION pSession;
-@@ -250,12 +195,6 @@
+@@ -250,12 +195,6 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
LogFlow(("vgdrvFreeBSDOpen:\n"));
/*
@@ -147,7 +147,7 @@
* Create a new session.
*/
fRequestor = VMMDEV_REQUESTOR_USERMODE | VMMDEV_REQUESTOR_TRUST_NOT_GIVEN;
-@@ -272,47 +211,20 @@
+@@ -272,14 +211,13 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
rc = VGDrvCommonCreateUserSession(&g_DevExt, fRequestor, &pSession);
if (RT_SUCCESS(rc))
{
@@ -168,10 +168,10 @@
}
LogRel(("vgdrvFreeBSDOpen: failed. rc=%d\n", rc));
- return RTErrConvertToErrno(rc);
+@@ -287,33 +225,6 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
}
--/**
+ /**
- * File close handler
- *
- */
@@ -179,7 +179,7 @@
-{
- PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1;
- Log(("vgdrvFreeBSDClose: fFile=%#x pSession=%p\n", fFile, pSession));
-
+-
- /*
- * Close the session if it's still hanging on to the device...
- */
@@ -198,10 +198,11 @@
-}
-
-
- /**
+-/**
* I/O control request.
*
-@@ -326,8 +238,12 @@
+ * @returns depends...
+@@ -326,8 +237,12 @@ static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long
static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long ulCmd, caddr_t pvData, int fFile, struct thread *pTd)
{
PVBOXGUESTSESSION pSession;
@@ -215,20 +216,25 @@
/*
* Deal with the fast ioctl path first.
*/
-@@ -526,8 +442,10 @@
+@@ -522,12 +437,14 @@ static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEv
+
+ static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEvents, struct thread *td)
+ {
+- int fEventsProcessed;
++ PVBOXGUESTSESSION pSession;
++ int fEventsProcessed, rc;
LogFlow(("vgdrvFreeBSDPoll: fEvents=%d\n", fEvents));
- PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1;
- if (RT_UNLIKELY(!RT_VALID_PTR(pSession))) {
-+
+ rc = devfs_get_cdevpriv((void **)&pSession);
+ if (rc)
-+ {
++ {
Log(("vgdrvFreeBSDPoll: no state data for %s\n", devtoname(pDev)));
return (fEvents & (POLLHUP|POLLIN|POLLRDNORM|POLLOUT|POLLWRNORM));
}
-@@ -568,11 +486,8 @@
+@@ -568,11 +485,8 @@ static int vgdrvFreeBSDDetach(device_t pDevice)
/*
* Reverse what we did in vgdrvFreeBSDAttach.
*/
@@ -241,7 +247,7 @@
vgdrvFreeBSDRemoveIRQ(pDevice, pState);
if (pState->pVMMDevMemRes)
-@@ -737,18 +652,21 @@
+@@ -737,18 +651,21 @@ static int vgdrvFreeBSDAttach(device_t pDevice)
VGDrvCommonProcessOptionsFromHost(&g_DevExt);
/*
@@ -269,7 +275,7 @@
vgdrvFreeBSDRemoveIRQ(pDevice, pState);
}
else
-@@ -792,8 +710,12 @@
+@@ -792,8 +709,12 @@ static driver_t vgdrvFreeBSDDriver =
sizeof(struct VBoxGuestDeviceState),
};
diff --git a/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile b/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
index 476346a59b13..37c1596cfe87 100644
--- a/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
+++ b/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
@@ -1,15 +1,17 @@
---- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2019-04-16 10:09:09 UTC
+--- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2025-10-16 14:25:29 UTC
+++ src/VBox/Additions/common/VBoxGuest/freebsd/Makefile
-@@ -25,7 +25,7 @@
+@@ -34,9 +34,8 @@ KMOD = vboxguest
+ # SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
#
KMOD = vboxguest
-
--CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS
+CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_GUEST -DIN_GUEST_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS
+-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS
+-
.if (${MACHINE_ARCH} == "i386")
CFLAGS += -DRT_ARCH_X86
-@@ -80,6 +80,7 @@ SRCS += \
+ .elif (${MACHINE_ARCH} == "amd64")
+@@ -91,6 +90,7 @@ SRCS += \
handletable.c \
handletablectx.c \
once.c \
@@ -17,7 +19,7 @@
thread.c
.PATH: ${.CURDIR}/common/string
-@@ -147,6 +148,7 @@ SRCS += \
+@@ -163,6 +163,7 @@ SRCS += \
.PATH: ${.CURDIR}/r0drv
SRCS += \
@@ -25,3 +27,12 @@
alloc-r0drv.c \
initterm-r0drv.c \
memobj-r0drv.c \
+@@ -196,7 +197,7 @@ SRCS += \
+ SRCS += \
+ log-vbox.c \
+ logbackdoor.c \
+- RTLogWriteVmm-amd64-x86.
++ RTLogWriteVmm-amd64-x86.c
+
+ .include <bsd.kmod.mk>
+
diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
index 270472c045e3..796aecabac8f 100644
--- a/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
+++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
@@ -1,4 +1,4 @@
---- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2025-05-11 03:54:13 UTC
+--- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2025-10-24 13:49:31 UTC
+++ src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk
@@ -0,0 +1,28 @@
+# $Id: Makefile.kmk $
@@ -18,7 +18,7 @@
+CFLAGS+=-I$(MOUNT)
+
+PROGRAMS += mount_vboxvfs
-+mount_vboxvfs_TEMPLATE = NewVBoxGuestR3Exe
++mount_vboxvfs_TEMPLATE = VBoxGuestR3Exe
+mount_vboxvfs_SOURCES = mount_vboxvfs.c
+
+ifdef HAVE_MNTOPTS_IN_LIBUTIL
diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk
new file mode 100644
index 000000000000..679778e60181
--- /dev/null
+++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk
@@ -0,0 +1,50 @@
+--- src/VBox/Additions/freebsd/vboxvfs/Makefile.kmk.orig 2025-10-22 19:18:12 UTC
++++ src/VBox/Additions/freebsd/vboxvfs/Makefile.kmk
+@@ -43,32 +43,37 @@ vboxvfs_SOURCES = \
+ $(vboxvfs_0_OUTDIR)
+ vboxvfs_SOURCES = \
+ vboxvfs_vfsops.c \
+- vboxvfs_vnops.c
++ bcmp.c \
++ vboxvfs_vnops.c \
++ vboxvfs_prov.c
+ vboxvfs_LIBS = \
+ $(VBOX_LIB_VBGL_R0) \
+ $(VBOX_LIB_IPRT_GUEST_R0)
+ vboxvfs_DEPS = \
+- $$(vboxvfs_0_OUTDIR)/vnode_if.h \
+- $$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h \
+- $$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
++ $(vboxvfs_0_OUTDIR)/vnode_if.h \
++ $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h \
++ $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
+ vboxvfs_CLEAN += $(vboxvfs_DEPS)
+
+ VBOX_AWK := /usr/bin/awk
+
+-$$(vboxvfs_0_OUTDIR)/vnode_if.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
++$$(vboxvfs_0_OUTDIR):
++ $(QUIET)$(MKDIR) -p $(vboxvfs_0_OUTDIR)
++
++$$(vboxvfs_0_OUTDIR)/vnode_if.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
+ $(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -h
+- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if.h $(vboxvfs_0_OUTDIR)/vnode_if.h
++ $(QUIET)$(MV) vnode_if.h $(vboxvfs_0_OUTDIR)/vnode_if.h
+
+-$$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
++$$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
+ $(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -p
+- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h
++ $(QUIET)$(MV) vnode_if_newproto.h $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h
+
+-$$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
++$$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
+ $(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -q
+- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
++ $(QUIET)$(MV) vnode_if_typedef.h $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
+
+ include $(FILE_KBUILD_SUB_FOOTER)
+
diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk b/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
index afb19c804d7a..2d0377fb3e40 100644
--- a/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
+++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
@@ -1,6 +1,6 @@
---- src/VBox/Additions/x11/vboxmouse/Makefile.kmk.orig 2019-01-25 18:24:30 UTC
+--- src/VBox/Additions/x11/vboxmouse/Makefile.kmk.orig 2025-10-16 14:25:37 UTC
+++ src/VBox/Additions/x11/vboxmouse/Makefile.kmk
-@@ -227,10 +227,22 @@ endif # neq ($(KBUILD_TARGET),linux)
+@@ -237,10 +237,22 @@ ifdef VBOX_USE_SYSTEM_XORG_HEADERS
ifdef VBOX_USE_SYSTEM_XORG_HEADERS
@@ -10,7 +10,7 @@
- SYSMODS := $(filter-out vboxmouse_drv%,$(SYSMODS))
+ ifeq ($(KBUILD_TARGET),freebsd)
+ DLLS += vboxmouse_drv_system
-+ vboxmouse_drv_system_TEMPLATE = VBOXGUESTR3XORGMOD
++ vboxmouse_drv_system_TEMPLATE = VBoxGuestR3XOrgMod
+ vboxmouse_drv_system_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
+ vboxmouse_drv_system_INCS := \
+ /usr/local/include/pixman-1 \
diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk b/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk
new file mode 100644
index 000000000000..38ef1ac68f9e
--- /dev/null
+++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk
@@ -0,0 +1,15 @@
+--- src/VBox/Additions/x11/vboxvideo/Makefile.kmk.orig 2025-10-22 19:22:45 UTC
++++ src/VBox/Additions/x11/vboxvideo/Makefile.kmk
+@@ -415,9 +415,10 @@ ifdef VBOX_USE_SYSTEM_XORG_HEADERS
+ vboxvideo_drv_system_INCS += \
+ $(PATH_ROOT)/src/VBox/Runtime/include \
+ $(VBOX_GRAPHICS_INCS) \
+- /usr/include/xorg \
+- /usr/include/pixman-1
++ /usr/local/include/xorg \
++ /usr/local/include/pixman-1
+ vboxvideo_drv_system_SOURCES := $(vboxvideo_drv_17_SOURCES)
++ vboxvideo_drv_system_LIBS += $(vboxvideo_drv_70_LIBS)
+ endif
+
+
diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c b/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
index cbdcb490764f..86e5984d6b82 100644
--- a/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
+++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
@@ -11,16 +11,26 @@
switch (pMemFreeBSD->Core.enmType)
{
-@@ -155,8 +157,6 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+@@ -155,9 +157,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
case RTR0MEMOBJTYPE_LOCK:
{
- vm_map_t pMap = kernel_map;
-
- if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS)
+- if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS)
++ if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS) {
pMap = &((struct proc *)pMemFreeBSD->Core.u.Lock.R0Process)->p_vmspace->vm_map;
-@@ -197,6 +197,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+ rc = vm_map_unwire(pMap,
+@@ -165,6 +165,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+ (vm_offset_t)pMemFreeBSD->Core.pv + pMemFreeBSD->Core.cb,
+ VM_MAP_WIRE_SYSTEM | VM_MAP_WIRE_NOHOLES);
+ AssertMsg(rc == KERN_SUCCESS, ("%#x", rc));
++ }
+ break;
+ }
+
+@@ -197,6 +198,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
case RTR0MEMOBJTYPE_PHYS_NC:
{
VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
@@ -28,7 +38,7 @@
vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0);
#if __FreeBSD_version < 1000000
vm_page_lock_queues();
-@@ -210,6 +211,14 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+@@ -210,6 +212,14 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
#if __FreeBSD_version < 1000000
vm_page_unlock_queues();
#endif
@@ -43,7 +53,7 @@
VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
vm_object_deallocate(pMemFreeBSD->pObject);
break;
-@@ -220,6 +229,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+@@ -220,6 +230,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
return VERR_INTERNAL_ERROR;
}
@@ -51,7 +61,7 @@
return VINF_SUCCESS;
}
-@@ -329,7 +339,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOBJFRE
+@@ -329,7 +340,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOBJFRE
size_t cPages = atop(pMemFreeBSD->Core.cb);
int rc;
@@ -61,7 +71,7 @@
/* No additional object reference for auto-deallocation upon unmapping. */
#if __FreeBSD_version >= 1000055
-@@ -371,6 +382,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
+@@ -371,6 +383,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag)
{
@@ -69,7 +79,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PAGE,
NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -380,8 +392,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
+@@ -380,8 +393,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
*ppMem = &pMemFreeBSD->Core;
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -80,7 +90,7 @@
return VERR_NO_MEMORY;
}
-@@ -395,6 +409,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
+@@ -395,6 +410,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag)
{
@@ -88,7 +98,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_LOW, NULL, cb, pszTag);
if (pMemFreeBSD)
{
-@@ -403,14 +418,17 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
+@@ -403,14 +419,17 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
*ppMem = &pMemFreeBSD->Core;
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -106,7 +116,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_CONT,
NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -423,8 +441,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
+@@ -423,8 +442,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
}
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -117,7 +127,7 @@
return VERR_NO_MEMORY;
}
-@@ -432,6 +452,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -432,6 +453,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJTYPE enmType, size_t cb, RTHCPHYS PhysHighest,
size_t uAlignment, bool fContiguous, int rcNoMem, const char *pszTag)
{
@@ -125,7 +135,7 @@
/* create the object. */
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), enmType, NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -439,7 +460,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -439,7 +461,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
vm_paddr_t const VmPhysAddrHigh = PhysHighest != NIL_RTHCPHYS ? PhysHighest : ~(vm_paddr_t)0;
u_long const cPages = atop(cb);
@@ -135,7 +145,7 @@
int rc = rtR0MemObjFreeBSDPhysAllocHelper(pMemFreeBSD->pObject, cPages, VmPhysAddrHigh,
uAlignment, fContiguous, true, rcNoMem);
-@@ -449,7 +471,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -449,7 +472,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
{
Assert(enmType == RTR0MEMOBJTYPE_PHYS);
VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
@@ -144,7 +154,7 @@
VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
pMemFreeBSD->Core.u.Phys.fAllocated = true;
}
-@@ -462,8 +484,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -462,8 +485,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
vm_object_deallocate(pMemFreeBSD->pObject);
rtR0MemObjDelete(&pMemFreeBSD->Core);
}
@@ -155,7 +165,7 @@
return VERR_NO_MEMORY;
}
-@@ -486,6 +510,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
+@@ -486,6 +511,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
const char *pszTag)
{
AssertReturn(uCachePolicy == RTMEM_CACHE_POLICY_DONT_CARE, VERR_NOT_SUPPORTED);
@@ -163,7 +173,7 @@
/* create the object. */
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PHYS,
-@@ -497,8 +522,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
+@@ -497,8 +523,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
pMemFreeBSD->Core.u.Phys.PhysBase = Phys;
pMemFreeBSD->Core.u.Phys.uCachePolicy = uCachePolicy;
*ppMem = &pMemFreeBSD->Core;
@@ -174,7 +184,7 @@
return VERR_NO_MEMORY;
}
-@@ -510,6 +537,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
+@@ -510,6 +538,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
vm_offset_t AddrStart, size_t cb, uint32_t fAccess,
RTR0PROCESS R0Process, int fFlags, const char *pszTag)
{
@@ -182,7 +192,7 @@
int rc;
NOREF(fAccess);
-@@ -519,21 +547,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
+@@ -519,21 +548,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
if (!pMemFreeBSD)
return VERR_NO_MEMORY;
@@ -219,7 +229,7 @@
return VERR_NO_MEMORY;/** @todo fix mach -> vbox error conversion for freebsd. */
}
-@@ -573,6 +608,7 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
+@@ -573,6 +609,7 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJINTERNAL ppMem, void *pvFixed, size_t cb, size_t uAlignment,
RTR0PROCESS R0Process, vm_map_t pMap, const char *pszTag)
{
@@ -227,7 +237,7 @@
int rc;
/*
-@@ -631,11 +667,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
+@@ -631,11 +668,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
pMemFreeBSD->Core.pv = (void *)MapAddress;
pMemFreeBSD->Core.u.ResVirt.R0Process = R0Process;
*ppMem = &pMemFreeBSD->Core;
@@ -241,7 +251,7 @@
return rc;
}
-@@ -659,6 +697,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
+@@ -659,6 +698,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, void *pvFixed, size_t uAlignment,
unsigned fProt, size_t offSub, size_t cbSub, const char *pszTag)
{
@@ -250,7 +260,7 @@
// AssertMsgReturn(!offSub && !cbSub, ("%#x %#x\n", offSub, cbSub), VERR_NOT_SUPPORTED);
AssertMsgReturn(pvFixed == (void *)-1, ("%p\n", pvFixed), VERR_NOT_SUPPORTED);
-@@ -713,6 +753,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
+@@ -713,6 +754,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
Assert((vm_offset_t)pMemFreeBSD->Core.pv == Addr);
pMemFreeBSD->Core.u.Mapping.R0Process = NIL_RTR0PROCESS;
*ppMem = &pMemFreeBSD->Core;
@@ -258,7 +268,7 @@
return VINF_SUCCESS;
}
rc = vm_map_remove(kernel_map, Addr, Addr + cbSub);
-@@ -721,6 +762,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
+@@ -721,6 +763,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
else
vm_object_deallocate(pMemToMapFreeBSD->pObject);
@@ -266,7 +276,7 @@
return VERR_NO_MEMORY;
}
-@@ -728,6 +770,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
+@@ -728,6 +771,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment,
unsigned fProt, RTR0PROCESS R0Process, size_t offSub, size_t cbSub, const char *pszTag)
{
@@ -275,7 +285,7 @@
/*
* Check for unsupported stuff.
*/
-@@ -785,44 +829,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
+@@ -785,44 +830,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
if (rc == KERN_SUCCESS)
{
@@ -330,7 +340,7 @@
if ((fProt & RTMEM_PROT_NONE) == RTMEM_PROT_NONE)
ProtectionFlags = VM_PROT_NONE;
-@@ -833,7 +883,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT
+@@ -833,7 +884,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT
if ((fProt & RTMEM_PROT_EXEC) == RTMEM_PROT_EXEC)
ProtectionFlags |= VM_PROT_EXECUTE;
@@ -343,7 +353,7 @@
if (krc == KERN_SUCCESS)
return VINF_SUCCESS;
-@@ -858,11 +913,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+@@ -858,11 +914,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
vm_offset_t pb = (vm_offset_t)pMemFreeBSD->Core.pv + ptoa(iPage);
@@ -367,7 +377,7 @@
}
case RTR0MEMOBJTYPE_MAPPING:
-@@ -871,11 +934,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+@@ -871,11 +935,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
if (pMemFreeBSD->Core.u.Mapping.R0Process != NIL_RTR0PROCESS)
{
@@ -384,7 +394,7 @@
}
return vtophys(pb);
}
-@@ -886,9 +953,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+@@ -886,9 +954,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
{
RTHCPHYS addr;
diff --git a/emulators/virtualbox-ose-70/files/vboxinit.in b/emulators/virtualbox-ose-70/files/vboxinit.in
index 9895da9e362e..9574d7d6295e 100644
--- a/emulators/virtualbox-ose-70/files/vboxinit.in
+++ b/emulators/virtualbox-ose-70/files/vboxinit.in
@@ -16,7 +16,7 @@
# vboxinit_stop (str): Default stop cmd for VBoxManage controlvm.
# (default: savestate)
# vboxinit_start_delay (int): Default startup delay in seconds.
-# (default: 0)
+# (default: 1)
# vboxinit_stop_delay (int): Default shutdown delay in seconds.
# (default: 0)
#
diff --git a/emulators/virtualbox-ose-71/Makefile b/emulators/virtualbox-ose-71/Makefile
index 390f4ffa655b..f0ee8e8fe57e 100644
--- a/emulators/virtualbox-ose-71/Makefile
+++ b/emulators/virtualbox-ose-71/Makefile
@@ -1,6 +1,6 @@
PORTNAME= virtualbox-ose
-DISTVERSION= 7.1.12
-PORTREVISION?= 1
+DISTVERSION= 7.1.14
+PORTREVISION?= 0
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
LOCAL/vvd:docs
@@ -95,7 +95,7 @@ DEBUG_DESC= Debug symbols, additional logs and assertions
GUESTADDITIONS_DESC= Build with Guest Additions
NLS_DESC= Native language support (requires QT6)
OGG_DESC= Use libogg from audio/libogg instead of bundled one
-QT6_DESC= Build with QT6 frontend (requires X11)
+QT6_DESC= Build with Qt6 frontend (requires X11)
R0LOGGING_DESC= Enable R0 logging (requires DEBUG)
TPM_DESC= Enable TPM device emulation using sysutils/libtpms
UDPTUNNEL_DESC= Build with UDP tunnel support
diff --git a/emulators/virtualbox-ose-71/distinfo b/emulators/virtualbox-ose-71/distinfo
index e7b992b0b10c..c6cabfd397f1 100644
--- a/emulators/virtualbox-ose-71/distinfo
+++ b/emulators/virtualbox-ose-71/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1752700000
-SHA256 (VirtualBox-7.1.12.tar.bz2) = 6f9618f39168898134975f51df7c2d6d5129c0aa82b6ae11cf47f920c70df276
-SIZE (VirtualBox-7.1.12.tar.bz2) = 214691769
-SHA256 (VirtualBox-docs-7.1.12.tar.bz2) = ba48f2da2593d8cae56fcf601c132d77dbf1d16b1e26db162c89449250c269bd
-SIZE (VirtualBox-docs-7.1.12.tar.bz2) = 10109084
-SHA256 (VBoxGuestAdditions_7.1.12.iso) = 256883e2eabf7ab5c10fb3b6831c294942ce34bc615807f9d0cf6c3d2e882236
-SIZE (VBoxGuestAdditions_7.1.12.iso) = 61331456
+TIMESTAMP = 1761088888
+SHA256 (VirtualBox-7.1.14.tar.bz2) = 6a4eea884cd98049a5357133b718078d8aaae68047836a3f86cd5904336d6218
+SIZE (VirtualBox-7.1.14.tar.bz2) = 216819853
+SHA256 (VirtualBox-docs-7.1.14.tar.bz2) = f0b683626a41a8aad1054e6c215c2b0f917a87a200a661a1e1a142b051a8a778
+SIZE (VirtualBox-docs-7.1.14.tar.bz2) = 10110959
+SHA256 (VBoxGuestAdditions_7.1.14.iso) = 3c22ab6fe1acadf1ac522a6fb53984a8bd236862a490ab5cc9e0e3bcc521aae6
+SIZE (VBoxGuestAdditions_7.1.14.iso) = 61343744
diff --git a/emulators/virtualbox-ose-71/files/patch-configure b/emulators/virtualbox-ose-71/files/patch-configure
index 3645d1236ea8..ce88f3f17087 100644
--- a/emulators/virtualbox-ose-71/files/patch-configure
+++ b/emulators/virtualbox-ose-71/files/patch-configure
@@ -1,6 +1,6 @@
---- configure.orig 2025-04-14 17:41:37 UTC
+--- configure.orig 2025-10-16 14:17:04 UTC
+++ configure
-@@ -158,10 +158,14 @@ if [ "$OS" = "freebsd" ]; then
+@@ -156,10 +156,14 @@ if [ "$OS" = "freebsd" ]; then
if [ "$OS" = "freebsd" ]; then
INCCURL="-I/usr/local/include"
LIBCURL="-L/usr/local/lib -lcurl"
@@ -15,7 +15,7 @@
else
INCCURL=""
LIBCURL="-lcurl"
-@@ -1211,6 +1215,9 @@ extern "C" int main(int argc, char** argv)
+@@ -1179,6 +1183,9 @@ extern "C" int main(int argc, char** argv)
printf("found version %d.%d.%d",
SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL);
#if SDL_VERSION_ATLEAST(1,2,7)
@@ -25,7 +25,7 @@
printf(", OK.\n");
return 0;
#else
-@@ -1295,7 +1302,7 @@ EOF
+@@ -1263,7 +1270,7 @@ EOF
#endif
}
EOF
@@ -34,7 +34,7 @@
test_execute
fi
}
-@@ -1599,6 +1606,7 @@ EOF
+@@ -1567,6 +1574,7 @@ EOF
SDKQT6=$PATH_SDK_QT6
fi
FLGQT6="-framework QtCore -std=c++17 -Wl,-rpath,`L_to_PATH "$LIBQT6"`"
@@ -42,28 +42,7 @@
else
log_failure "Qt6 framework not found (can be disabled using --disable-qt)"
fail
-@@ -1875,9 +1883,9 @@ check_libvorbis()
- if which_wrapper pkg-config > /dev/null; then
- libvorbis_ver=`pkg-config vorbis --modversion 2>> $LOG`
- if [ $? -eq 0 ]; then
-- FLGVRB=`pkg-config vorbis --cflags`
-+ FLGVRB=`pkg-config vorbis vorbisenc --cflags`
- INCVRB=`strip_I "$FLGVRB"`
-- LIBVRB=`pkg-config vorbis --libs`
-+ LIBVRB=`pkg-config vorbis vorbisenc --libs`
- fi
- cat > $ODIR.tmp_src.cc << EOF
- #include <cstdio>
-@@ -1927,7 +1935,7 @@ EOF
- return 0;
- }
- EOF
-- [ -n "$INCOGG" ] && I_INCVRB=`prefix_I "$INCOGG"`
-+ [ -n "$INCOGG" ] && I_INCOGG=`prefix_I "$INCOGG"`
- if test_compile "$LIBOGG $I_INCOGG" ogg ogg nofatal; then
- if test_execute; then
- cnf_append "SDK_VBoxLibOgg_INCS" "$INCOGG"
-@@ -2194,8 +2202,8 @@ EOF
+@@ -2133,8 +2141,8 @@ EOF
echo "compiling the following source file:" >> $LOG
cat $ODIR.tmp_src.cc >> $LOG
echo "using the following command line:" >> $LOG
@@ -74,7 +53,7 @@
if [ $? -eq 0 ]; then
found=1
break
-@@ -2311,7 +2319,7 @@ check_gsoap()
+@@ -2250,7 +2258,7 @@ check_gsoap()
else
cnf_append "VBOX_GSOAP_CXX_SOURCES" ""
fi
@@ -83,7 +62,7 @@
gsoap_version=`pkg-config gsoapssl++ --modversion`
log_success "found version $gsoap_version"
return
-@@ -2687,7 +2695,7 @@ for option in "$@"; do
+@@ -2624,7 +2632,7 @@ for option in "$@"; do
--with-openssl-dir=*)
OPENSSLDIR=`echo $option | cut -d'=' -f2`
INCCRYPTO="-I${OPENSSLDIR}/include"
@@ -92,7 +71,7 @@
# On Darwin (at least for macports) static OpenSSL also needs zlib.
[ "$OS" = "darwin" ] && LIBCRYPTO="$LIBCRYPTO ${OPENSSLDIR}/lib/libz.a"
# On Linux static OpenSSL typically needs a few additional libraries.
-@@ -3054,12 +3062,22 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then
+@@ -2988,12 +2996,22 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then
[ $WITH_JAVA -eq 1 ] && check_java
# PulseAudio
@@ -121,7 +100,7 @@
fi
fi
-@@ -3075,14 +3093,6 @@ if [ "$OS" = "linux" ]; then
+@@ -3009,14 +3027,6 @@ if [ "$OS" = "linux" ]; then
cnf_append "VBOX_WITHOUT_LINUX_TEST_BUILDS" "1"
fi
if [ $ONLY_ADDITIONS -eq 0 ]; then
diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
index e790f372f95f..204f6525ba77 100644
--- a/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
@@ -1,5 +1,5 @@
---- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2022-10-06 19:03:06.000000000 +0200
-+++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c 2024-12-26 15:28:38.066230000 +0100
+--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2025-10-16 14:25:28 UTC
++++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c
@@ -55,6 +55,7 @@
#include <sys/uio.h>
#include <sys/bus.h>
@@ -16,7 +16,7 @@
#include <iprt/initterm.h>
#include <iprt/process.h>
#include <iprt/string.h>
-@@ -112,8 +114,6 @@
+@@ -112,8 +114,6 @@ struct VBoxGuestDeviceState
struct resource *pIrqRes;
/** Pointer to the IRQ handler. */
void *pfnIrqHandler;
@@ -25,7 +25,7 @@
};
-@@ -123,8 +123,7 @@
+@@ -123,8 +123,7 @@ struct VBoxGuestDeviceState
/*
* Character device file handlers.
*/
@@ -35,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;
-@@ -155,8 +154,7 @@
+@@ -155,8 +154,7 @@ static struct cdevsw g_vgdrvFreeBSDChrDevSW =
{
.d_version = D_VERSION,
.d_flags = D_TRACKCLOSE | D_NEEDMINOR,
@@ -45,7 +45,7 @@
.d_ioctl = vgdrvFreeBSDIOCtl,
.d_read = vgdrvFreeBSDRead,
.d_write = vgdrvFreeBSDWrite,
-@@ -164,81 +162,28 @@
+@@ -164,81 +162,28 @@ static struct cdevsw g_vgdrvFreeBSDChrDevSW =
.d_name = "vboxguest"
};
@@ -134,7 +134,7 @@
{
int rc;
PVBOXGUESTSESSION pSession;
-@@ -250,12 +195,6 @@
+@@ -250,12 +195,6 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
LogFlow(("vgdrvFreeBSDOpen:\n"));
/*
@@ -147,7 +147,7 @@
* Create a new session.
*/
fRequestor = VMMDEV_REQUESTOR_USERMODE | VMMDEV_REQUESTOR_TRUST_NOT_GIVEN;
-@@ -272,47 +211,20 @@
+@@ -272,14 +211,13 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
rc = VGDrvCommonCreateUserSession(&g_DevExt, fRequestor, &pSession);
if (RT_SUCCESS(rc))
{
@@ -168,10 +168,10 @@
}
LogRel(("vgdrvFreeBSDOpen: failed. rc=%d\n", rc));
- return RTErrConvertToErrno(rc);
+@@ -287,33 +225,6 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
}
--/**
+ /**
- * File close handler
- *
- */
@@ -179,7 +179,7 @@
-{
- PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1;
- Log(("vgdrvFreeBSDClose: fFile=%#x pSession=%p\n", fFile, pSession));
-
+-
- /*
- * Close the session if it's still hanging on to the device...
- */
@@ -198,10 +198,11 @@
-}
-
-
- /**
+-/**
* I/O control request.
*
-@@ -326,8 +238,12 @@
+ * @returns depends...
+@@ -326,8 +237,12 @@ static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long
static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long ulCmd, caddr_t pvData, int fFile, struct thread *pTd)
{
PVBOXGUESTSESSION pSession;
@@ -215,20 +216,25 @@
/*
* Deal with the fast ioctl path first.
*/
-@@ -526,8 +442,10 @@
+@@ -522,12 +437,14 @@ static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEv
+
+ static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEvents, struct thread *td)
+ {
+- int fEventsProcessed;
++ PVBOXGUESTSESSION pSession;
++ int fEventsProcessed, rc;
LogFlow(("vgdrvFreeBSDPoll: fEvents=%d\n", fEvents));
- PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1;
- if (RT_UNLIKELY(!RT_VALID_PTR(pSession))) {
-+
+ rc = devfs_get_cdevpriv((void **)&pSession);
+ if (rc)
-+ {
++ {
Log(("vgdrvFreeBSDPoll: no state data for %s\n", devtoname(pDev)));
return (fEvents & (POLLHUP|POLLIN|POLLRDNORM|POLLOUT|POLLWRNORM));
}
-@@ -568,11 +486,8 @@
+@@ -568,11 +485,8 @@ static int vgdrvFreeBSDDetach(device_t pDevice)
/*
* Reverse what we did in vgdrvFreeBSDAttach.
*/
@@ -241,7 +247,7 @@
vgdrvFreeBSDRemoveIRQ(pDevice, pState);
if (pState->pVMMDevMemRes)
-@@ -737,18 +652,21 @@
+@@ -738,18 +652,21 @@ static int vgdrvFreeBSDAttach(device_t pDevice)
VGDrvCommonProcessOptionsFromHost(&g_DevExt);
/*
@@ -269,7 +275,7 @@
vgdrvFreeBSDRemoveIRQ(pDevice, pState);
}
else
-@@ -792,8 +710,12 @@
+@@ -793,8 +710,12 @@ static driver_t vgdrvFreeBSDDriver =
sizeof(struct VBoxGuestDeviceState),
};
diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
index 476346a59b13..37c1596cfe87 100644
--- a/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
@@ -1,15 +1,17 @@
---- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2019-04-16 10:09:09 UTC
+--- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2025-10-16 14:25:29 UTC
+++ src/VBox/Additions/common/VBoxGuest/freebsd/Makefile
-@@ -25,7 +25,7 @@
+@@ -34,9 +34,8 @@ KMOD = vboxguest
+ # SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
#
KMOD = vboxguest
-
--CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS
+CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_GUEST -DIN_GUEST_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS
+-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS
+-
.if (${MACHINE_ARCH} == "i386")
CFLAGS += -DRT_ARCH_X86
-@@ -80,6 +80,7 @@ SRCS += \
+ .elif (${MACHINE_ARCH} == "amd64")
+@@ -91,6 +90,7 @@ SRCS += \
handletable.c \
handletablectx.c \
once.c \
@@ -17,7 +19,7 @@
thread.c
.PATH: ${.CURDIR}/common/string
-@@ -147,6 +148,7 @@ SRCS += \
+@@ -163,6 +163,7 @@ SRCS += \
.PATH: ${.CURDIR}/r0drv
SRCS += \
@@ -25,3 +27,12 @@
alloc-r0drv.c \
initterm-r0drv.c \
memobj-r0drv.c \
+@@ -196,7 +197,7 @@ SRCS += \
+ SRCS += \
+ log-vbox.c \
+ logbackdoor.c \
+- RTLogWriteVmm-amd64-x86.
++ RTLogWriteVmm-amd64-x86.c
+
+ .include <bsd.kmod.mk>
+
diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
index 270472c045e3..796aecabac8f 100644
--- a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
@@ -1,4 +1,4 @@
---- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2025-05-11 03:54:13 UTC
+--- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2025-10-24 13:49:31 UTC
+++ src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk
@@ -0,0 +1,28 @@
+# $Id: Makefile.kmk $
@@ -18,7 +18,7 @@
+CFLAGS+=-I$(MOUNT)
+
+PROGRAMS += mount_vboxvfs
-+mount_vboxvfs_TEMPLATE = NewVBoxGuestR3Exe
++mount_vboxvfs_TEMPLATE = VBoxGuestR3Exe
+mount_vboxvfs_SOURCES = mount_vboxvfs.c
+
+ifdef HAVE_MNTOPTS_IN_LIBUTIL
diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk
new file mode 100644
index 000000000000..679778e60181
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk
@@ -0,0 +1,50 @@
+--- src/VBox/Additions/freebsd/vboxvfs/Makefile.kmk.orig 2025-10-22 19:18:12 UTC
++++ src/VBox/Additions/freebsd/vboxvfs/Makefile.kmk
+@@ -43,32 +43,37 @@ vboxvfs_SOURCES = \
+ $(vboxvfs_0_OUTDIR)
+ vboxvfs_SOURCES = \
+ vboxvfs_vfsops.c \
+- vboxvfs_vnops.c
++ bcmp.c \
++ vboxvfs_vnops.c \
++ vboxvfs_prov.c
+ vboxvfs_LIBS = \
+ $(VBOX_LIB_VBGL_R0) \
+ $(VBOX_LIB_IPRT_GUEST_R0)
+ vboxvfs_DEPS = \
+- $$(vboxvfs_0_OUTDIR)/vnode_if.h \
+- $$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h \
+- $$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
++ $(vboxvfs_0_OUTDIR)/vnode_if.h \
++ $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h \
++ $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
+ vboxvfs_CLEAN += $(vboxvfs_DEPS)
+
+ VBOX_AWK := /usr/bin/awk
+
+-$$(vboxvfs_0_OUTDIR)/vnode_if.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
++$$(vboxvfs_0_OUTDIR):
++ $(QUIET)$(MKDIR) -p $(vboxvfs_0_OUTDIR)
++
++$$(vboxvfs_0_OUTDIR)/vnode_if.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
+ $(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -h
+- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if.h $(vboxvfs_0_OUTDIR)/vnode_if.h
++ $(QUIET)$(MV) vnode_if.h $(vboxvfs_0_OUTDIR)/vnode_if.h
+
+-$$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
++$$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
+ $(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -p
+- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h
++ $(QUIET)$(MV) vnode_if_newproto.h $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h
+
+-$$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
++$$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
+ $(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -q
+- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
++ $(QUIET)$(MV) vnode_if_typedef.h $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
+
+ include $(FILE_KBUILD_SUB_FOOTER)
+
diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
index afb19c804d7a..2d0377fb3e40 100644
--- a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
@@ -1,6 +1,6 @@
---- src/VBox/Additions/x11/vboxmouse/Makefile.kmk.orig 2019-01-25 18:24:30 UTC
+--- src/VBox/Additions/x11/vboxmouse/Makefile.kmk.orig 2025-10-16 14:25:37 UTC
+++ src/VBox/Additions/x11/vboxmouse/Makefile.kmk
-@@ -227,10 +227,22 @@ endif # neq ($(KBUILD_TARGET),linux)
+@@ -237,10 +237,22 @@ ifdef VBOX_USE_SYSTEM_XORG_HEADERS
ifdef VBOX_USE_SYSTEM_XORG_HEADERS
@@ -10,7 +10,7 @@
- SYSMODS := $(filter-out vboxmouse_drv%,$(SYSMODS))
+ ifeq ($(KBUILD_TARGET),freebsd)
+ DLLS += vboxmouse_drv_system
-+ vboxmouse_drv_system_TEMPLATE = VBOXGUESTR3XORGMOD
++ vboxmouse_drv_system_TEMPLATE = VBoxGuestR3XOrgMod
+ vboxmouse_drv_system_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
+ vboxmouse_drv_system_INCS := \
+ /usr/local/include/pixman-1 \
diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk
new file mode 100644
index 000000000000..38ef1ac68f9e
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk
@@ -0,0 +1,15 @@
+--- src/VBox/Additions/x11/vboxvideo/Makefile.kmk.orig 2025-10-22 19:22:45 UTC
++++ src/VBox/Additions/x11/vboxvideo/Makefile.kmk
+@@ -415,9 +415,10 @@ ifdef VBOX_USE_SYSTEM_XORG_HEADERS
+ vboxvideo_drv_system_INCS += \
+ $(PATH_ROOT)/src/VBox/Runtime/include \
+ $(VBOX_GRAPHICS_INCS) \
+- /usr/include/xorg \
+- /usr/include/pixman-1
++ /usr/local/include/xorg \
++ /usr/local/include/pixman-1
+ vboxvideo_drv_system_SOURCES := $(vboxvideo_drv_17_SOURCES)
++ vboxvideo_drv_system_LIBS += $(vboxvideo_drv_70_LIBS)
+ endif
+
+
diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_common_misc_handletablectx.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_common_misc_handletablectx.cpp
new file mode 100644
index 000000000000..f8fe5b1a7ba3
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_common_misc_handletablectx.cpp
@@ -0,0 +1,24 @@
+--- src/VBox/Runtime/common/misc/handletablectx.cpp.orig 2025-10-16 14:35:39 UTC
++++ src/VBox/Runtime/common/misc/handletablectx.cpp
+@@ -48,7 +48,9 @@
+ #include <iprt/param.h>
+ #include <iprt/string.h>
+ #include <iprt/asm.h>
++#ifndef IN_GUEST
+ #include <iprt/system.h>
++#endif
+ #include "internal/magics.h"
+ #include "handletable.h"
+
+@@ -118,7 +120,11 @@ RTDECL(int) RTHandleTableAllocWithCtx(RTHANDLETABL
+ */
+ uint32_t const iLevel1 = pThis->cCur / RTHT_LEVEL2_ENTRIES;
+ uint32_t cLevel1 = iLevel1 >= pThis->cLevel1
++#ifndef IN_GUEST
+ ? pThis->cLevel1 + RTSystemGetPageSize() / sizeof(void *)
++#else
++ ? pThis->cLevel1 + PAGE_SIZE / sizeof(void *)
++#endif
+ : 0;
+ if (cLevel1 > pThis->cMax / RTHT_LEVEL2_ENTRIES)
+ cLevel1 = pThis->cMax / RTHT_LEVEL2_ENTRIES;
diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
index 4c0ed355709c..2ae9e1f34147 100644
--- a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
@@ -1,4 +1,4 @@
---- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2025-04-14 17:59:13 UTC
+--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2025-10-16 14:35:51 UTC
+++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c
@@ -140,8 +140,10 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
@@ -11,16 +11,26 @@
switch (pMemFreeBSD->Core.enmType)
{
-@@ -156,8 +158,6 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+@@ -156,9 +158,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
case RTR0MEMOBJTYPE_LOCK:
{
- vm_map_t pMap = kernel_map;
-
- if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS)
+- if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS)
++ if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS) {
pMap = &((struct proc *)pMemFreeBSD->Core.u.Lock.R0Process)->p_vmspace->vm_map;
-@@ -198,6 +198,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+ rc = vm_map_unwire(pMap,
+@@ -166,6 +166,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+ (vm_offset_t)pMemFreeBSD->Core.pv + pMemFreeBSD->Core.cb,
+ VM_MAP_WIRE_SYSTEM | VM_MAP_WIRE_NOHOLES);
+ AssertMsg(rc == KERN_SUCCESS, ("%#x", rc));
++ }
+ break;
+ }
+
+@@ -198,6 +199,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
case RTR0MEMOBJTYPE_PHYS_NC:
{
VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
@@ -28,7 +38,7 @@
vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0);
#if __FreeBSD_version < 1000000
vm_page_lock_queues();
-@@ -211,6 +212,14 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+@@ -211,6 +213,14 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
#if __FreeBSD_version < 1000000
vm_page_unlock_queues();
#endif
@@ -43,7 +53,7 @@
VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
vm_object_deallocate(pMemFreeBSD->pObject);
break;
-@@ -221,6 +230,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+@@ -221,6 +231,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
return VERR_INTERNAL_ERROR;
}
@@ -51,7 +61,7 @@
return VINF_SUCCESS;
}
-@@ -330,7 +340,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOBJFRE
+@@ -330,7 +341,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOBJFRE
size_t cPages = atop(pMemFreeBSD->Core.cb);
int rc;
@@ -61,7 +71,7 @@
/* No additional object reference for auto-deallocation upon unmapping. */
#if __FreeBSD_version >= 1000055
-@@ -372,6 +383,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
+@@ -372,6 +384,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag)
{
@@ -69,7 +79,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PAGE,
NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -381,8 +393,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
+@@ -381,8 +394,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
*ppMem = &pMemFreeBSD->Core;
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -80,7 +90,7 @@
return VERR_NO_MEMORY;
}
-@@ -396,6 +410,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
+@@ -396,6 +411,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag)
{
@@ -88,7 +98,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_LOW, NULL, cb, pszTag);
if (pMemFreeBSD)
{
-@@ -404,8 +419,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
+@@ -404,8 +420,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
*ppMem = &pMemFreeBSD->Core;
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -99,7 +109,7 @@
return VERR_NO_MEMORY;
}
-@@ -413,6 +430,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
+@@ -413,6 +431,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS PhysHigest,
bool fExecutable, const char *pszTag)
{
@@ -107,7 +117,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_CONT,
NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -425,8 +443,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
+@@ -425,8 +444,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
}
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -118,7 +128,7 @@
return VERR_NO_MEMORY;
}
-@@ -434,6 +454,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -434,6 +455,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJTYPE enmType, size_t cb, RTHCPHYS PhysHighest,
size_t uAlignment, bool fContiguous, int rcNoMem, const char *pszTag)
{
@@ -126,7 +136,7 @@
/* create the object. */
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), enmType, NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -441,7 +462,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -441,7 +463,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
vm_paddr_t const VmPhysAddrHigh = PhysHighest != NIL_RTHCPHYS ? PhysHighest : ~(vm_paddr_t)0;
u_long const cPages = atop(cb);
@@ -136,7 +146,7 @@
int rc = rtR0MemObjFreeBSDPhysAllocHelper(pMemFreeBSD->pObject, cPages, VmPhysAddrHigh,
uAlignment, fContiguous, true, rcNoMem);
-@@ -451,7 +473,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -451,7 +474,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
{
Assert(enmType == RTR0MEMOBJTYPE_PHYS);
VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
@@ -145,7 +155,7 @@
VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
pMemFreeBSD->Core.u.Phys.fAllocated = true;
}
-@@ -464,8 +486,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -464,8 +487,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
vm_object_deallocate(pMemFreeBSD->pObject);
rtR0MemObjDelete(&pMemFreeBSD->Core);
}
@@ -156,7 +166,7 @@
return VERR_NO_MEMORY;
}
-@@ -488,6 +512,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
+@@ -488,6 +513,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
const char *pszTag)
{
AssertReturn(uCachePolicy == RTMEM_CACHE_POLICY_DONT_CARE, VERR_NOT_SUPPORTED);
@@ -164,7 +174,7 @@
/* create the object. */
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PHYS,
-@@ -499,8 +524,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
+@@ -499,8 +525,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
pMemFreeBSD->Core.u.Phys.PhysBase = Phys;
pMemFreeBSD->Core.u.Phys.uCachePolicy = uCachePolicy;
*ppMem = &pMemFreeBSD->Core;
@@ -175,7 +185,7 @@
return VERR_NO_MEMORY;
}
-@@ -512,6 +539,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
+@@ -512,6 +540,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
vm_offset_t AddrStart, size_t cb, uint32_t fAccess,
RTR0PROCESS R0Process, int fFlags, const char *pszTag)
{
@@ -183,7 +193,7 @@
int rc;
NOREF(fAccess);
-@@ -521,21 +549,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
+@@ -521,21 +550,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
if (!pMemFreeBSD)
return VERR_NO_MEMORY;
@@ -220,7 +230,7 @@
return VERR_NO_MEMORY;/** @todo fix mach -> vbox error conversion for freebsd. */
}
-@@ -575,6 +610,7 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
+@@ -575,6 +611,7 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJINTERNAL ppMem, void *pvFixed, size_t cb, size_t uAlignment,
RTR0PROCESS R0Process, vm_map_t pMap, const char *pszTag)
{
@@ -228,7 +238,7 @@
int rc;
/*
-@@ -633,11 +669,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
+@@ -633,11 +670,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
pMemFreeBSD->Core.pv = (void *)MapAddress;
pMemFreeBSD->Core.u.ResVirt.R0Process = R0Process;
*ppMem = &pMemFreeBSD->Core;
@@ -242,7 +252,7 @@
return rc;
}
-@@ -661,6 +699,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
+@@ -661,6 +700,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, void *pvFixed, size_t uAlignment,
unsigned fProt, size_t offSub, size_t cbSub, const char *pszTag)
{
@@ -251,7 +261,7 @@
// AssertMsgReturn(!offSub && !cbSub, ("%#x %#x\n", offSub, cbSub), VERR_NOT_SUPPORTED);
AssertMsgReturn(pvFixed == (void *)-1, ("%p\n", pvFixed), VERR_NOT_SUPPORTED);
-@@ -715,6 +755,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
+@@ -715,6 +756,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
Assert((vm_offset_t)pMemFreeBSD->Core.pv == Addr);
pMemFreeBSD->Core.u.Mapping.R0Process = NIL_RTR0PROCESS;
*ppMem = &pMemFreeBSD->Core;
@@ -259,7 +269,7 @@
return VINF_SUCCESS;
}
rc = vm_map_remove(kernel_map, Addr, Addr + cbSub);
-@@ -723,6 +764,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
+@@ -723,6 +765,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
else
vm_object_deallocate(pMemToMapFreeBSD->pObject);
@@ -267,7 +277,7 @@
return VERR_NO_MEMORY;
}
-@@ -730,6 +772,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
+@@ -730,6 +773,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment,
unsigned fProt, RTR0PROCESS R0Process, size_t offSub, size_t cbSub, const char *pszTag)
{
@@ -276,7 +286,7 @@
/*
* Check for unsupported stuff.
*/
-@@ -787,44 +831,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
+@@ -787,44 +832,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
if (rc == KERN_SUCCESS)
{
@@ -331,7 +341,7 @@
if ((fProt & RTMEM_PROT_NONE) == RTMEM_PROT_NONE)
ProtectionFlags = VM_PROT_NONE;
-@@ -835,7 +885,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT
+@@ -835,7 +886,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT
if ((fProt & RTMEM_PROT_EXEC) == RTMEM_PROT_EXEC)
ProtectionFlags |= VM_PROT_EXECUTE;
@@ -344,7 +354,7 @@
if (krc == KERN_SUCCESS)
return VINF_SUCCESS;
-@@ -860,11 +915,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+@@ -860,11 +916,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
vm_offset_t pb = (vm_offset_t)pMemFreeBSD->Core.pv + ptoa(iPage);
@@ -368,7 +378,7 @@
}
case RTR0MEMOBJTYPE_MAPPING:
-@@ -873,11 +936,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+@@ -873,11 +937,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
if (pMemFreeBSD->Core.u.Mapping.R0Process != NIL_RTR0PROCESS)
{
@@ -385,7 +395,7 @@
}
return vtophys(pb);
}
-@@ -888,9 +955,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+@@ -888,9 +956,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
{
RTHCPHYS addr;
@@ -397,7 +407,7 @@
return addr;
}
-@@ -910,7 +979,7 @@ DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping
+@@ -910,7 +980,7 @@ DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping
DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping(PRTR0MEMOBJINTERNAL pMem)
{
PRTR0MEMOBJFREEBSD const pMemFreeBsd = (PRTR0MEMOBJFREEBSD)pMem;
diff --git a/emulators/virtualbox-ose-71/files/vboxinit.in b/emulators/virtualbox-ose-71/files/vboxinit.in
index 9895da9e362e..9574d7d6295e 100644
--- a/emulators/virtualbox-ose-71/files/vboxinit.in
+++ b/emulators/virtualbox-ose-71/files/vboxinit.in
@@ -16,7 +16,7 @@
# vboxinit_stop (str): Default stop cmd for VBoxManage controlvm.
# (default: savestate)
# vboxinit_start_delay (int): Default startup delay in seconds.
-# (default: 0)
+# (default: 1)
# vboxinit_stop_delay (int): Default shutdown delay in seconds.
# (default: 0)
#
diff --git a/emulators/virtualbox-ose-72/Makefile b/emulators/virtualbox-ose-72/Makefile
index 8366e55ae779..45bd8b9a18a5 100644
--- a/emulators/virtualbox-ose-72/Makefile
+++ b/emulators/virtualbox-ose-72/Makefile
@@ -1,6 +1,6 @@
PORTNAME= virtualbox-ose
-DISTVERSION= 7.2.2
-PORTREVISION?= 1
+DISTVERSION= 7.2.4
+PORTREVISION?= 0
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
LOCAL/vvd:docs
@@ -96,7 +96,7 @@ DEBUG_DESC= Debug symbols, additional logs and assertions
GUESTADDITIONS_DESC= Build with Guest Additions
NLS_DESC= Native language support (requires QT6)
OGG_DESC= Use libogg from audio/libogg instead of bundled one
-QT6_DESC= Build with QT6 frontend (requires X11)
+QT6_DESC= Build with Qt6 frontend (requires X11)
R0LOGGING_DESC= Enable R0 logging (requires DEBUG)
TPM_DESC= Enable TPM device emulation using sysutils/libtpms
UDPTUNNEL_DESC= Build with UDP tunnel support
diff --git a/emulators/virtualbox-ose-72/distinfo b/emulators/virtualbox-ose-72/distinfo
index 48ed99a441f9..e657c539342b 100644
--- a/emulators/virtualbox-ose-72/distinfo
+++ b/emulators/virtualbox-ose-72/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1759400000
-SHA256 (VirtualBox-7.2.2.tar.bz2) = b0e63bfb855327aecf1122cda33390c33734e5ffed72f123f5edf786a8ce1393
-SIZE (VirtualBox-7.2.2.tar.bz2) = 206992991
-SHA256 (VirtualBox-docs-7.2.2.tar.bz2) = 5784f7ccb0cd28f1e4647771301c51cbd2427ec84e071d3dd92c9f0e12690f8c
-SIZE (VirtualBox-docs-7.2.2.tar.bz2) = 9134609
-SHA256 (VBoxGuestAdditions_7.2.2.iso) = 42457487fb5f117265fe41bf8b2a521449c2cff75c95029d8f667f7dab5a4409
-SIZE (VBoxGuestAdditions_7.2.2.iso) = 53135360
+TIMESTAMP = 1761088888
+SHA256 (VirtualBox-7.2.4.tar.bz2) = d281ec981b5f580211a0cedd1b75a1adcb0fbfcbb768d8c2bf4429f4763e8bbd
+SIZE (VirtualBox-7.2.4.tar.bz2) = 207084201
+SHA256 (VirtualBox-docs-7.2.4.tar.bz2) = d9639bdee32d36c05436485b1dfd7d0c08736e53a6fcf8bda0c708681cf211e5
+SIZE (VirtualBox-docs-7.2.4.tar.bz2) = 9134788
+SHA256 (VBoxGuestAdditions_7.2.4.iso) = 66fa60b041fcda5d8b2ed22ba91bfafafaa3a5ff05c7d8ba01fbbe639669e153
+SIZE (VBoxGuestAdditions_7.2.4.iso) = 53153792
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
index 5344a7ab812f..204f6525ba77 100644
--- a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
@@ -1,4 +1,4 @@
---- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2025-08-13 19:41:14 UTC
+--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2025-10-16 14:25:28 UTC
+++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c
@@ -55,6 +55,7 @@
#include <sys/uio.h>
@@ -147,7 +147,7 @@
* Create a new session.
*/
fRequestor = VMMDEV_REQUESTOR_USERMODE | VMMDEV_REQUESTOR_TRUST_NOT_GIVEN;
-@@ -272,47 +211,20 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
+@@ -272,14 +211,13 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
rc = VGDrvCommonCreateUserSession(&g_DevExt, fRequestor, &pSession);
if (RT_SUCCESS(rc))
{
@@ -168,10 +168,10 @@
}
LogRel(("vgdrvFreeBSDOpen: failed. rc=%d\n", rc));
- return RTErrConvertToErrno(rc);
+@@ -287,33 +225,6 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
}
--/**
+ /**
- * File close handler
- *
- */
@@ -179,7 +179,7 @@
-{
- PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1;
- Log(("vgdrvFreeBSDClose: fFile=%#x pSession=%p\n", fFile, pSession));
-
+-
- /*
- * Close the session if it's still hanging on to the device...
- */
@@ -198,10 +198,11 @@
-}
-
-
- /**
+-/**
* I/O control request.
*
-@@ -326,8 +238,12 @@ static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long
+ * @returns depends...
+@@ -326,8 +237,12 @@ static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long
static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long ulCmd, caddr_t pvData, int fFile, struct thread *pTd)
{
PVBOXGUESTSESSION pSession;
@@ -215,20 +216,25 @@
/*
* Deal with the fast ioctl path first.
*/
-@@ -526,8 +442,10 @@ static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEv
+@@ -522,12 +437,14 @@ static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEv
+
+ static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEvents, struct thread *td)
+ {
+- int fEventsProcessed;
++ PVBOXGUESTSESSION pSession;
++ int fEventsProcessed, rc;
LogFlow(("vgdrvFreeBSDPoll: fEvents=%d\n", fEvents));
- PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1;
- if (RT_UNLIKELY(!RT_VALID_PTR(pSession))) {
-+
+ rc = devfs_get_cdevpriv((void **)&pSession);
+ if (rc)
-+ {
++ {
Log(("vgdrvFreeBSDPoll: no state data for %s\n", devtoname(pDev)));
return (fEvents & (POLLHUP|POLLIN|POLLRDNORM|POLLOUT|POLLWRNORM));
}
-@@ -568,11 +486,8 @@ static int vgdrvFreeBSDDetach(device_t pDevice)
+@@ -568,11 +485,8 @@ static int vgdrvFreeBSDDetach(device_t pDevice)
/*
* Reverse what we did in vgdrvFreeBSDAttach.
*/
@@ -241,7 +247,7 @@
vgdrvFreeBSDRemoveIRQ(pDevice, pState);
if (pState->pVMMDevMemRes)
-@@ -738,18 +653,21 @@ static int vgdrvFreeBSDAttach(device_t pDevice)
+@@ -738,18 +652,21 @@ static int vgdrvFreeBSDAttach(device_t pDevice)
VGDrvCommonProcessOptionsFromHost(&g_DevExt);
/*
@@ -269,7 +275,7 @@
vgdrvFreeBSDRemoveIRQ(pDevice, pState);
}
else
-@@ -793,8 +711,12 @@ static driver_t vgdrvFreeBSDDriver =
+@@ -793,8 +710,12 @@ static driver_t vgdrvFreeBSDDriver =
sizeof(struct VBoxGuestDeviceState),
};
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
index 1430dbb721fb..37c1596cfe87 100644
--- a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
@@ -1,15 +1,17 @@
---- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2025-08-13 19:41:14 UTC
+--- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2025-10-16 14:25:29 UTC
+++ src/VBox/Additions/common/VBoxGuest/freebsd/Makefile
-@@ -35,7 +35,7 @@ KMOD = vboxguest
+@@ -34,9 +34,8 @@ KMOD = vboxguest
+ # SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
#
KMOD = vboxguest
-
--CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS
+CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_GUEST -DIN_GUEST_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS
+-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS
+-
.if (${MACHINE_ARCH} == "i386")
CFLAGS += -DRT_ARCH_X86
-@@ -91,6 +91,7 @@ SRCS += \
+ .elif (${MACHINE_ARCH} == "amd64")
+@@ -91,6 +90,7 @@ SRCS += \
handletable.c \
handletablectx.c \
once.c \
@@ -17,7 +19,7 @@
thread.c
.PATH: ${.CURDIR}/common/string
-@@ -163,6 +164,7 @@ SRCS += \
+@@ -163,6 +163,7 @@ SRCS += \
.PATH: ${.CURDIR}/r0drv
SRCS += \
@@ -25,3 +27,12 @@
alloc-r0drv.c \
initterm-r0drv.c \
memobj-r0drv.c \
+@@ -196,7 +197,7 @@ SRCS += \
+ SRCS += \
+ log-vbox.c \
+ logbackdoor.c \
+- RTLogWriteVmm-amd64-x86.
++ RTLogWriteVmm-amd64-x86.c
+
+ .include <bsd.kmod.mk>
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
index 270472c045e3..796aecabac8f 100644
--- a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
@@ -1,4 +1,4 @@
---- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2025-05-11 03:54:13 UTC
+--- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2025-10-24 13:49:31 UTC
+++ src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk
@@ -0,0 +1,28 @@
+# $Id: Makefile.kmk $
@@ -18,7 +18,7 @@
+CFLAGS+=-I$(MOUNT)
+
+PROGRAMS += mount_vboxvfs
-+mount_vboxvfs_TEMPLATE = NewVBoxGuestR3Exe
++mount_vboxvfs_TEMPLATE = VBoxGuestR3Exe
+mount_vboxvfs_SOURCES = mount_vboxvfs.c
+
+ifdef HAVE_MNTOPTS_IN_LIBUTIL
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk
new file mode 100644
index 000000000000..679778e60181
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk
@@ -0,0 +1,50 @@
+--- src/VBox/Additions/freebsd/vboxvfs/Makefile.kmk.orig 2025-10-22 19:18:12 UTC
++++ src/VBox/Additions/freebsd/vboxvfs/Makefile.kmk
+@@ -43,32 +43,37 @@ vboxvfs_SOURCES = \
+ $(vboxvfs_0_OUTDIR)
+ vboxvfs_SOURCES = \
+ vboxvfs_vfsops.c \
+- vboxvfs_vnops.c
++ bcmp.c \
++ vboxvfs_vnops.c \
++ vboxvfs_prov.c
+ vboxvfs_LIBS = \
+ $(VBOX_LIB_VBGL_R0) \
+ $(VBOX_LIB_IPRT_GUEST_R0)
+ vboxvfs_DEPS = \
+- $$(vboxvfs_0_OUTDIR)/vnode_if.h \
+- $$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h \
+- $$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
++ $(vboxvfs_0_OUTDIR)/vnode_if.h \
++ $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h \
++ $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
+ vboxvfs_CLEAN += $(vboxvfs_DEPS)
+
+ VBOX_AWK := /usr/bin/awk
+
+-$$(vboxvfs_0_OUTDIR)/vnode_if.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
++$$(vboxvfs_0_OUTDIR):
++ $(QUIET)$(MKDIR) -p $(vboxvfs_0_OUTDIR)
++
++$$(vboxvfs_0_OUTDIR)/vnode_if.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
+ $(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -h
+- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if.h $(vboxvfs_0_OUTDIR)/vnode_if.h
++ $(QUIET)$(MV) vnode_if.h $(vboxvfs_0_OUTDIR)/vnode_if.h
+
+-$$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
++$$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
+ $(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -p
+- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h
++ $(QUIET)$(MV) vnode_if_newproto.h $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h
+
+-$$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
++$$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
+ $(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -q
+- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
++ $(QUIET)$(MV) vnode_if_typedef.h $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h
+
+ include $(FILE_KBUILD_SUB_FOOTER)
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
index bd5e626ecea2..2d0377fb3e40 100644
--- a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
@@ -1,4 +1,4 @@
---- src/VBox/Additions/x11/vboxmouse/Makefile.kmk.orig 2025-08-13 19:41:22 UTC
+--- src/VBox/Additions/x11/vboxmouse/Makefile.kmk.orig 2025-10-16 14:25:37 UTC
+++ src/VBox/Additions/x11/vboxmouse/Makefile.kmk
@@ -237,10 +237,22 @@ ifdef VBOX_USE_SYSTEM_XORG_HEADERS
@@ -10,7 +10,7 @@
- SYSMODS := $(filter-out vboxmouse_drv%,$(SYSMODS))
+ ifeq ($(KBUILD_TARGET),freebsd)
+ DLLS += vboxmouse_drv_system
-+ vboxmouse_drv_system_TEMPLATE = VBOXGUESTR3XORGMOD
++ vboxmouse_drv_system_TEMPLATE = VBoxGuestR3XOrgMod
+ vboxmouse_drv_system_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
+ vboxmouse_drv_system_INCS := \
+ /usr/local/include/pixman-1 \
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk
new file mode 100644
index 000000000000..38ef1ac68f9e
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk
@@ -0,0 +1,15 @@
+--- src/VBox/Additions/x11/vboxvideo/Makefile.kmk.orig 2025-10-22 19:22:45 UTC
++++ src/VBox/Additions/x11/vboxvideo/Makefile.kmk
+@@ -415,9 +415,10 @@ ifdef VBOX_USE_SYSTEM_XORG_HEADERS
+ vboxvideo_drv_system_INCS += \
+ $(PATH_ROOT)/src/VBox/Runtime/include \
+ $(VBOX_GRAPHICS_INCS) \
+- /usr/include/xorg \
+- /usr/include/pixman-1
++ /usr/local/include/xorg \
++ /usr/local/include/pixman-1
+ vboxvideo_drv_system_SOURCES := $(vboxvideo_drv_17_SOURCES)
++ vboxvideo_drv_system_LIBS += $(vboxvideo_drv_70_LIBS)
+ endif
+
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_common_misc_handletablectx.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_common_misc_handletablectx.cpp
new file mode 100644
index 000000000000..f8fe5b1a7ba3
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_common_misc_handletablectx.cpp
@@ -0,0 +1,24 @@
+--- src/VBox/Runtime/common/misc/handletablectx.cpp.orig 2025-10-16 14:35:39 UTC
++++ src/VBox/Runtime/common/misc/handletablectx.cpp
+@@ -48,7 +48,9 @@
+ #include <iprt/param.h>
+ #include <iprt/string.h>
+ #include <iprt/asm.h>
++#ifndef IN_GUEST
+ #include <iprt/system.h>
++#endif
+ #include "internal/magics.h"
+ #include "handletable.h"
+
+@@ -118,7 +120,11 @@ RTDECL(int) RTHandleTableAllocWithCtx(RTHANDLETABL
+ */
+ uint32_t const iLevel1 = pThis->cCur / RTHT_LEVEL2_ENTRIES;
+ uint32_t cLevel1 = iLevel1 >= pThis->cLevel1
++#ifndef IN_GUEST
+ ? pThis->cLevel1 + RTSystemGetPageSize() / sizeof(void *)
++#else
++ ? pThis->cLevel1 + PAGE_SIZE / sizeof(void *)
++#endif
+ : 0;
+ if (cLevel1 > pThis->cMax / RTHT_LEVEL2_ENTRIES)
+ cLevel1 = pThis->cMax / RTHT_LEVEL2_ENTRIES;
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
index 4c0ed355709c..2ae9e1f34147 100644
--- a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
@@ -1,4 +1,4 @@
---- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2025-04-14 17:59:13 UTC
+--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2025-10-16 14:35:51 UTC
+++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c
@@ -140,8 +140,10 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
@@ -11,16 +11,26 @@
switch (pMemFreeBSD->Core.enmType)
{
-@@ -156,8 +158,6 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+@@ -156,9 +158,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
case RTR0MEMOBJTYPE_LOCK:
{
- vm_map_t pMap = kernel_map;
-
- if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS)
+- if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS)
++ if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS) {
pMap = &((struct proc *)pMemFreeBSD->Core.u.Lock.R0Process)->p_vmspace->vm_map;
-@@ -198,6 +198,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+ rc = vm_map_unwire(pMap,
+@@ -166,6 +166,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+ (vm_offset_t)pMemFreeBSD->Core.pv + pMemFreeBSD->Core.cb,
+ VM_MAP_WIRE_SYSTEM | VM_MAP_WIRE_NOHOLES);
+ AssertMsg(rc == KERN_SUCCESS, ("%#x", rc));
++ }
+ break;
+ }
+
+@@ -198,6 +199,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
case RTR0MEMOBJTYPE_PHYS_NC:
{
VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
@@ -28,7 +38,7 @@
vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0);
#if __FreeBSD_version < 1000000
vm_page_lock_queues();
-@@ -211,6 +212,14 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+@@ -211,6 +213,14 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
#if __FreeBSD_version < 1000000
vm_page_unlock_queues();
#endif
@@ -43,7 +53,7 @@
VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
vm_object_deallocate(pMemFreeBSD->pObject);
break;
-@@ -221,6 +230,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+@@ -221,6 +231,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
return VERR_INTERNAL_ERROR;
}
@@ -51,7 +61,7 @@
return VINF_SUCCESS;
}
-@@ -330,7 +340,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOBJFRE
+@@ -330,7 +341,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOBJFRE
size_t cPages = atop(pMemFreeBSD->Core.cb);
int rc;
@@ -61,7 +71,7 @@
/* No additional object reference for auto-deallocation upon unmapping. */
#if __FreeBSD_version >= 1000055
-@@ -372,6 +383,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
+@@ -372,6 +384,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag)
{
@@ -69,7 +79,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PAGE,
NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -381,8 +393,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
+@@ -381,8 +394,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
*ppMem = &pMemFreeBSD->Core;
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -80,7 +90,7 @@
return VERR_NO_MEMORY;
}
-@@ -396,6 +410,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
+@@ -396,6 +411,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag)
{
@@ -88,7 +98,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_LOW, NULL, cb, pszTag);
if (pMemFreeBSD)
{
-@@ -404,8 +419,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
+@@ -404,8 +420,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
*ppMem = &pMemFreeBSD->Core;
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -99,7 +109,7 @@
return VERR_NO_MEMORY;
}
-@@ -413,6 +430,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
+@@ -413,6 +431,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS PhysHigest,
bool fExecutable, const char *pszTag)
{
@@ -107,7 +117,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_CONT,
NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -425,8 +443,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
+@@ -425,8 +444,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
}
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -118,7 +128,7 @@
return VERR_NO_MEMORY;
}
-@@ -434,6 +454,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -434,6 +455,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJTYPE enmType, size_t cb, RTHCPHYS PhysHighest,
size_t uAlignment, bool fContiguous, int rcNoMem, const char *pszTag)
{
@@ -126,7 +136,7 @@
/* create the object. */
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), enmType, NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -441,7 +462,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -441,7 +463,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
vm_paddr_t const VmPhysAddrHigh = PhysHighest != NIL_RTHCPHYS ? PhysHighest : ~(vm_paddr_t)0;
u_long const cPages = atop(cb);
@@ -136,7 +146,7 @@
int rc = rtR0MemObjFreeBSDPhysAllocHelper(pMemFreeBSD->pObject, cPages, VmPhysAddrHigh,
uAlignment, fContiguous, true, rcNoMem);
-@@ -451,7 +473,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -451,7 +474,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
{
Assert(enmType == RTR0MEMOBJTYPE_PHYS);
VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
@@ -145,7 +155,7 @@
VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
pMemFreeBSD->Core.u.Phys.fAllocated = true;
}
-@@ -464,8 +486,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+@@ -464,8 +487,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
vm_object_deallocate(pMemFreeBSD->pObject);
rtR0MemObjDelete(&pMemFreeBSD->Core);
}
@@ -156,7 +166,7 @@
return VERR_NO_MEMORY;
}
-@@ -488,6 +512,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
+@@ -488,6 +513,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
const char *pszTag)
{
AssertReturn(uCachePolicy == RTMEM_CACHE_POLICY_DONT_CARE, VERR_NOT_SUPPORTED);
@@ -164,7 +174,7 @@
/* create the object. */
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PHYS,
-@@ -499,8 +524,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
+@@ -499,8 +525,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
pMemFreeBSD->Core.u.Phys.PhysBase = Phys;
pMemFreeBSD->Core.u.Phys.uCachePolicy = uCachePolicy;
*ppMem = &pMemFreeBSD->Core;
@@ -175,7 +185,7 @@
return VERR_NO_MEMORY;
}
-@@ -512,6 +539,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
+@@ -512,6 +540,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
vm_offset_t AddrStart, size_t cb, uint32_t fAccess,
RTR0PROCESS R0Process, int fFlags, const char *pszTag)
{
@@ -183,7 +193,7 @@
int rc;
NOREF(fAccess);
-@@ -521,21 +549,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
+@@ -521,21 +550,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
if (!pMemFreeBSD)
return VERR_NO_MEMORY;
@@ -220,7 +230,7 @@
return VERR_NO_MEMORY;/** @todo fix mach -> vbox error conversion for freebsd. */
}
-@@ -575,6 +610,7 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
+@@ -575,6 +611,7 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJINTERNAL ppMem, void *pvFixed, size_t cb, size_t uAlignment,
RTR0PROCESS R0Process, vm_map_t pMap, const char *pszTag)
{
@@ -228,7 +238,7 @@
int rc;
/*
-@@ -633,11 +669,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
+@@ -633,11 +670,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
pMemFreeBSD->Core.pv = (void *)MapAddress;
pMemFreeBSD->Core.u.ResVirt.R0Process = R0Process;
*ppMem = &pMemFreeBSD->Core;
@@ -242,7 +252,7 @@
return rc;
}
-@@ -661,6 +699,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
+@@ -661,6 +700,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, void *pvFixed, size_t uAlignment,
unsigned fProt, size_t offSub, size_t cbSub, const char *pszTag)
{
@@ -251,7 +261,7 @@
// AssertMsgReturn(!offSub && !cbSub, ("%#x %#x\n", offSub, cbSub), VERR_NOT_SUPPORTED);
AssertMsgReturn(pvFixed == (void *)-1, ("%p\n", pvFixed), VERR_NOT_SUPPORTED);
-@@ -715,6 +755,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
+@@ -715,6 +756,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
Assert((vm_offset_t)pMemFreeBSD->Core.pv == Addr);
pMemFreeBSD->Core.u.Mapping.R0Process = NIL_RTR0PROCESS;
*ppMem = &pMemFreeBSD->Core;
@@ -259,7 +269,7 @@
return VINF_SUCCESS;
}
rc = vm_map_remove(kernel_map, Addr, Addr + cbSub);
-@@ -723,6 +764,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
+@@ -723,6 +765,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
else
vm_object_deallocate(pMemToMapFreeBSD->pObject);
@@ -267,7 +277,7 @@
return VERR_NO_MEMORY;
}
-@@ -730,6 +772,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
+@@ -730,6 +773,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment,
unsigned fProt, RTR0PROCESS R0Process, size_t offSub, size_t cbSub, const char *pszTag)
{
@@ -276,7 +286,7 @@
/*
* Check for unsupported stuff.
*/
-@@ -787,44 +831,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
+@@ -787,44 +832,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
if (rc == KERN_SUCCESS)
{
@@ -331,7 +341,7 @@
if ((fProt & RTMEM_PROT_NONE) == RTMEM_PROT_NONE)
ProtectionFlags = VM_PROT_NONE;
-@@ -835,7 +885,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT
+@@ -835,7 +886,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT
if ((fProt & RTMEM_PROT_EXEC) == RTMEM_PROT_EXEC)
ProtectionFlags |= VM_PROT_EXECUTE;
@@ -344,7 +354,7 @@
if (krc == KERN_SUCCESS)
return VINF_SUCCESS;
-@@ -860,11 +915,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+@@ -860,11 +916,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
vm_offset_t pb = (vm_offset_t)pMemFreeBSD->Core.pv + ptoa(iPage);
@@ -368,7 +378,7 @@
}
case RTR0MEMOBJTYPE_MAPPING:
-@@ -873,11 +936,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+@@ -873,11 +937,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
if (pMemFreeBSD->Core.u.Mapping.R0Process != NIL_RTR0PROCESS)
{
@@ -385,7 +395,7 @@
}
return vtophys(pb);
}
-@@ -888,9 +955,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+@@ -888,9 +956,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
{
RTHCPHYS addr;
@@ -397,7 +407,7 @@
return addr;
}
-@@ -910,7 +979,7 @@ DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping
+@@ -910,7 +980,7 @@ DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping
DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping(PRTR0MEMOBJINTERNAL pMem)
{
PRTR0MEMOBJFREEBSD const pMemFreeBsd = (PRTR0MEMOBJFREEBSD)pMem;
diff --git a/emulators/virtualbox-ose-72/files/vboxinit.in b/emulators/virtualbox-ose-72/files/vboxinit.in
index 9895da9e362e..9574d7d6295e 100644
--- a/emulators/virtualbox-ose-72/files/vboxinit.in
+++ b/emulators/virtualbox-ose-72/files/vboxinit.in
@@ -16,7 +16,7 @@
# vboxinit_stop (str): Default stop cmd for VBoxManage controlvm.
# (default: savestate)
# vboxinit_start_delay (int): Default startup delay in seconds.
-# (default: 0)
+# (default: 1)
# vboxinit_stop_delay (int): Default shutdown delay in seconds.
# (default: 0)
#
diff --git a/emulators/virtualbox-ose-additions-70/Makefile b/emulators/virtualbox-ose-additions-70/Makefile
new file mode 100644
index 000000000000..855c3f405b8e
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-70/Makefile
@@ -0,0 +1,174 @@
+PORTNAME= virtualbox-ose
+DISTVERSION= 7.0.26
+PORTREVISION?= 0
+CATEGORIES= emulators
+MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/
+PKGNAMESUFFIX?= -additions-70
+DISTNAME= VirtualBox-${DISTVERSION}
+
+MAINTAINER= vbox@FreeBSD.org
+COMMENT= VirtualBox additions for FreeBSD guests
+WWW= https://www.virtualbox.org/
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+ONLY_FOR_ARCHS= amd64
+
+BUILD_DEPENDS= yasm:devel/yasm \
+ kmk:devel/kBuild \
+ xsltproc:textproc/libxslt
+
+USES= compiler:c++14-lang cpe iconv kmod tar:bzip2
+CPE_VENDOR= oracle
+CPE_PRODUCT= vm_virtualbox
+USE_RC_SUBR= vboxguest vboxservice
+
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS+= --disable-alsa \
+ --disable-docs \
+ --disable-libvpx \
+ --disable-opengl \
+ --disable-pulse \
+ --disable-python \
+ --disable-sdl-ttf \
+ --disable-xpcom
+CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
+
+MAKE_JOBS_UNSAFE= yes
+
+CONFLICTS_INSTALL= virtualbox-ose-additions-legacy \
+ virtualbox-ose-additions-nox11-legacy \
+ virtualbox-ose-additions \
+ virtualbox-ose-additions-nox11 \
+ virtualbox-ose-additions-71 \
+ virtualbox-ose-additions-nox11-71 \
+ virtualbox-ose-additions-72 \
+ virtualbox-ose-additions-nox11-72
+
+PATCHDIR= ${.CURDIR}/../${PORTNAME}-70/files
+EXTRACT_AFTER_ARGS= --exclude tools/*.x86 --exclude tools/*.amd64 --exclude Firmware
+PORTSCOUT= limit:^7\.0\.
+
+WRKSRC= ${WRKDIR}/VirtualBox-${DISTVERSION}
+
+OPTIONS_DEFINE= DBUS DEBUG X11
+OPTIONS_DEFAULT= DBUS X11
+OPTIONS_SUB= yes
+
+DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
+DBUS_CONFIGURE_OFF= --disable-dbus
+DEBUG_CONFIGURE_ON= --build-debug
+DEBUG_VARS= KMK_BUILDTYPE=debug
+DEBUG_VARS_OFF= KMK_BUILDTYPE=release
+X11_BUILD_DEPENDS= ${LOCALBASE}/include/xorg/compiler.h:x11-servers/xorg-server
+X11_RUN_DEPENDS= xrandr:x11/xrandr
+X11_USES= pkgconfig xorg
+X11_USE= XORG=x11,xcursor,xext,xorgproto,xmu,xrandr,xt
+X11_VARS= VBOX_WITH_X11=1
+
+.include <bsd.port.options.mk>
+
+.if ${SLAVE_PORT} == no
+CONFLICTS_INSTALL+= virtualbox-ose-additions-nox11-70
+.else
+CONFLICTS_INSTALL+= virtualbox-ose-additions-70
+.endif
+
+VIDEODIR= ${PREFIX}/lib/xorg/modules/drivers
+INPUTDIR= ${PREFIX}/lib/xorg/modules/input
+
+VBOX_BIN= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/additions
+VBOX_SBINS= VBoxControl \
+ VBoxService \
+ mount_vboxvfs
+
+BUILD_WRKSRC= ${VBOX_BIN}/src
+
+KMK_ARCH= freebsd.${ARCH:S/i386/x86/}
+KMK_CONFIG+= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys VBOX_ONLY_ADDITIONS=1
+
+.if ${PORT_OPTIONS:MX11}
+.else
+VBOX_WITH_X11=
+.endif
+
+.include <bsd.port.pre.mk>
+
+post-patch:
+ @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP = ${VBOX_WITH_X11}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP_GH = ${VBOX_WITH_X11}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_X11_ADDITIONS = ${VBOX_WITH_X11}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_GCC_std = -std=c++11' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'CXXDEFS += _LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR' >> \
+ ${WRKSRC}/LocalConfig.kmk
+.if ${COMPILER_TYPE} == clang
+ @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \
+ -e 's| -fno-merge-constants||' \
+ -e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk
+.endif
+ @${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/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ ${WRKSRC}/src/VBox/Additions/x11/vboxmouse/Makefile.kmk \
+ ${WRKSRC}/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
+ @${REINPLACE_CMD} \
+ -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \
+ ${WRKSRC}/configure
+.if empty(ICONV_LIB)
+ @${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.kmk \
+ ${WRKSRC}/src/VBox/Runtime/Makefile.kmk \
+ ${WRKSRC}/src/VBox/Additions/x11/VBoxClient/Makefile.kmk
+ @${ECHO_CMD} 'VBOX_ICONV_DEFS = LIBICONV_PLUG' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+.if ${OSVERSION} >= 1500038
+ @${ECHO_CMD} 'HAVE_MNTOPTS_IN_LIBUTIL = 1' >> \
+ ${WRKSRC}/LocalConfig.kmk
+.endif
+
+post-patch-X11-on:
+ @${ECHO_CMD} 'VBOX_USE_SYSTEM_XORG_HEADERS = 1' >> \
+ ${WRKSRC}/LocalConfig.kmk
+
+pre-build:
+ cd ${WRKSRC} && ${SH} -c \
+ ". env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk"
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${KMODDIR}
+ ${INSTALL_KLD} ${VBOX_BIN}/src/vboxguest/vboxguest.ko \
+ ${STAGEDIR}${KMODDIR}
+ ${INSTALL_KLD} ${VBOX_BIN}/vboxvfs.ko ${STAGEDIR}${KMODDIR}
+ ${INSTALL_LIB} ${VBOX_BIN}/pam_vbox.so ${STAGEDIR}${PREFIX}/lib
+ ${INSTALL_PROGRAM} ${VBOX_SBINS:S|^|${VBOX_BIN}/|} \
+ ${STAGEDIR}${PREFIX}/sbin/
+
+do-install-X11-on:
+ ${INSTALL_PROGRAM} ${VBOX_BIN}/VBoxClient ${STAGEDIR}${PREFIX}/bin/
+ ${INSTALL_SCRIPT} \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ ${STAGEDIR}${PREFIX}/bin/VBoxClient-all
+ # X11 autostart
+ ${MKDIR} ${STAGEDIR}${PREFIX}/etc/xdg/autostart/
+ ${INSTALL_DATA} \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ ${STAGEDIR}${PREFIX}/etc/xdg/autostart/
+ # KDE autostart
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/autostart/
+ ${INSTALL_DATA} \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ ${STAGEDIR}${PREFIX}/share/autostart/
+ ${MKDIR} ${STAGEDIR}${VIDEODIR}
+ ${INSTALL_LIB} ${VBOX_BIN}/vboxvideo_drv_system.so \
+ ${STAGEDIR}${VIDEODIR}/vboxvideo_drv.so
+ ${MKDIR} ${STAGEDIR}${INPUTDIR}
+ ${INSTALL_LIB} ${VBOX_BIN}/vboxmouse_drv_system.so \
+ ${STAGEDIR}${INPUTDIR}/vboxmouse_drv.so
+
+.include <bsd.port.post.mk>
diff --git a/emulators/virtualbox-ose-additions-70/distinfo b/emulators/virtualbox-ose-additions-70/distinfo
new file mode 100644
index 000000000000..644d77cfbd21
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-70/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1745631388
+SHA256 (VirtualBox-7.0.26.tar.bz2) = 8a6a83dd09e65a4aff85ba0df6bb1ba22c22f7f0923d86e4b130813d4a28c5db
+SIZE (VirtualBox-7.0.26.tar.bz2) = 174650718
diff --git a/emulators/virtualbox-ose-additions-70/files/vboxguest.in b/emulators/virtualbox-ose-additions-70/files/vboxguest.in
new file mode 100644
index 000000000000..707fedf94a88
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-70/files/vboxguest.in
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+# PROVIDE: vboxguest
+# REQUIRE: FILESYSTEMS
+# BEFORE: netif
+# KEYWORD: nojail
+
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# vboxguest_enable (bool): Set to NO by default.
+# Set it to YES to enable vboxguest on startup
+
+. /etc/rc.subr
+
+name="vboxguest"
+rcvar=vboxguest_enable
+start_cmd="vboxguest_start"
+stop_cmd="vboxguest_stop"
+
+vboxguest_modules="vboxguest:pci/vboxguest"
+
+vboxguest_start()
+{
+ local _k _m
+
+ for _m in ${vboxguest_modules}; do
+ _k=${_m%:*}
+ _m=${_m#*:}
+ if ! kldstat -q -m ${_m}; then
+ if ! kldload ${_k} > /dev/null 2>&1; then
+ warn "Can't load ${_k} module."
+ return 1
+ fi
+ fi
+ done
+}
+
+vboxguest_stop()
+{
+ local _k _m _r
+
+ _r=
+ for _m in ${vboxguest_modules}; do
+ _r="${_m} ${_r}"
+ done
+ for _m in ${_r}; do
+ _k=${_m%:*}
+ _m=${_m#*:}
+ if kldstat -q -m ${_m}; then
+ if ! kldunload ${_k} > /dev/null 2>&1; then
+ warn "Can't unload ${_k} module."
+ return 1
+ fi
+ fi
+ done
+}
+
+load_rc_config $name
+
+: ${vboxguest_enable="NO"}
+
+run_rc_command "$1"
diff --git a/emulators/virtualbox-ose-additions-70/files/vboxservice.in b/emulators/virtualbox-ose-additions-70/files/vboxservice.in
new file mode 100644
index 000000000000..2a46dbc188ef
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-70/files/vboxservice.in
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# PROVIDE: vboxservice
+# REQUIRE: DAEMON vboxguest
+# BEFORE: LOGIN
+# KEYWORD: shutdown
+
+# Define vboxservice_enable in /etc/rc.conf[.local] to enable it.
+#
+# vboxservice_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable VBoxService.
+
+. /etc/rc.subr
+
+name="vboxservice"
+rcvar=vboxservice_enable
+command="%%PREFIX%%/sbin/VBoxService"
+
+load_rc_config $name
+
+: ${vboxservice_enable="NO"}
+
+run_rc_command "$1"
diff --git a/emulators/virtualbox-ose-additions-70/files/vboxvideo.conf b/emulators/virtualbox-ose-additions-70/files/vboxvideo.conf
new file mode 100644
index 000000000000..dd6626429703
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-70/files/vboxvideo.conf
@@ -0,0 +1,5 @@
+libEGL.so.1 VBoxEGL.so
+libGL.so.1 VBoxOGL.so
+
+[libglx.so]
+libGL.so.1 libGL.so.1
diff --git a/emulators/virtualbox-ose-additions-70/pkg-descr b/emulators/virtualbox-ose-additions-70/pkg-descr
new file mode 100644
index 000000000000..d06e1a04878c
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-70/pkg-descr
@@ -0,0 +1,6 @@
+VirtualBox Guest Additions provide closer integration between host and
+guest, and improve the performance of guest systems.
+
+This FreeBSD provided package can be installed in FreeBSD guest machines.
+
+Additions are not intended for use on Host machines.
diff --git a/emulators/virtualbox-ose-additions-70/pkg-message b/emulators/virtualbox-ose-additions-70/pkg-message
new file mode 100644
index 000000000000..9b858849abdb
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-70/pkg-message
@@ -0,0 +1,36 @@
+[
+{ type: install
+ message: <<EOM
+VirtualBox Guest Additions are installed.
+
+To enable and start the required services:
+
+# sysrc vboxguest_enable="YES"
+# sysrc vboxservice_enable="YES"
+
+To start the services, restart the system.
+
+In some situations, a panic will occur when the kernel module loads.
+Having no more than one virtual CPU might mitigate the issue.
+
+For features such as window scaling and clipboard sharing, membership of
+the wheel group is required. With username "jerry" as an example:
+
+# pw groupmod wheel -m jerry
+
+The settings dialogue for FreeBSD guests encourages use of the VMSVGA
+graphics controller. Whilst this might suit installations of FreeBSD
+without a desktop environment (a common use case), it is not appropriate
+where Guest Additions are installed.
+
+Where Guest Additions are installed:
+
+1. prefer VBoxSVGA
+
+2. do not enable 3D acceleration (doing so will invisibly
+ lose the preference for VBoxSVGA)
+
+You may ignore the yellow alert that encourages use of VMSVGA.
+EOM
+}
+]
diff --git a/emulators/virtualbox-ose-additions-70/pkg-plist b/emulators/virtualbox-ose-additions-70/pkg-plist
new file mode 100644
index 000000000000..dac84dc22bcc
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-70/pkg-plist
@@ -0,0 +1,12 @@
+%%X11%%bin/VBoxClient
+%%X11%%bin/VBoxClient-all
+%%X11%%etc/xdg/autostart/vboxclient.desktop
+lib/pam_vbox.so
+%%X11%%lib/xorg/modules/drivers/vboxvideo_drv.so
+%%X11%%lib/xorg/modules/input/vboxmouse_drv.so
+sbin/VBoxControl
+sbin/VBoxService
+sbin/mount_vboxvfs
+%%X11%%share/autostart/vboxclient.desktop
+/%%KMODDIR%%/vboxguest.ko
+/%%KMODDIR%%/vboxvfs.ko
diff --git a/emulators/virtualbox-ose-additions-71/Makefile b/emulators/virtualbox-ose-additions-71/Makefile
new file mode 100644
index 000000000000..3a252cd3362b
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-71/Makefile
@@ -0,0 +1,174 @@
+PORTNAME= virtualbox-ose
+DISTVERSION= 7.1.14
+PORTREVISION?= 0
+CATEGORIES= emulators
+MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/
+PKGNAMESUFFIX?= -additions-71
+DISTNAME= VirtualBox-${DISTVERSION}
+
+MAINTAINER= vbox@FreeBSD.org
+COMMENT= VirtualBox additions for FreeBSD guests
+WWW= https://www.virtualbox.org/
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+ONLY_FOR_ARCHS= amd64
+
+BUILD_DEPENDS= yasm:devel/yasm \
+ kmk:devel/kBuild \
+ xsltproc:textproc/libxslt
+
+USES= compiler:c++17-lang cpe iconv kmod tar:bzip2
+CPE_VENDOR= oracle
+CPE_PRODUCT= vm_virtualbox
+USE_RC_SUBR= vboxguest vboxservice
+
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS+= --disable-alsa \
+ --disable-docs \
+ --disable-libvpx \
+ --disable-opengl \
+ --disable-pulse \
+ --disable-python \
+ --disable-sdl-ttf \
+ --disable-xpcom
+CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
+
+MAKE_JOBS_UNSAFE= yes
+
+CONFLICTS_INSTALL= virtualbox-ose-additions-legacy \
+ virtualbox-ose-additions-nox11-legacy \
+ virtualbox-ose-additions \
+ virtualbox-ose-additions-nox11 \
+ virtualbox-ose-additions-70 \
+ virtualbox-ose-additions-nox11-70 \
+ virtualbox-ose-additions-72 \
+ virtualbox-ose-additions-nox11-72
+
+PATCHDIR= ${.CURDIR}/../${PORTNAME}-71/files
+EXTRACT_AFTER_ARGS= --exclude tools/*.x86 --exclude tools/*.amd64 --exclude Firmware
+PORTSCOUT= limit:^7\.1\.
+
+WRKSRC= ${WRKDIR}/VirtualBox-${DISTVERSION}
+
+OPTIONS_DEFINE= DBUS DEBUG X11
+OPTIONS_DEFAULT= DBUS X11
+OPTIONS_SUB= yes
+
+DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
+DBUS_CONFIGURE_OFF= --disable-dbus
+DEBUG_CONFIGURE_ON= --build-debug
+DEBUG_VARS= KMK_BUILDTYPE=debug
+DEBUG_VARS_OFF= KMK_BUILDTYPE=release
+X11_BUILD_DEPENDS= ${LOCALBASE}/include/xorg/compiler.h:x11-servers/xorg-server
+X11_RUN_DEPENDS= xrandr:x11/xrandr
+X11_USES= pkgconfig xorg
+X11_USE= XORG=x11,xcursor,xext,xorgproto,xmu,xrandr,xt
+X11_VARS= VBOX_WITH_X11=1
+
+.include <bsd.port.options.mk>
+
+.if ${SLAVE_PORT} == no
+CONFLICTS_INSTALL+= virtualbox-ose-additions-nox11-71
+.else
+CONFLICTS_INSTALL+= virtualbox-ose-additions-71
+.endif
+
+VIDEODIR= ${PREFIX}/lib/xorg/modules/drivers
+INPUTDIR= ${PREFIX}/lib/xorg/modules/input
+
+VBOX_BIN= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/additions
+VBOX_SBINS= VBoxControl \
+ VBoxService \
+ mount_vboxvfs
+
+BUILD_WRKSRC= ${VBOX_BIN}/src
+
+KMK_ARCH= freebsd.${ARCH:S/i386/x86/}
+KMK_CONFIG+= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys VBOX_ONLY_ADDITIONS=1
+
+.if ${PORT_OPTIONS:MX11}
+.else
+VBOX_WITH_X11=
+.endif
+
+.include <bsd.port.pre.mk>
+
+post-patch:
+ @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP = ${VBOX_WITH_X11}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP_GH = ${VBOX_WITH_X11}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_X11_ADDITIONS = ${VBOX_WITH_X11}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_GCC_std = -std=c++11' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'CXXDEFS += _LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR' >> \
+ ${WRKSRC}/LocalConfig.kmk
+.if ${COMPILER_TYPE} == clang
+ @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \
+ -e 's| -fno-merge-constants||' \
+ -e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk
+.endif
+ @${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/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ ${WRKSRC}/src/VBox/Additions/x11/vboxmouse/Makefile.kmk \
+ ${WRKSRC}/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
+ @${REINPLACE_CMD} \
+ -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \
+ ${WRKSRC}/configure
+.if empty(ICONV_LIB)
+ @${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.kmk \
+ ${WRKSRC}/src/VBox/Runtime/Makefile.kmk \
+ ${WRKSRC}/src/VBox/Additions/x11/VBoxClient/Makefile.kmk
+ @${ECHO_CMD} 'VBOX_ICONV_DEFS = LIBICONV_PLUG' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+.if ${OSVERSION} >= 1500038
+ @${ECHO_CMD} 'HAVE_MNTOPTS_IN_LIBUTIL = 1' >> \
+ ${WRKSRC}/LocalConfig.kmk
+.endif
+
+post-patch-X11-on:
+ @${ECHO_CMD} 'VBOX_USE_SYSTEM_XORG_HEADERS = 1' >> \
+ ${WRKSRC}/LocalConfig.kmk
+
+pre-build:
+ cd ${WRKSRC} && ${SH} -c \
+ ". env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk"
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${KMODDIR}
+ ${INSTALL_KLD} ${VBOX_BIN}/src/vboxguest/vboxguest.ko \
+ ${STAGEDIR}${KMODDIR}
+ ${INSTALL_KLD} ${VBOX_BIN}/vboxvfs.ko ${STAGEDIR}${KMODDIR}
+ ${INSTALL_LIB} ${VBOX_BIN}/pam_vbox.so ${STAGEDIR}${PREFIX}/lib
+ ${INSTALL_PROGRAM} ${VBOX_SBINS:S|^|${VBOX_BIN}/|} \
+ ${STAGEDIR}${PREFIX}/sbin/
+
+do-install-X11-on:
+ ${INSTALL_PROGRAM} ${VBOX_BIN}/VBoxClient ${STAGEDIR}${PREFIX}/bin/
+ ${INSTALL_SCRIPT} \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ ${STAGEDIR}${PREFIX}/bin/VBoxClient-all
+ # X11 autostart
+ ${MKDIR} ${STAGEDIR}${PREFIX}/etc/xdg/autostart/
+ ${INSTALL_DATA} \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ ${STAGEDIR}${PREFIX}/etc/xdg/autostart/
+ # KDE autostart
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/autostart/
+ ${INSTALL_DATA} \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ ${STAGEDIR}${PREFIX}/share/autostart/
+ ${MKDIR} ${STAGEDIR}${VIDEODIR}
+ ${INSTALL_LIB} ${VBOX_BIN}/vboxvideo_drv_system.so \
+ ${STAGEDIR}${VIDEODIR}/vboxvideo_drv.so
+ ${MKDIR} ${STAGEDIR}${INPUTDIR}
+ ${INSTALL_LIB} ${VBOX_BIN}/vboxmouse_drv_system.so \
+ ${STAGEDIR}${INPUTDIR}/vboxmouse_drv.so
+
+.include <bsd.port.post.mk>
diff --git a/emulators/virtualbox-ose-additions-71/distinfo b/emulators/virtualbox-ose-additions-71/distinfo
new file mode 100644
index 000000000000..904760a18c0f
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-71/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1761146098
+SHA256 (VirtualBox-7.1.14.tar.bz2) = 6a4eea884cd98049a5357133b718078d8aaae68047836a3f86cd5904336d6218
+SIZE (VirtualBox-7.1.14.tar.bz2) = 216819853
diff --git a/emulators/virtualbox-ose-additions-71/files/vboxguest.in b/emulators/virtualbox-ose-additions-71/files/vboxguest.in
new file mode 100644
index 000000000000..707fedf94a88
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-71/files/vboxguest.in
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+# PROVIDE: vboxguest
+# REQUIRE: FILESYSTEMS
+# BEFORE: netif
+# KEYWORD: nojail
+
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# vboxguest_enable (bool): Set to NO by default.
+# Set it to YES to enable vboxguest on startup
+
+. /etc/rc.subr
+
+name="vboxguest"
+rcvar=vboxguest_enable
+start_cmd="vboxguest_start"
+stop_cmd="vboxguest_stop"
+
+vboxguest_modules="vboxguest:pci/vboxguest"
+
+vboxguest_start()
+{
+ local _k _m
+
+ for _m in ${vboxguest_modules}; do
+ _k=${_m%:*}
+ _m=${_m#*:}
+ if ! kldstat -q -m ${_m}; then
+ if ! kldload ${_k} > /dev/null 2>&1; then
+ warn "Can't load ${_k} module."
+ return 1
+ fi
+ fi
+ done
+}
+
+vboxguest_stop()
+{
+ local _k _m _r
+
+ _r=
+ for _m in ${vboxguest_modules}; do
+ _r="${_m} ${_r}"
+ done
+ for _m in ${_r}; do
+ _k=${_m%:*}
+ _m=${_m#*:}
+ if kldstat -q -m ${_m}; then
+ if ! kldunload ${_k} > /dev/null 2>&1; then
+ warn "Can't unload ${_k} module."
+ return 1
+ fi
+ fi
+ done
+}
+
+load_rc_config $name
+
+: ${vboxguest_enable="NO"}
+
+run_rc_command "$1"
diff --git a/emulators/virtualbox-ose-additions-71/files/vboxservice.in b/emulators/virtualbox-ose-additions-71/files/vboxservice.in
new file mode 100644
index 000000000000..2a46dbc188ef
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-71/files/vboxservice.in
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# PROVIDE: vboxservice
+# REQUIRE: DAEMON vboxguest
+# BEFORE: LOGIN
+# KEYWORD: shutdown
+
+# Define vboxservice_enable in /etc/rc.conf[.local] to enable it.
+#
+# vboxservice_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable VBoxService.
+
+. /etc/rc.subr
+
+name="vboxservice"
+rcvar=vboxservice_enable
+command="%%PREFIX%%/sbin/VBoxService"
+
+load_rc_config $name
+
+: ${vboxservice_enable="NO"}
+
+run_rc_command "$1"
diff --git a/emulators/virtualbox-ose-additions-71/files/vboxvideo.conf b/emulators/virtualbox-ose-additions-71/files/vboxvideo.conf
new file mode 100644
index 000000000000..dd6626429703
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-71/files/vboxvideo.conf
@@ -0,0 +1,5 @@
+libEGL.so.1 VBoxEGL.so
+libGL.so.1 VBoxOGL.so
+
+[libglx.so]
+libGL.so.1 libGL.so.1
diff --git a/emulators/virtualbox-ose-additions-71/pkg-descr b/emulators/virtualbox-ose-additions-71/pkg-descr
new file mode 100644
index 000000000000..d06e1a04878c
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-71/pkg-descr
@@ -0,0 +1,6 @@
+VirtualBox Guest Additions provide closer integration between host and
+guest, and improve the performance of guest systems.
+
+This FreeBSD provided package can be installed in FreeBSD guest machines.
+
+Additions are not intended for use on Host machines.
diff --git a/emulators/virtualbox-ose-additions-71/pkg-message b/emulators/virtualbox-ose-additions-71/pkg-message
new file mode 100644
index 000000000000..9b858849abdb
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-71/pkg-message
@@ -0,0 +1,36 @@
+[
+{ type: install
+ message: <<EOM
+VirtualBox Guest Additions are installed.
+
+To enable and start the required services:
+
+# sysrc vboxguest_enable="YES"
+# sysrc vboxservice_enable="YES"
+
+To start the services, restart the system.
+
+In some situations, a panic will occur when the kernel module loads.
+Having no more than one virtual CPU might mitigate the issue.
+
+For features such as window scaling and clipboard sharing, membership of
+the wheel group is required. With username "jerry" as an example:
+
+# pw groupmod wheel -m jerry
+
+The settings dialogue for FreeBSD guests encourages use of the VMSVGA
+graphics controller. Whilst this might suit installations of FreeBSD
+without a desktop environment (a common use case), it is not appropriate
+where Guest Additions are installed.
+
+Where Guest Additions are installed:
+
+1. prefer VBoxSVGA
+
+2. do not enable 3D acceleration (doing so will invisibly
+ lose the preference for VBoxSVGA)
+
+You may ignore the yellow alert that encourages use of VMSVGA.
+EOM
+}
+]
diff --git a/emulators/virtualbox-ose-additions-71/pkg-plist b/emulators/virtualbox-ose-additions-71/pkg-plist
new file mode 100644
index 000000000000..dac84dc22bcc
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-71/pkg-plist
@@ -0,0 +1,12 @@
+%%X11%%bin/VBoxClient
+%%X11%%bin/VBoxClient-all
+%%X11%%etc/xdg/autostart/vboxclient.desktop
+lib/pam_vbox.so
+%%X11%%lib/xorg/modules/drivers/vboxvideo_drv.so
+%%X11%%lib/xorg/modules/input/vboxmouse_drv.so
+sbin/VBoxControl
+sbin/VBoxService
+sbin/mount_vboxvfs
+%%X11%%share/autostart/vboxclient.desktop
+/%%KMODDIR%%/vboxguest.ko
+/%%KMODDIR%%/vboxvfs.ko
diff --git a/emulators/virtualbox-ose-additions-72/Makefile b/emulators/virtualbox-ose-additions-72/Makefile
new file mode 100644
index 000000000000..6196899a7ad8
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-72/Makefile
@@ -0,0 +1,174 @@
+PORTNAME= virtualbox-ose
+DISTVERSION= 7.2.4
+PORTREVISION?= 0
+CATEGORIES= emulators
+MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/
+PKGNAMESUFFIX?= -additions-72
+DISTNAME= VirtualBox-${DISTVERSION}
+
+MAINTAINER= vbox@FreeBSD.org
+COMMENT= VirtualBox additions for FreeBSD guests
+WWW= https://www.virtualbox.org/
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+ONLY_FOR_ARCHS= amd64
+
+BUILD_DEPENDS= yasm:devel/yasm \
+ kmk:devel/kBuild \
+ xsltproc:textproc/libxslt
+
+USES= compiler:c++17-lang cpe iconv kmod tar:bzip2
+CPE_VENDOR= oracle
+CPE_PRODUCT= vm_virtualbox
+USE_RC_SUBR= vboxguest vboxservice
+
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS+= --disable-alsa \
+ --disable-docs \
+ --disable-libvpx \
+ --disable-opengl \
+ --disable-pulse \
+ --disable-python \
+ --disable-sdl-ttf \
+ --disable-xpcom
+CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
+
+MAKE_JOBS_UNSAFE= yes
+
+CONFLICTS_INSTALL= virtualbox-ose-additions-legacy \
+ virtualbox-ose-additions-nox11-legacy \
+ virtualbox-ose-additions \
+ virtualbox-ose-additions-nox11 \
+ virtualbox-ose-additions-70 \
+ virtualbox-ose-additions-nox11-70 \
+ virtualbox-ose-additions-71 \
+ virtualbox-ose-additions-nox11-71
+
+PATCHDIR= ${.CURDIR}/../${PORTNAME}-72/files
+EXTRACT_AFTER_ARGS= --exclude tools/*.x86 --exclude tools/*.amd64 --exclude Firmware
+PORTSCOUT= limit:^7\.2\.
+
+WRKSRC= ${WRKDIR}/VirtualBox-${DISTVERSION}
+
+OPTIONS_DEFINE= DBUS DEBUG X11
+OPTIONS_DEFAULT= DBUS X11
+OPTIONS_SUB= yes
+
+DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
+DBUS_CONFIGURE_OFF= --disable-dbus
+DEBUG_CONFIGURE_ON= --build-debug
+DEBUG_VARS= KMK_BUILDTYPE=debug
+DEBUG_VARS_OFF= KMK_BUILDTYPE=release
+X11_BUILD_DEPENDS= ${LOCALBASE}/include/xorg/compiler.h:x11-servers/xorg-server
+X11_RUN_DEPENDS= xrandr:x11/xrandr
+X11_USES= pkgconfig xorg
+X11_USE= XORG=x11,xcursor,xext,xorgproto,xmu,xrandr,xt
+X11_VARS= VBOX_WITH_X11=1
+
+.include <bsd.port.options.mk>
+
+.if ${SLAVE_PORT} == no
+CONFLICTS_INSTALL+= virtualbox-ose-additions-nox11-72
+.else
+CONFLICTS_INSTALL+= virtualbox-ose-additions-72
+.endif
+
+VIDEODIR= ${PREFIX}/lib/xorg/modules/drivers
+INPUTDIR= ${PREFIX}/lib/xorg/modules/input
+
+VBOX_BIN= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/additions
+VBOX_SBINS= VBoxControl \
+ VBoxService \
+ mount_vboxvfs
+
+BUILD_WRKSRC= ${VBOX_BIN}/src
+
+KMK_ARCH= freebsd.${ARCH:S/i386/x86/}
+KMK_CONFIG+= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys VBOX_ONLY_ADDITIONS=1
+
+.if ${PORT_OPTIONS:MX11}
+.else
+VBOX_WITH_X11=
+.endif
+
+.include <bsd.port.pre.mk>
+
+post-patch:
+ @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP = ${VBOX_WITH_X11}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP_GH = ${VBOX_WITH_X11}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_X11_ADDITIONS = ${VBOX_WITH_X11}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_GCC_std = -std=c++11' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'CXXDEFS += _LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR' >> \
+ ${WRKSRC}/LocalConfig.kmk
+.if ${COMPILER_TYPE} == clang
+ @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \
+ -e 's| -fno-merge-constants||' \
+ -e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk
+.endif
+ @${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/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ ${WRKSRC}/src/VBox/Additions/x11/vboxmouse/Makefile.kmk \
+ ${WRKSRC}/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
+ @${REINPLACE_CMD} \
+ -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \
+ ${WRKSRC}/configure
+.if empty(ICONV_LIB)
+ @${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.kmk \
+ ${WRKSRC}/src/VBox/Runtime/Makefile.kmk \
+ ${WRKSRC}/src/VBox/Additions/x11/VBoxClient/Makefile.kmk
+ @${ECHO_CMD} 'VBOX_ICONV_DEFS = LIBICONV_PLUG' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+.if ${OSVERSION} >= 1500038
+ @${ECHO_CMD} 'HAVE_MNTOPTS_IN_LIBUTIL = 1' >> \
+ ${WRKSRC}/LocalConfig.kmk
+.endif
+
+post-patch-X11-on:
+ @${ECHO_CMD} 'VBOX_USE_SYSTEM_XORG_HEADERS = 1' >> \
+ ${WRKSRC}/LocalConfig.kmk
+
+pre-build:
+ cd ${WRKSRC} && ${SH} -c \
+ ". env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk"
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${KMODDIR}
+ ${INSTALL_KLD} ${VBOX_BIN}/src/vboxguest/vboxguest.ko \
+ ${STAGEDIR}${KMODDIR}
+ ${INSTALL_KLD} ${VBOX_BIN}/vboxvfs.ko ${STAGEDIR}${KMODDIR}
+ ${INSTALL_LIB} ${VBOX_BIN}/pam_vbox.so ${STAGEDIR}${PREFIX}/lib
+ ${INSTALL_PROGRAM} ${VBOX_SBINS:S|^|${VBOX_BIN}/|} \
+ ${STAGEDIR}${PREFIX}/sbin/
+
+do-install-X11-on:
+ ${INSTALL_PROGRAM} ${VBOX_BIN}/VBoxClient ${STAGEDIR}${PREFIX}/bin/
+ ${INSTALL_SCRIPT} \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ ${STAGEDIR}${PREFIX}/bin/VBoxClient-all
+ # X11 autostart
+ ${MKDIR} ${STAGEDIR}${PREFIX}/etc/xdg/autostart/
+ ${INSTALL_DATA} \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ ${STAGEDIR}${PREFIX}/etc/xdg/autostart/
+ # KDE autostart
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/autostart/
+ ${INSTALL_DATA} \
+ ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ ${STAGEDIR}${PREFIX}/share/autostart/
+ ${MKDIR} ${STAGEDIR}${VIDEODIR}
+ ${INSTALL_LIB} ${VBOX_BIN}/vboxvideo_drv_system.so \
+ ${STAGEDIR}${VIDEODIR}/vboxvideo_drv.so
+ ${MKDIR} ${STAGEDIR}${INPUTDIR}
+ ${INSTALL_LIB} ${VBOX_BIN}/vboxmouse_drv_system.so \
+ ${STAGEDIR}${INPUTDIR}/vboxmouse_drv.so
+
+.include <bsd.port.post.mk>
diff --git a/emulators/virtualbox-ose-additions-72/distinfo b/emulators/virtualbox-ose-additions-72/distinfo
new file mode 100644
index 000000000000..729b45a32abd
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-72/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1761088888
+SHA256 (VirtualBox-7.2.4.tar.bz2) = d281ec981b5f580211a0cedd1b75a1adcb0fbfcbb768d8c2bf4429f4763e8bbd
+SIZE (VirtualBox-7.2.4.tar.bz2) = 207084201
diff --git a/emulators/virtualbox-ose-additions-72/files/vboxguest.in b/emulators/virtualbox-ose-additions-72/files/vboxguest.in
new file mode 100644
index 000000000000..707fedf94a88
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-72/files/vboxguest.in
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+# PROVIDE: vboxguest
+# REQUIRE: FILESYSTEMS
+# BEFORE: netif
+# KEYWORD: nojail
+
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# vboxguest_enable (bool): Set to NO by default.
+# Set it to YES to enable vboxguest on startup
+
+. /etc/rc.subr
+
+name="vboxguest"
+rcvar=vboxguest_enable
+start_cmd="vboxguest_start"
+stop_cmd="vboxguest_stop"
+
+vboxguest_modules="vboxguest:pci/vboxguest"
+
+vboxguest_start()
+{
+ local _k _m
+
+ for _m in ${vboxguest_modules}; do
+ _k=${_m%:*}
+ _m=${_m#*:}
+ if ! kldstat -q -m ${_m}; then
+ if ! kldload ${_k} > /dev/null 2>&1; then
+ warn "Can't load ${_k} module."
+ return 1
+ fi
+ fi
+ done
+}
+
+vboxguest_stop()
+{
+ local _k _m _r
+
+ _r=
+ for _m in ${vboxguest_modules}; do
+ _r="${_m} ${_r}"
+ done
+ for _m in ${_r}; do
+ _k=${_m%:*}
+ _m=${_m#*:}
+ if kldstat -q -m ${_m}; then
+ if ! kldunload ${_k} > /dev/null 2>&1; then
+ warn "Can't unload ${_k} module."
+ return 1
+ fi
+ fi
+ done
+}
+
+load_rc_config $name
+
+: ${vboxguest_enable="NO"}
+
+run_rc_command "$1"
diff --git a/emulators/virtualbox-ose-additions-72/files/vboxservice.in b/emulators/virtualbox-ose-additions-72/files/vboxservice.in
new file mode 100644
index 000000000000..2a46dbc188ef
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-72/files/vboxservice.in
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# PROVIDE: vboxservice
+# REQUIRE: DAEMON vboxguest
+# BEFORE: LOGIN
+# KEYWORD: shutdown
+
+# Define vboxservice_enable in /etc/rc.conf[.local] to enable it.
+#
+# vboxservice_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable VBoxService.
+
+. /etc/rc.subr
+
+name="vboxservice"
+rcvar=vboxservice_enable
+command="%%PREFIX%%/sbin/VBoxService"
+
+load_rc_config $name
+
+: ${vboxservice_enable="NO"}
+
+run_rc_command "$1"
diff --git a/emulators/virtualbox-ose-additions-72/files/vboxvideo.conf b/emulators/virtualbox-ose-additions-72/files/vboxvideo.conf
new file mode 100644
index 000000000000..dd6626429703
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-72/files/vboxvideo.conf
@@ -0,0 +1,5 @@
+libEGL.so.1 VBoxEGL.so
+libGL.so.1 VBoxOGL.so
+
+[libglx.so]
+libGL.so.1 libGL.so.1
diff --git a/emulators/virtualbox-ose-additions-72/pkg-descr b/emulators/virtualbox-ose-additions-72/pkg-descr
new file mode 100644
index 000000000000..d06e1a04878c
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-72/pkg-descr
@@ -0,0 +1,6 @@
+VirtualBox Guest Additions provide closer integration between host and
+guest, and improve the performance of guest systems.
+
+This FreeBSD provided package can be installed in FreeBSD guest machines.
+
+Additions are not intended for use on Host machines.
diff --git a/emulators/virtualbox-ose-additions-72/pkg-message b/emulators/virtualbox-ose-additions-72/pkg-message
new file mode 100644
index 000000000000..9b858849abdb
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-72/pkg-message
@@ -0,0 +1,36 @@
+[
+{ type: install
+ message: <<EOM
+VirtualBox Guest Additions are installed.
+
+To enable and start the required services:
+
+# sysrc vboxguest_enable="YES"
+# sysrc vboxservice_enable="YES"
+
+To start the services, restart the system.
+
+In some situations, a panic will occur when the kernel module loads.
+Having no more than one virtual CPU might mitigate the issue.
+
+For features such as window scaling and clipboard sharing, membership of
+the wheel group is required. With username "jerry" as an example:
+
+# pw groupmod wheel -m jerry
+
+The settings dialogue for FreeBSD guests encourages use of the VMSVGA
+graphics controller. Whilst this might suit installations of FreeBSD
+without a desktop environment (a common use case), it is not appropriate
+where Guest Additions are installed.
+
+Where Guest Additions are installed:
+
+1. prefer VBoxSVGA
+
+2. do not enable 3D acceleration (doing so will invisibly
+ lose the preference for VBoxSVGA)
+
+You may ignore the yellow alert that encourages use of VMSVGA.
+EOM
+}
+]
diff --git a/emulators/virtualbox-ose-additions-72/pkg-plist b/emulators/virtualbox-ose-additions-72/pkg-plist
new file mode 100644
index 000000000000..dac84dc22bcc
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-72/pkg-plist
@@ -0,0 +1,12 @@
+%%X11%%bin/VBoxClient
+%%X11%%bin/VBoxClient-all
+%%X11%%etc/xdg/autostart/vboxclient.desktop
+lib/pam_vbox.so
+%%X11%%lib/xorg/modules/drivers/vboxvideo_drv.so
+%%X11%%lib/xorg/modules/input/vboxmouse_drv.so
+sbin/VBoxControl
+sbin/VBoxService
+sbin/mount_vboxvfs
+%%X11%%share/autostart/vboxclient.desktop
+/%%KMODDIR%%/vboxguest.ko
+/%%KMODDIR%%/vboxvfs.ko
diff --git a/emulators/virtualbox-ose-additions-nox11-70/Makefile b/emulators/virtualbox-ose-additions-nox11-70/Makefile
new file mode 100644
index 000000000000..a9a2be2575ba
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-nox11-70/Makefile
@@ -0,0 +1,8 @@
+PORTREVISION= 0
+PKGNAMESUFFIX= -additions-nox11-70
+
+MASTERDIR= ${.CURDIR}/../virtualbox-ose-additions-70
+
+OPTIONS_EXCLUDE= DBUS DEBUG OPENGL X11
+
+.include "${MASTERDIR}/Makefile"
diff --git a/emulators/virtualbox-ose-additions-nox11-71/Makefile b/emulators/virtualbox-ose-additions-nox11-71/Makefile
new file mode 100644
index 000000000000..ef057aa1f5f2
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-nox11-71/Makefile
@@ -0,0 +1,8 @@
+PORTREVISION= 0
+PKGNAMESUFFIX= -additions-nox11-71
+
+MASTERDIR= ${.CURDIR}/../virtualbox-ose-additions-71
+
+OPTIONS_EXCLUDE= DBUS DEBUG OPENGL X11
+
+.include "${MASTERDIR}/Makefile"
diff --git a/emulators/virtualbox-ose-additions-nox11-72/Makefile b/emulators/virtualbox-ose-additions-nox11-72/Makefile
new file mode 100644
index 000000000000..ed7edcf49366
--- /dev/null
+++ b/emulators/virtualbox-ose-additions-nox11-72/Makefile
@@ -0,0 +1,8 @@
+PORTREVISION= 0
+PKGNAMESUFFIX= -additions-nox11-72
+
+MASTERDIR= ${.CURDIR}/../virtualbox-ose-additions-72
+
+OPTIONS_EXCLUDE= DBUS DEBUG OPENGL X11
+
+.include "${MASTERDIR}/Makefile"
diff --git a/emulators/virtualbox-ose-kmod-71/Makefile b/emulators/virtualbox-ose-kmod-71/Makefile
index 75f20dc887fc..88f593c525fc 100644
--- a/emulators/virtualbox-ose-kmod-71/Makefile
+++ b/emulators/virtualbox-ose-kmod-71/Makefile
@@ -1,5 +1,5 @@
PORTNAME= virtualbox-ose
-DISTVERSION= 7.1.12
+DISTVERSION= 7.1.14
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/
PKGNAMESUFFIX= -kmod-71
diff --git a/emulators/virtualbox-ose-kmod-71/distinfo b/emulators/virtualbox-ose-kmod-71/distinfo
index fb7394d7745c..440b2b8ba4f1 100644
--- a/emulators/virtualbox-ose-kmod-71/distinfo
+++ b/emulators/virtualbox-ose-kmod-71/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1752700000
-SHA256 (VirtualBox-7.1.12.tar.bz2) = 6f9618f39168898134975f51df7c2d6d5129c0aa82b6ae11cf47f920c70df276
-SIZE (VirtualBox-7.1.12.tar.bz2) = 214691769
+TIMESTAMP = 1761088888
+SHA256 (VirtualBox-7.1.14.tar.bz2) = 6a4eea884cd98049a5357133b718078d8aaae68047836a3f86cd5904336d6218
+SIZE (VirtualBox-7.1.14.tar.bz2) = 216819853
diff --git a/emulators/virtualbox-ose-kmod-72/Makefile b/emulators/virtualbox-ose-kmod-72/Makefile
index 40c529cae48a..1fbfaa53f6df 100644
--- a/emulators/virtualbox-ose-kmod-72/Makefile
+++ b/emulators/virtualbox-ose-kmod-72/Makefile
@@ -1,5 +1,5 @@
PORTNAME= virtualbox-ose
-DISTVERSION= 7.2.2
+DISTVERSION= 7.2.4
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/
PKGNAMESUFFIX= -kmod-72
diff --git a/emulators/virtualbox-ose-kmod-72/distinfo b/emulators/virtualbox-ose-kmod-72/distinfo
index 41bf0f3a16ac..729b45a32abd 100644
--- a/emulators/virtualbox-ose-kmod-72/distinfo
+++ b/emulators/virtualbox-ose-kmod-72/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759400000
-SHA256 (VirtualBox-7.2.2.tar.bz2) = b0e63bfb855327aecf1122cda33390c33734e5ffed72f123f5edf786a8ce1393
-SIZE (VirtualBox-7.2.2.tar.bz2) = 206992991
+TIMESTAMP = 1761088888
+SHA256 (VirtualBox-7.2.4.tar.bz2) = d281ec981b5f580211a0cedd1b75a1adcb0fbfcbb768d8c2bf4429f4763e8bbd
+SIZE (VirtualBox-7.2.4.tar.bz2) = 207084201
diff --git a/emulators/virtualbox-ose-legacy/Makefile b/emulators/virtualbox-ose-legacy/Makefile
index 2040fa8bf3e0..bde4ee8743f8 100644
--- a/emulators/virtualbox-ose-legacy/Makefile
+++ b/emulators/virtualbox-ose-legacy/Makefile
@@ -87,7 +87,7 @@ OPTIONS_SUB= yes
DEBUG_DESC= Debug symbols, additional logs and assertions
GUESTADDITIONS_DESC= Build with Guest Additions
NLS_DESC= Native language support (requires QT5)
-QT5_DESC= Build with QT5 frontend (requires X11)
+QT5_DESC= Build with Qt5 frontend (requires X11)
R0LOGGING_DESC= Enable R0 logging (requires DEBUG)
UDPTUNNEL_DESC= Build with UDP tunnel support
VDE_DESC= Build with VDE support
diff --git a/emulators/virtualbox-ose-legacy/files/vboxinit.in b/emulators/virtualbox-ose-legacy/files/vboxinit.in
index 9895da9e362e..9574d7d6295e 100644
--- a/emulators/virtualbox-ose-legacy/files/vboxinit.in
+++ b/emulators/virtualbox-ose-legacy/files/vboxinit.in
@@ -16,7 +16,7 @@
# vboxinit_stop (str): Default stop cmd for VBoxManage controlvm.
# (default: savestate)
# vboxinit_start_delay (int): Default startup delay in seconds.
-# (default: 0)
+# (default: 1)
# vboxinit_stop_delay (int): Default shutdown delay in seconds.
# (default: 0)
#
diff --git a/emulators/virtualbox-ose-nox11-71/Makefile b/emulators/virtualbox-ose-nox11-71/Makefile
index 66d0c82c9bc9..bd1a0035d424 100644
--- a/emulators/virtualbox-ose-nox11-71/Makefile
+++ b/emulators/virtualbox-ose-nox11-71/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 1
+PORTREVISION= 0
PKGNAMESUFFIX= -nox11-71
MASTERDIR= ${.CURDIR}/../virtualbox-ose-71
diff --git a/emulators/virtualbox-ose-nox11-72/Makefile b/emulators/virtualbox-ose-nox11-72/Makefile
index bd2cd188d048..d415932ea096 100644
--- a/emulators/virtualbox-ose-nox11-72/Makefile
+++ b/emulators/virtualbox-ose-nox11-72/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 1
+PORTREVISION= 0
PKGNAMESUFFIX= -nox11-72
MASTERDIR= ${.CURDIR}/../virtualbox-ose-72
diff --git a/emulators/virtualbox-ose/Makefile b/emulators/virtualbox-ose/Makefile
index 0090c98652d1..746956b89905 100644
--- a/emulators/virtualbox-ose/Makefile
+++ b/emulators/virtualbox-ose/Makefile
@@ -92,7 +92,7 @@ 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)
+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)
diff --git a/emulators/virtualbox-ose/files/vboxinit.in b/emulators/virtualbox-ose/files/vboxinit.in
index 9895da9e362e..9574d7d6295e 100644
--- a/emulators/virtualbox-ose/files/vboxinit.in
+++ b/emulators/virtualbox-ose/files/vboxinit.in
@@ -16,7 +16,7 @@
# vboxinit_stop (str): Default stop cmd for VBoxManage controlvm.
# (default: savestate)
# vboxinit_start_delay (int): Default startup delay in seconds.
-# (default: 0)
+# (default: 1)
# vboxinit_stop_delay (int): Default shutdown delay in seconds.
# (default: 0)
#
diff --git a/emulators/wine-devel/Makefile b/emulators/wine-devel/Makefile
index 904dc99b83f7..b1d51d5546f1 100644
--- a/emulators/wine-devel/Makefile
+++ b/emulators/wine-devel/Makefile
@@ -1,5 +1,6 @@
PORTNAME= wine
-DISTVERSION= 10.16
+DISTVERSION= 10.18
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= emulators
MASTER_SITES= https://dl.winehq.org/wine/source/10.x/
@@ -16,6 +17,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
ONLY_FOR_ARCHS= amd64 i386
BUILD_DEPENDS= ${LOCALBASE}/bin/flex:textproc/flex
+LIB_DEPENDS= libhwloc.so:devel/hwloc2
# Only devel/llvm17 and later come with necessary include files - PR274542
USES= bison cpe desktop-file-utils gmake llvm:min=17,build,noexport \
@@ -38,10 +40,10 @@ CONFIGURE_ARGS= --verbose \
--without-capi \
--without-coreaudio \
--without-dbus \
- --without-ffmpeg \
--without-gettext --without-gettextpo \
--without-gphoto \
--without-gssapi \
+ --with-hwloc \
--without-inotify \
--without-krb5 \
--with-mingw CROSSCC="clang" \
@@ -69,13 +71,14 @@ SUB_FILES= pkg-message
PORTDATA= wine.inf
-OPTIONS_DEFINE= CUPS DOCS DOSBOX GECKO GNUTLS MONO V4L WAYLAND X11
-OPTIONS_DEFAULT= ALSA GNUTLS WAYLAND X11
+OPTIONS_DEFINE= CUPS DOCS DOSBOX FFMPEG GECKO GNUTLS MONO V4L WAYLAND X11
+OPTIONS_DEFAULT= ALSA FFMPEG GNUTLS WAYLAND X11
OPTIONS_RADIO= AUDIO
OPTIONS_RADIO_AUDIO= ALSA OSS
OPTIONS_SUB= yes
DOSBOX_DESC= Use DOSBox to run MS-DOS programs
+FFMPEG_DESC= FFMPEG support
GECKO_DESC= Bundle Gecko MSI package for Wine
MONO_DESC= Bundle Mono MSI package for Wine
WAYLAND_DESC= Wayland Support
@@ -91,6 +94,9 @@ CUPS_CONFIGURE_WITH= cups
DOSBOX_RUN_DEPENDS= dosbox:emulators/dosbox
+FFMPEG_LIB_DEPENDS= libavutil.so:multimedia/ffmpeg
+FFMPEG_CONFIGURE_WITH= ffmpeg
+
GECKO_RUN_DEPENDS= wine-gecko-devel>0:emulators/wine-gecko-devel
GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
diff --git a/emulators/wine-devel/distinfo b/emulators/wine-devel/distinfo
index 16223d1de1f3..930ce6712983 100644
--- a/emulators/wine-devel/distinfo
+++ b/emulators/wine-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759596682
-SHA256 (wine-10.16.tar.xz) = c5ed2742bff208c63b005bcfb91a2fc6cc49af6c6695bc8c0cf0fe6f4da60446
-SIZE (wine-10.16.tar.xz) = 32840688
+TIMESTAMP = 1761986980
+SHA256 (wine-10.18.tar.xz) = 51fb7273d65d09dea032c4a5e2197b12724b27ca360e1a622b2373d1ee50ad7b
+SIZE (wine-10.18.tar.xz) = 32970828
diff --git a/emulators/wine-devel/files/pkg-message.in b/emulators/wine-devel/files/pkg-message.in
index 18639d47533e..46bbc14aacc2 100644
--- a/emulators/wine-devel/files/pkg-message.in
+++ b/emulators/wine-devel/files/pkg-message.in
@@ -18,4 +18,15 @@ EOF
$ wine64 regedit wayland.reg
EOM
}
+{ type: upgrade
+ maximum_version: "10.17"
+ message: <<EOM
+Since the version 10.17, wine require hwloc2 as an additional
+dependency. If it was not automatically installed, then install it
+for the 64bit part with:
+# pkg install hwloc2
+And for the 32bit part do as the user that would use wine:
+$ %%PREFIX%%/share/wine/pkg32.sh install hwloc2
+EOM
+}
]
diff --git a/emulators/wine-devel/pkg-plist b/emulators/wine-devel/pkg-plist
index 9e0a8606ff60..cbbfdee6007e 100644
--- a/emulators/wine-devel/pkg-plist
+++ b/emulators/wine-devel/pkg-plist
@@ -908,6 +908,8 @@ include/wine/windows/robuffer.h
include/wine/windows/robuffer.idl
include/wine/windows/roerrorapi.h
include/wine/windows/rometadata.h
+include/wine/windows/rometadataapi.h
+include/wine/windows/rometadataapi.idl
include/wine/windows/rometadataresolution.h
include/wine/windows/roparameterizediid.h
include/wine/windows/roparameterizediid.idl
@@ -1019,6 +1021,7 @@ include/wine/windows/tbs.h
include/wine/windows/tchar.h
include/wine/windows/tcpestats.h
include/wine/windows/tcpmib.h
+include/wine/windows/tdh.h
include/wine/windows/textserv.h
include/wine/windows/textstor.h
include/wine/windows/textstor.idl
@@ -1625,6 +1628,7 @@ lib/wine/%%WINEARCH%%-unix/libstrmiids.a
lib/wine/%%WINEARCH%%-unix/libsxs.a
lib/wine/%%WINEARCH%%-unix/libt2embed.a
lib/wine/%%WINEARCH%%-unix/libtapi32.a
+lib/wine/%%WINEARCH%%-unix/libtdh.a
lib/wine/%%WINEARCH%%-unix/libucrtbase.a
lib/wine/%%WINEARCH%%-unix/libuiautomationcore.a
lib/wine/%%WINEARCH%%-unix/libunicows.a
@@ -1752,6 +1756,7 @@ lib/wine/%%WINEARCH%%-windows/colorcnv.dll
lib/wine/%%WINEARCH%%-windows/combase.dll
lib/wine/%%WINEARCH%%-windows/comcat.dll
lib/wine/%%WINEARCH%%-windows/comctl32.dll
+lib/wine/%%WINEARCH%%-windows/comctl32_v6.dll
lib/wine/%%WINEARCH%%-windows/comdlg32.dll
lib/wine/%%WINEARCH%%-windows/coml2.dll
%%WINE32%%lib/wine/%%WINEARCH%%-windows/comm.drv16
@@ -2188,6 +2193,7 @@ lib/wine/%%WINEARCH%%-windows/libstrmiids.a
lib/wine/%%WINEARCH%%-windows/libsxs.a
lib/wine/%%WINEARCH%%-windows/libt2embed.a
lib/wine/%%WINEARCH%%-windows/libtapi32.a
+lib/wine/%%WINEARCH%%-windows/libtdh.a
lib/wine/%%WINEARCH%%-windows/libucrtbase.a
lib/wine/%%WINEARCH%%-windows/libuiautomationcore.a
lib/wine/%%WINEARCH%%-windows/libunicows.a
@@ -2612,6 +2618,7 @@ lib/wine/%%WINEARCH%%-windows/win32u.dll
%%WINE32%%lib/wine/%%WINEARCH%%-windows/win87em.dll16
%%WINE32%%lib/wine/%%WINEARCH%%-windows/winaspi.dll16
lib/wine/%%WINEARCH%%-windows/winbio.dll
+lib/wine/%%WINEARCH%%-windows/winbrand.dll
%%WINE32%%lib/wine/%%WINEARCH%%-windows/windebug.dll16
lib/wine/%%WINEARCH%%-windows/windows.applicationmodel.dll
lib/wine/%%WINEARCH%%-windows/windows.devices.bluetooth.dll
@@ -2636,6 +2643,7 @@ lib/wine/%%WINEARCH%%-windows/windows.storage.applicationdata.dll
lib/wine/%%WINEARCH%%-windows/windows.storage.dll
lib/wine/%%WINEARCH%%-windows/windows.system.profile.systemid.dll
lib/wine/%%WINEARCH%%-windows/windows.system.profile.systemmanufacturers.dll
+lib/wine/%%WINEARCH%%-windows/windows.ui.core.textinput.dll
lib/wine/%%WINEARCH%%-windows/windows.ui.dll
lib/wine/%%WINEARCH%%-windows/windows.ui.xaml.dll
lib/wine/%%WINEARCH%%-windows/windows.web.dll
diff --git a/emulators/wine-gecko-devel/Makefile b/emulators/wine-gecko-devel/Makefile
index 8bce71815f82..5abee52c5833 100644
--- a/emulators/wine-gecko-devel/Makefile
+++ b/emulators/wine-gecko-devel/Makefile
@@ -1,9 +1,9 @@
PORTNAME= wine-gecko
DISTVERSION= 2.47.4
+DISTVERSIONSUFFIX=-x86
CATEGORIES= emulators
MASTER_SITES= http://dl.winehq.org/wine/wine-gecko/${DISTVERSION}/
PKGNAMESUFFIX= -devel
-DISTNAME= wine-gecko-${DISTVERSION}-x86
EXTRACT_SUFX= .msi
EXTRACT_ONLY=
diff --git a/emulators/wine-mono-devel/Makefile b/emulators/wine-mono-devel/Makefile
index 961040290d8a..8321b31ce6d6 100644
--- a/emulators/wine-mono-devel/Makefile
+++ b/emulators/wine-mono-devel/Makefile
@@ -1,5 +1,5 @@
PORTNAME= wine-mono
-DISTVERSION= 10.2.0
+DISTVERSION= 10.3.0
DISTVERSIONSUFFIX=-x86
CATEGORIES= emulators
MASTER_SITES= http://dl.winehq.org/wine/wine-mono/${DISTVERSION}/
diff --git a/emulators/wine-mono-devel/distinfo b/emulators/wine-mono-devel/distinfo
index c473cd4bba39..1ff6488fae14 100644
--- a/emulators/wine-mono-devel/distinfo
+++ b/emulators/wine-mono-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755797604
-SHA256 (wine-mono-10.2.0-x86.msi) = 4e1ed3f02e92d053133d03ddfbefcf6db4a4dc231a9aed3367b17117a88847d8
-SIZE (wine-mono-10.2.0-x86.msi) = 85497856
+TIMESTAMP = 1760804584
+SHA256 (wine-mono-10.3.0-x86.msi) = cece5c63180094dffdf01d0fbe362a4b606e5280b98cdfd1b8568cdf9b572f98
+SIZE (wine-mono-10.3.0-x86.msi) = 85515264
diff --git a/emulators/wine/Makefile b/emulators/wine/Makefile
index 2dd3035e125d..8de3d4f3ba01 100644
--- a/emulators/wine/Makefile
+++ b/emulators/wine/Makefile
@@ -21,13 +21,13 @@ BUILD_DEPENDS= ${LOCALBASE}/bin/flex:textproc/flex
USES= bison cpe desktop-file-utils gmake \
llvm:min=17,build,noexport localbase \
pkgconfig sdl shebangfix tar:xz
+CPE_VENDOR= winehq
USE_GCC= yes
+USE_LDCONFIG= ${PREFIX}/lib ${PREFIX}/lib/wine
USE_SDL= sdl2
-CPE_VENDOR= winehq
-
-CONFLICTS_INSTALL= wine-devel
-
+SHEBANG_FILES= tools/make_requests tools/winemaker/winemaker \
+ tools/winedump/function_grep.pl
GNU_CONFIGURE= yes
CONFIGURE_ARGS+=--verbose \
--disable-kerberos \
@@ -55,20 +55,17 @@ CONFIGURE_ARGS+=--verbose \
--without-unwind \
--without-usb
CONFIGURE_ENV= CPPBIN="${CPP}" FLEX="${LOCALBASE}/bin/flex"
-WINELIBDIR= ${PREFIX}/lib
-.if !defined(USE_LDCONFIG32)
-USE_LDCONFIG= ${WINELIBDIR} ${WINELIBDIR}/wine
-.endif
-SHEBANG_FILES= tools/make_requests tools/winemaker/winemaker \
- tools/winedump/function_grep.pl
+
+PIE_UNSAFE= yes
+
+CONFLICTS_INSTALL= wine-devel
BINARY_ALIAS+= clang=${LOCALBASE}/bin/clang${LLVM_VERSION} \
lld-link=${LOCALBASE}/bin/lld-link${LLVM_VERSION}
+PORTSCOUT= limit:^10\.0
SUB_FILES= pkg-message
-PIE_UNSAFE= yes
-
PORTDATA= wine.inf
OPTIONS_DEFINE= CUPS DOCS DOSBOX GNUTLS V4L WAYLAND X11 GECKO MONO
@@ -82,45 +79,43 @@ GECKO_DESC= Bundle Gecko MSI package for Wine
MONO_DESC= Bundle Mono MSI package for Wine
WAYLAND_DESC= Wayland Support
-PORTSCOUT= limit:^10\.0
-
-ALSA_CONFIGURE_WITH= alsa
-ALSA_USES= gnome gstreamer
-ALSA_USE= GNOME=glib20
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_RUN_DEPENDS= alsa-plugins>0:audio/alsa-plugins
+ALSA_USES= gnome gstreamer
+ALSA_USE= GNOME=glib20
+ALSA_CONFIGURE_WITH= alsa
-CUPS_CONFIGURE_WITH= cups
CUPS_LIB_DEPENDS= libcups.so:print/cups
+CUPS_CONFIGURE_WITH= cups
DOSBOX_RUN_DEPENDS= dosbox:emulators/dosbox
GECKO_RUN_DEPENDS= wine-gecko>0:emulators/wine-gecko
-GNUTLS_CONFIGURE_WITH= gnutls
GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
+GNUTLS_CONFIGURE_WITH= gnutls
MONO_RUN_DEPENDS= wine-mono>0:emulators/wine-mono
-OSS_CONFIGURE_WITH= oss
OSS_USES= gnome gstreamer
OSS_USE= GNOME=glib20
+OSS_CONFIGURE_WITH= oss
-V4L_CONFIGURE_WITH= v4l2
V4L_BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat
V4L_LIB_DEPENDS= libv4l2.so:multimedia/libv4l
+V4L_CONFIGURE_WITH= v4l2
-WAYLAND_CONFIGURE_WITH= wayland
WAYLAND_BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:devel/evdev-proto
WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland \
libxkbcommon.so:x11/libxkbcommon
+WAYLAND_CONFIGURE_WITH= wayland
-X11_CONFIGURE_WITH= x fontconfig freetype opengl xinerama xinput2 xrandr xrender
-X11_USES= gl xorg
-X11_USE= GL=glu XORG=x11,xext,xcomposite,xcursor,xi,xinerama,xrandr,xrender
X11_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2 \
libvulkan.so:graphics/vulkan-loader
+X11_USES= gl xorg
+X11_USE= GL=glu XORG=x11,xcomposite,xcursor,xext,xi,xinerama,xrandr,xrender
+X11_CONFIGURE_WITH= fontconfig freetype opengl x xinerama xinput2 xrandr xrender
.include <bsd.port.pre.mk>
diff --git a/emulators/yuzu/Makefile b/emulators/yuzu/Makefile
index 4d6c9dadcb8a..6d86652c9b63 100644
--- a/emulators/yuzu/Makefile
+++ b/emulators/yuzu/Makefile
@@ -1,6 +1,6 @@
PORTNAME= yuzu
PORTVERSION= s20240301
-PORTREVISION= 9
+PORTREVISION= 10
CATEGORIES= emulators wayland
.if make(makesum)
MASTER_SITES= https://api.yuzu-emu.org/gamedb/?dummy=/:gamedb