summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
Diffstat (limited to 'emulators')
-rw-r--r--emulators/Makefile6
-rw-r--r--emulators/Ymir/Makefile19
-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/emulationstation/Makefile4
-rw-r--r--emulators/magia/Makefile2
-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/pcsx2/Makefile6
-rw-r--r--emulators/pcsx2/distinfo6
-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/Makefile4
-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/Makefile4
-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/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/files/vboxinit.in2
-rw-r--r--emulators/wine-mono-devel/Makefile2
-rw-r--r--emulators/wine-mono-devel/distinfo6
-rw-r--r--emulators/wine/Makefile45
89 files changed, 1673 insertions, 410 deletions
diff --git a/emulators/Makefile b/emulators/Makefile
index dc3ed992a512..2f72f683ddb5 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -161,8 +161,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..ba5381637c76 100644
--- a/emulators/Ymir/Makefile
+++ b/emulators/Ymir/Makefile
@@ -1,6 +1,6 @@
PORTNAME= Ymir
DISTVERSIONPREFIX= v
-DISTVERSION= 0.1.8
+DISTVERSION= 0.2.0
CATEGORIES= emulators
MAINTAINER= bsdcode@disroot.org
@@ -16,17 +16,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 +45,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 +58,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 +85,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/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/magia/Makefile b/emulators/magia/Makefile
index 7bd0194d25b8..f66c823fde6c 100644
--- a/emulators/magia/Makefile
+++ b/emulators/magia/Makefile
@@ -1,7 +1,7 @@
PORTNAME= magia
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.0
-PORTREVISION= 31
+PORTREVISION= 32
CATEGORIES= emulators
MAINTAINER= ports@FreeBSD.org
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/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/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 96cae3c24bef..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
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 f003955ce5e6..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
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/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/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-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>