summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Mk/Uses/zig.mk102
-rw-r--r--Mk/bsd.options.mk7
-rw-r--r--archivers/py-zipstream-ng/Makefile3
-rw-r--r--archivers/py-zipstream-ng/distinfo6
-rw-r--r--archivers/zlib-ng/Makefile11
-rw-r--r--archivers/zlib-ng/distinfo6
-rw-r--r--biology/seqan3/Makefile17
-rw-r--r--biology/seqan3/distinfo12
-rw-r--r--biology/seqan3/files/patch-cmake_CPM.cmake11
-rw-r--r--biology/seqan3/pkg-plist132
-rw-r--r--converters/simdutf/Makefile2
-rw-r--r--converters/simdutf/distinfo6
-rw-r--r--converters/simdutf/pkg-plist4
-rw-r--r--databases/Makefile1
-rw-r--r--databases/libvalkey/Makefile6
-rw-r--r--databases/libvalkey/distinfo6
-rw-r--r--databases/libvalkey/pkg-plist5
-rw-r--r--databases/py-sqlmodel/Makefile46
-rw-r--r--databases/py-sqlmodel/distinfo3
-rw-r--r--databases/py-sqlmodel/pkg-descr19
-rw-r--r--deskutils/readur/Makefile2
-rw-r--r--deskutils/readur/Makefile.crates26
-rw-r--r--deskutils/readur/distinfo62
-rw-r--r--deskutils/readur/pkg-plist2
-rw-r--r--deskutils/remind/Makefile2
-rw-r--r--deskutils/remind/distinfo6
-rw-r--r--devel/Makefile2
-rw-r--r--devel/R-cran-evaluate/Makefile2
-rw-r--r--devel/R-cran-evaluate/distinfo6
-rw-r--r--devel/R-cran-later/Makefile2
-rw-r--r--devel/R-cran-later/distinfo6
-rw-r--r--devel/bashdb/files/patch-configure2
-rw-r--r--devel/cirrus-cli/Makefile2
-rw-r--r--devel/cirrus-cli/distinfo10
-rw-r--r--devel/dbus/Makefile2
-rw-r--r--devel/dbus/files/patch-dbus_dbus-transport-socket.c15
-rw-r--r--devel/electron32/files/patch-net_dns_BUILD.gn16
-rw-r--r--devel/electron34/files/patch-net_dns_BUILD.gn16
-rw-r--r--devel/electron35/files/patch-net_dns_BUILD.gn18
-rw-r--r--devel/electron36/files/patch-net_dns_BUILD.gn18
-rw-r--r--devel/electron37/Makefile4
-rw-r--r--devel/electron37/Makefile.version2
-rw-r--r--devel/electron37/distinfo22
-rw-r--r--devel/electron37/files/patch-electron_shell_services_node_node__service.cc6
-rw-r--r--devel/electron37/files/patch-electron_spec_api-tray-spec.ts18
-rw-r--r--devel/electron37/files/patch-net_dns_BUILD.gn18
-rw-r--r--devel/gcli/Makefile5
-rw-r--r--devel/gcli/distinfo6
-rw-r--r--devel/gcli/pkg-plist1
-rw-r--r--devel/generate/Makefile7
-rw-r--r--devel/generate/distinfo6
-rw-r--r--devel/generate/files/patch-generate.c11
-rw-r--r--devel/gitaly/distinfo14
-rw-r--r--devel/gitlab-runner/Makefile6
-rw-r--r--devel/gitlab-runner/distinfo18
-rw-r--r--devel/ninja/Makefile2
-rw-r--r--devel/ninja/distinfo6
-rw-r--r--devel/php-composer/Makefile2
-rw-r--r--devel/php-composer/distinfo6
-rw-r--r--devel/qtcreator/Makefile2
-rw-r--r--devel/qtcreator/distinfo6
-rw-r--r--devel/qtcreator/pkg-plist1
-rw-r--r--devel/ruby-build/Makefile2
-rw-r--r--devel/ruby-build/distinfo6
-rw-r--r--devel/wasi-compiler-rt21/Makefile6
-rw-r--r--devel/wasi-libc/Makefile5
-rw-r--r--devel/wasi-libc/distinfo6
-rw-r--r--devel/wasi-libc/files/llvm21/__stdarg___gnuc_va_list.h13
-rw-r--r--devel/wasi-libc/files/llvm21/__stdarg___va_copy.h12
-rw-r--r--devel/wasi-libc/files/llvm21/__stdarg_header_macro.h12
-rw-r--r--devel/wasi-libc/files/llvm21/__stdarg_va_arg.h22
-rw-r--r--devel/wasi-libc/files/llvm21/__stdarg_va_copy.h12
-rw-r--r--devel/wasi-libc/files/llvm21/__stdarg_va_list.h13
-rw-r--r--devel/wasi-libc/files/llvm21/__stddef_header_macro.h12
-rw-r--r--devel/wasi-libc/files/llvm21/__stddef_max_align_t.h27
-rw-r--r--devel/wasi-libc/files/llvm21/__stddef_null.h29
-rw-r--r--devel/wasi-libc/files/llvm21/__stddef_nullptr_t.h29
-rw-r--r--devel/wasi-libc/files/llvm21/__stddef_offsetof.h17
-rw-r--r--devel/wasi-libc/files/llvm21/__stddef_ptrdiff_t.h20
-rw-r--r--devel/wasi-libc/files/llvm21/__stddef_rsize_t.h20
-rw-r--r--devel/wasi-libc/files/llvm21/__stddef_size_t.h20
-rw-r--r--devel/wasi-libc/files/llvm21/__stddef_unreachable.h21
-rw-r--r--devel/wasi-libc/files/llvm21/__stddef_wchar_t.h28
-rw-r--r--devel/wasi-libc/files/llvm21/__stddef_wint_t.h15
-rw-r--r--devel/wasi-libc/files/llvm21/stdarg.h75
-rw-r--r--devel/wasi-libc/files/llvm21/stddef.h139
-rw-r--r--devel/wasi-libc/pkg-plist172
-rw-r--r--devel/wasi-libc/pkg-plist182
-rw-r--r--devel/wasi-libc/pkg-plist192
-rw-r--r--devel/wasi-libc/pkg-plist202
-rw-r--r--devel/wasi-libc/pkg-plist21249
-rw-r--r--devel/wasi-libcxx21/Makefile6
-rw-r--r--devel/wasi-libcxx21/pkg-plist1816
-rw-r--r--devel/wf-config/Makefile5
-rw-r--r--devel/wf-config/distinfo6
-rw-r--r--devel/wf-config/pkg-plist1
-rw-r--r--editors/vscode/Makefile1
-rw-r--r--emulators/Makefile3
-rw-r--r--emulators/ares/Makefile42
-rw-r--r--emulators/ares/distinfo6
-rw-r--r--emulators/ares/files/patch-thirdparty_CMakeLists.txt75
-rw-r--r--emulators/ares/pkg-descr13
-rw-r--r--emulators/ares/pkg-plist4
-rw-r--r--emulators/virtualbox-ose-70/Makefile4
-rw-r--r--emulators/virtualbox-ose-71/Makefile4
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk14
-rw-r--r--emulators/virtualbox-ose-72/Makefile426
-rw-r--r--emulators/virtualbox-ose-72/distinfo7
-rw-r--r--emulators/virtualbox-ose-72/files/extrapatch-Config.kmk11
-rw-r--r--emulators/virtualbox-ose-72/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile11
-rw-r--r--emulators/virtualbox-ose-72/files/extrapatch-vboximg-Config.kmk11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-Config.kmk421
-rw-r--r--emulators/virtualbox-ose-72/files/patch-configure126
-rw-r--r--emulators/virtualbox-ose-72/files/patch-doc_manual_en__US_dita_UserManual.ditamap11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-include-iprt-x86.h19
-rw-r--r--emulators/virtualbox-ose-72/files/patch-include_VBox_com_array.h36
-rw-r--r--emulators/virtualbox-ose-72/files/patch-include_VBox_sup.h11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-include_iprt_string.h14
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c284
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile27
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest34
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient25
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop10
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk20
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt10
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-Installer-Makefile.kmk14
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-Installer-freebsd-VBox.sh77
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h39
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp71
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_pam_pam__vbox.cpp20
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_Makefile38
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_Makefile.kmk31
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_drm_vboxvideo__drm.c17
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk31
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.856
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.c171
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_bcmp.c12
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h428
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c1015
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c644
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c1543
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk29
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp20
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp29
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp56
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Makefile.kmk44
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Network_DrvNAT.cpp10
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_PC_ipxe_Makefile.kmk29
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_USB_freebsd_USBProxyDevice-freebsd.cpp11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp58
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp29
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxManager.cpp46
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxManager.h20
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxWidget.cpp24
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_SUPDrv.cpp13
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_SUPDrvInternal.h11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_Makefile30
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c234
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPLib-freebsd.cpp11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_files__vboxdrv34
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_VBoxNetAdp-freebsd.c147
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c471
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Main_Makefile.kmk10
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Main_include_HostPower.h20
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Main_src-server_HostImpl.cpp11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp24
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_Makefile.kmk29
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c58
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c29
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c408
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c22
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c92
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c53
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c73
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semfastmutex-r0drv-freebsd.c59
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c80
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c30
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_the-freebsd-kernel.h48
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c91
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c35
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c43
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c68
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp39
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r3_posix_process-creation-posix.cpp38
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_VMM_Config.kmk11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp59
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_Makefile.kmk11
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c13
-rw-r--r--emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h17
-rw-r--r--emulators/virtualbox-ose-72/files/pkg-message.in120
-rw-r--r--emulators/virtualbox-ose-72/files/vboxheadless.in140
-rw-r--r--emulators/virtualbox-ose-72/files/vboxinit.in91
-rw-r--r--emulators/virtualbox-ose-72/files/vboxwatchdog.in51
-rw-r--r--emulators/virtualbox-ose-72/files/vboxwebsrv.in47
-rw-r--r--emulators/virtualbox-ose-72/files/virtualbox.desktop17
-rw-r--r--emulators/virtualbox-ose-72/pkg-descr8
-rw-r--r--emulators/virtualbox-ose-72/pkg-plist452
-rw-r--r--emulators/virtualbox-ose-additions-legacy/Makefile4
-rw-r--r--emulators/virtualbox-ose-additions/Makefile4
-rw-r--r--emulators/virtualbox-ose-kmod-70/Makefile3
-rw-r--r--emulators/virtualbox-ose-kmod-71/Makefile3
-rw-r--r--emulators/virtualbox-ose-kmod-72/Makefile114
-rw-r--r--emulators/virtualbox-ose-kmod-72/distinfo3
-rw-r--r--emulators/virtualbox-ose-kmod-72/files/pkg-message.in10
-rw-r--r--emulators/virtualbox-ose-kmod-72/files/vboxnet.in67
-rw-r--r--emulators/virtualbox-ose-kmod-72/pkg-descr5
-rw-r--r--emulators/virtualbox-ose-kmod-72/pkg-plist6
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/Makefile3
-rw-r--r--emulators/virtualbox-ose-kmod/Makefile3
-rw-r--r--emulators/virtualbox-ose-legacy/Makefile4
-rw-r--r--emulators/virtualbox-ose-nox11-72/Makefile11
-rw-r--r--emulators/virtualbox-ose/Makefile4
-rw-r--r--filesystems/Makefile2
-rw-r--r--filesystems/sasquatch/Makefile35
-rw-r--r--filesystems/sasquatch/distinfo3
-rw-r--r--filesystems/sasquatch/pkg-descr16
-rw-r--r--filesystems/zerofs/Makefile25
-rw-r--r--filesystems/zerofs/Makefile.crates412
-rw-r--r--filesystems/zerofs/distinfo827
-rw-r--r--filesystems/zerofs/pkg-descr4
-rw-r--r--games/pysolfc/Makefile2
-rw-r--r--games/pysolfc/distinfo6
-rw-r--r--graphics/colmap/Makefile2
-rw-r--r--graphics/colmap/distinfo6
-rw-r--r--graphics/colmap/files/patch-cmake_FindDependencies.cmake19
-rw-r--r--graphics/drawio/Makefile2
-rw-r--r--graphics/gmic-qt/Makefile2
-rw-r--r--graphics/gmic-qt/distinfo6
-rw-r--r--graphics/mupdf/Makefile2
-rw-r--r--graphics/mupdf/distinfo6
-rw-r--r--graphics/zathura-pdf-mupdf/Makefile2
-rw-r--r--graphics/zathura/Makefile13
-rw-r--r--graphics/zathura/distinfo6
-rw-r--r--graphics/zathura/pkg-plist1
-rw-r--r--irc/py-sopel/Makefile2
-rw-r--r--irc/py-sopel/distinfo6
-rw-r--r--lang/php83/Makefile2
-rw-r--r--lang/php83/distinfo6
-rw-r--r--lang/php84/Makefile2
-rw-r--r--lang/php84/distinfo6
-rw-r--r--lang/php85/Makefile5
-rw-r--r--lang/php85/distinfo6
-rw-r--r--lang/php85/pkg-plist5
-rw-r--r--lang/s7/Makefile.master4
-rw-r--r--lang/s7/distinfo6
-rw-r--r--mail/mew-devel/Makefile5
-rw-r--r--mail/mew-devel/distinfo6
-rw-r--r--mail/thunderbird-esr/Makefile5
-rw-r--r--mail/thunderbird-esr/distinfo6
-rw-r--r--mail/thunderbird/Makefile1
-rw-r--r--math/maxima/Makefile2
-rw-r--r--misc/exercism/Makefile2
-rw-r--r--misc/exercism/distinfo6
-rw-r--r--multimedia/av1an/Makefile2
-rw-r--r--multimedia/wf-recorder/files/patch-fix-ffmpeg827
-rw-r--r--multimedia/wl-screenrec/Makefile2
-rw-r--r--net-im/nextcloud-talk/Makefile2
-rw-r--r--net-im/nextcloud-talk/distinfo6
-rw-r--r--net-im/signal-desktop/Makefile1
-rw-r--r--net-mgmt/collectd5/Makefile140
-rw-r--r--net-mgmt/collectd5/pkg-plist2
-rw-r--r--net-mgmt/netdata/pkg-plist2
-rw-r--r--net-mgmt/tcpreplay/Makefile13
-rw-r--r--net-mgmt/tcpreplay/distinfo6
-rw-r--r--net-mgmt/tcpreplay/files/patch-Makefile.in11
-rw-r--r--net-mgmt/tcpreplay/files/patch-lib_queue.h18
-rw-r--r--net-mgmt/tcpreplay/files/patch-src_fragroute_mod.c15
-rw-r--r--net-mgmt/tcpreplay/files/patch-src_fragroute_pkt.h13
-rw-r--r--net/asterisk18/Makefile4
-rw-r--r--net/asterisk18/distinfo10
-rw-r--r--net/gitlab-agent/distinfo10
-rw-r--r--net/kea/Makefile3
-rw-r--r--net/kea/distinfo6
-rw-r--r--net/kea/files/patch-meson.build12
-rw-r--r--net/kea/files/patch-src_bin_shell_kea-shell.in8
-rw-r--r--net/kea/pkg-plist16
-rw-r--r--net/rubygem-gitlab-kas-grpc/distinfo6
-rw-r--r--ports-mgmt/Makefile1
-rw-r--r--ports-mgmt/zig2tuple/Makefile20
-rw-r--r--ports-mgmt/zig2tuple/distinfo3
-rw-r--r--ports-mgmt/zig2tuple/pkg-descr3
-rw-r--r--print/sioyek/Makefile2
-rw-r--r--science/openmodelica/Makefile9
-rw-r--r--science/openmodelica/distinfo38
-rw-r--r--science/openmodelica/pkg-plist3
-rw-r--r--security/hashcat/Makefile35
-rw-r--r--security/hashcat/Makefile.crates44
-rw-r--r--security/hashcat/distinfo94
-rw-r--r--security/hashcat/files/patch-deps_LZMA-SDK_C_7zTypes.h13
-rw-r--r--security/hashcat/files/patch-deps_LZMA-SDK_C_CpuArch.c34
-rw-r--r--security/hashcat/files/patch-include_sort__r.h33
-rw-r--r--security/hashcat/files/patch-src_Makefile33
-rw-r--r--security/hashcat/files/patch-src_terminal.c11
-rw-r--r--security/hashcat/pkg-plist488
-rw-r--r--security/vuxml/vuln/2025.xml68
-rwxr-xr-xsysutils/Makefile1
-rw-r--r--sysutils/backrest/Makefile2
-rw-r--r--sysutils/backrest/distinfo14
-rw-r--r--sysutils/fastfetch/Makefile2
-rw-r--r--sysutils/fastfetch/distinfo6
-rw-r--r--sysutils/kassiber/Makefile3
-rw-r--r--sysutils/kassiber/distinfo6
-rw-r--r--sysutils/kassiber/files/patch-main.c14
-rw-r--r--sysutils/limine/Makefile2
-rw-r--r--sysutils/limine/distinfo6
-rw-r--r--sysutils/nitro/Makefile19
-rw-r--r--sysutils/nitro/distinfo3
-rw-r--r--sysutils/nitro/pkg-descr6
-rw-r--r--sysutils/nitro/pkg-plist4
-rw-r--r--sysutils/py-healthchecks/Makefile2
-rw-r--r--sysutils/py-healthchecks/distinfo6
-rw-r--r--sysutils/py-healthchecks/files/patch-hc_lib_webauthn.py11
-rw-r--r--sysutils/py-healthchecks/pkg-plist55
-rw-r--r--textproc/Makefile1
-rw-r--r--textproc/feluda/Makefile7
-rw-r--r--textproc/feluda/Makefile.crates13
-rw-r--r--textproc/feluda/distinfo32
-rw-r--r--textproc/feluda/files/patch-Cargo.lock26
-rw-r--r--textproc/feluda/files/patch-Cargo.toml11
-rw-r--r--textproc/go-yq/Makefile5
-rw-r--r--textproc/go-yq/distinfo10
-rw-r--r--textproc/html2xhtml/Makefile6
-rw-r--r--textproc/obsidian/Makefile1
-rw-r--r--textproc/pdjson/Makefile27
-rw-r--r--textproc/pdjson/distinfo3
-rw-r--r--textproc/pdjson/files/patch-Makefile21
-rw-r--r--textproc/pdjson/files/pdjson.pc.in11
-rw-r--r--textproc/pdjson/pkg-descr5
-rw-r--r--textproc/pdjson/pkg-plist4
-rw-r--r--textproc/py-ntc-templates/Makefile4
-rw-r--r--textproc/py-ntc-templates/distinfo6
-rw-r--r--textproc/py-textfsm/Makefile13
-rw-r--r--textproc/py-textfsm/distinfo6
-rw-r--r--textproc/py-textfsm/files/patch-setup.py17
-rw-r--r--www/Makefile1
-rw-r--r--www/apache24/Makefile1
-rw-r--r--www/apache24/files/apache24.in3
-rw-r--r--www/chromium/files/patch-net_dns_BUILD.gn16
-rw-r--r--www/firefox-esr/Makefile1
-rw-r--r--www/firefox/Makefile1
-rw-r--r--www/gitlab-pages/distinfo10
-rw-r--r--www/gitlab-workhorse/distinfo10
-rw-r--r--www/gitlab/Makefile.common2
-rw-r--r--www/gitlab/distinfo12
-rw-r--r--www/homepage/Makefile2
-rw-r--r--www/homepage/distinfo6
-rw-r--r--www/homepage/pkg-plist12
-rw-r--r--www/iridium/files/patch-content_browser_BUILD.gn14
-rw-r--r--www/iridium/files/patch-net_BUILD.gn24
-rw-r--r--www/librewolf/Makefile1
-rw-r--r--www/nextcloud-contacts/Makefile2
-rw-r--r--www/nextcloud-contacts/distinfo6
-rw-r--r--www/nginx-devel/Makefile2
-rw-r--r--www/nginx-devel/files/extra-patch-ngx_nats.c20
-rw-r--r--www/nginx-devel/files/nginx.in1
-rw-r--r--www/phpvirtualbox-70/Makefile3
-rw-r--r--www/phpvirtualbox-71/Makefile7
-rw-r--r--www/phpvirtualbox-71/files/patch-endpoints_lib_vboxconnector.php21
-rw-r--r--www/phpvirtualbox-72/Makefile37
-rw-r--r--www/phpvirtualbox-72/distinfo3
-rw-r--r--www/phpvirtualbox-72/files/patch-endpoints_lib_config.php (renamed from www/phpvirtualbox-71/files/patch-endpoints_lib_config.php)0
-rw-r--r--www/phpvirtualbox-72/files/patch-endpoints_lib_vboxconnector.php (renamed from www/phpvirtualbox-70/files/patch-endpoints_lib_vboxconnector.php)0
-rw-r--r--www/phpvirtualbox-72/files/patch-endpoints_lib_vboxwebService-7.2.wsdl11
-rw-r--r--www/phpvirtualbox-72/files/patch-panes_mediumEncryptionPasswords.html (renamed from www/phpvirtualbox/files/patch-panes_mediumEncryptionPasswords.html)0
-rw-r--r--www/phpvirtualbox-72/pkg-descr3
-rw-r--r--www/phpvirtualbox-72/pkg-plist614
-rw-r--r--www/phpvirtualbox-legacy/Makefile6
-rw-r--r--www/phpvirtualbox-legacy/files/patch-php8 (renamed from www/phpvirtualbox/files/patch-php8)0
-rw-r--r--www/phpvirtualbox/Makefile5
-rw-r--r--www/pocket-id/Makefile2
-rw-r--r--www/pocket-id/distinfo14
-rw-r--r--www/py-dj51-django-choices-field/Makefile2
-rw-r--r--www/py-dj51-django-choices-field/distinfo6
-rw-r--r--www/py-dj52-django-choices-field/Makefile2
-rw-r--r--www/py-dj52-django-choices-field/distinfo6
-rw-r--r--www/py-django-choices-field/Makefile3
-rw-r--r--www/py-django-choices-field/distinfo6
-rw-r--r--www/py-djangorestframework/Makefile2
-rw-r--r--www/py-djangorestframework/distinfo6
-rw-r--r--www/py-httpx-retries/Makefile2
-rw-r--r--www/py-httpx-retries/distinfo6
-rw-r--r--www/py-nicegui/Makefile2
-rw-r--r--www/py-nicegui/distinfo6
-rw-r--r--www/py-wsgidav/Makefile14
-rw-r--r--www/py-wsgidav/distinfo6
-rw-r--r--www/tor-browser/Makefile1
-rw-r--r--www/ungoogled-chromium/files/patch-net_dns_BUILD.gn18
-rw-r--r--www/waterfox/Makefile1
-rw-r--r--x11-toolkits/wlroots017/Makefile5
-rw-r--r--x11-toolkits/wlroots018/Makefile5
-rw-r--r--x11-toolkits/wlroots019/Makefile5
-rw-r--r--x11-wm/wayfire-plugins-extra/Makefile34
-rw-r--r--x11-wm/wayfire-plugins-extra/distinfo24
-rw-r--r--x11-wm/wayfire-plugins-extra/files/patch-libc++14
-rw-r--r--x11-wm/wayfire-plugins-extra/files/patch-wlroots01730
-rw-r--r--x11-wm/wayfire-plugins-extra/pkg-plist8
-rw-r--r--x11-wm/wayfire/Makefile30
-rw-r--r--x11-wm/wayfire/distinfo14
-rw-r--r--x11-wm/wayfire/files/patch-wlroots01732
-rw-r--r--x11-wm/wayfire/pkg-plist34
-rw-r--r--x11/Makefile1
-rw-r--r--x11/lightdm-kde-greeter/Makefile28
-rw-r--r--x11/lightdm-kde-greeter/pkg-message6
-rw-r--r--x11/lightdm-kde-greeter/pkg-plist2
-rw-r--r--x11/salut/Makefile2
-rw-r--r--x11/sway-audio-idle-inhibit/Makefile2
-rw-r--r--x11/swayfloatingswitcher/Makefile2
-rw-r--r--x11/swaync/Makefile2
-rw-r--r--x11/swaync/pkg-descr8
-rw-r--r--x11/swaysettings/Makefile2
-rw-r--r--x11/wapanel/Makefile2
-rw-r--r--x11/watershot/Makefile2
-rw-r--r--x11/waycheck/Makefile30
-rw-r--r--x11/waycheck/distinfo3
-rw-r--r--x11/waycheck/files/patch-meson.build15
-rw-r--r--x11/waycheck/files/patch-src_meson.build10
-rw-r--r--x11/waycheck/files/patch-src_window.cpp56
-rw-r--r--x11/waycheck/pkg-descr5
-rw-r--r--x11/wcm/Makefile7
-rw-r--r--x11/wcm/distinfo6
-rw-r--r--x11/wcm/pkg-plist12
-rw-r--r--x11/wf-shell/Makefile5
-rw-r--r--x11/wf-shell/distinfo6
431 files changed, 16717 insertions, 1249 deletions
diff --git a/Mk/Uses/zig.mk b/Mk/Uses/zig.mk
new file mode 100644
index 000000000000..5727a812fede
--- /dev/null
+++ b/Mk/Uses/zig.mk
@@ -0,0 +1,102 @@
+# Provide support for building Zig software.
+#
+# Feature: zig
+# Usage: USES=zig
+
+# Variables, which can be set by the port:
+#
+# ZIG_TUPLE List of Zig dependencies required to build the port.
+# Each item is triplet of an arbitrary name, an URL without
+# scheme part (https://) and a directory name where the
+# expects this dependency to be placed.
+# This knob can be generated by running make make-zig-tuple
+# You might need to run this multiple time until all
+# transitive dependencies get pulled in.
+#
+# MAINTAINER: ports@FreeBSD.org
+
+.if !defined(_INCLUDE_USES_ZIG_MK)
+_INCLUDE_USES_ZIG_MK= yes
+
+. if !empty(zig_ARGS)
+IGNORE= USES=zig does not accept arguments
+. endif
+
+.sinclude "${MASTERDIR}/Makefile.zig"
+
+ZIG_CMD?= zig
+ZIG_PORT?= lang/zig
+ZIG_DEPSDIR= ${WRKDIR}/zig-packages
+ZIG_TMPDEPSDIR= ${WRKDIR}/zig-packages-tmp
+
+ZIG_CPUTYPE_DEFAULT= ${ARCH:S/amd64/x86_64/}
+ZIG_CPUTYPE?= ${CPUTYPE:U${ZIG_CPUTYPE_DEFAULT}}
+
+_ZIG2TUPLE_CMD= zig2tuple
+
+BUILD_DEPENDS+= ${ZIG_CMD}:${ZIG_PORT}
+
+DIST_SUBDIR?= zig
+
+. for z in ${ZIG_TUPLE}
+. for group url dir in ${z:S/:/ /g:tw}
+MASTER_SITES+= https://${url:H}/:${group}
+DISTFILES+= ${url:T}:${group}
+. endfor
+. endfor
+
+_USES_extract= 299:zig-pre-extract
+
+# Generates ZIG_TUPLE= ... line ready to be pasted into the port based on
+# build.zig.zon files found in ${WRKSRC}
+make-zig-tuple: check-zig2tuple
+ @${ECHO_MSG} "===> Processing build.zig.zon files"
+ ${_ZIG2TUPLE_CMD} ${WRKDIR}
+
+check-zig2tuple:
+ @if ! type ${_ZIG2TUPLE_CMD} > /dev/null 2>&1; then \
+ ${ECHO_MSG} "===> zig2tuple executable not found, install \"ports-mgmt/zig2tuple\""; exit 1; \
+ fi
+
+# Main targets implementation.
+
+zig-pre-extract:
+ @${ECHO_CMD} "===> Extracting zig dependencies"
+# We don't know the name of the directory that is contained in the archive,
+# but we need to rename it into the last component of the tuple
+# To solve this we extract into an empty directory and then do
+# mv * /path/where/we/want/it
+ @${MKDIR} ${ZIG_DEPSDIR} ${ZIG_TMPDEPSDIR}
+. for z in ${ZIG_TUPLE}
+. for group url dir in ${z:S/:/ /g:tw}
+ ${MAKE} -C ${.CURDIR} do-extract EXTRACT_ONLY=${url:T} WRKDIR=${ZIG_TMPDEPSDIR}
+ ${MV} ${ZIG_TMPDEPSDIR}/* ${ZIG_DEPSDIR}/${dir}
+. endfor
+. endfor
+ @${RMDIR} ${ZIG_TMPDEPSDIR}
+
+ZIG_ENV+= DESTDIR=${STAGEDIR}
+ZIG_ARGS+= --prefix ${PREFIX} --system ${ZIG_DEPSDIR} --verbose \
+ -Dcpu=${ZIG_CPUTYPE} \
+ ${"${WITH_DEBUG}" != "":?:--release=fast} \
+ ${"${WITH_DEBUG}" != "":?-Doptimize=Debug:-Doptimize=ReleaseSmall} \
+ ${ZIG_ARGS_${FLAVOR}}
+DO_MAKE_BUILD?= ${SETENVI} ${WRK_ENV} ${ZIG_ENV} ${ZIG_CMD} build \
+ ${_MAKE_JOBS} ${ZIG_ARGS}
+. if !target(do-build)
+do-build:
+ @${DO_NADA}
+. endif
+
+. if !target(do-install)
+do-install:
+ @(cd ${BUILD_WRKSRC}; if ! ${DO_MAKE_BUILD}; then \
+ if [ -n "${BUILD_FAIL_MESSAGE}" ] ; then \
+ ${ECHO_MSG} "===> Compilation failed unexpectedly."; \
+ (${ECHO_CMD} "${BUILD_FAIL_MESSAGE}") | ${FMT_80} ; \
+ fi; \
+ ${FALSE}; \
+ fi)
+. endif
+
+.endif
diff --git a/Mk/bsd.options.mk b/Mk/bsd.options.mk
index 3b4b2dd4d300..38f1492f0dbd 100644
--- a/Mk/bsd.options.mk
+++ b/Mk/bsd.options.mk
@@ -198,6 +198,7 @@ _ALL_OPTIONS_HELPERS= ${_OPTIONS_DEPENDS:S/$/_DEPENDS/} \
CONFIGURE_WITH IMPLIES MESON_ARGS MESON_DISABLED \
MESON_ENABLED MESON_FALSE MESON_OFF MESON_ON MESON_TRUE \
PREVENTS PREVENTS_MSG QMAKE_OFF QMAKE_ON \
+ ZIG_BOOL ZIG_BOOL_OFF \
SUBPACKAGES SUBPACKAGES_OFF USE USE_OFF VARS VARS_OFF
# The format here is target_family:priority:target-type
@@ -544,6 +545,9 @@ MESON_ARGS+= ${${opt}_MESON_DISABLED:C/.*/-D&=disabled/}
. if defined(${opt}_CABAL_FLAGS)
CABAL_FLAGS+= ${${opt}_CABAL_FLAGS}
. endif
+. if defined(${opt}_ZIG_BOOL)
+ZIG_ARGS+= ${${opt}_ZIG_BOOL:C/.*/-D&=true/}
+. endif
. for configure in CONFIGURE CMAKE MESON QMAKE
. if defined(${opt}_${configure}_ON)
${configure}_ARGS+= ${${opt}_${configure}_ON}
@@ -620,6 +624,9 @@ MESON_ARGS+= ${${opt}_MESON_DISABLED:C/.*/-D&=enabled/}
. if defined(${opt}_CABAL_FLAGS)
CABAL_FLAGS+= -${${opt}_CABAL_FLAGS}
. endif
+. if defined(${opt}_ZIG_BOOL)
+ZIG_ARGS+= ${${opt}_ZIG_BOOL:C/.*/-D&=false/}
+. endif
. for configure in CONFIGURE CMAKE MESON QMAKE
. if defined(${opt}_${configure}_OFF)
${configure}_ARGS+= ${${opt}_${configure}_OFF}
diff --git a/archivers/py-zipstream-ng/Makefile b/archivers/py-zipstream-ng/Makefile
index 4848db2cbe0c..b13e2474e0b5 100644
--- a/archivers/py-zipstream-ng/Makefile
+++ b/archivers/py-zipstream-ng/Makefile
@@ -1,6 +1,5 @@
PORTNAME= zipstream-ng
-DISTVERSION= 1.8.0
-PORTREVISION= 1
+DISTVERSION= 1.9.0
CATEGORIES= archivers python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/archivers/py-zipstream-ng/distinfo b/archivers/py-zipstream-ng/distinfo
index 6673506b04ec..b0bd369cf2be 100644
--- a/archivers/py-zipstream-ng/distinfo
+++ b/archivers/py-zipstream-ng/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1731279942
-SHA256 (zipstream_ng-1.8.0.tar.gz) = b7129d2c15d26934b3e1cb22256593b6bdbd03c553c26f4199a5bf05110642bc
-SIZE (zipstream_ng-1.8.0.tar.gz) = 35887
+TIMESTAMP = 1756497695
+SHA256 (zipstream_ng-1.9.0.tar.gz) = a0d94030822d137efbf80dfdc680603c42f804696f41147bb3db895df667daea
+SIZE (zipstream_ng-1.9.0.tar.gz) = 37963
diff --git a/archivers/zlib-ng/Makefile b/archivers/zlib-ng/Makefile
index d143b4558d15..02767cd2c758 100644
--- a/archivers/zlib-ng/Makefile
+++ b/archivers/zlib-ng/Makefile
@@ -1,5 +1,5 @@
PORTNAME= zlib-ng
-DISTVERSION= 2.2.4
+DISTVERSION= 2.2.5
CATEGORIES= archivers
MAINTAINER= vvd@FreeBSD.org
@@ -11,15 +11,12 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.md
TEST_DEPENDS= googletest>=0:devel/googletest
-USES= cmake:testing compiler:c11
+USES= cmake:testing compiler:c++14-lang
USE_GITHUB= yes
USE_LDCONFIG= yes
-CMAKE_OFF= ZLIB_ENABLE_TESTS ZLIBNG_ENABLE_TESTS
-CMAKE_TESTING_ON= ZLIB_ENABLE_TESTS ZLIBNG_ENABLE_TESTS
-
-# error: use of undeclared identifier 'isascii'
-CFLAGS+= -D__XSI_VISIBLE
+CMAKE_OFF= WITH_GTEST ZLIB_ENABLE_TESTS ZLIBNG_ENABLE_TESTS
+CMAKE_TESTING_ON= WITH_GTEST ZLIB_ENABLE_TESTS ZLIBNG_ENABLE_TESTS
PLIST_SUB= SHLIB_VER=${DISTVERSION}
diff --git a/archivers/zlib-ng/distinfo b/archivers/zlib-ng/distinfo
index abac4ac19a38..2f4754a7d3e9 100644
--- a/archivers/zlib-ng/distinfo
+++ b/archivers/zlib-ng/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1739270273
-SHA256 (zlib-ng-zlib-ng-2.2.4_GH0.tar.gz) = a73343c3093e5cdc50d9377997c3815b878fd110bf6511c2c7759f2afb90f5a3
-SIZE (zlib-ng-zlib-ng-2.2.4_GH0.tar.gz) = 2415754
+TIMESTAMP = 1756000000
+SHA256 (zlib-ng-zlib-ng-2.2.5_GH0.tar.gz) = 5b3b022489f3ced82384f06db1e13ba148cbce38c7941e424d6cb414416acd18
+SIZE (zlib-ng-zlib-ng-2.2.5_GH0.tar.gz) = 2417402
diff --git a/biology/seqan3/Makefile b/biology/seqan3/Makefile
index 9c8fc69ba93e..c1675008fd19 100644
--- a/biology/seqan3/Makefile
+++ b/biology/seqan3/Makefile
@@ -1,10 +1,16 @@
PORTNAME= seqan3
-DISTVERSION= 3.3.0
+DISTVERSION= 3.4.0
CATEGORIES= biology devel math
+MASTER_SITES= https://github.com/cpm-cmake/CPM.cmake/releases/download/v0.42.0/:cpm
+DISTFILES= CPM.cmake:cpm
+DIST_SUBDIR= ${PORTNAME}-${DISTVERSION}
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} \
+ xxsds-sdsl-lite-d54d389_GH0${EXTRACT_SUFX}
MAINTAINER= yuri@FreeBSD.org
COMMENT= C++ header-only library for biological sequence analysis
-WWW= https://github.com/seqan/seqan3
+WWW= https://www.seqan.de/ \
+ https://github.com/seqan/seqan3
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.md
@@ -15,14 +21,13 @@ BUILD_DEPENDS= ${HPP_DEPENDS}
RUN_DEPENDS= ${HPP_DEPENDS} \
coin-or-lemon>0:math/lemon
-USES= cmake localbase
+USES= cmake compiler:c++23-lang localbase
USE_GITHUB= yes
GH_ACCOUNT= seqan
GH_TUPLE= xxsds:sdsl-lite:d54d389:sdsl_lite/submodules/sdsl-lite
-USE_GCC= yes # tests only pass with gcc, see https://github.com/seqan/seqan3/issues/2643, otherwise gcc isn't needed because this is a header-only library
-# tests fail to compile, see https://github.com/seqan/seqan3/issues/3191
+CMAKE_ARGS= -DCPM_LOCATION=${DISTDIR}/${DIST_SUBDIR}
TEST_WRKSRC= ${WRKSRC}/.test
@@ -33,7 +38,7 @@ post-install:
do-test:
@${MKDIR} ${TEST_WRKSRC} && cd ${TEST_WRKSRC} && \
- ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} ${WRKSRC}/test/unit && \
+ ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} -DFETCHCONTENT_FULLY_DISCONNECTED=OFF ${WRKSRC}/test/unit && \
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \
ctest
diff --git a/biology/seqan3/distinfo b/biology/seqan3/distinfo
index 8fa5387420f9..9e9fe56de4ee 100644
--- a/biology/seqan3/distinfo
+++ b/biology/seqan3/distinfo
@@ -1,5 +1,7 @@
-TIMESTAMP = 1694368553
-SHA256 (seqan-seqan3-3.3.0_GH0.tar.gz) = 96975406445c8a5974803eefa146ee2f85206f6d2c2bccf45171ee0b1a653fb8
-SIZE (seqan-seqan3-3.3.0_GH0.tar.gz) = 1564852
-SHA256 (xxsds-sdsl-lite-d54d389_GH0.tar.gz) = eaac28144b34a833afb8c03139abbe427d4b95a827bf5b9b6532353f9cff9ec1
-SIZE (xxsds-sdsl-lite-d54d389_GH0.tar.gz) = 1183835
+TIMESTAMP = 1756395731
+SHA256 (seqan3-3.4.0/CPM.cmake) = 2020b4fc42dba44817983e06342e682ecfc3d2f484a581f11cc5731fbe4dce8a
+SIZE (seqan3-3.4.0/CPM.cmake) = 44969
+SHA256 (seqan3-3.4.0/seqan-seqan3-3.4.0_GH0.tar.gz) = 8e000e6788f1e2ada071b36f64231d56f18e2d687ab4122d86cd3aefc6c87743
+SIZE (seqan3-3.4.0/seqan-seqan3-3.4.0_GH0.tar.gz) = 1749810
+SHA256 (seqan3-3.4.0/xxsds-sdsl-lite-d54d389_GH0.tar.gz) = eaac28144b34a833afb8c03139abbe427d4b95a827bf5b9b6532353f9cff9ec1
+SIZE (seqan3-3.4.0/xxsds-sdsl-lite-d54d389_GH0.tar.gz) = 1183835
diff --git a/biology/seqan3/files/patch-cmake_CPM.cmake b/biology/seqan3/files/patch-cmake_CPM.cmake
new file mode 100644
index 000000000000..c288163d7312
--- /dev/null
+++ b/biology/seqan3/files/patch-cmake_CPM.cmake
@@ -0,0 +1,11 @@
+--- cmake/CPM.cmake.orig 2025-08-28 15:36:29 UTC
++++ cmake/CPM.cmake
+@@ -16,7 +16,7 @@ get_filename_component (CPM_DOWNLOAD_LOCATION ${CPM_DO
+ # Expand relative path. This is important if the provided path contains a tilde (~)
+ get_filename_component (CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE)
+
+-file (DOWNLOAD https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
++file (DOWNLOAD file://${CPM_LOCATION}/CPM.cmake
+ ${CPM_DOWNLOAD_LOCATION} EXPECTED_HASH SHA256=${CPM_HASH_SUM})
+
+ include (${CPM_DOWNLOAD_LOCATION})
diff --git a/biology/seqan3/pkg-plist b/biology/seqan3/pkg-plist
index 19d86e63d82e..e727ba232e45 100644
--- a/biology/seqan3/pkg-plist
+++ b/biology/seqan3/pkg-plist
@@ -91,6 +91,7 @@ include/seqan3/alignment/scoring/all.hpp
include/seqan3/alignment/scoring/aminoacid_scoring_scheme.hpp
include/seqan3/alignment/scoring/detail/simd_match_mismatch_scoring_scheme.hpp
include/seqan3/alignment/scoring/detail/simd_matrix_scoring_scheme.hpp
+include/seqan3/alignment/scoring/hamming_scoring_scheme.hpp
include/seqan3/alignment/scoring/nucleotide_scoring_scheme.hpp
include/seqan3/alignment/scoring/scoring_scheme_base.hpp
include/seqan3/alignment/scoring/scoring_scheme_concept.hpp
@@ -191,11 +192,16 @@ include/seqan3/contrib/README.md
include/seqan3/contrib/parallel/buffer_queue.hpp
include/seqan3/contrib/parallel/serialised_resource_pool.hpp
include/seqan3/contrib/parallel/suspendable_queue.hpp
+include/seqan3/contrib/sdsl-lite.hpp
include/seqan3/contrib/std/.clang-format
include/seqan3/contrib/std/.gitignore
-include/seqan3/contrib/std/LICENSE
+include/seqan3/contrib/std/LICENSE.md
+include/seqan3/contrib/std/LICENSES/BSD-3-Clause.txt
+include/seqan3/contrib/std/LICENSES/CC-BY-4.0.txt
+include/seqan3/contrib/std/LICENSES/CC0-1.0.txt
include/seqan3/contrib/std/README.md
include/seqan3/contrib/std/all_view.hpp
+include/seqan3/contrib/std/chunk_by_view.hpp
include/seqan3/contrib/std/chunk_view.hpp
include/seqan3/contrib/std/concepts.hpp
include/seqan3/contrib/std/detail/adaptor_base.hpp
@@ -203,7 +209,9 @@ include/seqan3/contrib/std/detail/adaptor_for_view_without_args.hpp
include/seqan3/contrib/std/detail/adaptor_from_functor.hpp
include/seqan3/contrib/std/detail/compiler_definitions.hpp
include/seqan3/contrib/std/detail/exposition_only.hpp
+include/seqan3/contrib/std/detail/movable_box.hpp
include/seqan3/contrib/std/detail/non_propagating_cache.hpp
+include/seqan3/contrib/std/enumerate_view.hpp
include/seqan3/contrib/std/join_with_view.hpp
include/seqan3/contrib/std/pair.hpp
include/seqan3/contrib/std/to.hpp
@@ -239,14 +247,13 @@ include/seqan3/core/debug_stream.hpp
include/seqan3/core/debug_stream/all.hpp
include/seqan3/core/debug_stream/byte.hpp
include/seqan3/core/debug_stream/debug_stream_type.hpp
+include/seqan3/core/debug_stream/default_printer.hpp
include/seqan3/core/debug_stream/detail/to_string.hpp
include/seqan3/core/debug_stream/optional.hpp
include/seqan3/core/debug_stream/range.hpp
include/seqan3/core/debug_stream/tuple.hpp
include/seqan3/core/debug_stream/variant.hpp
include/seqan3/core/detail/all.hpp
-include/seqan3/core/detail/all_view.hpp
-include/seqan3/core/detail/copyable_wrapper.hpp
include/seqan3/core/detail/customisation_point.hpp
include/seqan3/core/detail/deferred_crtp_base.hpp
include/seqan3/core/detail/empty_type.hpp
@@ -364,127 +371,10 @@ include/seqan3/search/views/minimiser.hpp
include/seqan3/search/views/minimiser_hash.hpp
include/seqan3/std/charconv
include/seqan3/std/new
-include/seqan3/submodules/sdsl-lite/include/sdsl/.gitignore
-include/seqan3/submodules/sdsl-lite/include/sdsl/bit_vector_il.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/bit_vectors.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/bits.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/bp_support.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/bp_support_algorithm.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/bp_support_g.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/bp_support_gg.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/bp_support_sada.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/cereal.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/coder.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/coder_comma.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/coder_elias_delta.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/coder_elias_gamma.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/coder_fibonacci.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/config.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/construct.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/construct_bwt.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/construct_config.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/construct_isa.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/construct_lcp.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/construct_lcp_helper.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/construct_sa.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/construct_sa_se.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/csa_alphabet_strategy.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/csa_bitcompressed.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/csa_sada.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/csa_sampling_strategy.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/csa_wt.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/cst_fully.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/cst_iterators.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/cst_sada.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/cst_sct3.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/dac_vector.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/divsufsort.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/enc_vector.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/fast_cache.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/hyb_vector.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/int_vector.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/int_vector_buffer.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/int_vector_io_wrappers.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/int_vector_mapper.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/inv_perm_support.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/io.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/iterators.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/k2_treap.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/k2_treap_algorithm.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/k2_treap_helper.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/k2_tree.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/k2_tree_helper.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/lcp.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/lcp_bitcompressed.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/lcp_byte.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/lcp_dac.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/lcp_support_sada.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/lcp_support_tree.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/lcp_support_tree2.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/lcp_vlc.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/lcp_wt.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/louds_tree.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/memory_management.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/memory_tracking.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/nearest_neighbour_dictionary.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/nn_dict_dynamic.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/platform.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/qsufsort.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/ram_filebuf.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/ram_fs.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rank_support.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rank_support_int.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rank_support_int_scan.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rank_support_int_v.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rank_support_scan.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rank_support_v.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rank_support_v5.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rmq_succinct_sada.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rmq_succinct_sct.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rmq_support.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rmq_support_sparse_table.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rrr_helper.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rrr_vector.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/rrr_vector_15.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/sd_vector.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/sdsl_concepts.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/select_support.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/select_support_mcl.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/select_support_scan.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/sfstream.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/sorted_int_stack.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/sorted_multi_stack_support.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/sorted_stack_support.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/structure_tree.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/suffix_array_algorithm.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/suffix_array_helper.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/suffix_arrays.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/suffix_tree_algorithm.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/suffix_tree_helper.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/suffix_trees.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/uint128_t.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/uint256_t.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/uintx_t.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/util.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/vectors.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/version.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/vlc_vector.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wavelet_trees.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wm_int.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wt_algorithm.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wt_ap.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wt_blcd.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wt_epr.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wt_gmr.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wt_helper.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wt_huff.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wt_hutu.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wt_int.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wt_pc.hpp
-include/seqan3/submodules/sdsl-lite/include/sdsl/wt_rlmn.hpp
include/seqan3/utility/all.hpp
include/seqan3/utility/bloom_filter/all.hpp
include/seqan3/utility/bloom_filter/bloom_filter.hpp
+include/seqan3/utility/bloom_filter/bloom_filter_strong_types.hpp
include/seqan3/utility/char_operations/all.hpp
include/seqan3/utility/char_operations/predicate.hpp
include/seqan3/utility/char_operations/predicate_detail.hpp
diff --git a/converters/simdutf/Makefile b/converters/simdutf/Makefile
index e19b3cef134b..7d74ef671f6f 100644
--- a/converters/simdutf/Makefile
+++ b/converters/simdutf/Makefile
@@ -1,6 +1,6 @@
PORTNAME= simdutf
DISTVERSIONPREFIX= v
-DISTVERSION= 7.3.6
+DISTVERSION= 7.4.0
CATEGORIES= converters textproc
MAINTAINER= fuz@FreeBSD.org
diff --git a/converters/simdutf/distinfo b/converters/simdutf/distinfo
index b5aa414ea497..d66efc56a025 100644
--- a/converters/simdutf/distinfo
+++ b/converters/simdutf/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755237077
-SHA256 (simdutf-simdutf-v7.3.6_GH0.tar.gz) = c08f3dce1cbb7a8bead9eb53bcbda778e8a1c69b7d3a0690682f1b09fbb85c31
-SIZE (simdutf-simdutf-v7.3.6_GH0.tar.gz) = 2209424
+TIMESTAMP = 1756286925
+SHA256 (simdutf-simdutf-v7.4.0_GH0.tar.gz) = 8fd729ebfd5ec56cb0395bcc176c4801e1f8a0ea834d166d52279d7b9e801283
+SIZE (simdutf-simdutf-v7.4.0_GH0.tar.gz) = 2211861
diff --git a/converters/simdutf/pkg-plist b/converters/simdutf/pkg-plist
index 24d025bccbb0..3a717214007a 100644
--- a/converters/simdutf/pkg-plist
+++ b/converters/simdutf/pkg-plist
@@ -14,7 +14,7 @@ lib/cmake/simdutf/simdutf-config-version.cmake
lib/cmake/simdutf/simdutf-config.cmake
lib/cmake/simdutf/simdutfTargets-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/simdutf/simdutfTargets.cmake
-lib/libsimdutf.so.25.0.0
-lib/libsimdutf.so.25
+lib/libsimdutf.so.26.0.0
+lib/libsimdutf.so.26
lib/libsimdutf.so
libdata/pkgconfig/simdutf.pc
diff --git a/databases/Makefile b/databases/Makefile
index 4c7bc1198675..ef5d3508bdae 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -861,6 +861,7 @@
SUBDIR += py-sqlite-migrate
SUBDIR += py-sqlite-utils
SUBDIR += py-sqlite3
+ SUBDIR += py-sqlmodel
SUBDIR += py-sqlobject
SUBDIR += py-sqloxide
SUBDIR += py-sqlparse
diff --git a/databases/libvalkey/Makefile b/databases/libvalkey/Makefile
index 5090da866e10..8488049ef93f 100644
--- a/databases/libvalkey/Makefile
+++ b/databases/libvalkey/Makefile
@@ -1,5 +1,5 @@
PORTNAME= libvalkey
-DISTVERSION= 0.2.0
+DISTVERSION= 0.2.1
CATEGORIES= databases
MAINTAINER= dtxdf@FreeBSD.org
@@ -25,9 +25,9 @@ TLS_USES= ssl
TLS_MAKE_ARGS= USE_TLS=1
post-install:
- ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libvalkey.so.0.1.0
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libvalkey.so.${DISTVERSION}
post-install-TLS-on:
- ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libvalkey_tls.so.0.1.0
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libvalkey_tls.so.${DISTVERSION}
.include <bsd.port.mk>
diff --git a/databases/libvalkey/distinfo b/databases/libvalkey/distinfo
index 2a5fc91fc739..8bc3097121d6 100644
--- a/databases/libvalkey/distinfo
+++ b/databases/libvalkey/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755627857
-SHA256 (valkey-io-libvalkey-0.2.0_GH0.tar.gz) = d620d93fc3c39b297babe3d9003901aeddaa600507a1844accdb23539a762029
-SIZE (valkey-io-libvalkey-0.2.0_GH0.tar.gz) = 207972
+TIMESTAMP = 1756498326
+SHA256 (valkey-io-libvalkey-0.2.1_GH0.tar.gz) = bc068b15eeb8f66c3205f55f7bfe1274b79ccced0dd8796e59d62091abeb3645
+SIZE (valkey-io-libvalkey-0.2.1_GH0.tar.gz) = 207895
diff --git a/databases/libvalkey/pkg-plist b/databases/libvalkey/pkg-plist
index 07d3c858e797..b6095444557f 100644
--- a/databases/libvalkey/pkg-plist
+++ b/databases/libvalkey/pkg-plist
@@ -22,11 +22,10 @@ include/valkey/visibility.h
lib/libvalkey.a
lib/libvalkey.so
lib/libvalkey.so.0
-lib/libvalkey.so.0.1.0
+lib/libvalkey.so.0.2.1
lib/libvalkey_tls.a
lib/libvalkey_tls.so
lib/libvalkey_tls.so.0
-lib/libvalkey_tls.so.0.1.0
+lib/libvalkey_tls.so.0.2.1
libdata/pkgconfig/valkey.pc
libdata/pkgconfig/valkey_tls.pc
-
diff --git a/databases/py-sqlmodel/Makefile b/databases/py-sqlmodel/Makefile
new file mode 100644
index 000000000000..0bf8f21d1d33
--- /dev/null
+++ b/databases/py-sqlmodel/Makefile
@@ -0,0 +1,46 @@
+PORTNAME= sqlmodel
+DISTVERSION= 0.0.24
+CATEGORIES= databases python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= tagattie@FreeBSD.org
+COMMENT= SQL databases in Python, designed for simplicity, compatibility, and robustness
+WWW= https://sqlmodel.tiangolo.com/
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pdm-backend>0:devel/py-pdm-backend@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy20>=2.0.14<2.1.0:databases/py-sqlalchemy20@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=1.10.13<3.0.0:devel/py-pydantic2@${PY_FLAVOR}
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}coverage>=6.2<8.0:devel/py-coverage@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mypy>=1.4.1:devel/py-mypy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}ruff>=0.9.6:devel/py-ruff@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}fastapi>=0.103.2:www/py-fastapi@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}httpx>=0.24.1:www/py-httpx@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dirty-equals>=0.9.0:devel/py-dirty-equals@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1.4:devel/py-Jinja2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.12.2:devel/py-typing-extensions@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}black>0:devel/py-black@${PY_FLAVOR}
+
+USES= python shebangfix
+USE_PYTHON= autoplist pep517 pytest
+
+SHEBANG_FILES= scripts/test.sh
+bash_CMD= ${SH}
+
+NO_ARCH= yes
+
+PORTDOCS= README.md
+
+OPTIONS_DEFINE= DOCS
+
+post-install-DOCS-on:
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_MAN} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
+
+do-test:
+ cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ./scripts/test.sh
+
+.include <bsd.port.mk>
diff --git a/databases/py-sqlmodel/distinfo b/databases/py-sqlmodel/distinfo
new file mode 100644
index 000000000000..606cd3026abd
--- /dev/null
+++ b/databases/py-sqlmodel/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1756455526
+SHA256 (sqlmodel-0.0.24.tar.gz) = cc5c7613c1a5533c9c7867e1aab2fd489a76c9e8a061984da11b4e613c182423
+SIZE (sqlmodel-0.0.24.tar.gz) = 116780
diff --git a/databases/py-sqlmodel/pkg-descr b/databases/py-sqlmodel/pkg-descr
new file mode 100644
index 000000000000..ea96d894e9fd
--- /dev/null
+++ b/databases/py-sqlmodel/pkg-descr
@@ -0,0 +1,19 @@
+SQLModel is a library for interacting with SQL databases from Python
+code, with Python objects. It is designed to be intuitive, easy to
+use, highly compatible, and robust.
+
+SQLModel is based on Python type annotations, and powered by Pydantic
+and SQLAlchemy.
+
+The key features are:
+- Intuitive to write: Great editor support. Completion
+ everywhere. Less time debugging. Designed to be easy to use and
+ learn. Less time reading docs.
+- Easy to use: It has sensible defaults and does a lot of work
+ underneath to simplify the code you write.
+- Compatible: It is designed to be compatible with FastAPI, Pydantic,
+ and SQLAlchemy.
+- Extensible: You have all the power of SQLAlchemy and Pydantic
+ underneath.
+- Short: Minimize code duplication. A single type annotation does a
+ lot of work. No need to duplicate models in SQLAlchemy and Pydantic.
diff --git a/deskutils/readur/Makefile b/deskutils/readur/Makefile
index 9d832d561fe7..814477caf2a4 100644
--- a/deskutils/readur/Makefile
+++ b/deskutils/readur/Makefile
@@ -1,6 +1,6 @@
PORTNAME= readur
DISTVERSIONPREFIX= v
-DISTVERSION= 2.5.5
+DISTVERSION= 2.5.6
CATEGORIES= deskutils
MASTER_SITES= LOCAL/dtxdf/${PORTNAME}/
DISTFILES= ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}.frontend${EXTRACT_SUFX} \
diff --git a/deskutils/readur/Makefile.crates b/deskutils/readur/Makefile.crates
index 3894e532b452..b349b91cf88b 100644
--- a/deskutils/readur/Makefile.crates
+++ b/deskutils/readur/Makefile.crates
@@ -20,7 +20,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \
assert-json-diff-2.0.2 \
async-stream-0.3.6 \
async-stream-impl-0.3.6 \
- async-trait-0.1.88 \
+ async-trait-0.1.89 \
atoi-2.0.0 \
atomic-waker-1.1.2 \
autocfg-1.4.0 \
@@ -58,7 +58,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \
base64-0.22.1 \
base64-simd-0.8.0 \
base64ct-1.8.0 \
- bcrypt-0.17.0 \
+ bcrypt-0.17.1 \
bindgen-0.64.0 \
bindgen-0.69.5 \
bit_field-0.10.2 \
@@ -113,7 +113,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \
darling_core-0.20.11 \
darling_macro-0.20.11 \
data-encoding-2.9.0 \
- deadpool-0.10.0 \
+ deadpool-0.12.2 \
deadpool-runtime-0.1.4 \
der-0.6.1 \
der-0.7.10 \
@@ -147,7 +147,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \
foldhash-0.1.5 \
foreign-types-0.3.2 \
foreign-types-shared-0.1.1 \
- form_urlencoded-1.2.1 \
+ form_urlencoded-1.2.2 \
fs_extra-1.3.0 \
fsevent-sys-4.1.0 \
futures-0.3.31 \
@@ -189,7 +189,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \
httparse-1.10.1 \
httpdate-1.0.3 \
hyper-0.14.32 \
- hyper-1.6.0 \
+ hyper-1.7.0 \
hyper-named-pipe-0.1.0 \
hyper-rustls-0.24.2 \
hyper-rustls-0.27.7 \
@@ -206,7 +206,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \
icu_properties_data-2.0.1 \
icu_provider-2.0.0 \
ident_case-1.0.1 \
- idna-1.0.3 \
+ idna-1.1.0 \
idna_adapter-1.2.1 \
image-0.25.6 \
image-webp-0.2.2 \
@@ -305,7 +305,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \
peeking_take_while-0.1.2 \
pem-3.0.5 \
pem-rfc7468-0.7.0 \
- percent-encoding-2.3.1 \
+ percent-encoding-2.3.2 \
pin-project-lite-0.2.16 \
pin-utils-0.1.0 \
pkcs1-0.7.5 \
@@ -342,7 +342,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \
redox_syscall-0.5.13 \
ref-cast-1.0.24 \
ref-cast-impl-1.0.24 \
- regex-1.11.1 \
+ regex-1.11.2 \
regex-automata-0.1.10 \
regex-automata-0.4.9 \
regex-lite-0.1.6 \
@@ -386,7 +386,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \
semver-1.0.26 \
serde-1.0.219 \
serde_derive-1.0.219 \
- serde_json-1.0.142 \
+ serde_json-1.0.143 \
serde_path_to_error-0.1.17 \
serde_repr-0.1.20 \
serde_spanned-0.6.9 \
@@ -443,9 +443,9 @@ CARGO_CRATES= ab_glyph-0.2.29 \
testcontainers-0.24.0 \
testcontainers-modules-0.12.1 \
thiserror-1.0.69 \
- thiserror-2.0.14 \
+ thiserror-2.0.16 \
thiserror-impl-1.0.69 \
- thiserror-impl-2.0.14 \
+ thiserror-impl-2.0.16 \
thread_local-1.1.9 \
tiff-0.9.1 \
time-0.3.41 \
@@ -486,7 +486,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \
unicode-normalization-0.1.24 \
unicode-properties-0.1.3 \
untrusted-0.9.0 \
- url-2.5.4 \
+ url-2.5.7 \
urlencoding-2.1.3 \
utf-8-0.7.6 \
utf8_iter-1.0.4 \
@@ -568,7 +568,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \
windows_x86_64_msvc-0.53.0 \
winnow-0.7.11 \
winreg-0.50.0 \
- wiremock-0.6.4 \
+ wiremock-0.6.5 \
wit-bindgen-rt-0.39.0 \
writeable-0.6.1 \
xattr-1.5.0 \
diff --git a/deskutils/readur/distinfo b/deskutils/readur/distinfo
index a453c7bef485..d71b57da64d5 100644
--- a/deskutils/readur/distinfo
+++ b/deskutils/readur/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1755325613
-SHA256 (readur-v2.5.5.frontend.tar.gz) = 8119596df5baf059491d91515225f2631fe33d39b82878346cbfecca8c5f7db9
-SIZE (readur-v2.5.5.frontend.tar.gz) = 2509875
+TIMESTAMP = 1756485347
+SHA256 (readur-v2.5.6.frontend.tar.gz) = 76da8b4133d62d74ad3092683101931f2512292b7c97e7ba524710856e245544
+SIZE (readur-v2.5.6.frontend.tar.gz) = 2509920
SHA256 (swagger-ui-v5.17.14.zip) = 481244d0812097b11fbaeef79f71d942b171617f9c9f9514e63acbe13e71ccdc
SIZE (swagger-ui-v5.17.14.zip) = 4388280
SHA256 (rust/crates/ab_glyph-0.2.29.crate) = ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0
@@ -47,8 +47,8 @@ SHA256 (rust/crates/async-stream-0.3.6.crate) = 0b5a71a6f37880a80d1d7f19efd781e4
SIZE (rust/crates/async-stream-0.3.6.crate) = 13823
SHA256 (rust/crates/async-stream-impl-0.3.6.crate) = c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d
SIZE (rust/crates/async-stream-impl-0.3.6.crate) = 4312
-SHA256 (rust/crates/async-trait-0.1.88.crate) = e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5
-SIZE (rust/crates/async-trait-0.1.88.crate) = 32084
+SHA256 (rust/crates/async-trait-0.1.89.crate) = 9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb
+SIZE (rust/crates/async-trait-0.1.89.crate) = 32171
SHA256 (rust/crates/atoi-2.0.0.crate) = f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528
SIZE (rust/crates/atoi-2.0.0.crate) = 7785
SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0
@@ -123,8 +123,8 @@ SHA256 (rust/crates/base64-simd-0.8.0.crate) = 339abbe78e73178762e23bea9dfd08e69
SIZE (rust/crates/base64-simd-0.8.0.crate) = 12531
SHA256 (rust/crates/base64ct-1.8.0.crate) = 55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba
SIZE (rust/crates/base64ct-1.8.0.crate) = 31211
-SHA256 (rust/crates/bcrypt-0.17.0.crate) = 92758ad6077e4c76a6cadbce5005f666df70d4f13b19976b1a8062eef880040f
-SIZE (rust/crates/bcrypt-0.17.0.crate) = 12461
+SHA256 (rust/crates/bcrypt-0.17.1.crate) = abaf6da45c74385272ddf00e1ac074c7d8a6c1a1dda376902bd6a427522a8b2c
+SIZE (rust/crates/bcrypt-0.17.1.crate) = 12542
SHA256 (rust/crates/bindgen-0.64.0.crate) = c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4
SIZE (rust/crates/bindgen-0.64.0.crate) = 204700
SHA256 (rust/crates/bindgen-0.69.5.crate) = 271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088
@@ -233,8 +233,8 @@ SHA256 (rust/crates/darling_macro-0.20.11.crate) = fc34b93ccb385b40dc71c6fceac4b
SIZE (rust/crates/darling_macro-0.20.11.crate) = 2532
SHA256 (rust/crates/data-encoding-2.9.0.crate) = 2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476
SIZE (rust/crates/data-encoding-2.9.0.crate) = 21564
-SHA256 (rust/crates/deadpool-0.10.0.crate) = fb84100978c1c7b37f09ed3ce3e5f843af02c2a2c431bae5b19230dad2c1b490
-SIZE (rust/crates/deadpool-0.10.0.crate) = 31997
+SHA256 (rust/crates/deadpool-0.12.2.crate) = 5ed5957ff93768adf7a65ab167a17835c3d2c3c50d084fe305174c112f468e2f
+SIZE (rust/crates/deadpool-0.12.2.crate) = 34422
SHA256 (rust/crates/deadpool-runtime-0.1.4.crate) = 092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b
SIZE (rust/crates/deadpool-runtime-0.1.4.crate) = 7664
SHA256 (rust/crates/der-0.6.1.crate) = f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de
@@ -301,8 +301,8 @@ SHA256 (rust/crates/foreign-types-0.3.2.crate) = f6f339eb8adc052cd2ca78910fda869
SIZE (rust/crates/foreign-types-0.3.2.crate) = 7504
SHA256 (rust/crates/foreign-types-shared-0.1.1.crate) = 00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b
SIZE (rust/crates/foreign-types-shared-0.1.1.crate) = 5672
-SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456
-SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
+SHA256 (rust/crates/form_urlencoded-1.2.2.crate) = cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf
+SIZE (rust/crates/form_urlencoded-1.2.2.crate) = 9347
SHA256 (rust/crates/fs_extra-1.3.0.crate) = 42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c
SIZE (rust/crates/fs_extra-1.3.0.crate) = 31298
SHA256 (rust/crates/fsevent-sys-4.1.0.crate) = 76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2
@@ -385,8 +385,8 @@ SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994
SIZE (rust/crates/httpdate-1.0.3.crate) = 10639
SHA256 (rust/crates/hyper-0.14.32.crate) = 41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7
SIZE (rust/crates/hyper-0.14.32.crate) = 199622
-SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80
-SIZE (rust/crates/hyper-1.6.0.crate) = 153923
+SHA256 (rust/crates/hyper-1.7.0.crate) = eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e
+SIZE (rust/crates/hyper-1.7.0.crate) = 157006
SHA256 (rust/crates/hyper-named-pipe-0.1.0.crate) = 73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278
SIZE (rust/crates/hyper-named-pipe-0.1.0.crate) = 8522
SHA256 (rust/crates/hyper-rustls-0.24.2.crate) = ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590
@@ -419,8 +419,8 @@ SHA256 (rust/crates/icu_provider-2.0.0.crate) = 03c80da27b5f4187909049ee2d72f276
SIZE (rust/crates/icu_provider-2.0.0.crate) = 50966
SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39
SIZE (rust/crates/ident_case-1.0.1.crate) = 3492
-SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e
-SIZE (rust/crates/idna-1.0.3.crate) = 142515
+SHA256 (rust/crates/idna-1.1.0.crate) = 3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de
+SIZE (rust/crates/idna-1.1.0.crate) = 148747
SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344
SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389
SHA256 (rust/crates/image-0.25.6.crate) = db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a
@@ -617,8 +617,8 @@ SHA256 (rust/crates/pem-3.0.5.crate) = 38af38e8470ac9dee3ce1bae1af9c1671fffc44dd
SIZE (rust/crates/pem-3.0.5.crate) = 18140
SHA256 (rust/crates/pem-rfc7468-0.7.0.crate) = 88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412
SIZE (rust/crates/pem-rfc7468-0.7.0.crate) = 24159
-SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
-SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
+SHA256 (rust/crates/percent-encoding-2.3.2.crate) = 9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220
+SIZE (rust/crates/percent-encoding-2.3.2.crate) = 11583
SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b
SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504
SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
@@ -691,8 +691,8 @@ SHA256 (rust/crates/ref-cast-1.0.24.crate) = 4a0ae411dbe946a674d89546582cea4ba2b
SIZE (rust/crates/ref-cast-1.0.24.crate) = 15252
SHA256 (rust/crates/ref-cast-impl-1.0.24.crate) = 1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7
SIZE (rust/crates/ref-cast-impl-1.0.24.crate) = 9968
-SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191
-SIZE (rust/crates/regex-1.11.1.crate) = 254170
+SHA256 (rust/crates/regex-1.11.2.crate) = 23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912
+SIZE (rust/crates/regex-1.11.2.crate) = 166265
SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132
SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533
SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908
@@ -779,8 +779,8 @@ SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854
SIZE (rust/crates/serde-1.0.219.crate) = 78983
SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00
SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798
-SHA256 (rust/crates/serde_json-1.0.142.crate) = 030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7
-SIZE (rust/crates/serde_json-1.0.142.crate) = 155363
+SHA256 (rust/crates/serde_json-1.0.143.crate) = d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a
+SIZE (rust/crates/serde_json-1.0.143.crate) = 155342
SHA256 (rust/crates/serde_path_to_error-0.1.17.crate) = 59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a
SIZE (rust/crates/serde_path_to_error-0.1.17.crate) = 17662
SHA256 (rust/crates/serde_repr-0.1.20.crate) = 175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c
@@ -893,12 +893,12 @@ SHA256 (rust/crates/testcontainers-modules-0.12.1.crate) = eac95cde96549fc19c6bf
SIZE (rust/crates/testcontainers-modules-0.12.1.crate) = 156916
SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
-SHA256 (rust/crates/thiserror-2.0.14.crate) = 0b0949c3a6c842cbde3f1686d6eea5a010516deb7085f79db747562d4102f41e
-SIZE (rust/crates/thiserror-2.0.14.crate) = 29021
+SHA256 (rust/crates/thiserror-2.0.16.crate) = 3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0
+SIZE (rust/crates/thiserror-2.0.16.crate) = 29095
SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
-SHA256 (rust/crates/thiserror-impl-2.0.14.crate) = cc5b44b4ab9c2fdd0e0512e6bece8388e214c0749f5862b114cc5b7a25daf227
-SIZE (rust/crates/thiserror-impl-2.0.14.crate) = 21219
+SHA256 (rust/crates/thiserror-impl-2.0.16.crate) = 6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960
+SIZE (rust/crates/thiserror-impl-2.0.16.crate) = 21214
SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185
SIZE (rust/crates/thread_local-1.1.9.crate) = 19315
SHA256 (rust/crates/tiff-0.9.1.crate) = ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e
@@ -979,8 +979,8 @@ SHA256 (rust/crates/unicode-properties-0.1.3.crate) = e70f2a8b45122e719eb623c018
SIZE (rust/crates/unicode-properties-0.1.3.crate) = 42252
SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1
SIZE (rust/crates/untrusted-0.9.0.crate) = 14447
-SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60
-SIZE (rust/crates/url-2.5.4.crate) = 81097
+SHA256 (rust/crates/url-2.5.7.crate) = 08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b
+SIZE (rust/crates/url-2.5.7.crate) = 87907
SHA256 (rust/crates/urlencoding-2.1.3.crate) = daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da
SIZE (rust/crates/urlencoding-2.1.3.crate) = 6538
SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9
@@ -1143,8 +1143,8 @@ SHA256 (rust/crates/winnow-0.7.11.crate) = 74c7b26e3480b707944fc872477815d29a8e4
SIZE (rust/crates/winnow-0.7.11.crate) = 174175
SHA256 (rust/crates/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1
SIZE (rust/crates/winreg-0.50.0.crate) = 29703
-SHA256 (rust/crates/wiremock-0.6.4.crate) = a2b8b99d4cdbf36b239a9532e31fe4fb8acc38d1897c1761e161550a7dc78e6a
-SIZE (rust/crates/wiremock-0.6.4.crate) = 58967
+SHA256 (rust/crates/wiremock-0.6.5.crate) = 08db1edfb05d9b3c1542e521aea074442088292f00b5f28e435c714a98f85031
+SIZE (rust/crates/wiremock-0.6.5.crate) = 60561
SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1
SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241
SHA256 (rust/crates/writeable-0.6.1.crate) = ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb
@@ -1185,5 +1185,5 @@ SHA256 (rust/crates/zune-inflate-0.2.54.crate) = 73ab332fe2f6680068f3582b16a24f9
SIZE (rust/crates/zune-inflate-0.2.54.crate) = 37973
SHA256 (rust/crates/zune-jpeg-0.4.17.crate) = 0f6fe2e33d02a98ee64423802e16df3de99c43e5cf5ff983767e1128b394c8ac
SIZE (rust/crates/zune-jpeg-0.4.17.crate) = 65784
-SHA256 (readur-readur-v2.5.5_GH0.tar.gz) = feddffa5c93385dcee029db22fba8514b02c01632797ef29a0044612bcd80b13
-SIZE (readur-readur-v2.5.5_GH0.tar.gz) = 12349276
+SHA256 (readur-readur-v2.5.6_GH0.tar.gz) = af8aebef4a5e955cb46a1af0ac3e5f36e96d7d724dc342ee82c1383f7b855149
+SIZE (readur-readur-v2.5.6_GH0.tar.gz) = 12566666
diff --git a/deskutils/readur/pkg-plist b/deskutils/readur/pkg-plist
index 9e06104dddaf..108428e1e0f4 100644
--- a/deskutils/readur/pkg-plist
+++ b/deskutils/readur/pkg-plist
@@ -5,6 +5,6 @@ bin/readur
%%WWWDIR%%/readur.png
%%WWWDIR%%/index.html
@dir %%WWWDIR%%/assets
-%%WWWDIR%%/assets/index-C700-JQP.js
+%%WWWDIR%%/assets/index-Dj5jAB9U.js
%%WWWDIR%%/assets/index-C5nToalm.css
@dir(%%USER%%,%%GROUP%%,0700) %%HOMEDIR%%
diff --git a/deskutils/remind/Makefile b/deskutils/remind/Makefile
index 04d302f64165..3417e5b287d7 100644
--- a/deskutils/remind/Makefile
+++ b/deskutils/remind/Makefile
@@ -1,5 +1,5 @@
PORTNAME= remind
-DISTVERSION= 05.05.00
+DISTVERSION= 06.00.01
CATEGORIES= deskutils
# upstream moves distfiles to OLD once a new release appears
MASTER_SITES= https://dianne.skoll.ca/projects/remind/download/ \
diff --git a/deskutils/remind/distinfo b/deskutils/remind/distinfo
index 09a7553c4f4e..3558196d7ed7 100644
--- a/deskutils/remind/distinfo
+++ b/deskutils/remind/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1754049061
-SHA256 (remind-05.05.00.tar.gz) = cc57fe8399cdc443344b9d1413bc31d47732156438bdd1d3d82d1a833ffacbed
-SIZE (remind-05.05.00.tar.gz) = 8975080
+TIMESTAMP = 1756286386
+SHA256 (remind-06.00.01.tar.gz) = 0705b6f700d6cd7b0f59af106495f7dd726ea14b641d9d8408f532fb28d2f007
+SIZE (remind-06.00.01.tar.gz) = 8998734
diff --git a/devel/Makefile b/devel/Makefile
index 4654f2aba762..5662471fa45e 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -8431,12 +8431,14 @@
SUBDIR += wasi-compiler-rt18
SUBDIR += wasi-compiler-rt19
SUBDIR += wasi-compiler-rt20
+ SUBDIR += wasi-compiler-rt21
SUBDIR += wasi-libc
SUBDIR += wasi-libcxx
SUBDIR += wasi-libcxx17
SUBDIR += wasi-libcxx18
SUBDIR += wasi-libcxx19
SUBDIR += wasi-libcxx20
+ SUBDIR += wasi-libcxx21
SUBDIR += wasm-server-runner
SUBDIR += wasm3
SUBDIR += wasmer
diff --git a/devel/R-cran-evaluate/Makefile b/devel/R-cran-evaluate/Makefile
index c7d8050312e5..4293bd126cf2 100644
--- a/devel/R-cran-evaluate/Makefile
+++ b/devel/R-cran-evaluate/Makefile
@@ -1,5 +1,5 @@
PORTNAME= evaluate
-DISTVERSION= 1.0.4
+DISTVERSION= 1.0.5
CATEGORIES= devel
DISTNAME= ${PORTNAME}_${PORTVERSION}
diff --git a/devel/R-cran-evaluate/distinfo b/devel/R-cran-evaluate/distinfo
index abbe72b72e46..627be396e16f 100644
--- a/devel/R-cran-evaluate/distinfo
+++ b/devel/R-cran-evaluate/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1750446174
-SHA256 (evaluate_1.0.4.tar.gz) = 08dff6dcfce3cb321ab8d6851a246e698f6f641579d75c2a6875b36a65eca4ca
-SIZE (evaluate_1.0.4.tar.gz) = 39226
+TIMESTAMP = 1756462946
+SHA256 (evaluate_1.0.5.tar.gz) = 47aac79f889a828a5f8b4756cb972d7c2966bb984cbae17a4bd2389a73270794
+SIZE (evaluate_1.0.5.tar.gz) = 39322
diff --git a/devel/R-cran-later/Makefile b/devel/R-cran-later/Makefile
index 5833901f148d..a8b2446ae4c4 100644
--- a/devel/R-cran-later/Makefile
+++ b/devel/R-cran-later/Makefile
@@ -1,5 +1,5 @@
PORTNAME= later
-DISTVERSION= 1.4.3
+DISTVERSION= 1.4.4
CATEGORIES= devel
DISTNAME= ${PORTNAME}_${DISTVERSION}
diff --git a/devel/R-cran-later/distinfo b/devel/R-cran-later/distinfo
index bc01534b97e4..9a2a7ffa5dab 100644
--- a/devel/R-cran-later/distinfo
+++ b/devel/R-cran-later/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755851709
-SHA256 (later_1.4.3.tar.gz) = 7953e0139b95eebda80abd3c1987991fb3b397fc7a8851ae959f2a733bf35a61
-SIZE (later_1.4.3.tar.gz) = 70786
+TIMESTAMP = 1756439027
+SHA256 (later_1.4.4.tar.gz) = 18cec083cdbc3e5e9a491fa10af5cfcabb9cd91231e4e8a18e58e8651da7aa80
+SIZE (later_1.4.4.tar.gz) = 70679
diff --git a/devel/bashdb/files/patch-configure b/devel/bashdb/files/patch-configure
index 25ed8c36baaf..698eaacce988 100644
--- a/devel/bashdb/files/patch-configure
+++ b/devel/bashdb/files/patch-configure
@@ -5,7 +5,7 @@
bash_5_or_greater=no
case "${bash_major}.${bash_minor}" in
- '5.0' | '5.0')
-+ '5.0' | '5.0' | '5.1' | '5.2')
++ '5.0' | '5.0' | '5.1' | '5.2' | '5.3')
bash_5_or_greater=yes
;;
*)
diff --git a/devel/cirrus-cli/Makefile b/devel/cirrus-cli/Makefile
index 8f655ab3377e..b18e6dc05fc8 100644
--- a/devel/cirrus-cli/Makefile
+++ b/devel/cirrus-cli/Makefile
@@ -1,6 +1,6 @@
PORTNAME= cirrus-cli
DISTVERSIONPREFIX= v
-DISTVERSION= 0.146.0
+DISTVERSION= 0.147.0
CATEGORIES= devel
MAINTAINER= bofh@FreeBSD.org
diff --git a/devel/cirrus-cli/distinfo b/devel/cirrus-cli/distinfo
index 86d06f62fae5..77650932ad4b 100644
--- a/devel/cirrus-cli/distinfo
+++ b/devel/cirrus-cli/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1756369840
-SHA256 (go/devel_cirrus-cli/cirrus-cli-v0.146.0/v0.146.0.mod) = 5e3fb94c0dd8407f066badb79489c8f4ad0ccb3ae5b68b23964f61c9e0040719
-SIZE (go/devel_cirrus-cli/cirrus-cli-v0.146.0/v0.146.0.mod) = 10647
-SHA256 (go/devel_cirrus-cli/cirrus-cli-v0.146.0/v0.146.0.zip) = 420ad3e035021f21d4c65dc243aafa440662e5f08f7f9c6594127ccab8cba9ed
-SIZE (go/devel_cirrus-cli/cirrus-cli-v0.146.0/v0.146.0.zip) = 1314497
+TIMESTAMP = 1756465628
+SHA256 (go/devel_cirrus-cli/cirrus-cli-v0.147.0/v0.147.0.mod) = c5357e43260e23ab742ee37be8e93387862c46e85d25f598edc20cbca5f85cdf
+SIZE (go/devel_cirrus-cli/cirrus-cli-v0.147.0/v0.147.0.mod) = 10488
+SHA256 (go/devel_cirrus-cli/cirrus-cli-v0.147.0/v0.147.0.zip) = 57f13e4438cf3b44d3a393170ed5a852a6f039323d89dba6a985e94b297330e6
+SIZE (go/devel_cirrus-cli/cirrus-cli-v0.147.0/v0.147.0.zip) = 1310480
diff --git a/devel/dbus/Makefile b/devel/dbus/Makefile
index 1ecf854e8588..9ca1aa15e5d7 100644
--- a/devel/dbus/Makefile
+++ b/devel/dbus/Makefile
@@ -1,6 +1,6 @@
PORTNAME= dbus
DISTVERSION= 1.16.2
-PORTREVISION= 3
+PORTREVISION= 4
PORTEPOCH= 1
CATEGORIES= devel gnome
MASTER_SITES= https://dbus.freedesktop.org/releases/dbus/
diff --git a/devel/dbus/files/patch-dbus_dbus-transport-socket.c b/devel/dbus/files/patch-dbus_dbus-transport-socket.c
new file mode 100644
index 000000000000..15a5d2eedcd0
--- /dev/null
+++ b/devel/dbus/files/patch-dbus_dbus-transport-socket.c
@@ -0,0 +1,15 @@
+https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/526
+
+--- dbus/dbus-transport-socket.c.orig 2025-02-27 16:29:06 UTC
++++ dbus/dbus-transport-socket.c
+@@ -1208,8 +1208,8 @@ socket_do_iteration (DBusTransport *transport,
+ do_io_error (transport);
+ else
+ {
+- dbus_bool_t need_read = (poll_fd.revents & _DBUS_POLLIN) > 0;
+- dbus_bool_t need_write = (poll_fd.revents & _DBUS_POLLOUT) > 0;
++ dbus_bool_t need_read = (poll_fd.revents & (_DBUS_POLLIN | _DBUS_POLLHUP)) > 0;
++ dbus_bool_t need_write = (poll_fd.revents & (_DBUS_POLLOUT | _DBUS_POLLHUP)) > 0;
+ dbus_bool_t authentication_completed;
+
+ _dbus_verbose ("in iteration, need_read=%d need_write=%d\n",
diff --git a/devel/electron32/files/patch-net_dns_BUILD.gn b/devel/electron32/files/patch-net_dns_BUILD.gn
index f1e85f0ddb01..e1fd322aea84 100644
--- a/devel/electron32/files/patch-net_dns_BUILD.gn
+++ b/devel/electron32/files/patch-net_dns_BUILD.gn
@@ -1,4 +1,4 @@
---- net/dns/BUILD.gn.orig 2024-06-30 11:48:27 UTC
+--- net/dns/BUILD.gn.orig 2025-03-29 00:50:57 UTC
+++ net/dns/BUILD.gn
@@ -138,7 +138,7 @@ source_set("dns") {
"dns_config_service_android.cc",
@@ -9,7 +9,17 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -179,6 +179,7 @@ source_set("dns") {
+@@ -172,6 +172,9 @@ source_set("dns") {
+ }
+
+ deps = [ "//net:net_deps" ]
++ if (is_bsd) {
++ deps += [ "//services/screen_ai/buildflags" ]
++ }
+
+ public_deps = [
+ ":dns_client",
+@@ -179,6 +182,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
@@ -17,7 +27,7 @@
]
allow_circular_includes_from = [
-@@ -449,9 +450,9 @@ source_set("tests") {
+@@ -447,9 +451,9 @@ source_set("tests") {
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
diff --git a/devel/electron34/files/patch-net_dns_BUILD.gn b/devel/electron34/files/patch-net_dns_BUILD.gn
index f1e85f0ddb01..e1fd322aea84 100644
--- a/devel/electron34/files/patch-net_dns_BUILD.gn
+++ b/devel/electron34/files/patch-net_dns_BUILD.gn
@@ -1,4 +1,4 @@
---- net/dns/BUILD.gn.orig 2024-06-30 11:48:27 UTC
+--- net/dns/BUILD.gn.orig 2025-03-29 00:50:57 UTC
+++ net/dns/BUILD.gn
@@ -138,7 +138,7 @@ source_set("dns") {
"dns_config_service_android.cc",
@@ -9,7 +9,17 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -179,6 +179,7 @@ source_set("dns") {
+@@ -172,6 +172,9 @@ source_set("dns") {
+ }
+
+ deps = [ "//net:net_deps" ]
++ if (is_bsd) {
++ deps += [ "//services/screen_ai/buildflags" ]
++ }
+
+ public_deps = [
+ ":dns_client",
+@@ -179,6 +182,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
@@ -17,7 +27,7 @@
]
allow_circular_includes_from = [
-@@ -449,9 +450,9 @@ source_set("tests") {
+@@ -447,9 +451,9 @@ source_set("tests") {
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
diff --git a/devel/electron35/files/patch-net_dns_BUILD.gn b/devel/electron35/files/patch-net_dns_BUILD.gn
index d51291a1422a..e1fd322aea84 100644
--- a/devel/electron35/files/patch-net_dns_BUILD.gn
+++ b/devel/electron35/files/patch-net_dns_BUILD.gn
@@ -1,6 +1,6 @@
---- net/dns/BUILD.gn.orig 2025-04-06 11:53:44 UTC
+--- net/dns/BUILD.gn.orig 2025-03-29 00:50:57 UTC
+++ net/dns/BUILD.gn
-@@ -140,7 +140,7 @@ source_set("dns") {
+@@ -138,7 +138,7 @@ source_set("dns") {
"dns_config_service_android.cc",
"dns_config_service_android.h",
]
@@ -9,7 +9,17 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -181,6 +181,7 @@ source_set("dns") {
+@@ -172,6 +172,9 @@ source_set("dns") {
+ }
+
+ deps = [ "//net:net_deps" ]
++ if (is_bsd) {
++ deps += [ "//services/screen_ai/buildflags" ]
++ }
+
+ public_deps = [
+ ":dns_client",
+@@ -179,6 +182,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
@@ -17,7 +27,7 @@
]
allow_circular_includes_from = [
-@@ -452,9 +453,9 @@ source_set("tests") {
+@@ -447,9 +451,9 @@ source_set("tests") {
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
diff --git a/devel/electron36/files/patch-net_dns_BUILD.gn b/devel/electron36/files/patch-net_dns_BUILD.gn
index d51291a1422a..e1fd322aea84 100644
--- a/devel/electron36/files/patch-net_dns_BUILD.gn
+++ b/devel/electron36/files/patch-net_dns_BUILD.gn
@@ -1,6 +1,6 @@
---- net/dns/BUILD.gn.orig 2025-04-06 11:53:44 UTC
+--- net/dns/BUILD.gn.orig 2025-03-29 00:50:57 UTC
+++ net/dns/BUILD.gn
-@@ -140,7 +140,7 @@ source_set("dns") {
+@@ -138,7 +138,7 @@ source_set("dns") {
"dns_config_service_android.cc",
"dns_config_service_android.h",
]
@@ -9,7 +9,17 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -181,6 +181,7 @@ source_set("dns") {
+@@ -172,6 +172,9 @@ source_set("dns") {
+ }
+
+ deps = [ "//net:net_deps" ]
++ if (is_bsd) {
++ deps += [ "//services/screen_ai/buildflags" ]
++ }
+
+ public_deps = [
+ ":dns_client",
+@@ -179,6 +182,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
@@ -17,7 +27,7 @@
]
allow_circular_includes_from = [
-@@ -452,9 +453,9 @@ source_set("tests") {
+@@ -447,9 +451,9 @@ source_set("tests") {
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
diff --git a/devel/electron37/Makefile b/devel/electron37/Makefile
index ed2a1bba8f00..cfd71a8f372e 100644
--- a/devel/electron37/Makefile
+++ b/devel/electron37/Makefile
@@ -4,7 +4,7 @@ DISTVERSION= ${ELECTRON_VER}
PULSEMV= 16
PULSEV= ${PULSEMV}.1
CATEGORIES= devel
-MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v37.3.1/:chromium \
+MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v37.4.0/:chromium \
https://freedesktop.org/software/pulseaudio/releases/:pulseaudio
PKGNAMESUFFIX= ${ELECTRON_VER_MAJOR}
DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.0:chromium \
@@ -225,7 +225,7 @@ SNDIO_VARS= GN_ARGS+=use_sndio=true
SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false
# See ${WRKSRC}/electron/DEPS for CHROMIUM_VER
-CHROMIUM_VER= 138.0.7204.235
+CHROMIUM_VER= 138.0.7204.243
# See ${WRKSRC}/electron/DEPS for NODE_VER
NODE_VER= 22.18.0
# See ${WRKSRC}/electron/DEPS for NAN_VER
diff --git a/devel/electron37/Makefile.version b/devel/electron37/Makefile.version
index d20e1f839227..316992727560 100644
--- a/devel/electron37/Makefile.version
+++ b/devel/electron37/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER= 37.3.1
+ELECTRON_VER= 37.4.0
ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron37/distinfo b/devel/electron37/distinfo
index 36570b21fec3..24e208c6a0dc 100644
--- a/devel/electron37/distinfo
+++ b/devel/electron37/distinfo
@@ -1,16 +1,16 @@
-TIMESTAMP = 1755851713
-SHA256 (electron/chromium-138.0.7204.235.tar.xz.0) = 1817cff1aea2328a81f6f3f18344d442833551ec1845c0cae2262ec38d7df408
-SIZE (electron/chromium-138.0.7204.235.tar.xz.0) = 2000000000
-SHA256 (electron/chromium-138.0.7204.235.tar.xz.1) = 775342c321ceae33766375a8844d4cf388b79929f8a5b41ef54524b3a1e64860
-SIZE (electron/chromium-138.0.7204.235.tar.xz.1) = 2000000000
-SHA256 (electron/chromium-138.0.7204.235.tar.xz.2) = bf07431e52dc0911e9252176abb0cbb8ae2ce138b725107c65738b4d79fe6ab7
-SIZE (electron/chromium-138.0.7204.235.tar.xz.2) = 273221044
+TIMESTAMP = 1756372577
+SHA256 (electron/chromium-138.0.7204.243.tar.xz.0) = 6de4153de04a391369af78bf7e6e88872f8404486ad8a587fe25ed21e6a408dd
+SIZE (electron/chromium-138.0.7204.243.tar.xz.0) = 2000000000
+SHA256 (electron/chromium-138.0.7204.243.tar.xz.1) = ae7fc8e34ad25e4be009722383d862bbee6823fbeb237edb4376f4c21a4a72a0
+SIZE (electron/chromium-138.0.7204.243.tar.xz.1) = 2000000000
+SHA256 (electron/chromium-138.0.7204.243.tar.xz.2) = 06a4639f0361fbcd6d0fac04931986886c140c24f98b6cc50febc6921cd32d0f
+SIZE (electron/chromium-138.0.7204.243.tar.xz.2) = 274022020
SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92
SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111
-SHA256 (electron/electron-yarn-cache-37.3.1.tar.xz) = 7823d2fceaf2aac5bb0b342866049b0dfdeca98a65ac00559abfaff47bdba536
-SIZE (electron/electron-yarn-cache-37.3.1.tar.xz) = 30480408
-SHA256 (electron/electron-electron-v37.3.1_GH0.tar.gz) = b63e6d1542cc7bdfc2f1996d75208a24c2fb2812b235c32db527e50a313291e0
-SIZE (electron/electron-electron-v37.3.1_GH0.tar.gz) = 15837289
+SHA256 (electron/electron-yarn-cache-37.4.0.tar.xz) = 7823d2fceaf2aac5bb0b342866049b0dfdeca98a65ac00559abfaff47bdba536
+SIZE (electron/electron-yarn-cache-37.4.0.tar.xz) = 30480408
+SHA256 (electron/electron-electron-v37.4.0_GH0.tar.gz) = 43ccbd61351999cd09314b5ac28e97c78f584f40fb85dfd09564aad92a6d37a8
+SIZE (electron/electron-electron-v37.4.0_GH0.tar.gz) = 15838013
SHA256 (electron/nodejs-node-v22.18.0_GH0.tar.gz) = f0f7022d2bcf1e286a42ccf46bf184e67e469daa83ecd9fda2326e872bab7aa0
SIZE (electron/nodejs-node-v22.18.0_GH0.tar.gz) = 123027912
SHA256 (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 02edf8d5b3fef9af94d8a1355da60564a57e7f2c99cb422bce042400607ed2eb
diff --git a/devel/electron37/files/patch-electron_shell_services_node_node__service.cc b/devel/electron37/files/patch-electron_shell_services_node_node__service.cc
index a69bf043abda..c12b95169c24 100644
--- a/devel/electron37/files/patch-electron_shell_services_node_node__service.cc
+++ b/devel/electron37/files/patch-electron_shell_services_node_node__service.cc
@@ -1,6 +1,6 @@
---- electron/shell/services/node/node_service.cc.orig 2025-07-02 10:12:01 UTC
+--- electron/shell/services/node/node_service.cc.orig 2025-08-25 07:57:03 UTC
+++ electron/shell/services/node/node_service.cc
-@@ -23,7 +23,7 @@
+@@ -24,7 +24,7 @@
#include "shell/common/node_includes.h"
#include "shell/services/node/parent_port.h"
@@ -9,7 +9,7 @@
#include "shell/common/crash_keys.h"
#endif
-@@ -40,7 +40,7 @@ void V8FatalErrorCallback(const char* location, const
+@@ -41,7 +41,7 @@ void V8FatalErrorCallback(const char* location, const
g_client_remote->OnV8FatalError(location, outstream.str());
}
diff --git a/devel/electron37/files/patch-electron_spec_api-tray-spec.ts b/devel/electron37/files/patch-electron_spec_api-tray-spec.ts
index cb822fdca402..a2cc8bcf183b 100644
--- a/devel/electron37/files/patch-electron_spec_api-tray-spec.ts
+++ b/devel/electron37/files/patch-electron_spec_api-tray-spec.ts
@@ -1,5 +1,21 @@
---- electron/spec/api-tray-spec.ts.orig 2024-10-09 13:53:06 UTC
+--- electron/spec/api-tray-spec.ts.orig 2025-08-25 07:57:03 UTC
+++ electron/spec/api-tray-spec.ts
+@@ -30,13 +30,13 @@ describe('tray module', () => {
+ }).to.throw(/Failed to load image from path (.+)/);
+ });
+
+- ifit(process.platform !== 'linux')('throws a descriptive error if an invalid guid is given', () => {
++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('throws a descriptive error if an invalid guid is given', () => {
+ expect(() => {
+ tray = new Tray(nativeImage.createEmpty(), 'I am not a guid');
+ }).to.throw('Invalid GUID format');
+ });
+
+- ifit(process.platform !== 'linux')('accepts a valid guid', () => {
++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('accepts a valid guid', () => {
+ expect(() => {
+ tray = new Tray(nativeImage.createEmpty(), '0019A433-3526-48BA-A66C-676742C0FEFB');
+ }).to.not.throw();
@@ -131,7 +131,7 @@ describe('tray module', () => {
describe('tray.getBounds()', () => {
afterEach(() => { tray.destroy(); });
diff --git a/devel/electron37/files/patch-net_dns_BUILD.gn b/devel/electron37/files/patch-net_dns_BUILD.gn
index d51291a1422a..e1fd322aea84 100644
--- a/devel/electron37/files/patch-net_dns_BUILD.gn
+++ b/devel/electron37/files/patch-net_dns_BUILD.gn
@@ -1,6 +1,6 @@
---- net/dns/BUILD.gn.orig 2025-04-06 11:53:44 UTC
+--- net/dns/BUILD.gn.orig 2025-03-29 00:50:57 UTC
+++ net/dns/BUILD.gn
-@@ -140,7 +140,7 @@ source_set("dns") {
+@@ -138,7 +138,7 @@ source_set("dns") {
"dns_config_service_android.cc",
"dns_config_service_android.h",
]
@@ -9,7 +9,17 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -181,6 +181,7 @@ source_set("dns") {
+@@ -172,6 +172,9 @@ source_set("dns") {
+ }
+
+ deps = [ "//net:net_deps" ]
++ if (is_bsd) {
++ deps += [ "//services/screen_ai/buildflags" ]
++ }
+
+ public_deps = [
+ ":dns_client",
+@@ -179,6 +182,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
@@ -17,7 +27,7 @@
]
allow_circular_includes_from = [
-@@ -452,9 +453,9 @@ source_set("tests") {
+@@ -447,9 +451,9 @@ source_set("tests") {
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
diff --git a/devel/gcli/Makefile b/devel/gcli/Makefile
index c8a88bd6f302..1c981d9f9394 100644
--- a/devel/gcli/Makefile
+++ b/devel/gcli/Makefile
@@ -1,5 +1,5 @@
PORTNAME= gcli
-DISTVERSION= 2.8.0
+DISTVERSION= 2.9.0
CATEGORIES= devel net
MASTER_SITES= https://herrhotzenplotz.de/gcli/releases/gcli-${DISTVERSION}/
@@ -10,7 +10,8 @@ WWW= https://herrhotzenplotz.de/gcli/
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-LIB_DEPENDS= libcurl.so:ftp/curl
+LIB_DEPENDS= libcurl.so:ftp/curl \
+ libpdjson.so:textproc/pdjson
TEST_DEPENDS= kyua:devel/kyua
USES= libtool pathfix pkgconfig ssl tar:xz
diff --git a/devel/gcli/distinfo b/devel/gcli/distinfo
index fe18a3234c8d..0eb95c0db44d 100644
--- a/devel/gcli/distinfo
+++ b/devel/gcli/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1748258074
-SHA256 (gcli-2.8.0.tar.xz) = b3ee6eb0d694f47f15a6d6e4f5adc824059e3f6836dfe95e74bd3a0cf92f05ec
-SIZE (gcli-2.8.0.tar.xz) = 373532
+TIMESTAMP = 1756285649
+SHA256 (gcli-2.9.0.tar.xz) = 3753c0180c92ef71526ab015403f19fc359d4528cfd29fefdb2dbac0e9eb757b
+SIZE (gcli-2.9.0.tar.xz) = 381808
diff --git a/devel/gcli/pkg-plist b/devel/gcli/pkg-plist
index 71dae9ba923c..bbefa0d95885 100644
--- a/devel/gcli/pkg-plist
+++ b/devel/gcli/pkg-plist
@@ -14,5 +14,6 @@ share/man/man1/gcli-releases.1.gz
share/man/man1/gcli-repos.1.gz
share/man/man1/gcli-snippets.1.gz
share/man/man1/gcli-status.1.gz
+share/man/man1/gcli-tutorial.1.gz
share/man/man1/gcli.1.gz
share/man/man5/gcli.5.gz
diff --git a/devel/generate/Makefile b/devel/generate/Makefile
index ae6ba16946d3..715495acaba3 100644
--- a/devel/generate/Makefile
+++ b/devel/generate/Makefile
@@ -1,7 +1,7 @@
PORTNAME= generate
-DISTVERSION= 3.0
+DISTVERSION= 3.1
CATEGORIES= devel
-MASTER_SITES= http://www.druid.net/darcy/
+MASTER_SITES= https://www.druid.net/darcy/
MAINTAINER= darcy@druid.net
COMMENT= Simple text pre-processor
@@ -16,13 +16,12 @@ USES= gmake tar:tgz
MAKE_ARGS= BINDIR=${STAGEDIR}${PREFIX}/bin \
MANDIR=${STAGEDIR}${PREFIX}/share/man
+TEST_TARGET= test
CONFLICTS_INSTALL= julius php*-pear-Text_Highlighter
PLIST_FILES= bin/generate bin/rgenerate share/man/man1/generate.1.gz
-TEST_TARGET= test
-
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/*
diff --git a/devel/generate/distinfo b/devel/generate/distinfo
index 2e89e0ec6902..62e4ba1ef1bf 100644
--- a/devel/generate/distinfo
+++ b/devel/generate/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1735396348
-SHA256 (generate-3.0.tgz) = c680e6285af499aaaa2e1c9531a4974dea612ea20b52b49751b7a99ea04798d5
-SIZE (generate-3.0.tgz) = 35167
+TIMESTAMP = 1756470000
+SHA256 (generate-3.1.tgz) = 979f068b52760dfdc1ab63e345b2da0ba4d2be53c1d8df26bc9f3c53880fc48d
+SIZE (generate-3.1.tgz) = 34342
diff --git a/devel/generate/files/patch-generate.c b/devel/generate/files/patch-generate.c
deleted file mode 100644
index 0176994c0f8d..000000000000
--- a/devel/generate/files/patch-generate.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- generate.c.orig 2025-01-16 13:10:40 UTC
-+++ generate.c
-@@ -151,7 +151,7 @@ fatal(const char *s,...)
- {
- va_list argptr;
-
-- if (infile) fprintf(stderr, "generate: file %s line %ld: ", infile->name, infile->xline);
-+ if (infile) fprintf(stderr, "generate: file %s line %zu: ", infile->name, infile->xline);
- else fprintf(stderr, "generate: ");
-
- va_start(argptr, s);
diff --git a/devel/gitaly/distinfo b/devel/gitaly/distinfo
index 6e93494c9aaf..8549dcb6f367 100644
--- a/devel/gitaly/distinfo
+++ b/devel/gitaly/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1755673952
-SHA256 (go/devel_gitaly/gitaly-v18.3.0/go.mod) = 163e0c24ae7263540250f58c84b9a0197cf6be768dab99b21dd463cc1a4659bc
-SIZE (go/devel_gitaly/gitaly-v18.3.0/go.mod) = 13011
-SHA256 (go/devel_gitaly/gitaly-v18.3.0/gitaly-v18.3.0.tar.bz2) = 4557995d57d16f2f01590f3c88b1811baf1045da47d4cba962da227a38277a45
-SIZE (go/devel_gitaly/gitaly-v18.3.0/gitaly-v18.3.0.tar.bz2) = 4558072
-SHA256 (go/devel_gitaly/gitaly-v18.3.0/git-v2.50.0.tar.bz2) = 33e44c038ae6b3ff526e6927c2c6ff1658fd7f3c7334b079c019fa08f8ab20e4
-SIZE (go/devel_gitaly/gitaly-v18.3.0/git-v2.50.0.tar.bz2) = 9249878
+TIMESTAMP = 1756438000
+SHA256 (go/devel_gitaly/gitaly-v18.3.1/go.mod) = 163e0c24ae7263540250f58c84b9a0197cf6be768dab99b21dd463cc1a4659bc
+SIZE (go/devel_gitaly/gitaly-v18.3.1/go.mod) = 13011
+SHA256 (go/devel_gitaly/gitaly-v18.3.1/gitaly-v18.3.1.tar.bz2) = 657b5405665f2e9112e251edde1c0db4da1f871ec53611f30bf6353c922cf6f4
+SIZE (go/devel_gitaly/gitaly-v18.3.1/gitaly-v18.3.1.tar.bz2) = 4558216
+SHA256 (go/devel_gitaly/gitaly-v18.3.1/git-v2.50.0.tar.bz2) = 33e44c038ae6b3ff526e6927c2c6ff1658fd7f3c7334b079c019fa08f8ab20e4
+SIZE (go/devel_gitaly/gitaly-v18.3.1/git-v2.50.0.tar.bz2) = 9249878
diff --git a/devel/gitlab-runner/Makefile b/devel/gitlab-runner/Makefile
index 5ea4cda9cfaf..042805f9c506 100644
--- a/devel/gitlab-runner/Makefile
+++ b/devel/gitlab-runner/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gitlab-runner
DISTVERSIONPREFIX= v
-DISTVERSION= 18.2.2
+DISTVERSION= 18.3.0
CATEGORIES= devel
MASTER_SITES= https://gitlab-runner-downloads.s3.amazonaws.com/master/docker/:dockerx64 \
https://gitlab-runner-downloads.s3.amazonaws.com/master/docker/:dockerarm
@@ -29,9 +29,9 @@ USE_GITLAB= yes
GL_ACCOUNT= gitlab-org
USE_RC_SUBR= gitlab_runner
# this branch removes the replace line in go.mod which breaks the way FreeBSD ports build go packages
-GO_MOD_DIST= https://gitlab.com/mfechner/gitlab-runner/-/raw/18-2-stable/
+GO_MOD_DIST= https://gitlab.com/mfechner/gitlab-runner/-/raw/18-3-stable/
-GITBRANCH= 18-2-stable
+GITBRANCH= 18-3-stable
GO_MODULE= gitlab.com/gitlab-org/gitlab-runner
_BUILD_DATE= $$(date -u +%Y-%m-%dT%H:%M:%S%z)
diff --git a/devel/gitlab-runner/distinfo b/devel/gitlab-runner/distinfo
index b9a59f0ad48f..9cc98de30f53 100644
--- a/devel/gitlab-runner/distinfo
+++ b/devel/gitlab-runner/distinfo
@@ -1,9 +1,9 @@
-TIMESTAMP = 1755749954
-SHA256 (go/devel_gitlab-runner/gitlab-runner-v18.2.2/prebuilt-x86_64.tar.xz) = b0dccc53f415962dde3f5a7e6f1ab068b8da5484a7fefdae2c5e39d8bb6c637e
-SIZE (go/devel_gitlab-runner/gitlab-runner-v18.2.2/prebuilt-x86_64.tar.xz) = 9594352
-SHA256 (go/devel_gitlab-runner/gitlab-runner-v18.2.2/prebuilt-arm.tar.xz) = 5018c6b661ebf4b9c661593548e45394c553bbd4082b5ef744a39a1f7f1fee32
-SIZE (go/devel_gitlab-runner/gitlab-runner-v18.2.2/prebuilt-arm.tar.xz) = 9020896
-SHA256 (go/devel_gitlab-runner/gitlab-runner-v18.2.2/go.mod) = 1d006ca94bdd6145995852d8890266423bf25abb6a00be2eb50a037e9d7e9f66
-SIZE (go/devel_gitlab-runner/gitlab-runner-v18.2.2/go.mod) = 13424
-SHA256 (go/devel_gitlab-runner/gitlab-runner-v18.2.2/gitlab-runner-v18.2.2.tar.bz2) = 4ab991cc629b5b623fc696b62fa3cad09d23eba369920f45e8b536f9af1c4dd9
-SIZE (go/devel_gitlab-runner/gitlab-runner-v18.2.2/gitlab-runner-v18.2.2.tar.bz2) = 1962570
+TIMESTAMP = 1756440493
+SHA256 (go/devel_gitlab-runner/gitlab-runner-v18.3.0/prebuilt-x86_64.tar.xz) = b0dccc53f415962dde3f5a7e6f1ab068b8da5484a7fefdae2c5e39d8bb6c637e
+SIZE (go/devel_gitlab-runner/gitlab-runner-v18.3.0/prebuilt-x86_64.tar.xz) = 9594352
+SHA256 (go/devel_gitlab-runner/gitlab-runner-v18.3.0/prebuilt-arm.tar.xz) = 5018c6b661ebf4b9c661593548e45394c553bbd4082b5ef744a39a1f7f1fee32
+SIZE (go/devel_gitlab-runner/gitlab-runner-v18.3.0/prebuilt-arm.tar.xz) = 9020896
+SHA256 (go/devel_gitlab-runner/gitlab-runner-v18.3.0/go.mod) = 7b21298f756a14279964a1892eb446566af6349c650dd6ed35c09a6b57e55ba2
+SIZE (go/devel_gitlab-runner/gitlab-runner-v18.3.0/go.mod) = 13412
+SHA256 (go/devel_gitlab-runner/gitlab-runner-v18.3.0/gitlab-runner-v18.3.0.tar.bz2) = 32e64beaedfa575e42144341ec38a073f5178ac37a747a0bd3e93fc971b50d6e
+SIZE (go/devel_gitlab-runner/gitlab-runner-v18.3.0/gitlab-runner-v18.3.0.tar.bz2) = 2018932
diff --git a/devel/ninja/Makefile b/devel/ninja/Makefile
index 27d411e3bad9..931e9b910a68 100644
--- a/devel/ninja/Makefile
+++ b/devel/ninja/Makefile
@@ -1,5 +1,5 @@
PORTNAME= ninja
-PORTVERSION= 1.11.1
+PORTVERSION= 1.13.1
DISTVERSIONPREFIX= v
PORTEPOCH= 4
CATEGORIES= devel
diff --git a/devel/ninja/distinfo b/devel/ninja/distinfo
index c9fcd675c558..60e7d21f0fd6 100644
--- a/devel/ninja/distinfo
+++ b/devel/ninja/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1716360440
-SHA256 (ninja-build-ninja-v1.11.1_GH0.tar.gz) = 31747ae633213f1eda3842686f83c2aa1412e0f5691d1c14dbbcc67fe7400cea
-SIZE (ninja-build-ninja-v1.11.1_GH0.tar.gz) = 229479
+TIMESTAMP = 1755246529
+SHA256 (ninja-build-ninja-v1.13.1_GH0.tar.gz) = f0055ad0369bf2e372955ba55128d000cfcc21777057806015b45e4accbebf23
+SIZE (ninja-build-ninja-v1.13.1_GH0.tar.gz) = 292098
diff --git a/devel/php-composer/Makefile b/devel/php-composer/Makefile
index af89665e5deb..0e97f64dd4f5 100644
--- a/devel/php-composer/Makefile
+++ b/devel/php-composer/Makefile
@@ -1,5 +1,5 @@
PORTNAME= composer
-DISTVERSION= 2.8.10
+DISTVERSION= 2.8.11
CATEGORIES= devel
MASTER_SITES= https://getcomposer.org/download/${DISTVERSION}/
PKGNAMEPREFIX= ${PHP_PKGNAMEPREFIX}
diff --git a/devel/php-composer/distinfo b/devel/php-composer/distinfo
index 52690f8d36f0..dd927eafe272 100644
--- a/devel/php-composer/distinfo
+++ b/devel/php-composer/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1752263341
-SHA256 (composer-2.8.10/composer.phar) = 28dbb6bd8bef31479c7985b774c130a8bda37dbe63c35b56f6cb6bc377427573
-SIZE (composer-2.8.10/composer.phar) = 3116618
+TIMESTAMP = 1755779107
+SHA256 (composer-2.8.11/composer.phar) = 257a969e9a9d27e0e45cfe954835c17a76033ba84a388e0f472db83eded65a8b
+SIZE (composer-2.8.11/composer.phar) = 3124368
diff --git a/devel/qtcreator/Makefile b/devel/qtcreator/Makefile
index 4bae7886bc37..fa4787a862cc 100644
--- a/devel/qtcreator/Makefile
+++ b/devel/qtcreator/Makefile
@@ -1,5 +1,5 @@
PORTNAME= qtcreator
-DISTVERSION= 17.0.0
+DISTVERSION= 17.0.1
CATEGORIES= devel
MASTER_SITES= QT/official_releases/qtcreator/${DISTVERSION:R}/${DISTVERSION}
DISTNAME= qt-creator-opensource-src-${DISTVERSION}
diff --git a/devel/qtcreator/distinfo b/devel/qtcreator/distinfo
index 3866cbc27ec6..faa8c3de886f 100644
--- a/devel/qtcreator/distinfo
+++ b/devel/qtcreator/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755911848
-SHA256 (KDE/Qt/qtcreator/qt-creator-opensource-src-17.0.0.tar.xz) = 616dfea43a6162bc1a8ccf440e1df6a74b977fcb028d76b7c779a1fb8de39e8c
-SIZE (KDE/Qt/qtcreator/qt-creator-opensource-src-17.0.0.tar.xz) = 55713368
+TIMESTAMP = 1756405815
+SHA256 (KDE/Qt/qtcreator/qt-creator-opensource-src-17.0.1.tar.xz) = f5671808476707391a9a2edb9963ea4a6b6b90c78cbe74ece1aca0c6b42e5184
+SIZE (KDE/Qt/qtcreator/qt-creator-opensource-src-17.0.1.tar.xz) = 55741344
diff --git a/devel/qtcreator/pkg-plist b/devel/qtcreator/pkg-plist
index ed106e08f706..164071d4637d 100644
--- a/devel/qtcreator/pkg-plist
+++ b/devel/qtcreator/pkg-plist
@@ -188,6 +188,7 @@ share/metainfo/org.qt-project.qtcreator.appdata.xml
%%DATADIR%%/changelog/changes-16.0.1.md
%%DATADIR%%/changelog/changes-16.0.2.md
%%DATADIR%%/changelog/changes-17.0.0.md
+%%DATADIR%%/changelog/changes-17.0.1.md
%%DATADIR%%/changelog/changes-2.0.0
%%DATADIR%%/changelog/changes-2.0.1
%%DATADIR%%/changelog/changes-2.1.0
diff --git a/devel/ruby-build/Makefile b/devel/ruby-build/Makefile
index f7c73e58b8c0..f7a82fda889a 100644
--- a/devel/ruby-build/Makefile
+++ b/devel/ruby-build/Makefile
@@ -1,5 +1,5 @@
PORTNAME= ruby-build
-PORTVERSION= 20250811
+PORTVERSION= 20250829
DISTVERSIONPREFIX= v
CATEGORIES= devel ruby
diff --git a/devel/ruby-build/distinfo b/devel/ruby-build/distinfo
index a7a044ffdf3a..f33aa6517cd4 100644
--- a/devel/ruby-build/distinfo
+++ b/devel/ruby-build/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1754924450
-SHA256 (rbenv-ruby-build-v20250811_GH0.tar.gz) = 2f53eeb2c353be7b0e34fe10380552d16053242cd5f661b34ae62f0a80e5338b
-SIZE (rbenv-ruby-build-v20250811_GH0.tar.gz) = 97574
+TIMESTAMP = 1756428332
+SHA256 (rbenv-ruby-build-v20250829_GH0.tar.gz) = 8dafe0a69151592385c7114023e6cf5423022479f9054435df2d19ed6b42bff7
+SIZE (rbenv-ruby-build-v20250829_GH0.tar.gz) = 98022
diff --git a/devel/wasi-compiler-rt21/Makefile b/devel/wasi-compiler-rt21/Makefile
new file mode 100644
index 000000000000..ae90a63d04cf
--- /dev/null
+++ b/devel/wasi-compiler-rt21/Makefile
@@ -0,0 +1,6 @@
+# must sync with devel/llvm21
+DISTVERSION= 21.1.0
+
+MASTERDIR= ${.CURDIR}/../wasi-compiler-rt
+
+.include "${MASTERDIR}/Makefile"
diff --git a/devel/wasi-libc/Makefile b/devel/wasi-libc/Makefile
index 171eb65eb1cc..b4ab9d593d75 100644
--- a/devel/wasi-libc/Makefile
+++ b/devel/wasi-libc/Makefile
@@ -1,7 +1,6 @@
PORTNAME= wasi-libc
DISTVERSIONPREFIX= wasi-sdk-
-DISTVERSION= 25-14
-DISTVERSIONSUFFIX= -ge9524a0
+DISTVERSION= 27
CATEGORIES= devel
PKGNAMESUFFIX= ${FLAVOR}
@@ -19,7 +18,7 @@ LICENSE_PERMS_LLVM2= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
BUILD_DEPENDS= bash:shells/bash
-FLAVORS= 19 20 18 17
+FLAVORS= 19 20 21 18 17
FLAVOR?= ${FLAVORS:[1]}
USES= gmake llvm:${FLAVOR}
diff --git a/devel/wasi-libc/distinfo b/devel/wasi-libc/distinfo
index 770e99bd34d9..0adb12b4e1ce 100644
--- a/devel/wasi-libc/distinfo
+++ b/devel/wasi-libc/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1743009354
-SHA256 (WebAssembly-wasi-libc-wasi-sdk-25-14-ge9524a0_GH0.tar.gz) = 2a547e2177cea793ceda2fbbbdf6c102155c70e717f63ab9d832a85d4d1753ef
-SIZE (WebAssembly-wasi-libc-wasi-sdk-25-14-ge9524a0_GH0.tar.gz) = 1444692
+TIMESTAMP = 1756309454
+SHA256 (WebAssembly-wasi-libc-wasi-sdk-27_GH0.tar.gz) = 00850da0742670d5ad7fd556bf7bc5452512bac79f17ac76d5cfaa3b74526898
+SIZE (WebAssembly-wasi-libc-wasi-sdk-27_GH0.tar.gz) = 1472362
SHA256 (WebAssembly-WASI-59cbe14_GH0.tar.gz) = 4e36c4add2421b44ccdded83d442d9aadf02ffa8b534d94016fad2bb7b781cc6
SIZE (WebAssembly-WASI-59cbe14_GH0.tar.gz) = 162059
diff --git a/devel/wasi-libc/files/llvm21/__stdarg___gnuc_va_list.h b/devel/wasi-libc/files/llvm21/__stdarg___gnuc_va_list.h
new file mode 100644
index 000000000000..2a0a7e8cc6c0
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stdarg___gnuc_va_list.h
@@ -0,0 +1,13 @@
+/*===---- __stdarg___gnuc_va_list.h - Definition of __gnuc_va_list ---------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __GNUC_VA_LIST
+#define __GNUC_VA_LIST
+typedef __builtin_va_list __gnuc_va_list;
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stdarg___va_copy.h b/devel/wasi-libc/files/llvm21/__stdarg___va_copy.h
new file mode 100644
index 000000000000..e433e18a7082
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stdarg___va_copy.h
@@ -0,0 +1,12 @@
+/*===---- __stdarg___va_copy.h - Definition of __va_copy -------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __va_copy
+#define __va_copy(d, s) __builtin_va_copy(d, s)
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stdarg_header_macro.h b/devel/wasi-libc/files/llvm21/__stdarg_header_macro.h
new file mode 100644
index 000000000000..beb92ee02526
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stdarg_header_macro.h
@@ -0,0 +1,12 @@
+/*===---- __stdarg_header_macro.h ------------------------------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __STDARG_H
+#define __STDARG_H
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stdarg_va_arg.h b/devel/wasi-libc/files/llvm21/__stdarg_va_arg.h
new file mode 100644
index 000000000000..ebdb6f9d4b1e
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stdarg_va_arg.h
@@ -0,0 +1,22 @@
+/*===---- __stdarg_va_arg.h - Definitions of va_start, va_arg, va_end-------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef va_arg
+
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
+/* C23 uses a special builtin. */
+#define va_start(...) __builtin_c23_va_start(__VA_ARGS__)
+#else
+/* Versions before C23 do require the second parameter. */
+#define va_start(ap, param) __builtin_va_start(ap, param)
+#endif
+#define va_end(ap) __builtin_va_end(ap)
+#define va_arg(ap, type) __builtin_va_arg(ap, type)
+
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stdarg_va_copy.h b/devel/wasi-libc/files/llvm21/__stdarg_va_copy.h
new file mode 100644
index 000000000000..8645328c2c68
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stdarg_va_copy.h
@@ -0,0 +1,12 @@
+/*===---- __stdarg_va_copy.h - Definition of va_copy------------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef va_copy
+#define va_copy(dest, src) __builtin_va_copy(dest, src)
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stdarg_va_list.h b/devel/wasi-libc/files/llvm21/__stdarg_va_list.h
new file mode 100644
index 000000000000..20c2e2cad940
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stdarg_va_list.h
@@ -0,0 +1,13 @@
+/*===---- __stdarg_va_list.h - Definition of va_list -----------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef _VA_LIST
+#define _VA_LIST
+typedef __builtin_va_list va_list;
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stddef_header_macro.h b/devel/wasi-libc/files/llvm21/__stddef_header_macro.h
new file mode 100644
index 000000000000..db5fb3c0abc1
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stddef_header_macro.h
@@ -0,0 +1,12 @@
+/*===---- __stddef_header_macro.h ------------------------------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __STDDEF_H
+#define __STDDEF_H
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stddef_max_align_t.h b/devel/wasi-libc/files/llvm21/__stddef_max_align_t.h
new file mode 100644
index 000000000000..512606a87728
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stddef_max_align_t.h
@@ -0,0 +1,27 @@
+/*===---- __stddef_max_align_t.h - Definition of max_align_t ---------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __CLANG_MAX_ALIGN_T_DEFINED
+#define __CLANG_MAX_ALIGN_T_DEFINED
+
+#if defined(_MSC_VER)
+typedef double max_align_t;
+#elif defined(__APPLE__)
+typedef long double max_align_t;
+#else
+// Define 'max_align_t' to match the GCC definition.
+typedef struct {
+ long long __clang_max_align_nonce1
+ __attribute__((__aligned__(__alignof__(long long))));
+ long double __clang_max_align_nonce2
+ __attribute__((__aligned__(__alignof__(long double))));
+} max_align_t;
+#endif
+
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stddef_null.h b/devel/wasi-libc/files/llvm21/__stddef_null.h
new file mode 100644
index 000000000000..c10bd2d7d988
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stddef_null.h
@@ -0,0 +1,29 @@
+/*===---- __stddef_null.h - Definition of NULL -----------------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#if !defined(NULL) || !__building_module(_Builtin_stddef)
+
+/* linux/stddef.h will define NULL to 0. glibc (and other) headers then define
+ * __need_NULL and rely on stddef.h to redefine NULL to the correct value again.
+ * Modules don't support redefining macros like that, but support that pattern
+ * in the non-modules case.
+ */
+#undef NULL
+
+#ifdef __cplusplus
+#if !defined(__MINGW32__) && !defined(_MSC_VER)
+#define NULL __null
+#else
+#define NULL 0
+#endif
+#else
+#define NULL ((void*)0)
+#endif
+
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stddef_nullptr_t.h b/devel/wasi-libc/files/llvm21/__stddef_nullptr_t.h
new file mode 100644
index 000000000000..7f3fbe6fe0d3
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stddef_nullptr_t.h
@@ -0,0 +1,29 @@
+/*===---- __stddef_nullptr_t.h - Definition of nullptr_t -------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+/*
+ * When -fbuiltin-headers-in-system-modules is set this is a non-modular header
+ * and needs to behave as if it was textual.
+ */
+#if !defined(_NULLPTR_T) || \
+ (__has_feature(modules) && !__building_module(_Builtin_stddef))
+#define _NULLPTR_T
+
+#ifdef __cplusplus
+#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED)
+namespace std {
+typedef decltype(nullptr) nullptr_t;
+}
+using ::std::nullptr_t;
+#endif
+#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
+typedef typeof(nullptr) nullptr_t;
+#endif
+
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stddef_offsetof.h b/devel/wasi-libc/files/llvm21/__stddef_offsetof.h
new file mode 100644
index 000000000000..84172c6cd273
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stddef_offsetof.h
@@ -0,0 +1,17 @@
+/*===---- __stddef_offsetof.h - Definition of offsetof ---------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+/*
+ * When -fbuiltin-headers-in-system-modules is set this is a non-modular header
+ * and needs to behave as if it was textual.
+ */
+#if !defined(offsetof) || \
+ (__has_feature(modules) && !__building_module(_Builtin_stddef))
+#define offsetof(t, d) __builtin_offsetof(t, d)
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stddef_ptrdiff_t.h b/devel/wasi-libc/files/llvm21/__stddef_ptrdiff_t.h
new file mode 100644
index 000000000000..fd3c893c66c9
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stddef_ptrdiff_t.h
@@ -0,0 +1,20 @@
+/*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+/*
+ * When -fbuiltin-headers-in-system-modules is set this is a non-modular header
+ * and needs to behave as if it was textual.
+ */
+#if !defined(_PTRDIFF_T) || \
+ (__has_feature(modules) && !__building_module(_Builtin_stddef))
+#define _PTRDIFF_T
+
+typedef __PTRDIFF_TYPE__ ptrdiff_t;
+
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stddef_rsize_t.h b/devel/wasi-libc/files/llvm21/__stddef_rsize_t.h
new file mode 100644
index 000000000000..dd433d40d973
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stddef_rsize_t.h
@@ -0,0 +1,20 @@
+/*===---- __stddef_rsize_t.h - Definition of rsize_t -----------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+/*
+ * When -fbuiltin-headers-in-system-modules is set this is a non-modular header
+ * and needs to behave as if it was textual.
+ */
+#if !defined(_RSIZE_T) || \
+ (__has_feature(modules) && !__building_module(_Builtin_stddef))
+#define _RSIZE_T
+
+typedef __SIZE_TYPE__ rsize_t;
+
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stddef_size_t.h b/devel/wasi-libc/files/llvm21/__stddef_size_t.h
new file mode 100644
index 000000000000..3dd7b1f37929
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stddef_size_t.h
@@ -0,0 +1,20 @@
+/*===---- __stddef_size_t.h - Definition of size_t -------------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+/*
+ * When -fbuiltin-headers-in-system-modules is set this is a non-modular header
+ * and needs to behave as if it was textual.
+ */
+#if !defined(_SIZE_T) || \
+ (__has_feature(modules) && !__building_module(_Builtin_stddef))
+#define _SIZE_T
+
+typedef __SIZE_TYPE__ size_t;
+
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stddef_unreachable.h b/devel/wasi-libc/files/llvm21/__stddef_unreachable.h
new file mode 100644
index 000000000000..61df43e9732f
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stddef_unreachable.h
@@ -0,0 +1,21 @@
+/*===---- __stddef_unreachable.h - Definition of unreachable ---------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __cplusplus
+
+/*
+ * When -fbuiltin-headers-in-system-modules is set this is a non-modular header
+ * and needs to behave as if it was textual.
+ */
+#if !defined(unreachable) || \
+ (__has_feature(modules) && !__building_module(_Builtin_stddef))
+#define unreachable() __builtin_unreachable()
+#endif
+
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stddef_wchar_t.h b/devel/wasi-libc/files/llvm21/__stddef_wchar_t.h
new file mode 100644
index 000000000000..bd69f6322541
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stddef_wchar_t.h
@@ -0,0 +1,28 @@
+/*===---- __stddef_wchar.h - Definition of wchar_t -------------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED)
+
+/*
+ * When -fbuiltin-headers-in-system-modules is set this is a non-modular header
+ * and needs to behave as if it was textual.
+ */
+#if !defined(_WCHAR_T) || \
+ (__has_feature(modules) && !__building_module(_Builtin_stddef))
+#define _WCHAR_T
+
+#ifdef _MSC_EXTENSIONS
+#define _WCHAR_T_DEFINED
+#endif
+
+typedef __WCHAR_TYPE__ wchar_t;
+
+#endif
+
+#endif
diff --git a/devel/wasi-libc/files/llvm21/__stddef_wint_t.h b/devel/wasi-libc/files/llvm21/__stddef_wint_t.h
new file mode 100644
index 000000000000..0aa291507957
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/__stddef_wint_t.h
@@ -0,0 +1,15 @@
+/*===---- __stddef_wint.h - Definition of wint_t ---------------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef _WINT_T
+#define _WINT_T
+
+typedef __WINT_TYPE__ wint_t;
+
+#endif
diff --git a/devel/wasi-libc/files/llvm21/stdarg.h b/devel/wasi-libc/files/llvm21/stdarg.h
new file mode 100644
index 000000000000..6203d7a600a2
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/stdarg.h
@@ -0,0 +1,75 @@
+/*===---- stdarg.h - Variable argument handling ----------------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+/*
+ * This header is designed to be included multiple times. If any of the __need_
+ * macros are defined, then only that subset of interfaces are provided. This
+ * can be useful for POSIX headers that need to not expose all of stdarg.h, but
+ * need to use some of its interfaces. Otherwise this header provides all of
+ * the expected interfaces.
+ *
+ * When clang modules are enabled, this header is a textual header to support
+ * the multiple include behavior. As such, it doesn't directly declare anything
+ * so that it doesn't add duplicate declarations to all of its includers'
+ * modules.
+ */
+#if defined(__MVS__) && __has_include_next(<stdarg.h>)
+#undef __need___va_list
+#undef __need_va_list
+#undef __need_va_arg
+#undef __need___va_copy
+#undef __need_va_copy
+#include <__stdarg_header_macro.h>
+#include_next <stdarg.h>
+
+#else
+#if !defined(__need___va_list) && !defined(__need_va_list) && \
+ !defined(__need_va_arg) && !defined(__need___va_copy) && \
+ !defined(__need_va_copy)
+#define __need___va_list
+#define __need_va_list
+#define __need_va_arg
+#define __need___va_copy
+/* GCC always defines __va_copy, but does not define va_copy unless in c99 mode
+ * or -ansi is not specified, since it was not part of C90.
+ */
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
+ (defined(__cplusplus) && __cplusplus >= 201103L) || \
+ !defined(__STRICT_ANSI__)
+#define __need_va_copy
+#endif
+#include <__stdarg_header_macro.h>
+#endif
+
+#ifdef __need___va_list
+#include <__stdarg___gnuc_va_list.h>
+#undef __need___va_list
+#endif /* defined(__need___va_list) */
+
+#ifdef __need_va_list
+#include <__stdarg_va_list.h>
+#undef __need_va_list
+#endif /* defined(__need_va_list) */
+
+#ifdef __need_va_arg
+#include <__stdarg_va_arg.h>
+#undef __need_va_arg
+#endif /* defined(__need_va_arg) */
+
+#ifdef __need___va_copy
+#include <__stdarg___va_copy.h>
+#undef __need___va_copy
+#endif /* defined(__need___va_copy) */
+
+#ifdef __need_va_copy
+#include <__stdarg_va_copy.h>
+#undef __need_va_copy
+#endif /* defined(__need_va_copy) */
+
+#endif /* __MVS__ */
diff --git a/devel/wasi-libc/files/llvm21/stddef.h b/devel/wasi-libc/files/llvm21/stddef.h
new file mode 100644
index 000000000000..99b275aebf5a
--- /dev/null
+++ b/devel/wasi-libc/files/llvm21/stddef.h
@@ -0,0 +1,139 @@
+/*===---- stddef.h - Basic type definitions --------------------------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+/*
+ * This header is designed to be included multiple times. If any of the __need_
+ * macros are defined, then only that subset of interfaces are provided. This
+ * can be useful for POSIX headers that need to not expose all of stddef.h, but
+ * need to use some of its interfaces. Otherwise this header provides all of
+ * the expected interfaces.
+ *
+ * When clang modules are enabled, this header is a textual header to support
+ * the multiple include behavior. As such, it doesn't directly declare anything
+ * so that it doesn't add duplicate declarations to all of its includers'
+ * modules.
+ */
+#if defined(__MVS__) && __has_include_next(<stddef.h>)
+#undef __need_ptrdiff_t
+#undef __need_size_t
+#undef __need_rsize_t
+#undef __need_wchar_t
+#undef __need_NULL
+#undef __need_nullptr_t
+#undef __need_unreachable
+#undef __need_max_align_t
+#undef __need_offsetof
+#undef __need_wint_t
+#include <__stddef_header_macro.h>
+#include_next <stddef.h>
+
+#else
+
+#if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \
+ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \
+ !defined(__need_NULL) && !defined(__need_nullptr_t) && \
+ !defined(__need_unreachable) && !defined(__need_max_align_t) && \
+ !defined(__need_offsetof) && !defined(__need_wint_t)
+#define __need_ptrdiff_t
+#define __need_size_t
+/* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is
+ * enabled. */
+#if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1
+#define __need_rsize_t
+#endif
+#define __need_wchar_t
+#if !defined(__STDDEF_H) || __has_feature(modules)
+/*
+ * __stddef_null.h is special when building without modules: if __need_NULL is
+ * set, then it will unconditionally redefine NULL. To avoid stepping on client
+ * definitions of NULL, __need_NULL should only be set the first time this
+ * header is included, that is when __STDDEF_H is not defined. However, when
+ * building with modules, this header is a textual header and needs to
+ * unconditionally include __stdef_null.h to support multiple submodules
+ * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose
+ * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined.
+ * When SM.B builds, the definition from SM.A will leak when building without
+ * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and
+ * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't
+ * export NULL as expected. When building with modules, always include
+ * __stddef_null.h so that everything works as expected.
+ */
+#define __need_NULL
+#endif
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \
+ defined(__cplusplus)
+#define __need_nullptr_t
+#endif
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
+#define __need_unreachable
+#endif
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
+ (defined(__cplusplus) && __cplusplus >= 201103L)
+#define __need_max_align_t
+#endif
+#define __need_offsetof
+/* wint_t is provided by <wchar.h> and not <stddef.h>. It's here
+ * for compatibility, but must be explicitly requested. Therefore
+ * __need_wint_t is intentionally not defined here. */
+#include <__stddef_header_macro.h>
+#endif
+
+#if defined(__need_ptrdiff_t)
+#include <__stddef_ptrdiff_t.h>
+#undef __need_ptrdiff_t
+#endif /* defined(__need_ptrdiff_t) */
+
+#if defined(__need_size_t)
+#include <__stddef_size_t.h>
+#undef __need_size_t
+#endif /*defined(__need_size_t) */
+
+#if defined(__need_rsize_t)
+#include <__stddef_rsize_t.h>
+#undef __need_rsize_t
+#endif /* defined(__need_rsize_t) */
+
+#if defined(__need_wchar_t)
+#include <__stddef_wchar_t.h>
+#undef __need_wchar_t
+#endif /* defined(__need_wchar_t) */
+
+#if defined(__need_NULL)
+#include <__stddef_null.h>
+#undef __need_NULL
+#endif /* defined(__need_NULL) */
+
+#if defined(__need_nullptr_t)
+#include <__stddef_nullptr_t.h>
+#undef __need_nullptr_t
+#endif /* defined(__need_nullptr_t) */
+
+#if defined(__need_unreachable)
+#include <__stddef_unreachable.h>
+#undef __need_unreachable
+#endif /* defined(__need_unreachable) */
+
+#if defined(__need_max_align_t)
+#include <__stddef_max_align_t.h>
+#undef __need_max_align_t
+#endif /* defined(__need_max_align_t) */
+
+#if defined(__need_offsetof)
+#include <__stddef_offsetof.h>
+#undef __need_offsetof
+#endif /* defined(__need_offsetof) */
+
+/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use
+__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */
+#if defined(__need_wint_t)
+#include <__stddef_wint_t.h>
+#undef __need_wint_t
+#endif /* __need_wint_t */
+
+#endif /* __MVS__ */
diff --git a/devel/wasi-libc/pkg-plist17 b/devel/wasi-libc/pkg-plist17
index 3081c285f23d..e5f511396f74 100644
--- a/devel/wasi-libc/pkg-plist17
+++ b/devel/wasi-libc/pkg-plist17
@@ -197,6 +197,7 @@ share/wasi-sysroot/include/wasm32-wasi/unistd.h
share/wasi-sysroot/include/wasm32-wasi/utime.h
share/wasi-sysroot/include/wasm32-wasi/values.h
share/wasi-sysroot/include/wasm32-wasi/wasi/api.h
+share/wasi-sysroot/include/wasm32-wasi/wasi/libc-busywait.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-environ.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-find-relpath.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-nocwd.h
@@ -222,7 +223,6 @@ share/wasi-sysroot/lib/wasm32-wasi/libutil.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-getpid.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-mman.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-process-clocks.a
-share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-pthread.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-signal.a
share/wasi-sysroot/lib/wasm32-wasi/libxnet.a
share/wasi-sysroot/share/wasm32-wasi/defined-symbols.txt
diff --git a/devel/wasi-libc/pkg-plist18 b/devel/wasi-libc/pkg-plist18
index de08ff484d88..d0cf795762ad 100644
--- a/devel/wasi-libc/pkg-plist18
+++ b/devel/wasi-libc/pkg-plist18
@@ -211,6 +211,7 @@ share/wasi-sysroot/include/wasm32-wasi/unistd.h
share/wasi-sysroot/include/wasm32-wasi/utime.h
share/wasi-sysroot/include/wasm32-wasi/values.h
share/wasi-sysroot/include/wasm32-wasi/wasi/api.h
+share/wasi-sysroot/include/wasm32-wasi/wasi/libc-busywait.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-environ.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-find-relpath.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-nocwd.h
@@ -236,7 +237,6 @@ share/wasi-sysroot/lib/wasm32-wasi/libutil.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-getpid.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-mman.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-process-clocks.a
-share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-pthread.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-signal.a
share/wasi-sysroot/lib/wasm32-wasi/libxnet.a
share/wasi-sysroot/share/wasm32-wasi/defined-symbols.txt
diff --git a/devel/wasi-libc/pkg-plist19 b/devel/wasi-libc/pkg-plist19
index f0b2808b051d..a41ba16fa7c8 100644
--- a/devel/wasi-libc/pkg-plist19
+++ b/devel/wasi-libc/pkg-plist19
@@ -213,6 +213,7 @@ share/wasi-sysroot/include/wasm32-wasi/unistd.h
share/wasi-sysroot/include/wasm32-wasi/utime.h
share/wasi-sysroot/include/wasm32-wasi/values.h
share/wasi-sysroot/include/wasm32-wasi/wasi/api.h
+share/wasi-sysroot/include/wasm32-wasi/wasi/libc-busywait.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-environ.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-find-relpath.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-nocwd.h
@@ -238,7 +239,6 @@ share/wasi-sysroot/lib/wasm32-wasi/libutil.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-getpid.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-mman.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-process-clocks.a
-share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-pthread.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-signal.a
share/wasi-sysroot/lib/wasm32-wasi/libxnet.a
share/wasi-sysroot/share/wasm32-wasi/defined-symbols.txt
diff --git a/devel/wasi-libc/pkg-plist20 b/devel/wasi-libc/pkg-plist20
index f0b2808b051d..a41ba16fa7c8 100644
--- a/devel/wasi-libc/pkg-plist20
+++ b/devel/wasi-libc/pkg-plist20
@@ -213,6 +213,7 @@ share/wasi-sysroot/include/wasm32-wasi/unistd.h
share/wasi-sysroot/include/wasm32-wasi/utime.h
share/wasi-sysroot/include/wasm32-wasi/values.h
share/wasi-sysroot/include/wasm32-wasi/wasi/api.h
+share/wasi-sysroot/include/wasm32-wasi/wasi/libc-busywait.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-environ.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-find-relpath.h
share/wasi-sysroot/include/wasm32-wasi/wasi/libc-nocwd.h
@@ -238,7 +239,6 @@ share/wasi-sysroot/lib/wasm32-wasi/libutil.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-getpid.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-mman.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-process-clocks.a
-share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-pthread.a
share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-signal.a
share/wasi-sysroot/lib/wasm32-wasi/libxnet.a
share/wasi-sysroot/share/wasm32-wasi/defined-symbols.txt
diff --git a/devel/wasi-libc/pkg-plist21 b/devel/wasi-libc/pkg-plist21
new file mode 100644
index 000000000000..a41ba16fa7c8
--- /dev/null
+++ b/devel/wasi-libc/pkg-plist21
@@ -0,0 +1,249 @@
+share/wasi-sysroot/include/__stdarg___gnuc_va_list.h
+share/wasi-sysroot/include/__stdarg___va_copy.h
+share/wasi-sysroot/include/__stdarg_header_macro.h
+share/wasi-sysroot/include/__stdarg_va_arg.h
+share/wasi-sysroot/include/__stdarg_va_copy.h
+share/wasi-sysroot/include/__stdarg_va_list.h
+share/wasi-sysroot/include/__stddef_header_macro.h
+share/wasi-sysroot/include/__stddef_max_align_t.h
+share/wasi-sysroot/include/__stddef_null.h
+share/wasi-sysroot/include/__stddef_nullptr_t.h
+share/wasi-sysroot/include/__stddef_offsetof.h
+share/wasi-sysroot/include/__stddef_ptrdiff_t.h
+share/wasi-sysroot/include/__stddef_rsize_t.h
+share/wasi-sysroot/include/__stddef_size_t.h
+share/wasi-sysroot/include/__stddef_unreachable.h
+share/wasi-sysroot/include/__stddef_wchar_t.h
+share/wasi-sysroot/include/__stddef_wint_t.h
+share/wasi-sysroot/include/stdarg.h
+share/wasi-sysroot/include/stddef.h
+share/wasi-sysroot/include/wasm32-wasi/__errno.h
+share/wasi-sysroot/include/wasm32-wasi/__errno_values.h
+share/wasi-sysroot/include/wasm32-wasi/__fd_set.h
+share/wasi-sysroot/include/wasm32-wasi/__function___isatty.h
+share/wasi-sysroot/include/wasm32-wasi/__functions_malloc.h
+share/wasi-sysroot/include/wasm32-wasi/__functions_memcpy.h
+share/wasi-sysroot/include/wasm32-wasi/__header_dirent.h
+share/wasi-sysroot/include/wasm32-wasi/__header_fcntl.h
+share/wasi-sysroot/include/wasm32-wasi/__header_inttypes.h
+share/wasi-sysroot/include/wasm32-wasi/__header_netinet_in.h
+share/wasi-sysroot/include/wasm32-wasi/__header_poll.h
+share/wasi-sysroot/include/wasm32-wasi/__header_stdlib.h
+share/wasi-sysroot/include/wasm32-wasi/__header_string.h
+share/wasi-sysroot/include/wasm32-wasi/__header_sys_ioctl.h
+share/wasi-sysroot/include/wasm32-wasi/__header_sys_resource.h
+share/wasi-sysroot/include/wasm32-wasi/__header_sys_socket.h
+share/wasi-sysroot/include/wasm32-wasi/__header_sys_stat.h
+share/wasi-sysroot/include/wasm32-wasi/__header_time.h
+share/wasi-sysroot/include/wasm32-wasi/__header_unistd.h
+share/wasi-sysroot/include/wasm32-wasi/__macro_FD_SETSIZE.h
+share/wasi-sysroot/include/wasm32-wasi/__macro_PAGESIZE.h
+share/wasi-sysroot/include/wasm32-wasi/__mode_t.h
+share/wasi-sysroot/include/wasm32-wasi/__seek.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_dirent.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_in6_addr.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_in_addr.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_iovec.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_msghdr.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_pollfd.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_rusage.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_sockaddr.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_sockaddr_in.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_sockaddr_in6.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_sockaddr_storage.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_sockaddr_un.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_stat.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_timespec.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_timeval.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_tm.h
+share/wasi-sysroot/include/wasm32-wasi/__struct_tms.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_DIR.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_blkcnt_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_blksize_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_clock_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_clockid_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_dev_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_fd_set.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_gid_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_in_addr_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_in_port_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_ino_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_mode_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_nfds_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_nlink_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_off_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_sa_family_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_sigset_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_socklen_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_ssize_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_suseconds_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_time_t.h
+share/wasi-sysroot/include/wasm32-wasi/__typedef_uid_t.h
+share/wasi-sysroot/include/wasm32-wasi/__wasi_snapshot.h
+share/wasi-sysroot/include/wasm32-wasi/alloca.h
+share/wasi-sysroot/include/wasm32-wasi/ar.h
+share/wasi-sysroot/include/wasm32-wasi/arpa/ftp.h
+share/wasi-sysroot/include/wasm32-wasi/arpa/inet.h
+share/wasi-sysroot/include/wasm32-wasi/arpa/nameser.h
+share/wasi-sysroot/include/wasm32-wasi/arpa/nameser_compat.h
+share/wasi-sysroot/include/wasm32-wasi/arpa/telnet.h
+share/wasi-sysroot/include/wasm32-wasi/arpa/tftp.h
+share/wasi-sysroot/include/wasm32-wasi/assert.h
+share/wasi-sysroot/include/wasm32-wasi/bits/alltypes.h
+share/wasi-sysroot/include/wasm32-wasi/bits/dirent.h
+share/wasi-sysroot/include/wasm32-wasi/bits/fcntl.h
+share/wasi-sysroot/include/wasm32-wasi/bits/fenv.h
+share/wasi-sysroot/include/wasm32-wasi/bits/float.h
+share/wasi-sysroot/include/wasm32-wasi/bits/hwcap.h
+share/wasi-sysroot/include/wasm32-wasi/bits/io.h
+share/wasi-sysroot/include/wasm32-wasi/bits/ioctl.h
+share/wasi-sysroot/include/wasm32-wasi/bits/ioctl_fix.h
+share/wasi-sysroot/include/wasm32-wasi/bits/ipcstat.h
+share/wasi-sysroot/include/wasm32-wasi/bits/limits.h
+share/wasi-sysroot/include/wasm32-wasi/bits/mman.h
+share/wasi-sysroot/include/wasm32-wasi/bits/poll.h
+share/wasi-sysroot/include/wasm32-wasi/bits/posix.h
+share/wasi-sysroot/include/wasm32-wasi/bits/reg.h
+share/wasi-sysroot/include/wasm32-wasi/bits/resource.h
+share/wasi-sysroot/include/wasm32-wasi/bits/setjmp.h
+share/wasi-sysroot/include/wasm32-wasi/bits/signal.h
+share/wasi-sysroot/include/wasm32-wasi/bits/socket.h
+share/wasi-sysroot/include/wasm32-wasi/bits/stat.h
+share/wasi-sysroot/include/wasm32-wasi/bits/stdint.h
+share/wasi-sysroot/include/wasm32-wasi/byteswap.h
+share/wasi-sysroot/include/wasm32-wasi/complex.h
+share/wasi-sysroot/include/wasm32-wasi/cpio.h
+share/wasi-sysroot/include/wasm32-wasi/crypt.h
+share/wasi-sysroot/include/wasm32-wasi/ctype.h
+share/wasi-sysroot/include/wasm32-wasi/dirent.h
+share/wasi-sysroot/include/wasm32-wasi/dlfcn.h
+share/wasi-sysroot/include/wasm32-wasi/endian.h
+share/wasi-sysroot/include/wasm32-wasi/err.h
+share/wasi-sysroot/include/wasm32-wasi/errno.h
+share/wasi-sysroot/include/wasm32-wasi/fcntl.h
+share/wasi-sysroot/include/wasm32-wasi/features.h
+share/wasi-sysroot/include/wasm32-wasi/fenv.h
+share/wasi-sysroot/include/wasm32-wasi/float.h
+share/wasi-sysroot/include/wasm32-wasi/fmtmsg.h
+share/wasi-sysroot/include/wasm32-wasi/fnmatch.h
+share/wasi-sysroot/include/wasm32-wasi/fts.h
+share/wasi-sysroot/include/wasm32-wasi/ftw.h
+share/wasi-sysroot/include/wasm32-wasi/getopt.h
+share/wasi-sysroot/include/wasm32-wasi/glob.h
+share/wasi-sysroot/include/wasm32-wasi/iconv.h
+share/wasi-sysroot/include/wasm32-wasi/ifaddrs.h
+share/wasi-sysroot/include/wasm32-wasi/inttypes.h
+share/wasi-sysroot/include/wasm32-wasi/iso646.h
+share/wasi-sysroot/include/wasm32-wasi/langinfo.h
+share/wasi-sysroot/include/wasm32-wasi/libgen.h
+share/wasi-sysroot/include/wasm32-wasi/limits.h
+share/wasi-sysroot/include/wasm32-wasi/locale.h
+share/wasi-sysroot/include/wasm32-wasi/malloc.h
+share/wasi-sysroot/include/wasm32-wasi/math.h
+share/wasi-sysroot/include/wasm32-wasi/memory.h
+share/wasi-sysroot/include/wasm32-wasi/monetary.h
+share/wasi-sysroot/include/wasm32-wasi/mqueue.h
+share/wasi-sysroot/include/wasm32-wasi/netinet/icmp6.h
+share/wasi-sysroot/include/wasm32-wasi/netinet/igmp.h
+share/wasi-sysroot/include/wasm32-wasi/netinet/in.h
+share/wasi-sysroot/include/wasm32-wasi/netinet/in_systm.h
+share/wasi-sysroot/include/wasm32-wasi/netinet/ip.h
+share/wasi-sysroot/include/wasm32-wasi/netinet/ip6.h
+share/wasi-sysroot/include/wasm32-wasi/netinet/ip_icmp.h
+share/wasi-sysroot/include/wasm32-wasi/netinet/tcp.h
+share/wasi-sysroot/include/wasm32-wasi/netinet/udp.h
+share/wasi-sysroot/include/wasm32-wasi/netpacket/packet.h
+share/wasi-sysroot/include/wasm32-wasi/nl_types.h
+share/wasi-sysroot/include/wasm32-wasi/poll.h
+share/wasi-sysroot/include/wasm32-wasi/pthread.h
+share/wasi-sysroot/include/wasm32-wasi/regex.h
+share/wasi-sysroot/include/wasm32-wasi/sched.h
+share/wasi-sysroot/include/wasm32-wasi/search.h
+share/wasi-sysroot/include/wasm32-wasi/semaphore.h
+share/wasi-sysroot/include/wasm32-wasi/setjmp.h
+share/wasi-sysroot/include/wasm32-wasi/signal.h
+share/wasi-sysroot/include/wasm32-wasi/stdalign.h
+share/wasi-sysroot/include/wasm32-wasi/stdbool.h
+share/wasi-sysroot/include/wasm32-wasi/stdc-predef.h
+share/wasi-sysroot/include/wasm32-wasi/stdint.h
+share/wasi-sysroot/include/wasm32-wasi/stdio.h
+share/wasi-sysroot/include/wasm32-wasi/stdio_ext.h
+share/wasi-sysroot/include/wasm32-wasi/stdlib.h
+share/wasi-sysroot/include/wasm32-wasi/stdnoreturn.h
+share/wasi-sysroot/include/wasm32-wasi/string.h
+share/wasi-sysroot/include/wasm32-wasi/strings.h
+share/wasi-sysroot/include/wasm32-wasi/stropts.h
+share/wasi-sysroot/include/wasm32-wasi/sys/dir.h
+share/wasi-sysroot/include/wasm32-wasi/sys/errno.h
+share/wasi-sysroot/include/wasm32-wasi/sys/eventfd.h
+share/wasi-sysroot/include/wasm32-wasi/sys/fcntl.h
+share/wasi-sysroot/include/wasm32-wasi/sys/file.h
+share/wasi-sysroot/include/wasm32-wasi/sys/ioctl.h
+share/wasi-sysroot/include/wasm32-wasi/sys/mman.h
+share/wasi-sysroot/include/wasm32-wasi/sys/param.h
+share/wasi-sysroot/include/wasm32-wasi/sys/poll.h
+share/wasi-sysroot/include/wasm32-wasi/sys/random.h
+share/wasi-sysroot/include/wasm32-wasi/sys/reg.h
+share/wasi-sysroot/include/wasm32-wasi/sys/resource.h
+share/wasi-sysroot/include/wasm32-wasi/sys/select.h
+share/wasi-sysroot/include/wasm32-wasi/sys/signal.h
+share/wasi-sysroot/include/wasm32-wasi/sys/socket.h
+share/wasi-sysroot/include/wasm32-wasi/sys/stat.h
+share/wasi-sysroot/include/wasm32-wasi/sys/statvfs.h
+share/wasi-sysroot/include/wasm32-wasi/sys/stropts.h
+share/wasi-sysroot/include/wasm32-wasi/sys/syscall.h
+share/wasi-sysroot/include/wasm32-wasi/sys/sysinfo.h
+share/wasi-sysroot/include/wasm32-wasi/sys/time.h
+share/wasi-sysroot/include/wasm32-wasi/sys/timeb.h
+share/wasi-sysroot/include/wasm32-wasi/sys/times.h
+share/wasi-sysroot/include/wasm32-wasi/sys/timex.h
+share/wasi-sysroot/include/wasm32-wasi/sys/ttydefaults.h
+share/wasi-sysroot/include/wasm32-wasi/sys/types.h
+share/wasi-sysroot/include/wasm32-wasi/sys/uio.h
+share/wasi-sysroot/include/wasm32-wasi/sys/un.h
+share/wasi-sysroot/include/wasm32-wasi/sys/utsname.h
+share/wasi-sysroot/include/wasm32-wasi/syscall.h
+share/wasi-sysroot/include/wasm32-wasi/sysexits.h
+share/wasi-sysroot/include/wasm32-wasi/tar.h
+share/wasi-sysroot/include/wasm32-wasi/tgmath.h
+share/wasi-sysroot/include/wasm32-wasi/threads.h
+share/wasi-sysroot/include/wasm32-wasi/time.h
+share/wasi-sysroot/include/wasm32-wasi/uchar.h
+share/wasi-sysroot/include/wasm32-wasi/unistd.h
+share/wasi-sysroot/include/wasm32-wasi/utime.h
+share/wasi-sysroot/include/wasm32-wasi/values.h
+share/wasi-sysroot/include/wasm32-wasi/wasi/api.h
+share/wasi-sysroot/include/wasm32-wasi/wasi/libc-busywait.h
+share/wasi-sysroot/include/wasm32-wasi/wasi/libc-environ.h
+share/wasi-sysroot/include/wasm32-wasi/wasi/libc-find-relpath.h
+share/wasi-sysroot/include/wasm32-wasi/wasi/libc-nocwd.h
+share/wasi-sysroot/include/wasm32-wasi/wasi/libc.h
+share/wasi-sysroot/include/wasm32-wasi/wasi/wasip2.h
+share/wasi-sysroot/include/wasm32-wasi/wchar.h
+share/wasi-sysroot/include/wasm32-wasi/wctype.h
+share/wasi-sysroot/lib/wasm32-wasi/crt1-command.o
+share/wasi-sysroot/lib/wasm32-wasi/crt1-reactor.o
+share/wasi-sysroot/lib/wasm32-wasi/crt1.o
+share/wasi-sysroot/lib/wasm32-wasi/libc-printscan-long-double.a
+share/wasi-sysroot/lib/wasm32-wasi/libc-printscan-no-floating-point.a
+share/wasi-sysroot/lib/wasm32-wasi/libc.a
+share/wasi-sysroot/lib/wasm32-wasi/libc.imports
+share/wasi-sysroot/lib/wasm32-wasi/libcrypt.a
+share/wasi-sysroot/lib/wasm32-wasi/libdl.a
+share/wasi-sysroot/lib/wasm32-wasi/libm.a
+share/wasi-sysroot/lib/wasm32-wasi/libpthread.a
+share/wasi-sysroot/lib/wasm32-wasi/libresolv.a
+share/wasi-sysroot/lib/wasm32-wasi/librt.a
+share/wasi-sysroot/lib/wasm32-wasi/libsetjmp.a
+share/wasi-sysroot/lib/wasm32-wasi/libutil.a
+share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-getpid.a
+share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-mman.a
+share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-process-clocks.a
+share/wasi-sysroot/lib/wasm32-wasi/libwasi-emulated-signal.a
+share/wasi-sysroot/lib/wasm32-wasi/libxnet.a
+share/wasi-sysroot/share/wasm32-wasi/defined-symbols.txt
+share/wasi-sysroot/share/wasm32-wasi/include-all.c
+share/wasi-sysroot/share/wasm32-wasi/predefined-macros.txt
+share/wasi-sysroot/share/wasm32-wasi/undefined-symbols.txt
+@dir share/wasi-sysroot/include/wasm32-wasi/net
+@dir share/wasi-sysroot/include/wasm32-wasi/scsi
diff --git a/devel/wasi-libcxx21/Makefile b/devel/wasi-libcxx21/Makefile
new file mode 100644
index 000000000000..43c4c028e2f0
--- /dev/null
+++ b/devel/wasi-libcxx21/Makefile
@@ -0,0 +1,6 @@
+# must sync with devel/llvm21
+DISTVERSION= 21.1.0
+
+MASTERDIR= ${.CURDIR}/../wasi-libcxx
+
+.include "${MASTERDIR}/Makefile"
diff --git a/devel/wasi-libcxx21/pkg-plist b/devel/wasi-libcxx21/pkg-plist
new file mode 100644
index 000000000000..c6a0bcb6f060
--- /dev/null
+++ b/devel/wasi-libcxx21/pkg-plist
@@ -0,0 +1,1816 @@
+share/wasi-sysroot/include/c++/v1/__algorithm/adjacent_find.h
+share/wasi-sysroot/include/c++/v1/__algorithm/all_of.h
+share/wasi-sysroot/include/c++/v1/__algorithm/any_of.h
+share/wasi-sysroot/include/c++/v1/__algorithm/binary_search.h
+share/wasi-sysroot/include/c++/v1/__algorithm/clamp.h
+share/wasi-sysroot/include/c++/v1/__algorithm/comp.h
+share/wasi-sysroot/include/c++/v1/__algorithm/comp_ref_type.h
+share/wasi-sysroot/include/c++/v1/__algorithm/copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/copy_backward.h
+share/wasi-sysroot/include/c++/v1/__algorithm/copy_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/copy_move_common.h
+share/wasi-sysroot/include/c++/v1/__algorithm/copy_n.h
+share/wasi-sysroot/include/c++/v1/__algorithm/count.h
+share/wasi-sysroot/include/c++/v1/__algorithm/count_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/equal.h
+share/wasi-sysroot/include/c++/v1/__algorithm/equal_range.h
+share/wasi-sysroot/include/c++/v1/__algorithm/fill.h
+share/wasi-sysroot/include/c++/v1/__algorithm/fill_n.h
+share/wasi-sysroot/include/c++/v1/__algorithm/find.h
+share/wasi-sysroot/include/c++/v1/__algorithm/find_end.h
+share/wasi-sysroot/include/c++/v1/__algorithm/find_first_of.h
+share/wasi-sysroot/include/c++/v1/__algorithm/find_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/find_if_not.h
+share/wasi-sysroot/include/c++/v1/__algorithm/find_segment_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/for_each.h
+share/wasi-sysroot/include/c++/v1/__algorithm/for_each_n.h
+share/wasi-sysroot/include/c++/v1/__algorithm/for_each_n_segment.h
+share/wasi-sysroot/include/c++/v1/__algorithm/for_each_segment.h
+share/wasi-sysroot/include/c++/v1/__algorithm/generate.h
+share/wasi-sysroot/include/c++/v1/__algorithm/generate_n.h
+share/wasi-sysroot/include/c++/v1/__algorithm/half_positive.h
+share/wasi-sysroot/include/c++/v1/__algorithm/in_found_result.h
+share/wasi-sysroot/include/c++/v1/__algorithm/in_fun_result.h
+share/wasi-sysroot/include/c++/v1/__algorithm/in_in_out_result.h
+share/wasi-sysroot/include/c++/v1/__algorithm/in_in_result.h
+share/wasi-sysroot/include/c++/v1/__algorithm/in_out_out_result.h
+share/wasi-sysroot/include/c++/v1/__algorithm/in_out_result.h
+share/wasi-sysroot/include/c++/v1/__algorithm/includes.h
+share/wasi-sysroot/include/c++/v1/__algorithm/inplace_merge.h
+share/wasi-sysroot/include/c++/v1/__algorithm/is_heap.h
+share/wasi-sysroot/include/c++/v1/__algorithm/is_heap_until.h
+share/wasi-sysroot/include/c++/v1/__algorithm/is_partitioned.h
+share/wasi-sysroot/include/c++/v1/__algorithm/is_permutation.h
+share/wasi-sysroot/include/c++/v1/__algorithm/is_sorted.h
+share/wasi-sysroot/include/c++/v1/__algorithm/is_sorted_until.h
+share/wasi-sysroot/include/c++/v1/__algorithm/iter_swap.h
+share/wasi-sysroot/include/c++/v1/__algorithm/iterator_operations.h
+share/wasi-sysroot/include/c++/v1/__algorithm/lexicographical_compare.h
+share/wasi-sysroot/include/c++/v1/__algorithm/lexicographical_compare_three_way.h
+share/wasi-sysroot/include/c++/v1/__algorithm/lower_bound.h
+share/wasi-sysroot/include/c++/v1/__algorithm/make_heap.h
+share/wasi-sysroot/include/c++/v1/__algorithm/make_projected.h
+share/wasi-sysroot/include/c++/v1/__algorithm/max.h
+share/wasi-sysroot/include/c++/v1/__algorithm/max_element.h
+share/wasi-sysroot/include/c++/v1/__algorithm/merge.h
+share/wasi-sysroot/include/c++/v1/__algorithm/min.h
+share/wasi-sysroot/include/c++/v1/__algorithm/min_element.h
+share/wasi-sysroot/include/c++/v1/__algorithm/min_max_result.h
+share/wasi-sysroot/include/c++/v1/__algorithm/minmax.h
+share/wasi-sysroot/include/c++/v1/__algorithm/minmax_element.h
+share/wasi-sysroot/include/c++/v1/__algorithm/mismatch.h
+share/wasi-sysroot/include/c++/v1/__algorithm/move.h
+share/wasi-sysroot/include/c++/v1/__algorithm/move_backward.h
+share/wasi-sysroot/include/c++/v1/__algorithm/next_permutation.h
+share/wasi-sysroot/include/c++/v1/__algorithm/none_of.h
+share/wasi-sysroot/include/c++/v1/__algorithm/nth_element.h
+share/wasi-sysroot/include/c++/v1/__algorithm/out_value_result.h
+share/wasi-sysroot/include/c++/v1/__algorithm/partial_sort.h
+share/wasi-sysroot/include/c++/v1/__algorithm/partial_sort_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/partition.h
+share/wasi-sysroot/include/c++/v1/__algorithm/partition_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/partition_point.h
+share/wasi-sysroot/include/c++/v1/__algorithm/pop_heap.h
+share/wasi-sysroot/include/c++/v1/__algorithm/prev_permutation.h
+share/wasi-sysroot/include/c++/v1/__algorithm/pstl.h
+share/wasi-sysroot/include/c++/v1/__algorithm/push_heap.h
+share/wasi-sysroot/include/c++/v1/__algorithm/radix_sort.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_adjacent_find.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_all_of.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_any_of.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_binary_search.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_clamp.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_contains.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_contains_subrange.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_copy_backward.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_copy_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_copy_n.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_count.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_count_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_ends_with.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_equal.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_equal_range.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_fill.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_fill_n.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_find.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_find_end.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_find_first_of.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_find_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_find_if_not.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_find_last.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_fold.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_for_each.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_for_each_n.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_generate.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_generate_n.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_includes.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_inplace_merge.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_is_heap.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_is_heap_until.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_is_partitioned.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_is_permutation.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_is_sorted.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_is_sorted_until.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_iterator_concept.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_lexicographical_compare.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_lower_bound.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_make_heap.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_max.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_max_element.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_merge.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_min.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_min_element.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_minmax.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_minmax_element.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_mismatch.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_move.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_move_backward.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_next_permutation.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_none_of.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_nth_element.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_partial_sort.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_partial_sort_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_partition.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_partition_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_partition_point.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_pop_heap.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_prev_permutation.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_push_heap.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_remove.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_remove_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_remove_copy_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_remove_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_replace.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_replace_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_replace_copy_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_replace_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_reverse.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_reverse_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_rotate.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_rotate_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_sample.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_search.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_search_n.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_set_difference.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_set_intersection.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_set_symmetric_difference.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_set_union.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_shuffle.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_sort.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_sort_heap.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_stable_partition.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_stable_sort.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_starts_with.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_swap_ranges.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_transform.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_unique.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_unique_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/ranges_upper_bound.h
+share/wasi-sysroot/include/c++/v1/__algorithm/remove.h
+share/wasi-sysroot/include/c++/v1/__algorithm/remove_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/remove_copy_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/remove_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/replace.h
+share/wasi-sysroot/include/c++/v1/__algorithm/replace_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/replace_copy_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/replace_if.h
+share/wasi-sysroot/include/c++/v1/__algorithm/reverse.h
+share/wasi-sysroot/include/c++/v1/__algorithm/reverse_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/rotate.h
+share/wasi-sysroot/include/c++/v1/__algorithm/rotate_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/sample.h
+share/wasi-sysroot/include/c++/v1/__algorithm/search.h
+share/wasi-sysroot/include/c++/v1/__algorithm/search_n.h
+share/wasi-sysroot/include/c++/v1/__algorithm/set_difference.h
+share/wasi-sysroot/include/c++/v1/__algorithm/set_intersection.h
+share/wasi-sysroot/include/c++/v1/__algorithm/set_symmetric_difference.h
+share/wasi-sysroot/include/c++/v1/__algorithm/set_union.h
+share/wasi-sysroot/include/c++/v1/__algorithm/shift_left.h
+share/wasi-sysroot/include/c++/v1/__algorithm/shift_right.h
+share/wasi-sysroot/include/c++/v1/__algorithm/shuffle.h
+share/wasi-sysroot/include/c++/v1/__algorithm/sift_down.h
+share/wasi-sysroot/include/c++/v1/__algorithm/simd_utils.h
+share/wasi-sysroot/include/c++/v1/__algorithm/sort.h
+share/wasi-sysroot/include/c++/v1/__algorithm/sort_heap.h
+share/wasi-sysroot/include/c++/v1/__algorithm/stable_partition.h
+share/wasi-sysroot/include/c++/v1/__algorithm/stable_sort.h
+share/wasi-sysroot/include/c++/v1/__algorithm/swap_ranges.h
+share/wasi-sysroot/include/c++/v1/__algorithm/three_way_comp_ref_type.h
+share/wasi-sysroot/include/c++/v1/__algorithm/transform.h
+share/wasi-sysroot/include/c++/v1/__algorithm/uniform_random_bit_generator_adaptor.h
+share/wasi-sysroot/include/c++/v1/__algorithm/unique.h
+share/wasi-sysroot/include/c++/v1/__algorithm/unique_copy.h
+share/wasi-sysroot/include/c++/v1/__algorithm/unwrap_iter.h
+share/wasi-sysroot/include/c++/v1/__algorithm/unwrap_range.h
+share/wasi-sysroot/include/c++/v1/__algorithm/upper_bound.h
+share/wasi-sysroot/include/c++/v1/__assert
+share/wasi-sysroot/include/c++/v1/__assertion_handler
+share/wasi-sysroot/include/c++/v1/__atomic/aliases.h
+share/wasi-sysroot/include/c++/v1/__atomic/atomic.h
+share/wasi-sysroot/include/c++/v1/__atomic/atomic_flag.h
+share/wasi-sysroot/include/c++/v1/__atomic/atomic_init.h
+share/wasi-sysroot/include/c++/v1/__atomic/atomic_lock_free.h
+share/wasi-sysroot/include/c++/v1/__atomic/atomic_ref.h
+share/wasi-sysroot/include/c++/v1/__atomic/atomic_sync.h
+share/wasi-sysroot/include/c++/v1/__atomic/check_memory_order.h
+share/wasi-sysroot/include/c++/v1/__atomic/contention_t.h
+share/wasi-sysroot/include/c++/v1/__atomic/fence.h
+share/wasi-sysroot/include/c++/v1/__atomic/is_always_lock_free.h
+share/wasi-sysroot/include/c++/v1/__atomic/kill_dependency.h
+share/wasi-sysroot/include/c++/v1/__atomic/memory_order.h
+share/wasi-sysroot/include/c++/v1/__atomic/support.h
+share/wasi-sysroot/include/c++/v1/__atomic/support/c11.h
+share/wasi-sysroot/include/c++/v1/__atomic/support/gcc.h
+share/wasi-sysroot/include/c++/v1/__atomic/to_gcc_order.h
+share/wasi-sysroot/include/c++/v1/__bit/bit_cast.h
+share/wasi-sysroot/include/c++/v1/__bit/bit_ceil.h
+share/wasi-sysroot/include/c++/v1/__bit/bit_floor.h
+share/wasi-sysroot/include/c++/v1/__bit/bit_log2.h
+share/wasi-sysroot/include/c++/v1/__bit/bit_width.h
+share/wasi-sysroot/include/c++/v1/__bit/blsr.h
+share/wasi-sysroot/include/c++/v1/__bit/byteswap.h
+share/wasi-sysroot/include/c++/v1/__bit/countl.h
+share/wasi-sysroot/include/c++/v1/__bit/countr.h
+share/wasi-sysroot/include/c++/v1/__bit/endian.h
+share/wasi-sysroot/include/c++/v1/__bit/has_single_bit.h
+share/wasi-sysroot/include/c++/v1/__bit/invert_if.h
+share/wasi-sysroot/include/c++/v1/__bit/popcount.h
+share/wasi-sysroot/include/c++/v1/__bit/rotate.h
+share/wasi-sysroot/include/c++/v1/__bit_reference
+share/wasi-sysroot/include/c++/v1/__charconv/chars_format.h
+share/wasi-sysroot/include/c++/v1/__charconv/from_chars_floating_point.h
+share/wasi-sysroot/include/c++/v1/__charconv/from_chars_integral.h
+share/wasi-sysroot/include/c++/v1/__charconv/from_chars_result.h
+share/wasi-sysroot/include/c++/v1/__charconv/tables.h
+share/wasi-sysroot/include/c++/v1/__charconv/to_chars.h
+share/wasi-sysroot/include/c++/v1/__charconv/to_chars_base_10.h
+share/wasi-sysroot/include/c++/v1/__charconv/to_chars_floating_point.h
+share/wasi-sysroot/include/c++/v1/__charconv/to_chars_integral.h
+share/wasi-sysroot/include/c++/v1/__charconv/to_chars_result.h
+share/wasi-sysroot/include/c++/v1/__charconv/traits.h
+share/wasi-sysroot/include/c++/v1/__chrono/calendar.h
+share/wasi-sysroot/include/c++/v1/__chrono/concepts.h
+share/wasi-sysroot/include/c++/v1/__chrono/convert_to_timespec.h
+share/wasi-sysroot/include/c++/v1/__chrono/convert_to_tm.h
+share/wasi-sysroot/include/c++/v1/__chrono/day.h
+share/wasi-sysroot/include/c++/v1/__chrono/duration.h
+share/wasi-sysroot/include/c++/v1/__chrono/exception.h
+share/wasi-sysroot/include/c++/v1/__chrono/file_clock.h
+share/wasi-sysroot/include/c++/v1/__chrono/formatter.h
+share/wasi-sysroot/include/c++/v1/__chrono/gps_clock.h
+share/wasi-sysroot/include/c++/v1/__chrono/hh_mm_ss.h
+share/wasi-sysroot/include/c++/v1/__chrono/high_resolution_clock.h
+share/wasi-sysroot/include/c++/v1/__chrono/leap_second.h
+share/wasi-sysroot/include/c++/v1/__chrono/literals.h
+share/wasi-sysroot/include/c++/v1/__chrono/local_info.h
+share/wasi-sysroot/include/c++/v1/__chrono/month.h
+share/wasi-sysroot/include/c++/v1/__chrono/month_weekday.h
+share/wasi-sysroot/include/c++/v1/__chrono/monthday.h
+share/wasi-sysroot/include/c++/v1/__chrono/ostream.h
+share/wasi-sysroot/include/c++/v1/__chrono/parser_std_format_spec.h
+share/wasi-sysroot/include/c++/v1/__chrono/statically_widen.h
+share/wasi-sysroot/include/c++/v1/__chrono/steady_clock.h
+share/wasi-sysroot/include/c++/v1/__chrono/sys_info.h
+share/wasi-sysroot/include/c++/v1/__chrono/system_clock.h
+share/wasi-sysroot/include/c++/v1/__chrono/tai_clock.h
+share/wasi-sysroot/include/c++/v1/__chrono/time_point.h
+share/wasi-sysroot/include/c++/v1/__chrono/time_zone.h
+share/wasi-sysroot/include/c++/v1/__chrono/time_zone_link.h
+share/wasi-sysroot/include/c++/v1/__chrono/tzdb.h
+share/wasi-sysroot/include/c++/v1/__chrono/tzdb_list.h
+share/wasi-sysroot/include/c++/v1/__chrono/utc_clock.h
+share/wasi-sysroot/include/c++/v1/__chrono/weekday.h
+share/wasi-sysroot/include/c++/v1/__chrono/year.h
+share/wasi-sysroot/include/c++/v1/__chrono/year_month.h
+share/wasi-sysroot/include/c++/v1/__chrono/year_month_day.h
+share/wasi-sysroot/include/c++/v1/__chrono/year_month_weekday.h
+share/wasi-sysroot/include/c++/v1/__chrono/zoned_time.h
+share/wasi-sysroot/include/c++/v1/__compare/common_comparison_category.h
+share/wasi-sysroot/include/c++/v1/__compare/compare_partial_order_fallback.h
+share/wasi-sysroot/include/c++/v1/__compare/compare_strong_order_fallback.h
+share/wasi-sysroot/include/c++/v1/__compare/compare_three_way.h
+share/wasi-sysroot/include/c++/v1/__compare/compare_three_way_result.h
+share/wasi-sysroot/include/c++/v1/__compare/compare_weak_order_fallback.h
+share/wasi-sysroot/include/c++/v1/__compare/is_eq.h
+share/wasi-sysroot/include/c++/v1/__compare/ordering.h
+share/wasi-sysroot/include/c++/v1/__compare/partial_order.h
+share/wasi-sysroot/include/c++/v1/__compare/strong_order.h
+share/wasi-sysroot/include/c++/v1/__compare/synth_three_way.h
+share/wasi-sysroot/include/c++/v1/__compare/three_way_comparable.h
+share/wasi-sysroot/include/c++/v1/__compare/weak_order.h
+share/wasi-sysroot/include/c++/v1/__concepts/arithmetic.h
+share/wasi-sysroot/include/c++/v1/__concepts/assignable.h
+share/wasi-sysroot/include/c++/v1/__concepts/boolean_testable.h
+share/wasi-sysroot/include/c++/v1/__concepts/class_or_enum.h
+share/wasi-sysroot/include/c++/v1/__concepts/common_reference_with.h
+share/wasi-sysroot/include/c++/v1/__concepts/common_with.h
+share/wasi-sysroot/include/c++/v1/__concepts/constructible.h
+share/wasi-sysroot/include/c++/v1/__concepts/convertible_to.h
+share/wasi-sysroot/include/c++/v1/__concepts/copyable.h
+share/wasi-sysroot/include/c++/v1/__concepts/derived_from.h
+share/wasi-sysroot/include/c++/v1/__concepts/destructible.h
+share/wasi-sysroot/include/c++/v1/__concepts/different_from.h
+share/wasi-sysroot/include/c++/v1/__concepts/equality_comparable.h
+share/wasi-sysroot/include/c++/v1/__concepts/invocable.h
+share/wasi-sysroot/include/c++/v1/__concepts/movable.h
+share/wasi-sysroot/include/c++/v1/__concepts/predicate.h
+share/wasi-sysroot/include/c++/v1/__concepts/regular.h
+share/wasi-sysroot/include/c++/v1/__concepts/relation.h
+share/wasi-sysroot/include/c++/v1/__concepts/same_as.h
+share/wasi-sysroot/include/c++/v1/__concepts/semiregular.h
+share/wasi-sysroot/include/c++/v1/__concepts/swappable.h
+share/wasi-sysroot/include/c++/v1/__concepts/totally_ordered.h
+share/wasi-sysroot/include/c++/v1/__condition_variable/condition_variable.h
+share/wasi-sysroot/include/c++/v1/__config
+share/wasi-sysroot/include/c++/v1/__config_site
+share/wasi-sysroot/include/c++/v1/__configuration/abi.h
+share/wasi-sysroot/include/c++/v1/__configuration/availability.h
+share/wasi-sysroot/include/c++/v1/__configuration/compiler.h
+share/wasi-sysroot/include/c++/v1/__configuration/language.h
+share/wasi-sysroot/include/c++/v1/__configuration/platform.h
+share/wasi-sysroot/include/c++/v1/__coroutine/coroutine_handle.h
+share/wasi-sysroot/include/c++/v1/__coroutine/coroutine_traits.h
+share/wasi-sysroot/include/c++/v1/__coroutine/noop_coroutine_handle.h
+share/wasi-sysroot/include/c++/v1/__coroutine/trivial_awaitables.h
+share/wasi-sysroot/include/c++/v1/__cstddef/byte.h
+share/wasi-sysroot/include/c++/v1/__cstddef/max_align_t.h
+share/wasi-sysroot/include/c++/v1/__cstddef/nullptr_t.h
+share/wasi-sysroot/include/c++/v1/__cstddef/ptrdiff_t.h
+share/wasi-sysroot/include/c++/v1/__cstddef/size_t.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/adjacent_find.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/all_of.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/any_of.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/binary_search.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/comp.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/comp_ref_type.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/copy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/copy_backward.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/copy_if.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/copy_move_common.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/copy_n.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/count.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/count_if.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/equal.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/equal_range.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/fill.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/fill_n.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/find.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/find_end.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/find_first_of.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/find_if.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/find_if_not.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/find_segment_if.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/for_each.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/for_each_segment.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/generate.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/generate_n.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/half_positive.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/includes.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/inplace_merge.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/is_heap.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/is_heap_until.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/is_partitioned.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/is_permutation.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/is_sorted.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/is_sorted_until.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/iter_swap.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/iterator_operations.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/lexicographical_compare.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/lower_bound.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/make_heap.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/make_projected.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/max.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/max_element.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/merge.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/min.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/min_element.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/minmax.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/minmax_element.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/mismatch.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/move.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/move_backward.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/next_permutation.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/none_of.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/nth_element.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/partial_sort.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/partial_sort_copy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/partition.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/partition_copy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/partition_point.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/pop_heap.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/prev_permutation.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/push_heap.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/remove.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/remove_copy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/remove_copy_if.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/remove_if.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/replace.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/replace_copy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/replace_copy_if.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/replace_if.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/reverse.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/reverse_copy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/rotate.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/rotate_copy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/search.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/search_n.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/set_difference.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/set_intersection.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/set_symmetric_difference.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/set_union.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/shuffle.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/sift_down.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/simd_utils.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/sort.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/sort_heap.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/stable_partition.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/stable_sort.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/swap_ranges.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/three_way_comp_ref_type.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/transform.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/uniform_random_bit_generator_adaptor.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/unique.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/unique_copy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/unwrap_iter.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/unwrap_range.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__algorithm/upper_bound.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__assert
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/aliases.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/atomic.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/atomic_base.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/atomic_flag.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/atomic_init.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/atomic_lock_free.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/atomic_sync.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/check_memory_order.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/contention_t.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/cxx_atomic_impl.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/fence.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/is_always_lock_free.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/kill_dependency.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/memory_order.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__atomic/to_gcc_order.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__bit/blsr.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__bit/countl.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__bit/countr.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__bit/invert_if.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__bit/popcount.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__bit/rotate.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__bit_reference
+share/wasi-sysroot/include/c++/v1/__cxx03/__chrono/convert_to_timespec.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__chrono/duration.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__chrono/high_resolution_clock.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__chrono/steady_clock.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__chrono/system_clock.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__chrono/time_point.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__condition_variable/condition_variable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__config
+share/wasi-sysroot/include/c++/v1/__cxx03/__configuration/abi.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__configuration/availability.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__configuration/compiler.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__configuration/config_site_shim.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__configuration/language.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__configuration/platform.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__debug_utils/randomize_range.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__debug_utils/sanitizers.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__debug_utils/strict_weak_ordering_check.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__exception/exception.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__exception/exception_ptr.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__exception/nested_exception.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__exception/operations.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__exception/terminate.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/binary_function.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/binary_negate.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/bind.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/binder1st.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/binder2nd.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/hash.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/identity.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/mem_fn.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/mem_fun_ref.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/operations.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/pointer_to_binary_function.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/pointer_to_unary_function.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/reference_wrapper.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/unary_function.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/unary_negate.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__functional/weak_result_type.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/array.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/bit_reference.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/complex.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/deque.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/fstream.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/functional.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/ios.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/istream.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/memory.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/ostream.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/pair.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/queue.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/sstream.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/stack.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/streambuf.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/string.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/string_view.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/tuple.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__fwd/vector.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__hash_table
+share/wasi-sysroot/include/c++/v1/__cxx03/__ios/fpos.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/access.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/advance.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/aliasing_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/back_insert_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/bounded_iter.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/distance.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/erase_if_container.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/front_insert_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/insert_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/istream_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/istreambuf_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/iterator_traits.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/move_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/next.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/ostream_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/ostreambuf_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/prev.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/reverse_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/segmented_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__iterator/wrap_iter.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale_dir/locale_base_api.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale_dir/locale_base_api/android.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale_dir/locale_base_api/bsd_locale_defaults.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale_dir/locale_base_api/bsd_locale_fallbacks.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale_dir/locale_base_api/fuchsia.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale_dir/locale_base_api/ibm.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale_dir/locale_base_api/locale_guard.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale_dir/locale_base_api/musl.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale_dir/locale_base_api/newlib.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale_dir/locale_base_api/openbsd.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__locale_dir/locale_base_api/win32.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/abs.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/copysign.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/error_functions.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/exponential_functions.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/fdim.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/fma.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/gamma.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/hyperbolic_functions.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/hypot.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/inverse_hyperbolic_functions.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/inverse_trigonometric_functions.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/logarithms.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/min_max.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/modulo.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/remainder.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/roots.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/rounding_functions.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/traits.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__math/trigonometric_functions.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__mbstate_t.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/addressof.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/align.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/aligned_alloc.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/allocate_at_least.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/allocation_guard.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/allocator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/allocator_arg_t.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/allocator_destructor.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/allocator_traits.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/assume_aligned.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/auto_ptr.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/builtin_new_allocator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/compressed_pair.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/construct_at.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/destruct_n.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/pointer_traits.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/raw_storage_iterator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/shared_ptr.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/swap_allocator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/temp_value.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/temporary_buffer.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/uninitialized_algorithms.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/unique_ptr.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/uses_allocator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__memory/voidify.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__mutex/lock_guard.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__mutex/mutex.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__mutex/once_flag.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__mutex/tag_types.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__mutex/unique_lock.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__numeric/accumulate.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__numeric/adjacent_difference.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__numeric/inner_product.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__numeric/iota.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__numeric/partial_sum.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__ostream/basic_ostream.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/bernoulli_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/binomial_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/cauchy_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/chi_squared_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/clamp_to_integral.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/default_random_engine.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/discard_block_engine.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/discrete_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/exponential_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/extreme_value_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/fisher_f_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/gamma_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/generate_canonical.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/geometric_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/independent_bits_engine.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/is_seed_sequence.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/is_valid.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/knuth_b.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/linear_congruential_engine.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/log2.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/lognormal_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/mersenne_twister_engine.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/negative_binomial_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/normal_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/piecewise_constant_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/piecewise_linear_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/poisson_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/random_device.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/ranlux.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/seed_seq.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/shuffle_order_engine.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/student_t_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/subtract_with_carry_engine.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/uniform_int_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/uniform_real_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__random/weibull_distribution.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__split_buffer
+share/wasi-sysroot/include/c++/v1/__cxx03/__std_clang_module
+share/wasi-sysroot/include/c++/v1/__cxx03/__std_mbstate_t.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__string/char_traits.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__string/constexpr_c_functions.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__string/extern_template_lists.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__support/ibm/gettod_zos.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__support/ibm/locale_mgmt_zos.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__support/ibm/nanosleep.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__support/xlocale/__nop_locale_mgmt.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__support/xlocale/__posix_l_fallback.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__support/xlocale/__strtonum_fallback.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__system_error/errc.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__system_error/error_category.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__system_error/error_code.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__system_error/error_condition.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__system_error/system_error.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__thread/id.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__thread/poll_with_backoff.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__thread/support.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__thread/support/c11.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__thread/support/external.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__thread/support/pthread.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__thread/support/windows.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__thread/this_thread.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__thread/thread.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__thread/timed_backoff_policy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__tree
+share/wasi-sysroot/include/c++/v1/__cxx03/__tuple/find_index.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__tuple/make_tuple_types.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__tuple/sfinae_helpers.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__tuple/tuple_element.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__tuple/tuple_indices.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__tuple/tuple_like.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__tuple/tuple_like_ext.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__tuple/tuple_like_no_subrange.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__tuple/tuple_size.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__tuple/tuple_types.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/add_const.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/add_cv.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/add_lvalue_reference.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/add_pointer.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/add_rvalue_reference.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/add_volatile.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/aligned_storage.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/aligned_union.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/alignment_of.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/can_extract_key.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/common_type.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/conditional.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/conjunction.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/copy_cv.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/copy_cvref.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/datasizeof.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/decay.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/dependent_type.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/desugars_to.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/disjunction.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/enable_if.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/extent.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/has_virtual_destructor.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/integral_constant.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/invoke.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_abstract.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_allocator.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_always_bitcastable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_arithmetic.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_array.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_assignable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_base_of.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_bounded_array.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_callable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_char_like_type.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_class.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_compound.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_const.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_constant_evaluated.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_constructible.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_convertible.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_core_convertible.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_destructible.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_empty.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_enum.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_equality_comparable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_execution_policy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_final.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_floating_point.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_function.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_fundamental.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_implicitly_default_constructible.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_integral.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_literal_type.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_member_pointer.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_nothrow_assignable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_nothrow_constructible.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_nothrow_destructible.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_null_pointer.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_object.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_pod.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_pointer.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_polymorphic.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_primary_template.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_reference.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_reference_wrapper.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_referenceable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_same.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_scalar.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_signed.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_signed_integer.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_specialization.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_standard_layout.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_swappable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_trivial.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_trivially_assignable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_trivially_constructible.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_trivially_copyable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_trivially_destructible.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_trivially_lexicographically_comparable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_trivially_relocatable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_unbounded_array.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_union.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_unsigned.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_unsigned_integer.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_valid_expansion.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_void.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/is_volatile.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/lazy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/make_32_64_or_128_bit.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/make_const_lvalue_ref.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/make_signed.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/make_unsigned.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/maybe_const.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/nat.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/negation.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/noexcept_move_assign_container.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/promote.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/rank.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/remove_all_extents.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/remove_const.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/remove_const_ref.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/remove_cv.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/remove_cvref.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/remove_extent.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/remove_pointer.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/remove_reference.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/remove_volatile.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/result_of.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/strip_signature.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/type_identity.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/type_list.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/underlying_type.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/unwrap_ref.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__type_traits/void_t.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__undef_macros
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/as_lvalue.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/auto_cast.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/convert_to_integral.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/declval.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/empty.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/exception_guard.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/forward.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/integer_sequence.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/is_pointer_in_range.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/is_valid_range.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/move.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/no_destroy.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/pair.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/piecewise_construct.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/priority_tag.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/private_constructor_tag.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/rel_ops.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/small_buffer.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/swap.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__utility/unreachable.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__variant/monostate.h
+share/wasi-sysroot/include/c++/v1/__cxx03/__verbose_abort
+share/wasi-sysroot/include/c++/v1/__cxx03/__verbose_trap
+share/wasi-sysroot/include/c++/v1/__cxx03/algorithm
+share/wasi-sysroot/include/c++/v1/__cxx03/array
+share/wasi-sysroot/include/c++/v1/__cxx03/atomic
+share/wasi-sysroot/include/c++/v1/__cxx03/bitset
+share/wasi-sysroot/include/c++/v1/__cxx03/cassert
+share/wasi-sysroot/include/c++/v1/__cxx03/ccomplex
+share/wasi-sysroot/include/c++/v1/__cxx03/cctype
+share/wasi-sysroot/include/c++/v1/__cxx03/cerrno
+share/wasi-sysroot/include/c++/v1/__cxx03/cfenv
+share/wasi-sysroot/include/c++/v1/__cxx03/cfloat
+share/wasi-sysroot/include/c++/v1/__cxx03/chrono
+share/wasi-sysroot/include/c++/v1/__cxx03/cinttypes
+share/wasi-sysroot/include/c++/v1/__cxx03/ciso646
+share/wasi-sysroot/include/c++/v1/__cxx03/climits
+share/wasi-sysroot/include/c++/v1/__cxx03/clocale
+share/wasi-sysroot/include/c++/v1/__cxx03/cmath
+share/wasi-sysroot/include/c++/v1/__cxx03/codecvt
+share/wasi-sysroot/include/c++/v1/__cxx03/complex
+share/wasi-sysroot/include/c++/v1/__cxx03/complex.h
+share/wasi-sysroot/include/c++/v1/__cxx03/condition_variable
+share/wasi-sysroot/include/c++/v1/__cxx03/csetjmp
+share/wasi-sysroot/include/c++/v1/__cxx03/csignal
+share/wasi-sysroot/include/c++/v1/__cxx03/cstdarg
+share/wasi-sysroot/include/c++/v1/__cxx03/cstdbool
+share/wasi-sysroot/include/c++/v1/__cxx03/cstddef
+share/wasi-sysroot/include/c++/v1/__cxx03/cstdint
+share/wasi-sysroot/include/c++/v1/__cxx03/cstdio
+share/wasi-sysroot/include/c++/v1/__cxx03/cstdlib
+share/wasi-sysroot/include/c++/v1/__cxx03/cstring
+share/wasi-sysroot/include/c++/v1/__cxx03/ctgmath
+share/wasi-sysroot/include/c++/v1/__cxx03/ctime
+share/wasi-sysroot/include/c++/v1/__cxx03/ctype.h
+share/wasi-sysroot/include/c++/v1/__cxx03/cuchar
+share/wasi-sysroot/include/c++/v1/__cxx03/cwchar
+share/wasi-sysroot/include/c++/v1/__cxx03/cwctype
+share/wasi-sysroot/include/c++/v1/__cxx03/deque
+share/wasi-sysroot/include/c++/v1/__cxx03/errno.h
+share/wasi-sysroot/include/c++/v1/__cxx03/exception
+share/wasi-sysroot/include/c++/v1/__cxx03/experimental/__config
+share/wasi-sysroot/include/c++/v1/__cxx03/experimental/utility
+share/wasi-sysroot/include/c++/v1/__cxx03/ext/__hash
+share/wasi-sysroot/include/c++/v1/__cxx03/ext/hash_map
+share/wasi-sysroot/include/c++/v1/__cxx03/ext/hash_set
+share/wasi-sysroot/include/c++/v1/__cxx03/fenv.h
+share/wasi-sysroot/include/c++/v1/__cxx03/float.h
+share/wasi-sysroot/include/c++/v1/__cxx03/forward_list
+share/wasi-sysroot/include/c++/v1/__cxx03/fstream
+share/wasi-sysroot/include/c++/v1/__cxx03/functional
+share/wasi-sysroot/include/c++/v1/__cxx03/future
+share/wasi-sysroot/include/c++/v1/__cxx03/inttypes.h
+share/wasi-sysroot/include/c++/v1/__cxx03/iomanip
+share/wasi-sysroot/include/c++/v1/__cxx03/ios
+share/wasi-sysroot/include/c++/v1/__cxx03/iosfwd
+share/wasi-sysroot/include/c++/v1/__cxx03/iostream
+share/wasi-sysroot/include/c++/v1/__cxx03/istream
+share/wasi-sysroot/include/c++/v1/__cxx03/iterator
+share/wasi-sysroot/include/c++/v1/__cxx03/limits
+share/wasi-sysroot/include/c++/v1/__cxx03/list
+share/wasi-sysroot/include/c++/v1/__cxx03/locale
+share/wasi-sysroot/include/c++/v1/__cxx03/locale.h
+share/wasi-sysroot/include/c++/v1/__cxx03/map
+share/wasi-sysroot/include/c++/v1/__cxx03/math.h
+share/wasi-sysroot/include/c++/v1/__cxx03/memory
+share/wasi-sysroot/include/c++/v1/__cxx03/module.modulemap
+share/wasi-sysroot/include/c++/v1/__cxx03/mutex
+share/wasi-sysroot/include/c++/v1/__cxx03/new
+share/wasi-sysroot/include/c++/v1/__cxx03/numeric
+share/wasi-sysroot/include/c++/v1/__cxx03/ostream
+share/wasi-sysroot/include/c++/v1/__cxx03/queue
+share/wasi-sysroot/include/c++/v1/__cxx03/random
+share/wasi-sysroot/include/c++/v1/__cxx03/ratio
+share/wasi-sysroot/include/c++/v1/__cxx03/regex
+share/wasi-sysroot/include/c++/v1/__cxx03/set
+share/wasi-sysroot/include/c++/v1/__cxx03/sstream
+share/wasi-sysroot/include/c++/v1/__cxx03/stack
+share/wasi-sysroot/include/c++/v1/__cxx03/stdatomic.h
+share/wasi-sysroot/include/c++/v1/__cxx03/stdbool.h
+share/wasi-sysroot/include/c++/v1/__cxx03/stddef.h
+share/wasi-sysroot/include/c++/v1/__cxx03/stdexcept
+share/wasi-sysroot/include/c++/v1/__cxx03/stdint.h
+share/wasi-sysroot/include/c++/v1/__cxx03/stdio.h
+share/wasi-sysroot/include/c++/v1/__cxx03/stdlib.h
+share/wasi-sysroot/include/c++/v1/__cxx03/streambuf
+share/wasi-sysroot/include/c++/v1/__cxx03/string
+share/wasi-sysroot/include/c++/v1/__cxx03/string.h
+share/wasi-sysroot/include/c++/v1/__cxx03/string_view
+share/wasi-sysroot/include/c++/v1/__cxx03/strstream
+share/wasi-sysroot/include/c++/v1/__cxx03/system_error
+share/wasi-sysroot/include/c++/v1/__cxx03/tgmath.h
+share/wasi-sysroot/include/c++/v1/__cxx03/thread
+share/wasi-sysroot/include/c++/v1/__cxx03/type_traits
+share/wasi-sysroot/include/c++/v1/__cxx03/typeindex
+share/wasi-sysroot/include/c++/v1/__cxx03/typeinfo
+share/wasi-sysroot/include/c++/v1/__cxx03/uchar.h
+share/wasi-sysroot/include/c++/v1/__cxx03/unordered_map
+share/wasi-sysroot/include/c++/v1/__cxx03/unordered_set
+share/wasi-sysroot/include/c++/v1/__cxx03/utility
+share/wasi-sysroot/include/c++/v1/__cxx03/valarray
+share/wasi-sysroot/include/c++/v1/__cxx03/vector
+share/wasi-sysroot/include/c++/v1/__cxx03/version
+share/wasi-sysroot/include/c++/v1/__cxx03/wchar.h
+share/wasi-sysroot/include/c++/v1/__cxx03/wctype.h
+share/wasi-sysroot/include/c++/v1/__cxxabi_config.h
+share/wasi-sysroot/include/c++/v1/__debug_utils/randomize_range.h
+share/wasi-sysroot/include/c++/v1/__debug_utils/sanitizers.h
+share/wasi-sysroot/include/c++/v1/__debug_utils/strict_weak_ordering_check.h
+share/wasi-sysroot/include/c++/v1/__exception/exception.h
+share/wasi-sysroot/include/c++/v1/__exception/exception_ptr.h
+share/wasi-sysroot/include/c++/v1/__exception/nested_exception.h
+share/wasi-sysroot/include/c++/v1/__exception/operations.h
+share/wasi-sysroot/include/c++/v1/__exception/terminate.h
+share/wasi-sysroot/include/c++/v1/__expected/bad_expected_access.h
+share/wasi-sysroot/include/c++/v1/__expected/expected.h
+share/wasi-sysroot/include/c++/v1/__expected/unexpect.h
+share/wasi-sysroot/include/c++/v1/__expected/unexpected.h
+share/wasi-sysroot/include/c++/v1/__filesystem/copy_options.h
+share/wasi-sysroot/include/c++/v1/__filesystem/directory_entry.h
+share/wasi-sysroot/include/c++/v1/__filesystem/directory_iterator.h
+share/wasi-sysroot/include/c++/v1/__filesystem/directory_options.h
+share/wasi-sysroot/include/c++/v1/__filesystem/file_status.h
+share/wasi-sysroot/include/c++/v1/__filesystem/file_time_type.h
+share/wasi-sysroot/include/c++/v1/__filesystem/file_type.h
+share/wasi-sysroot/include/c++/v1/__filesystem/filesystem_error.h
+share/wasi-sysroot/include/c++/v1/__filesystem/operations.h
+share/wasi-sysroot/include/c++/v1/__filesystem/path.h
+share/wasi-sysroot/include/c++/v1/__filesystem/path_iterator.h
+share/wasi-sysroot/include/c++/v1/__filesystem/perm_options.h
+share/wasi-sysroot/include/c++/v1/__filesystem/perms.h
+share/wasi-sysroot/include/c++/v1/__filesystem/recursive_directory_iterator.h
+share/wasi-sysroot/include/c++/v1/__filesystem/space_info.h
+share/wasi-sysroot/include/c++/v1/__filesystem/u8path.h
+share/wasi-sysroot/include/c++/v1/__flat_map/flat_map.h
+share/wasi-sysroot/include/c++/v1/__flat_map/flat_multimap.h
+share/wasi-sysroot/include/c++/v1/__flat_map/key_value_iterator.h
+share/wasi-sysroot/include/c++/v1/__flat_map/sorted_equivalent.h
+share/wasi-sysroot/include/c++/v1/__flat_map/sorted_unique.h
+share/wasi-sysroot/include/c++/v1/__flat_map/utils.h
+share/wasi-sysroot/include/c++/v1/__flat_set/flat_multiset.h
+share/wasi-sysroot/include/c++/v1/__flat_set/flat_set.h
+share/wasi-sysroot/include/c++/v1/__flat_set/ra_iterator.h
+share/wasi-sysroot/include/c++/v1/__flat_set/utils.h
+share/wasi-sysroot/include/c++/v1/__format/buffer.h
+share/wasi-sysroot/include/c++/v1/__format/concepts.h
+share/wasi-sysroot/include/c++/v1/__format/container_adaptor.h
+share/wasi-sysroot/include/c++/v1/__format/enable_insertable.h
+share/wasi-sysroot/include/c++/v1/__format/escaped_output_table.h
+share/wasi-sysroot/include/c++/v1/__format/extended_grapheme_cluster_table.h
+share/wasi-sysroot/include/c++/v1/__format/format_arg.h
+share/wasi-sysroot/include/c++/v1/__format/format_arg_store.h
+share/wasi-sysroot/include/c++/v1/__format/format_args.h
+share/wasi-sysroot/include/c++/v1/__format/format_context.h
+share/wasi-sysroot/include/c++/v1/__format/format_error.h
+share/wasi-sysroot/include/c++/v1/__format/format_functions.h
+share/wasi-sysroot/include/c++/v1/__format/format_parse_context.h
+share/wasi-sysroot/include/c++/v1/__format/format_string.h
+share/wasi-sysroot/include/c++/v1/__format/format_to_n_result.h
+share/wasi-sysroot/include/c++/v1/__format/formatter.h
+share/wasi-sysroot/include/c++/v1/__format/formatter_bool.h
+share/wasi-sysroot/include/c++/v1/__format/formatter_char.h
+share/wasi-sysroot/include/c++/v1/__format/formatter_floating_point.h
+share/wasi-sysroot/include/c++/v1/__format/formatter_integer.h
+share/wasi-sysroot/include/c++/v1/__format/formatter_integral.h
+share/wasi-sysroot/include/c++/v1/__format/formatter_output.h
+share/wasi-sysroot/include/c++/v1/__format/formatter_pointer.h
+share/wasi-sysroot/include/c++/v1/__format/formatter_string.h
+share/wasi-sysroot/include/c++/v1/__format/formatter_tuple.h
+share/wasi-sysroot/include/c++/v1/__format/indic_conjunct_break_table.h
+share/wasi-sysroot/include/c++/v1/__format/parser_std_format_spec.h
+share/wasi-sysroot/include/c++/v1/__format/range_default_formatter.h
+share/wasi-sysroot/include/c++/v1/__format/range_formatter.h
+share/wasi-sysroot/include/c++/v1/__format/unicode.h
+share/wasi-sysroot/include/c++/v1/__format/width_estimation_table.h
+share/wasi-sysroot/include/c++/v1/__format/write_escaped.h
+share/wasi-sysroot/include/c++/v1/__functional/binary_function.h
+share/wasi-sysroot/include/c++/v1/__functional/binary_negate.h
+share/wasi-sysroot/include/c++/v1/__functional/bind.h
+share/wasi-sysroot/include/c++/v1/__functional/bind_back.h
+share/wasi-sysroot/include/c++/v1/__functional/bind_front.h
+share/wasi-sysroot/include/c++/v1/__functional/binder1st.h
+share/wasi-sysroot/include/c++/v1/__functional/binder2nd.h
+share/wasi-sysroot/include/c++/v1/__functional/boyer_moore_searcher.h
+share/wasi-sysroot/include/c++/v1/__functional/compose.h
+share/wasi-sysroot/include/c++/v1/__functional/default_searcher.h
+share/wasi-sysroot/include/c++/v1/__functional/function.h
+share/wasi-sysroot/include/c++/v1/__functional/hash.h
+share/wasi-sysroot/include/c++/v1/__functional/identity.h
+share/wasi-sysroot/include/c++/v1/__functional/invoke.h
+share/wasi-sysroot/include/c++/v1/__functional/is_transparent.h
+share/wasi-sysroot/include/c++/v1/__functional/mem_fn.h
+share/wasi-sysroot/include/c++/v1/__functional/mem_fun_ref.h
+share/wasi-sysroot/include/c++/v1/__functional/not_fn.h
+share/wasi-sysroot/include/c++/v1/__functional/operations.h
+share/wasi-sysroot/include/c++/v1/__functional/perfect_forward.h
+share/wasi-sysroot/include/c++/v1/__functional/pointer_to_binary_function.h
+share/wasi-sysroot/include/c++/v1/__functional/pointer_to_unary_function.h
+share/wasi-sysroot/include/c++/v1/__functional/ranges_operations.h
+share/wasi-sysroot/include/c++/v1/__functional/reference_wrapper.h
+share/wasi-sysroot/include/c++/v1/__functional/unary_function.h
+share/wasi-sysroot/include/c++/v1/__functional/unary_negate.h
+share/wasi-sysroot/include/c++/v1/__functional/weak_result_type.h
+share/wasi-sysroot/include/c++/v1/__fwd/array.h
+share/wasi-sysroot/include/c++/v1/__fwd/bit_reference.h
+share/wasi-sysroot/include/c++/v1/__fwd/byte.h
+share/wasi-sysroot/include/c++/v1/__fwd/complex.h
+share/wasi-sysroot/include/c++/v1/__fwd/deque.h
+share/wasi-sysroot/include/c++/v1/__fwd/format.h
+share/wasi-sysroot/include/c++/v1/__fwd/fstream.h
+share/wasi-sysroot/include/c++/v1/__fwd/functional.h
+share/wasi-sysroot/include/c++/v1/__fwd/get.h
+share/wasi-sysroot/include/c++/v1/__fwd/ios.h
+share/wasi-sysroot/include/c++/v1/__fwd/istream.h
+share/wasi-sysroot/include/c++/v1/__fwd/map.h
+share/wasi-sysroot/include/c++/v1/__fwd/mdspan.h
+share/wasi-sysroot/include/c++/v1/__fwd/memory.h
+share/wasi-sysroot/include/c++/v1/__fwd/memory_resource.h
+share/wasi-sysroot/include/c++/v1/__fwd/ostream.h
+share/wasi-sysroot/include/c++/v1/__fwd/pair.h
+share/wasi-sysroot/include/c++/v1/__fwd/queue.h
+share/wasi-sysroot/include/c++/v1/__fwd/set.h
+share/wasi-sysroot/include/c++/v1/__fwd/span.h
+share/wasi-sysroot/include/c++/v1/__fwd/sstream.h
+share/wasi-sysroot/include/c++/v1/__fwd/stack.h
+share/wasi-sysroot/include/c++/v1/__fwd/streambuf.h
+share/wasi-sysroot/include/c++/v1/__fwd/string.h
+share/wasi-sysroot/include/c++/v1/__fwd/string_view.h
+share/wasi-sysroot/include/c++/v1/__fwd/subrange.h
+share/wasi-sysroot/include/c++/v1/__fwd/tuple.h
+share/wasi-sysroot/include/c++/v1/__fwd/variant.h
+share/wasi-sysroot/include/c++/v1/__fwd/vector.h
+share/wasi-sysroot/include/c++/v1/__hash_table
+share/wasi-sysroot/include/c++/v1/__ios/fpos.h
+share/wasi-sysroot/include/c++/v1/__iterator/access.h
+share/wasi-sysroot/include/c++/v1/__iterator/advance.h
+share/wasi-sysroot/include/c++/v1/__iterator/aliasing_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/back_insert_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/bounded_iter.h
+share/wasi-sysroot/include/c++/v1/__iterator/common_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/concepts.h
+share/wasi-sysroot/include/c++/v1/__iterator/counted_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/cpp17_iterator_concepts.h
+share/wasi-sysroot/include/c++/v1/__iterator/data.h
+share/wasi-sysroot/include/c++/v1/__iterator/default_sentinel.h
+share/wasi-sysroot/include/c++/v1/__iterator/distance.h
+share/wasi-sysroot/include/c++/v1/__iterator/empty.h
+share/wasi-sysroot/include/c++/v1/__iterator/erase_if_container.h
+share/wasi-sysroot/include/c++/v1/__iterator/front_insert_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/incrementable_traits.h
+share/wasi-sysroot/include/c++/v1/__iterator/indirectly_comparable.h
+share/wasi-sysroot/include/c++/v1/__iterator/insert_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/istream_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/istreambuf_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/iter_move.h
+share/wasi-sysroot/include/c++/v1/__iterator/iter_swap.h
+share/wasi-sysroot/include/c++/v1/__iterator/iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/iterator_traits.h
+share/wasi-sysroot/include/c++/v1/__iterator/iterator_with_data.h
+share/wasi-sysroot/include/c++/v1/__iterator/mergeable.h
+share/wasi-sysroot/include/c++/v1/__iterator/move_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/move_sentinel.h
+share/wasi-sysroot/include/c++/v1/__iterator/next.h
+share/wasi-sysroot/include/c++/v1/__iterator/ostream_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/ostreambuf_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/permutable.h
+share/wasi-sysroot/include/c++/v1/__iterator/prev.h
+share/wasi-sysroot/include/c++/v1/__iterator/product_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/projected.h
+share/wasi-sysroot/include/c++/v1/__iterator/ranges_iterator_traits.h
+share/wasi-sysroot/include/c++/v1/__iterator/readable_traits.h
+share/wasi-sysroot/include/c++/v1/__iterator/reverse_access.h
+share/wasi-sysroot/include/c++/v1/__iterator/reverse_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/segmented_iterator.h
+share/wasi-sysroot/include/c++/v1/__iterator/size.h
+share/wasi-sysroot/include/c++/v1/__iterator/sortable.h
+share/wasi-sysroot/include/c++/v1/__iterator/static_bounded_iter.h
+share/wasi-sysroot/include/c++/v1/__iterator/unreachable_sentinel.h
+share/wasi-sysroot/include/c++/v1/__iterator/wrap_iter.h
+share/wasi-sysroot/include/c++/v1/__locale
+share/wasi-sysroot/include/c++/v1/__locale_dir/check_grouping.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/get_c_locale.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/locale_base_api.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/locale_base_api/android.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/locale_base_api/bsd_locale_fallbacks.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/locale_base_api/ibm.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/locale_base_api/musl.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/locale_base_api/openbsd.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/messages.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/money.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/num.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/pad_and_output.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/scan_keyword.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/support/apple.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/support/bsd_like.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/support/freebsd.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/support/fuchsia.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/support/linux.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/support/no_locale/characters.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/support/no_locale/strtonum.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/support/windows.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/time.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/wbuffer_convert.h
+share/wasi-sysroot/include/c++/v1/__locale_dir/wstring_convert.h
+share/wasi-sysroot/include/c++/v1/__log_hardening_failure
+share/wasi-sysroot/include/c++/v1/__math/abs.h
+share/wasi-sysroot/include/c++/v1/__math/copysign.h
+share/wasi-sysroot/include/c++/v1/__math/error_functions.h
+share/wasi-sysroot/include/c++/v1/__math/exponential_functions.h
+share/wasi-sysroot/include/c++/v1/__math/fdim.h
+share/wasi-sysroot/include/c++/v1/__math/fma.h
+share/wasi-sysroot/include/c++/v1/__math/gamma.h
+share/wasi-sysroot/include/c++/v1/__math/hyperbolic_functions.h
+share/wasi-sysroot/include/c++/v1/__math/hypot.h
+share/wasi-sysroot/include/c++/v1/__math/inverse_hyperbolic_functions.h
+share/wasi-sysroot/include/c++/v1/__math/inverse_trigonometric_functions.h
+share/wasi-sysroot/include/c++/v1/__math/logarithms.h
+share/wasi-sysroot/include/c++/v1/__math/min_max.h
+share/wasi-sysroot/include/c++/v1/__math/modulo.h
+share/wasi-sysroot/include/c++/v1/__math/remainder.h
+share/wasi-sysroot/include/c++/v1/__math/roots.h
+share/wasi-sysroot/include/c++/v1/__math/rounding_functions.h
+share/wasi-sysroot/include/c++/v1/__math/special_functions.h
+share/wasi-sysroot/include/c++/v1/__math/traits.h
+share/wasi-sysroot/include/c++/v1/__math/trigonometric_functions.h
+share/wasi-sysroot/include/c++/v1/__mbstate_t.h
+share/wasi-sysroot/include/c++/v1/__mdspan/aligned_accessor.h
+share/wasi-sysroot/include/c++/v1/__mdspan/default_accessor.h
+share/wasi-sysroot/include/c++/v1/__mdspan/extents.h
+share/wasi-sysroot/include/c++/v1/__mdspan/layout_left.h
+share/wasi-sysroot/include/c++/v1/__mdspan/layout_right.h
+share/wasi-sysroot/include/c++/v1/__mdspan/layout_stride.h
+share/wasi-sysroot/include/c++/v1/__mdspan/mdspan.h
+share/wasi-sysroot/include/c++/v1/__memory/addressof.h
+share/wasi-sysroot/include/c++/v1/__memory/align.h
+share/wasi-sysroot/include/c++/v1/__memory/aligned_alloc.h
+share/wasi-sysroot/include/c++/v1/__memory/allocate_at_least.h
+share/wasi-sysroot/include/c++/v1/__memory/allocation_guard.h
+share/wasi-sysroot/include/c++/v1/__memory/allocator.h
+share/wasi-sysroot/include/c++/v1/__memory/allocator_arg_t.h
+share/wasi-sysroot/include/c++/v1/__memory/allocator_destructor.h
+share/wasi-sysroot/include/c++/v1/__memory/allocator_traits.h
+share/wasi-sysroot/include/c++/v1/__memory/array_cookie.h
+share/wasi-sysroot/include/c++/v1/__memory/assume_aligned.h
+share/wasi-sysroot/include/c++/v1/__memory/auto_ptr.h
+share/wasi-sysroot/include/c++/v1/__memory/compressed_pair.h
+share/wasi-sysroot/include/c++/v1/__memory/concepts.h
+share/wasi-sysroot/include/c++/v1/__memory/construct_at.h
+share/wasi-sysroot/include/c++/v1/__memory/destroy.h
+share/wasi-sysroot/include/c++/v1/__memory/destruct_n.h
+share/wasi-sysroot/include/c++/v1/__memory/inout_ptr.h
+share/wasi-sysroot/include/c++/v1/__memory/is_sufficiently_aligned.h
+share/wasi-sysroot/include/c++/v1/__memory/noexcept_move_assign_container.h
+share/wasi-sysroot/include/c++/v1/__memory/out_ptr.h
+share/wasi-sysroot/include/c++/v1/__memory/pointer_traits.h
+share/wasi-sysroot/include/c++/v1/__memory/ranges_construct_at.h
+share/wasi-sysroot/include/c++/v1/__memory/ranges_destroy.h
+share/wasi-sysroot/include/c++/v1/__memory/ranges_uninitialized_algorithms.h
+share/wasi-sysroot/include/c++/v1/__memory/raw_storage_iterator.h
+share/wasi-sysroot/include/c++/v1/__memory/shared_count.h
+share/wasi-sysroot/include/c++/v1/__memory/shared_ptr.h
+share/wasi-sysroot/include/c++/v1/__memory/swap_allocator.h
+share/wasi-sysroot/include/c++/v1/__memory/temp_value.h
+share/wasi-sysroot/include/c++/v1/__memory/temporary_buffer.h
+share/wasi-sysroot/include/c++/v1/__memory/uninitialized_algorithms.h
+share/wasi-sysroot/include/c++/v1/__memory/unique_ptr.h
+share/wasi-sysroot/include/c++/v1/__memory/unique_temporary_buffer.h
+share/wasi-sysroot/include/c++/v1/__memory/uses_allocator.h
+share/wasi-sysroot/include/c++/v1/__memory/uses_allocator_construction.h
+share/wasi-sysroot/include/c++/v1/__memory_resource/memory_resource.h
+share/wasi-sysroot/include/c++/v1/__memory_resource/monotonic_buffer_resource.h
+share/wasi-sysroot/include/c++/v1/__memory_resource/polymorphic_allocator.h
+share/wasi-sysroot/include/c++/v1/__memory_resource/pool_options.h
+share/wasi-sysroot/include/c++/v1/__memory_resource/synchronized_pool_resource.h
+share/wasi-sysroot/include/c++/v1/__memory_resource/unsynchronized_pool_resource.h
+share/wasi-sysroot/include/c++/v1/__mutex/lock_guard.h
+share/wasi-sysroot/include/c++/v1/__mutex/mutex.h
+share/wasi-sysroot/include/c++/v1/__mutex/once_flag.h
+share/wasi-sysroot/include/c++/v1/__mutex/tag_types.h
+share/wasi-sysroot/include/c++/v1/__mutex/unique_lock.h
+share/wasi-sysroot/include/c++/v1/__new/align_val_t.h
+share/wasi-sysroot/include/c++/v1/__new/allocate.h
+share/wasi-sysroot/include/c++/v1/__new/destroying_delete_t.h
+share/wasi-sysroot/include/c++/v1/__new/exceptions.h
+share/wasi-sysroot/include/c++/v1/__new/global_new_delete.h
+share/wasi-sysroot/include/c++/v1/__new/interference_size.h
+share/wasi-sysroot/include/c++/v1/__new/launder.h
+share/wasi-sysroot/include/c++/v1/__new/new_handler.h
+share/wasi-sysroot/include/c++/v1/__new/nothrow_t.h
+share/wasi-sysroot/include/c++/v1/__new/placement_new_delete.h
+share/wasi-sysroot/include/c++/v1/__node_handle
+share/wasi-sysroot/include/c++/v1/__numeric/accumulate.h
+share/wasi-sysroot/include/c++/v1/__numeric/adjacent_difference.h
+share/wasi-sysroot/include/c++/v1/__numeric/exclusive_scan.h
+share/wasi-sysroot/include/c++/v1/__numeric/gcd_lcm.h
+share/wasi-sysroot/include/c++/v1/__numeric/inclusive_scan.h
+share/wasi-sysroot/include/c++/v1/__numeric/inner_product.h
+share/wasi-sysroot/include/c++/v1/__numeric/iota.h
+share/wasi-sysroot/include/c++/v1/__numeric/midpoint.h
+share/wasi-sysroot/include/c++/v1/__numeric/partial_sum.h
+share/wasi-sysroot/include/c++/v1/__numeric/pstl.h
+share/wasi-sysroot/include/c++/v1/__numeric/ranges_iota.h
+share/wasi-sysroot/include/c++/v1/__numeric/reduce.h
+share/wasi-sysroot/include/c++/v1/__numeric/saturation_arithmetic.h
+share/wasi-sysroot/include/c++/v1/__numeric/transform_exclusive_scan.h
+share/wasi-sysroot/include/c++/v1/__numeric/transform_inclusive_scan.h
+share/wasi-sysroot/include/c++/v1/__numeric/transform_reduce.h
+share/wasi-sysroot/include/c++/v1/__ostream/basic_ostream.h
+share/wasi-sysroot/include/c++/v1/__ostream/print.h
+share/wasi-sysroot/include/c++/v1/__ostream/put_character_sequence.h
+share/wasi-sysroot/include/c++/v1/__pstl/backend.h
+share/wasi-sysroot/include/c++/v1/__pstl/backend_fwd.h
+share/wasi-sysroot/include/c++/v1/__pstl/backends/default.h
+share/wasi-sysroot/include/c++/v1/__pstl/backends/libdispatch.h
+share/wasi-sysroot/include/c++/v1/__pstl/backends/serial.h
+share/wasi-sysroot/include/c++/v1/__pstl/backends/std_thread.h
+share/wasi-sysroot/include/c++/v1/__pstl/cpu_algos/any_of.h
+share/wasi-sysroot/include/c++/v1/__pstl/cpu_algos/cpu_traits.h
+share/wasi-sysroot/include/c++/v1/__pstl/cpu_algos/fill.h
+share/wasi-sysroot/include/c++/v1/__pstl/cpu_algos/find_if.h
+share/wasi-sysroot/include/c++/v1/__pstl/cpu_algos/for_each.h
+share/wasi-sysroot/include/c++/v1/__pstl/cpu_algos/merge.h
+share/wasi-sysroot/include/c++/v1/__pstl/cpu_algos/stable_sort.h
+share/wasi-sysroot/include/c++/v1/__pstl/cpu_algos/transform.h
+share/wasi-sysroot/include/c++/v1/__pstl/cpu_algos/transform_reduce.h
+share/wasi-sysroot/include/c++/v1/__pstl/dispatch.h
+share/wasi-sysroot/include/c++/v1/__pstl/handle_exception.h
+share/wasi-sysroot/include/c++/v1/__random/bernoulli_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/binomial_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/cauchy_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/chi_squared_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/clamp_to_integral.h
+share/wasi-sysroot/include/c++/v1/__random/default_random_engine.h
+share/wasi-sysroot/include/c++/v1/__random/discard_block_engine.h
+share/wasi-sysroot/include/c++/v1/__random/discrete_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/exponential_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/extreme_value_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/fisher_f_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/gamma_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/generate_canonical.h
+share/wasi-sysroot/include/c++/v1/__random/geometric_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/independent_bits_engine.h
+share/wasi-sysroot/include/c++/v1/__random/is_seed_sequence.h
+share/wasi-sysroot/include/c++/v1/__random/is_valid.h
+share/wasi-sysroot/include/c++/v1/__random/knuth_b.h
+share/wasi-sysroot/include/c++/v1/__random/linear_congruential_engine.h
+share/wasi-sysroot/include/c++/v1/__random/log2.h
+share/wasi-sysroot/include/c++/v1/__random/lognormal_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/mersenne_twister_engine.h
+share/wasi-sysroot/include/c++/v1/__random/negative_binomial_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/normal_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/piecewise_constant_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/piecewise_linear_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/poisson_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/random_device.h
+share/wasi-sysroot/include/c++/v1/__random/ranlux.h
+share/wasi-sysroot/include/c++/v1/__random/seed_seq.h
+share/wasi-sysroot/include/c++/v1/__random/shuffle_order_engine.h
+share/wasi-sysroot/include/c++/v1/__random/student_t_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/subtract_with_carry_engine.h
+share/wasi-sysroot/include/c++/v1/__random/uniform_int_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/uniform_random_bit_generator.h
+share/wasi-sysroot/include/c++/v1/__random/uniform_real_distribution.h
+share/wasi-sysroot/include/c++/v1/__random/weibull_distribution.h
+share/wasi-sysroot/include/c++/v1/__ranges/access.h
+share/wasi-sysroot/include/c++/v1/__ranges/all.h
+share/wasi-sysroot/include/c++/v1/__ranges/as_rvalue_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/chunk_by_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/common_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/concepts.h
+share/wasi-sysroot/include/c++/v1/__ranges/container_compatible_range.h
+share/wasi-sysroot/include/c++/v1/__ranges/counted.h
+share/wasi-sysroot/include/c++/v1/__ranges/dangling.h
+share/wasi-sysroot/include/c++/v1/__ranges/data.h
+share/wasi-sysroot/include/c++/v1/__ranges/drop_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/drop_while_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/elements_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/empty.h
+share/wasi-sysroot/include/c++/v1/__ranges/empty_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/enable_borrowed_range.h
+share/wasi-sysroot/include/c++/v1/__ranges/enable_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/filter_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/from_range.h
+share/wasi-sysroot/include/c++/v1/__ranges/iota_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/istream_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/join_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/join_with_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/lazy_split_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/movable_box.h
+share/wasi-sysroot/include/c++/v1/__ranges/non_propagating_cache.h
+share/wasi-sysroot/include/c++/v1/__ranges/owning_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/range_adaptor.h
+share/wasi-sysroot/include/c++/v1/__ranges/rbegin.h
+share/wasi-sysroot/include/c++/v1/__ranges/ref_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/rend.h
+share/wasi-sysroot/include/c++/v1/__ranges/repeat_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/reverse_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/single_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/size.h
+share/wasi-sysroot/include/c++/v1/__ranges/split_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/subrange.h
+share/wasi-sysroot/include/c++/v1/__ranges/take_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/take_while_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/to.h
+share/wasi-sysroot/include/c++/v1/__ranges/transform_view.h
+share/wasi-sysroot/include/c++/v1/__ranges/view_interface.h
+share/wasi-sysroot/include/c++/v1/__ranges/views.h
+share/wasi-sysroot/include/c++/v1/__ranges/zip_view.h
+share/wasi-sysroot/include/c++/v1/__split_buffer
+share/wasi-sysroot/include/c++/v1/__std_mbstate_t.h
+share/wasi-sysroot/include/c++/v1/__stop_token/atomic_unique_lock.h
+share/wasi-sysroot/include/c++/v1/__stop_token/intrusive_list_view.h
+share/wasi-sysroot/include/c++/v1/__stop_token/intrusive_shared_ptr.h
+share/wasi-sysroot/include/c++/v1/__stop_token/stop_callback.h
+share/wasi-sysroot/include/c++/v1/__stop_token/stop_source.h
+share/wasi-sysroot/include/c++/v1/__stop_token/stop_state.h
+share/wasi-sysroot/include/c++/v1/__stop_token/stop_token.h
+share/wasi-sysroot/include/c++/v1/__string/char_traits.h
+share/wasi-sysroot/include/c++/v1/__string/constexpr_c_functions.h
+share/wasi-sysroot/include/c++/v1/__string/extern_template_lists.h
+share/wasi-sysroot/include/c++/v1/__support/ibm/gettod_zos.h
+share/wasi-sysroot/include/c++/v1/__support/ibm/locale_mgmt_zos.h
+share/wasi-sysroot/include/c++/v1/__support/ibm/nanosleep.h
+share/wasi-sysroot/include/c++/v1/__support/xlocale/__nop_locale_mgmt.h
+share/wasi-sysroot/include/c++/v1/__support/xlocale/__posix_l_fallback.h
+share/wasi-sysroot/include/c++/v1/__support/xlocale/__strtonum_fallback.h
+share/wasi-sysroot/include/c++/v1/__system_error/errc.h
+share/wasi-sysroot/include/c++/v1/__system_error/error_category.h
+share/wasi-sysroot/include/c++/v1/__system_error/error_code.h
+share/wasi-sysroot/include/c++/v1/__system_error/error_condition.h
+share/wasi-sysroot/include/c++/v1/__system_error/system_error.h
+share/wasi-sysroot/include/c++/v1/__system_error/throw_system_error.h
+share/wasi-sysroot/include/c++/v1/__thread/formatter.h
+share/wasi-sysroot/include/c++/v1/__thread/id.h
+share/wasi-sysroot/include/c++/v1/__thread/jthread.h
+share/wasi-sysroot/include/c++/v1/__thread/poll_with_backoff.h
+share/wasi-sysroot/include/c++/v1/__thread/support.h
+share/wasi-sysroot/include/c++/v1/__thread/support/c11.h
+share/wasi-sysroot/include/c++/v1/__thread/support/external.h
+share/wasi-sysroot/include/c++/v1/__thread/support/pthread.h
+share/wasi-sysroot/include/c++/v1/__thread/support/windows.h
+share/wasi-sysroot/include/c++/v1/__thread/this_thread.h
+share/wasi-sysroot/include/c++/v1/__thread/thread.h
+share/wasi-sysroot/include/c++/v1/__thread/timed_backoff_policy.h
+share/wasi-sysroot/include/c++/v1/__tree
+share/wasi-sysroot/include/c++/v1/__tuple/find_index.h
+share/wasi-sysroot/include/c++/v1/__tuple/ignore.h
+share/wasi-sysroot/include/c++/v1/__tuple/make_tuple_types.h
+share/wasi-sysroot/include/c++/v1/__tuple/sfinae_helpers.h
+share/wasi-sysroot/include/c++/v1/__tuple/tuple_element.h
+share/wasi-sysroot/include/c++/v1/__tuple/tuple_indices.h
+share/wasi-sysroot/include/c++/v1/__tuple/tuple_like.h
+share/wasi-sysroot/include/c++/v1/__tuple/tuple_like_ext.h
+share/wasi-sysroot/include/c++/v1/__tuple/tuple_like_no_subrange.h
+share/wasi-sysroot/include/c++/v1/__tuple/tuple_size.h
+share/wasi-sysroot/include/c++/v1/__tuple/tuple_types.h
+share/wasi-sysroot/include/c++/v1/__type_traits/add_cv_quals.h
+share/wasi-sysroot/include/c++/v1/__type_traits/add_pointer.h
+share/wasi-sysroot/include/c++/v1/__type_traits/add_reference.h
+share/wasi-sysroot/include/c++/v1/__type_traits/aligned_storage.h
+share/wasi-sysroot/include/c++/v1/__type_traits/aligned_union.h
+share/wasi-sysroot/include/c++/v1/__type_traits/alignment_of.h
+share/wasi-sysroot/include/c++/v1/__type_traits/can_extract_key.h
+share/wasi-sysroot/include/c++/v1/__type_traits/common_reference.h
+share/wasi-sysroot/include/c++/v1/__type_traits/common_type.h
+share/wasi-sysroot/include/c++/v1/__type_traits/conditional.h
+share/wasi-sysroot/include/c++/v1/__type_traits/conjunction.h
+share/wasi-sysroot/include/c++/v1/__type_traits/container_traits.h
+share/wasi-sysroot/include/c++/v1/__type_traits/copy_cv.h
+share/wasi-sysroot/include/c++/v1/__type_traits/copy_cvref.h
+share/wasi-sysroot/include/c++/v1/__type_traits/datasizeof.h
+share/wasi-sysroot/include/c++/v1/__type_traits/decay.h
+share/wasi-sysroot/include/c++/v1/__type_traits/dependent_type.h
+share/wasi-sysroot/include/c++/v1/__type_traits/desugars_to.h
+share/wasi-sysroot/include/c++/v1/__type_traits/detected_or.h
+share/wasi-sysroot/include/c++/v1/__type_traits/disjunction.h
+share/wasi-sysroot/include/c++/v1/__type_traits/enable_if.h
+share/wasi-sysroot/include/c++/v1/__type_traits/extent.h
+share/wasi-sysroot/include/c++/v1/__type_traits/has_unique_object_representation.h
+share/wasi-sysroot/include/c++/v1/__type_traits/has_virtual_destructor.h
+share/wasi-sysroot/include/c++/v1/__type_traits/integer_traits.h
+share/wasi-sysroot/include/c++/v1/__type_traits/integral_constant.h
+share/wasi-sysroot/include/c++/v1/__type_traits/invoke.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_abstract.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_aggregate.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_allocator.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_always_bitcastable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_arithmetic.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_array.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_assignable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_base_of.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_bounded_array.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_callable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_char_like_type.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_class.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_compound.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_const.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_constant_evaluated.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_constructible.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_convertible.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_core_convertible.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_destructible.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_empty.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_enum.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_equality_comparable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_execution_policy.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_final.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_floating_point.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_function.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_fundamental.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_implicit_lifetime.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_implicitly_default_constructible.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_integral.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_literal_type.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_member_pointer.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_nothrow_assignable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_nothrow_constructible.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_nothrow_destructible.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_null_pointer.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_object.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_pod.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_pointer.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_polymorphic.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_primary_template.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_reference.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_reference_wrapper.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_referenceable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_replaceable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_same.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_scalar.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_signed.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_specialization.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_standard_layout.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_swappable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_trivial.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_trivially_assignable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_trivially_constructible.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_trivially_copyable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_trivially_destructible.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_trivially_lexicographically_comparable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_trivially_relocatable.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_unbounded_array.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_union.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_unsigned.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_valid_expansion.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_void.h
+share/wasi-sysroot/include/c++/v1/__type_traits/is_volatile.h
+share/wasi-sysroot/include/c++/v1/__type_traits/lazy.h
+share/wasi-sysroot/include/c++/v1/__type_traits/make_32_64_or_128_bit.h
+share/wasi-sysroot/include/c++/v1/__type_traits/make_const_lvalue_ref.h
+share/wasi-sysroot/include/c++/v1/__type_traits/make_signed.h
+share/wasi-sysroot/include/c++/v1/__type_traits/make_unsigned.h
+share/wasi-sysroot/include/c++/v1/__type_traits/maybe_const.h
+share/wasi-sysroot/include/c++/v1/__type_traits/nat.h
+share/wasi-sysroot/include/c++/v1/__type_traits/negation.h
+share/wasi-sysroot/include/c++/v1/__type_traits/promote.h
+share/wasi-sysroot/include/c++/v1/__type_traits/rank.h
+share/wasi-sysroot/include/c++/v1/__type_traits/reference_constructs_from_temporary.h
+share/wasi-sysroot/include/c++/v1/__type_traits/reference_converts_from_temporary.h
+share/wasi-sysroot/include/c++/v1/__type_traits/remove_all_extents.h
+share/wasi-sysroot/include/c++/v1/__type_traits/remove_const.h
+share/wasi-sysroot/include/c++/v1/__type_traits/remove_const_ref.h
+share/wasi-sysroot/include/c++/v1/__type_traits/remove_cv.h
+share/wasi-sysroot/include/c++/v1/__type_traits/remove_cvref.h
+share/wasi-sysroot/include/c++/v1/__type_traits/remove_extent.h
+share/wasi-sysroot/include/c++/v1/__type_traits/remove_pointer.h
+share/wasi-sysroot/include/c++/v1/__type_traits/remove_reference.h
+share/wasi-sysroot/include/c++/v1/__type_traits/remove_volatile.h
+share/wasi-sysroot/include/c++/v1/__type_traits/result_of.h
+share/wasi-sysroot/include/c++/v1/__type_traits/strip_signature.h
+share/wasi-sysroot/include/c++/v1/__type_traits/type_identity.h
+share/wasi-sysroot/include/c++/v1/__type_traits/type_list.h
+share/wasi-sysroot/include/c++/v1/__type_traits/underlying_type.h
+share/wasi-sysroot/include/c++/v1/__type_traits/unwrap_ref.h
+share/wasi-sysroot/include/c++/v1/__type_traits/void_t.h
+share/wasi-sysroot/include/c++/v1/__undef_macros
+share/wasi-sysroot/include/c++/v1/__utility/as_const.h
+share/wasi-sysroot/include/c++/v1/__utility/as_lvalue.h
+share/wasi-sysroot/include/c++/v1/__utility/auto_cast.h
+share/wasi-sysroot/include/c++/v1/__utility/cmp.h
+share/wasi-sysroot/include/c++/v1/__utility/convert_to_integral.h
+share/wasi-sysroot/include/c++/v1/__utility/declval.h
+share/wasi-sysroot/include/c++/v1/__utility/element_count.h
+share/wasi-sysroot/include/c++/v1/__utility/empty.h
+share/wasi-sysroot/include/c++/v1/__utility/exception_guard.h
+share/wasi-sysroot/include/c++/v1/__utility/exchange.h
+share/wasi-sysroot/include/c++/v1/__utility/forward.h
+share/wasi-sysroot/include/c++/v1/__utility/forward_like.h
+share/wasi-sysroot/include/c++/v1/__utility/in_place.h
+share/wasi-sysroot/include/c++/v1/__utility/integer_sequence.h
+share/wasi-sysroot/include/c++/v1/__utility/is_pointer_in_range.h
+share/wasi-sysroot/include/c++/v1/__utility/is_valid_range.h
+share/wasi-sysroot/include/c++/v1/__utility/move.h
+share/wasi-sysroot/include/c++/v1/__utility/no_destroy.h
+share/wasi-sysroot/include/c++/v1/__utility/pair.h
+share/wasi-sysroot/include/c++/v1/__utility/piecewise_construct.h
+share/wasi-sysroot/include/c++/v1/__utility/priority_tag.h
+share/wasi-sysroot/include/c++/v1/__utility/private_constructor_tag.h
+share/wasi-sysroot/include/c++/v1/__utility/rel_ops.h
+share/wasi-sysroot/include/c++/v1/__utility/scope_guard.h
+share/wasi-sysroot/include/c++/v1/__utility/small_buffer.h
+share/wasi-sysroot/include/c++/v1/__utility/swap.h
+share/wasi-sysroot/include/c++/v1/__utility/to_underlying.h
+share/wasi-sysroot/include/c++/v1/__utility/unreachable.h
+share/wasi-sysroot/include/c++/v1/__variant/monostate.h
+share/wasi-sysroot/include/c++/v1/__vector/comparison.h
+share/wasi-sysroot/include/c++/v1/__vector/container_traits.h
+share/wasi-sysroot/include/c++/v1/__vector/erase.h
+share/wasi-sysroot/include/c++/v1/__vector/pmr.h
+share/wasi-sysroot/include/c++/v1/__vector/swap.h
+share/wasi-sysroot/include/c++/v1/__vector/vector.h
+share/wasi-sysroot/include/c++/v1/__vector/vector_bool.h
+share/wasi-sysroot/include/c++/v1/__vector/vector_bool_formatter.h
+share/wasi-sysroot/include/c++/v1/__verbose_abort
+share/wasi-sysroot/include/c++/v1/__verbose_trap
+share/wasi-sysroot/include/c++/v1/algorithm
+share/wasi-sysroot/include/c++/v1/any
+share/wasi-sysroot/include/c++/v1/array
+share/wasi-sysroot/include/c++/v1/atomic
+share/wasi-sysroot/include/c++/v1/barrier
+share/wasi-sysroot/include/c++/v1/bit
+share/wasi-sysroot/include/c++/v1/bitset
+share/wasi-sysroot/include/c++/v1/cassert
+share/wasi-sysroot/include/c++/v1/ccomplex
+share/wasi-sysroot/include/c++/v1/cctype
+share/wasi-sysroot/include/c++/v1/cerrno
+share/wasi-sysroot/include/c++/v1/cfenv
+share/wasi-sysroot/include/c++/v1/cfloat
+share/wasi-sysroot/include/c++/v1/charconv
+share/wasi-sysroot/include/c++/v1/chrono
+share/wasi-sysroot/include/c++/v1/cinttypes
+share/wasi-sysroot/include/c++/v1/ciso646
+share/wasi-sysroot/include/c++/v1/climits
+share/wasi-sysroot/include/c++/v1/clocale
+share/wasi-sysroot/include/c++/v1/cmath
+share/wasi-sysroot/include/c++/v1/codecvt
+share/wasi-sysroot/include/c++/v1/compare
+share/wasi-sysroot/include/c++/v1/complex
+share/wasi-sysroot/include/c++/v1/complex.h
+share/wasi-sysroot/include/c++/v1/concepts
+share/wasi-sysroot/include/c++/v1/condition_variable
+share/wasi-sysroot/include/c++/v1/coroutine
+share/wasi-sysroot/include/c++/v1/csetjmp
+share/wasi-sysroot/include/c++/v1/csignal
+share/wasi-sysroot/include/c++/v1/cstdalign
+share/wasi-sysroot/include/c++/v1/cstdarg
+share/wasi-sysroot/include/c++/v1/cstdbool
+share/wasi-sysroot/include/c++/v1/cstddef
+share/wasi-sysroot/include/c++/v1/cstdint
+share/wasi-sysroot/include/c++/v1/cstdio
+share/wasi-sysroot/include/c++/v1/cstdlib
+share/wasi-sysroot/include/c++/v1/cstring
+share/wasi-sysroot/include/c++/v1/ctgmath
+share/wasi-sysroot/include/c++/v1/ctime
+share/wasi-sysroot/include/c++/v1/ctype.h
+share/wasi-sysroot/include/c++/v1/cuchar
+share/wasi-sysroot/include/c++/v1/cwchar
+share/wasi-sysroot/include/c++/v1/cwctype
+share/wasi-sysroot/include/c++/v1/cxxabi.h
+share/wasi-sysroot/include/c++/v1/deque
+share/wasi-sysroot/include/c++/v1/errno.h
+share/wasi-sysroot/include/c++/v1/exception
+share/wasi-sysroot/include/c++/v1/execution
+share/wasi-sysroot/include/c++/v1/expected
+share/wasi-sysroot/include/c++/v1/experimental/__simd/aligned_tag.h
+share/wasi-sysroot/include/c++/v1/experimental/__simd/declaration.h
+share/wasi-sysroot/include/c++/v1/experimental/__simd/reference.h
+share/wasi-sysroot/include/c++/v1/experimental/__simd/scalar.h
+share/wasi-sysroot/include/c++/v1/experimental/__simd/simd.h
+share/wasi-sysroot/include/c++/v1/experimental/__simd/simd_mask.h
+share/wasi-sysroot/include/c++/v1/experimental/__simd/traits.h
+share/wasi-sysroot/include/c++/v1/experimental/__simd/utility.h
+share/wasi-sysroot/include/c++/v1/experimental/__simd/vec_ext.h
+share/wasi-sysroot/include/c++/v1/experimental/iterator
+share/wasi-sysroot/include/c++/v1/experimental/memory
+share/wasi-sysroot/include/c++/v1/experimental/propagate_const
+share/wasi-sysroot/include/c++/v1/experimental/simd
+share/wasi-sysroot/include/c++/v1/experimental/type_traits
+share/wasi-sysroot/include/c++/v1/experimental/utility
+share/wasi-sysroot/include/c++/v1/ext/__hash
+share/wasi-sysroot/include/c++/v1/ext/hash_map
+share/wasi-sysroot/include/c++/v1/ext/hash_set
+share/wasi-sysroot/include/c++/v1/fenv.h
+share/wasi-sysroot/include/c++/v1/filesystem
+share/wasi-sysroot/include/c++/v1/flat_map
+share/wasi-sysroot/include/c++/v1/flat_set
+share/wasi-sysroot/include/c++/v1/float.h
+share/wasi-sysroot/include/c++/v1/format
+share/wasi-sysroot/include/c++/v1/forward_list
+share/wasi-sysroot/include/c++/v1/fstream
+share/wasi-sysroot/include/c++/v1/functional
+share/wasi-sysroot/include/c++/v1/future
+share/wasi-sysroot/include/c++/v1/initializer_list
+share/wasi-sysroot/include/c++/v1/inttypes.h
+share/wasi-sysroot/include/c++/v1/iomanip
+share/wasi-sysroot/include/c++/v1/ios
+share/wasi-sysroot/include/c++/v1/iosfwd
+share/wasi-sysroot/include/c++/v1/iostream
+share/wasi-sysroot/include/c++/v1/istream
+share/wasi-sysroot/include/c++/v1/iterator
+share/wasi-sysroot/include/c++/v1/latch
+share/wasi-sysroot/include/c++/v1/libcxx.imp
+share/wasi-sysroot/include/c++/v1/limits
+share/wasi-sysroot/include/c++/v1/list
+share/wasi-sysroot/include/c++/v1/locale
+share/wasi-sysroot/include/c++/v1/map
+share/wasi-sysroot/include/c++/v1/math.h
+share/wasi-sysroot/include/c++/v1/mdspan
+share/wasi-sysroot/include/c++/v1/memory
+share/wasi-sysroot/include/c++/v1/memory_resource
+share/wasi-sysroot/include/c++/v1/module.modulemap
+share/wasi-sysroot/include/c++/v1/mutex
+share/wasi-sysroot/include/c++/v1/new
+share/wasi-sysroot/include/c++/v1/numbers
+share/wasi-sysroot/include/c++/v1/numeric
+share/wasi-sysroot/include/c++/v1/optional
+share/wasi-sysroot/include/c++/v1/ostream
+share/wasi-sysroot/include/c++/v1/print
+share/wasi-sysroot/include/c++/v1/queue
+share/wasi-sysroot/include/c++/v1/random
+share/wasi-sysroot/include/c++/v1/ranges
+share/wasi-sysroot/include/c++/v1/ratio
+share/wasi-sysroot/include/c++/v1/regex
+share/wasi-sysroot/include/c++/v1/scoped_allocator
+share/wasi-sysroot/include/c++/v1/semaphore
+share/wasi-sysroot/include/c++/v1/set
+share/wasi-sysroot/include/c++/v1/shared_mutex
+share/wasi-sysroot/include/c++/v1/source_location
+share/wasi-sysroot/include/c++/v1/span
+share/wasi-sysroot/include/c++/v1/sstream
+share/wasi-sysroot/include/c++/v1/stack
+share/wasi-sysroot/include/c++/v1/stdatomic.h
+share/wasi-sysroot/include/c++/v1/stdbool.h
+share/wasi-sysroot/include/c++/v1/stddef.h
+share/wasi-sysroot/include/c++/v1/stdexcept
+share/wasi-sysroot/include/c++/v1/stdio.h
+share/wasi-sysroot/include/c++/v1/stdlib.h
+share/wasi-sysroot/include/c++/v1/stop_token
+share/wasi-sysroot/include/c++/v1/streambuf
+share/wasi-sysroot/include/c++/v1/string
+share/wasi-sysroot/include/c++/v1/string.h
+share/wasi-sysroot/include/c++/v1/string_view
+share/wasi-sysroot/include/c++/v1/strstream
+share/wasi-sysroot/include/c++/v1/syncstream
+share/wasi-sysroot/include/c++/v1/system_error
+share/wasi-sysroot/include/c++/v1/tgmath.h
+share/wasi-sysroot/include/c++/v1/thread
+share/wasi-sysroot/include/c++/v1/tuple
+share/wasi-sysroot/include/c++/v1/type_traits
+share/wasi-sysroot/include/c++/v1/typeindex
+share/wasi-sysroot/include/c++/v1/typeinfo
+share/wasi-sysroot/include/c++/v1/uchar.h
+share/wasi-sysroot/include/c++/v1/unordered_map
+share/wasi-sysroot/include/c++/v1/unordered_set
+share/wasi-sysroot/include/c++/v1/utility
+share/wasi-sysroot/include/c++/v1/valarray
+share/wasi-sysroot/include/c++/v1/variant
+share/wasi-sysroot/include/c++/v1/vector
+share/wasi-sysroot/include/c++/v1/version
+share/wasi-sysroot/include/c++/v1/wchar.h
+share/wasi-sysroot/include/c++/v1/wctype.h
+share/wasi-sysroot/lib/wasm32-wasi/libc++.a
+share/wasi-sysroot/lib/wasm32-wasi/libc++.modules.json
+share/wasi-sysroot/lib/wasm32-wasi/libc++abi.a
+share/wasi-sysroot/lib/wasm32-wasi/libc++experimental.a
+share/wasi-sysroot/share/libc++/v1/std.compat.cppm
+share/wasi-sysroot/share/libc++/v1/std.compat/cassert.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cctype.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cerrno.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cfenv.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cfloat.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cinttypes.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/climits.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/clocale.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cmath.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/csetjmp.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/csignal.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cstdarg.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cstddef.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cstdint.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cstdio.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cstdlib.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cstring.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/ctime.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cuchar.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cwchar.inc
+share/wasi-sysroot/share/libc++/v1/std.compat/cwctype.inc
+share/wasi-sysroot/share/libc++/v1/std.cppm
+share/wasi-sysroot/share/libc++/v1/std/algorithm.inc
+share/wasi-sysroot/share/libc++/v1/std/any.inc
+share/wasi-sysroot/share/libc++/v1/std/array.inc
+share/wasi-sysroot/share/libc++/v1/std/atomic.inc
+share/wasi-sysroot/share/libc++/v1/std/barrier.inc
+share/wasi-sysroot/share/libc++/v1/std/bit.inc
+share/wasi-sysroot/share/libc++/v1/std/bitset.inc
+share/wasi-sysroot/share/libc++/v1/std/cassert.inc
+share/wasi-sysroot/share/libc++/v1/std/cctype.inc
+share/wasi-sysroot/share/libc++/v1/std/cerrno.inc
+share/wasi-sysroot/share/libc++/v1/std/cfenv.inc
+share/wasi-sysroot/share/libc++/v1/std/cfloat.inc
+share/wasi-sysroot/share/libc++/v1/std/charconv.inc
+share/wasi-sysroot/share/libc++/v1/std/chrono.inc
+share/wasi-sysroot/share/libc++/v1/std/cinttypes.inc
+share/wasi-sysroot/share/libc++/v1/std/climits.inc
+share/wasi-sysroot/share/libc++/v1/std/clocale.inc
+share/wasi-sysroot/share/libc++/v1/std/cmath.inc
+share/wasi-sysroot/share/libc++/v1/std/codecvt.inc
+share/wasi-sysroot/share/libc++/v1/std/compare.inc
+share/wasi-sysroot/share/libc++/v1/std/complex.inc
+share/wasi-sysroot/share/libc++/v1/std/concepts.inc
+share/wasi-sysroot/share/libc++/v1/std/condition_variable.inc
+share/wasi-sysroot/share/libc++/v1/std/coroutine.inc
+share/wasi-sysroot/share/libc++/v1/std/csetjmp.inc
+share/wasi-sysroot/share/libc++/v1/std/csignal.inc
+share/wasi-sysroot/share/libc++/v1/std/cstdarg.inc
+share/wasi-sysroot/share/libc++/v1/std/cstddef.inc
+share/wasi-sysroot/share/libc++/v1/std/cstdint.inc
+share/wasi-sysroot/share/libc++/v1/std/cstdio.inc
+share/wasi-sysroot/share/libc++/v1/std/cstdlib.inc
+share/wasi-sysroot/share/libc++/v1/std/cstring.inc
+share/wasi-sysroot/share/libc++/v1/std/ctime.inc
+share/wasi-sysroot/share/libc++/v1/std/cuchar.inc
+share/wasi-sysroot/share/libc++/v1/std/cwchar.inc
+share/wasi-sysroot/share/libc++/v1/std/cwctype.inc
+share/wasi-sysroot/share/libc++/v1/std/deque.inc
+share/wasi-sysroot/share/libc++/v1/std/exception.inc
+share/wasi-sysroot/share/libc++/v1/std/execution.inc
+share/wasi-sysroot/share/libc++/v1/std/expected.inc
+share/wasi-sysroot/share/libc++/v1/std/filesystem.inc
+share/wasi-sysroot/share/libc++/v1/std/flat_map.inc
+share/wasi-sysroot/share/libc++/v1/std/flat_set.inc
+share/wasi-sysroot/share/libc++/v1/std/format.inc
+share/wasi-sysroot/share/libc++/v1/std/forward_list.inc
+share/wasi-sysroot/share/libc++/v1/std/fstream.inc
+share/wasi-sysroot/share/libc++/v1/std/functional.inc
+share/wasi-sysroot/share/libc++/v1/std/future.inc
+share/wasi-sysroot/share/libc++/v1/std/generator.inc
+share/wasi-sysroot/share/libc++/v1/std/hazard_pointer.inc
+share/wasi-sysroot/share/libc++/v1/std/initializer_list.inc
+share/wasi-sysroot/share/libc++/v1/std/iomanip.inc
+share/wasi-sysroot/share/libc++/v1/std/ios.inc
+share/wasi-sysroot/share/libc++/v1/std/iosfwd.inc
+share/wasi-sysroot/share/libc++/v1/std/iostream.inc
+share/wasi-sysroot/share/libc++/v1/std/istream.inc
+share/wasi-sysroot/share/libc++/v1/std/iterator.inc
+share/wasi-sysroot/share/libc++/v1/std/latch.inc
+share/wasi-sysroot/share/libc++/v1/std/limits.inc
+share/wasi-sysroot/share/libc++/v1/std/list.inc
+share/wasi-sysroot/share/libc++/v1/std/locale.inc
+share/wasi-sysroot/share/libc++/v1/std/map.inc
+share/wasi-sysroot/share/libc++/v1/std/mdspan.inc
+share/wasi-sysroot/share/libc++/v1/std/memory.inc
+share/wasi-sysroot/share/libc++/v1/std/memory_resource.inc
+share/wasi-sysroot/share/libc++/v1/std/mutex.inc
+share/wasi-sysroot/share/libc++/v1/std/new.inc
+share/wasi-sysroot/share/libc++/v1/std/numbers.inc
+share/wasi-sysroot/share/libc++/v1/std/numeric.inc
+share/wasi-sysroot/share/libc++/v1/std/optional.inc
+share/wasi-sysroot/share/libc++/v1/std/ostream.inc
+share/wasi-sysroot/share/libc++/v1/std/print.inc
+share/wasi-sysroot/share/libc++/v1/std/queue.inc
+share/wasi-sysroot/share/libc++/v1/std/random.inc
+share/wasi-sysroot/share/libc++/v1/std/ranges.inc
+share/wasi-sysroot/share/libc++/v1/std/ratio.inc
+share/wasi-sysroot/share/libc++/v1/std/rcu.inc
+share/wasi-sysroot/share/libc++/v1/std/regex.inc
+share/wasi-sysroot/share/libc++/v1/std/scoped_allocator.inc
+share/wasi-sysroot/share/libc++/v1/std/semaphore.inc
+share/wasi-sysroot/share/libc++/v1/std/set.inc
+share/wasi-sysroot/share/libc++/v1/std/shared_mutex.inc
+share/wasi-sysroot/share/libc++/v1/std/source_location.inc
+share/wasi-sysroot/share/libc++/v1/std/span.inc
+share/wasi-sysroot/share/libc++/v1/std/spanstream.inc
+share/wasi-sysroot/share/libc++/v1/std/sstream.inc
+share/wasi-sysroot/share/libc++/v1/std/stack.inc
+share/wasi-sysroot/share/libc++/v1/std/stacktrace.inc
+share/wasi-sysroot/share/libc++/v1/std/stdexcept.inc
+share/wasi-sysroot/share/libc++/v1/std/stdfloat.inc
+share/wasi-sysroot/share/libc++/v1/std/stop_token.inc
+share/wasi-sysroot/share/libc++/v1/std/streambuf.inc
+share/wasi-sysroot/share/libc++/v1/std/string.inc
+share/wasi-sysroot/share/libc++/v1/std/string_view.inc
+share/wasi-sysroot/share/libc++/v1/std/strstream.inc
+share/wasi-sysroot/share/libc++/v1/std/syncstream.inc
+share/wasi-sysroot/share/libc++/v1/std/system_error.inc
+share/wasi-sysroot/share/libc++/v1/std/text_encoding.inc
+share/wasi-sysroot/share/libc++/v1/std/thread.inc
+share/wasi-sysroot/share/libc++/v1/std/tuple.inc
+share/wasi-sysroot/share/libc++/v1/std/type_traits.inc
+share/wasi-sysroot/share/libc++/v1/std/typeindex.inc
+share/wasi-sysroot/share/libc++/v1/std/typeinfo.inc
+share/wasi-sysroot/share/libc++/v1/std/unordered_map.inc
+share/wasi-sysroot/share/libc++/v1/std/unordered_set.inc
+share/wasi-sysroot/share/libc++/v1/std/utility.inc
+share/wasi-sysroot/share/libc++/v1/std/valarray.inc
+share/wasi-sysroot/share/libc++/v1/std/variant.inc
+share/wasi-sysroot/share/libc++/v1/std/vector.inc
+share/wasi-sysroot/share/libc++/v1/std/version.inc
diff --git a/devel/wf-config/Makefile b/devel/wf-config/Makefile
index e1ddcb254118..4a04de05a2dd 100644
--- a/devel/wf-config/Makefile
+++ b/devel/wf-config/Makefile
@@ -1,10 +1,9 @@
PORTNAME= wf-config
DISTVERSIONPREFIX= v
-DISTVERSION= 0.9.0
-PORTREVISION= 1
+DISTVERSION= 0.10.0
CATEGORIES= devel
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Library for managing configuration files, written for wayfire
WWW= https://wayfire.org/
diff --git a/devel/wf-config/distinfo b/devel/wf-config/distinfo
index e3f1efb30475..780848944efd 100644
--- a/devel/wf-config/distinfo
+++ b/devel/wf-config/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1718781348
-SHA256 (WayfireWM-wf-config-v0.9.0_GH0.tar.gz) = 973a47795d3397d281d89c561903867f691c9fe8c3d141ba887afd12902c790d
-SIZE (WayfireWM-wf-config-v0.9.0_GH0.tar.gz) = 50246
+TIMESTAMP = 1750573831
+SHA256 (WayfireWM-wf-config-v0.10.0_GH0.tar.gz) = 4264edf9f5f5ff9bccaee1ab3f5b2613a0db526bc90c15d7c82eb05a3fc81307
+SIZE (WayfireWM-wf-config-v0.10.0_GH0.tar.gz) = 51553
diff --git a/devel/wf-config/pkg-plist b/devel/wf-config/pkg-plist
index a3c741960162..88d3a973f858 100644
--- a/devel/wf-config/pkg-plist
+++ b/devel/wf-config/pkg-plist
@@ -7,6 +7,7 @@ include/wayfire/config/option.hpp
include/wayfire/config/section.hpp
include/wayfire/config/types.hpp
include/wayfire/config/xml.hpp
+include/wayfire/nonstd/safe-list.hpp
include/wayfire/util/duration.hpp
include/wayfire/util/log.hpp
include/wayfire/util/stringify.hpp
diff --git a/editors/vscode/Makefile b/editors/vscode/Makefile
index dc3b404cf332..ad4015344afb 100644
--- a/editors/vscode/Makefile
+++ b/editors/vscode/Makefile
@@ -1,5 +1,6 @@
PORTNAME= vscode
DISTVERSION= 1.103.2
+PORTREVISION= 1
CATEGORIES= editors
MASTER_SITES= https://github.com/tagattie/FreeBSD-VSCode/releases/download/${DISTVERSION}/:node_modules
DISTFILES= vscode-node-modules-${DISTVERSION}${EXTRACT_SUFX}:node_modules \
diff --git a/emulators/Makefile b/emulators/Makefile
index 3940ba358293..bdd2eb0d4009 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -158,6 +158,7 @@
SUBDIR += virtualbox-ose
SUBDIR += virtualbox-ose-70
SUBDIR += virtualbox-ose-71
+ SUBDIR += virtualbox-ose-72
SUBDIR += virtualbox-ose-additions
SUBDIR += virtualbox-ose-additions-legacy
SUBDIR += virtualbox-ose-additions-nox11
@@ -165,11 +166,13 @@
SUBDIR += virtualbox-ose-kmod
SUBDIR += virtualbox-ose-kmod-70
SUBDIR += virtualbox-ose-kmod-71
+ SUBDIR += virtualbox-ose-kmod-72
SUBDIR += virtualbox-ose-kmod-legacy
SUBDIR += virtualbox-ose-legacy
SUBDIR += virtualbox-ose-nox11
SUBDIR += virtualbox-ose-nox11-70
SUBDIR += virtualbox-ose-nox11-71
+ SUBDIR += virtualbox-ose-nox11-72
SUBDIR += virtualbox-ose-nox11-legacy
SUBDIR += visualboyadvance-m
SUBDIR += vmips
diff --git a/emulators/ares/Makefile b/emulators/ares/Makefile
index d2e59fa9646a..0ce6c3aaf5c9 100644
--- a/emulators/ares/Makefile
+++ b/emulators/ares/Makefile
@@ -1,10 +1,10 @@
PORTNAME= ares
DISTVERSIONPREFIX= v
-DISTVERSION= 145
-PORTREVISION= 1
+DISTVERSION= 146
CATEGORIES= emulators
MASTER_SITES= https://github.com/${PORTNAME}-emulator/${PORTNAME}/releases/download/${DISTVERSIONFULL}/
DISTNAME= ${PORTNAME}-source
+DIST_SUBDIR= ${PORTNAME}-${DISTVERSION}
MAINTAINER= bsdcode@disroot.org
COMMENT= Multi-system emulator
@@ -29,10 +29,15 @@ CMAKE_OFF= ARES_BUILD_LOCAL \
ARES_BUNDLE_SHADERS \
ARES_ENABLE_MINIMUM_CPU
-EXTRACT_AFTER_ARGS= --exclude thirdparty/librashader \
+EXTRACT_AFTER_ARGS= --exclude thirdparty/GL \
+ --exclude thirdparty/KHR \
+ --exclude thirdparty/libchdr \
+ --exclude thirdparty/librashader \
+ --exclude thirdparty/sse2neon.h \
+ --exclude thirdparty/xxhash.h \
--no-same-owner --no-same-permissions
-WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}
+NO_WRKSUBDIR= yes
OPTIONS_DEFINE= CHD SDL TOOLS
OPTIONS_DEFAULT= A26 ALSA AO CHD CV FC GB GBA LIBRASHADER \
@@ -92,8 +97,9 @@ ALSA_CMAKE_BOOL= ARES_ENABLE_ALSA
AO_LIB_DEPENDS= libao.so:audio/libao
AO_CMAKE_BOOL= ARES_ENABLE_AO
-CHD_CMAKE_BOOL= ARES_ENABLE_CHD \
- WITH_SYSTEM_ZLIB
+CHD_LIB_DEPENDS= libchdr.so:devel/libchdr
+CHD_USES= localbase
+CHD_CMAKE_BOOL= ARES_ENABLE_CHD
CV_VARS= _CORES+=cv
@@ -115,6 +121,8 @@ LIBRETRO_RUN_DEPENDS= ${_LIBRETRO_BR_DEPENDS}
LTO_CMAKE_BOOL= ENABLE_IPO
+MD_BUILD_DEPENDS= xxhash>0:devel/xxhash
+MD_USES= localbase
MD_VARS= _CORES+=md
MSX_VARS= _CORES+=msx
@@ -124,8 +132,12 @@ MS_VARS= _CORES+=ms
MYVISION_VARS= _CORES+=myvision
_N64_BR_DEPENDS= vulkan-loader>0:graphics/vulkan-loader
-N64_BUILD_DEPENDS= ${_N64_BR_DEPENDS}
+_N64_BUILD_DEPENDS_aarch64= sse2neon>0:devel/sse2neon
+N64_BUILD_DEPENDS= ${_N64_BR_DEPENDS} \
+ ${_N64_BUILD_DEPENDS_${ARCH}} \
+ xxhash>0:devel/xxhash
N64_RUN_DEPENDS= ${_N64_BR_DEPENDS}
+N64_USES= localbase
N64_VARS= _CORES+=n64
NGP_VARS= _CORES+=ngp
@@ -157,8 +169,6 @@ SG_VARS= _CORES+=sg
SPEC_VARS= _CORES+=spec
-# https://github.com/ares-emulator/ares/issues/2090
-TOOLS_IMPLIES= GBA MD NG SFC
TOOLS_CMAKE_BOOL= ARES_BUILD_OPTIONAL_TARGETS
UDEV_LIB_DEPENDS= libudev.so:devel/libudev-devd
@@ -168,6 +178,20 @@ USBHID_CMAKE_BOOL= ARES_ENABLE_USBHID
WS_VARS= _CORES+=ws
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MTOOLS} && (${PORT_OPTIONS:MGBA} || ${PORT_OPTIONS:MSFC})
+PLIST_SUB+= TOOLSARM7TDMI=""
+.else
+PLIST_SUB+= TOOLSARM7TDMI="@comment "
+.endif
+
+.if ${PORT_OPTIONS:MTOOLS} && (${PORT_OPTIONS:MMD} || ${PORT_OPTIONS:MNG})
+PLIST_SUB+= TOOLSM68000=""
+.else
+PLIST_SUB+= TOOLSM68000="@comment "
+.endif
+
post-patch:
${REINPLACE_CMD} 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/cmake/finders/*
diff --git a/emulators/ares/distinfo b/emulators/ares/distinfo
index 6d6b5f6a7b60..5cdf41f6260d 100644
--- a/emulators/ares/distinfo
+++ b/emulators/ares/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1752185303
-SHA256 (ares-source.tar.gz) = 7a76acf87cca2903552683347fdf6f1cd06f436fa4e0c247108688785cbbd14b
-SIZE (ares-source.tar.gz) = 8967048
+TIMESTAMP = 1756454355
+SHA256 (ares-146/ares-source.tar.gz) = 0f0b878c19ce09dab57584235e9c639c4c14a0bd1de6cef50238f006bd797bf1
+SIZE (ares-146/ares-source.tar.gz) = 9021617
diff --git a/emulators/ares/files/patch-thirdparty_CMakeLists.txt b/emulators/ares/files/patch-thirdparty_CMakeLists.txt
new file mode 100644
index 000000000000..0a9b749623bd
--- /dev/null
+++ b/emulators/ares/files/patch-thirdparty_CMakeLists.txt
@@ -0,0 +1,75 @@
+--- thirdparty/CMakeLists.txt.orig 2025-08-27 21:41:50 UTC
++++ thirdparty/CMakeLists.txt
+@@ -7,55 +7,9 @@ if(ARES_ENABLE_CHD)
+ option(ARES_ENABLE_CHD "Enable CHD format support via libchdr" ON)
+
+ if(ARES_ENABLE_CHD)
+- # lzma
+- add_subdirectory(libchdr/deps/lzma-24.05 EXCLUDE_FROM_ALL)
+- list(APPEND CHDR_LIBS lzma)
+- list(APPEND CHDR_INCLUDES lzma)
+-
+- if(OS_MACOS)
+- option(WITH_SYSTEM_ZLIB "Use system zlib" ON)
+- endif()
+- # zlib
+- if(WITH_SYSTEM_ZLIB)
+- find_package(ZLIB REQUIRED)
+- list(APPEND PLATFORM_LIBS ZLIB::ZLIB)
+- else()
+- option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" OFF)
+- add_subdirectory(libchdr/deps/zlib-1.3.1 EXCLUDE_FROM_ALL)
+- set_target_properties(
+- zlibstatic
+- PROPERTIES POSITION_INDEPENDENT_CODE ON FOLDER thirdparty PREFIX ""
+- )
+- list(APPEND CHDR_LIBS zlibstatic)
+- endif()
+-
+- # zstd
+- option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" OFF)
+- option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" OFF)
+- add_subdirectory(libchdr/deps/zstd-1.5.6/build/cmake EXCLUDE_FROM_ALL)
+- list(APPEND CHDR_LIBS libzstd_static)
+- #--------------------------------------------------
+- # chdr
+- #--------------------------------------------------
+-
+- set(
+- CHDR_SOURCES
+- libchdr/src/libchdr_bitstream.c
+- libchdr/src/libchdr_cdrom.c
+- libchdr/src/libchdr_chd.c
+- libchdr/src/libchdr_flac.c
+- libchdr/src/libchdr_huffman.c
+- )
+-
+- list(APPEND CHDR_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/libchdr/include)
+-
+- add_library(chdr-static STATIC ${CHDR_SOURCES})
+- target_include_directories(chdr-static PUBLIC ${CHDR_INCLUDES} PUBLIC libchdr/include)
+- target_link_libraries(chdr-static PRIVATE ${CHDR_LIBS} ${PLATFORM_LIBS})
+- target_compile_options(
+- chdr-static
+- PRIVATE $<$<CXX_COMPILER_ID:Clang,AppleClang>:-Wno-unreachable-code -Wno-unused-function>
+- )
++ find_package(PkgConfig REQUIRED)
++ pkg_check_modules(libchdr REQUIRED IMPORTED_TARGET GLOBAL libchdr)
++ add_library(chdr-static ALIAS PkgConfig::libchdr)
+ endif()
+
+ add_library(
+@@ -111,12 +65,4 @@ set_target_properties(sljit PROPERTIES FOLDER thirdpar
+ set_target_properties(ymfm PROPERTIES FOLDER thirdparty PREFIX "")
+ set_target_properties(tzxfile PROPERTIES FOLDER thirdparty PREFIX "")
+ set_target_properties(sljit PROPERTIES FOLDER thirdparty PREFIX "")
+-if(ARES_ENABLE_CHD)
+- set_target_properties(chdr-static PROPERTIES FOLDER thirdparty PREFIX "")
+- if(NOT WITH_SYSTEM_ZLIB)
+- set_target_properties(zlib PROPERTIES FOLDER thirdparty PREFIX "")
+- endif()
+- set_target_properties(lzma PROPERTIES FOLDER thirdparty PREFIX "")
+- set_target_properties(libzstd_static PROPERTIES FOLDER thirdparty PREFIX "")
+-endif()
+ set_target_properties(qon PROPERTIES FOLDER thirdparty PREFIX "")
+\ No newline at end of file
diff --git a/emulators/ares/pkg-descr b/emulators/ares/pkg-descr
index 1d1df5876394..51eba6b65b62 100644
--- a/emulators/ares/pkg-descr
+++ b/emulators/ares/pkg-descr
@@ -3,14 +3,15 @@ preservation. It is a descendant of the emulators higan and bsnes. It's source
code is structured to be maximally readable and self-documenting.
ares supports the following systems: Arcade, WonderSwan, WonderSwan Color,
-Pocket Challenge V2, ColecoVision, PC-Engine / TurboGrafx, SuperGrafx, My
-Vision, NES / Famicom, Famicom Disk System, SNES / Super Famicom, Satellaview,
-Sufami Turbo, Nintendo 64, Nintendo 64DD, Game Boy, Game Boy Color, Game Boy
-Advance, SG-1000, Master System / Mark III, Mega Drive / Genesis, Mega CD, 32X,
-Game Gear, Neo Geo Pocket, Neo Geo Pocket Color
+Pocket Challenge V2, ColecoVision, PC-Engine / TurboGrafx, PC-Engine SuperGrafx,
+My Vision, NES / Famicom, Famicom Disk System, Game Boy, SNES / Super Famicom,
+Satellaview, Nintendo 64, SuFami Turbo, Game Boy Color, Nintendo 64DD, Game Boy
+Advance, SG-1000, Master System / Mark III, Mega Drive / Genesis, Game Gear,
+Mega CD, 32X, Neo Geo Pocket, Neo Geo Pocket Color
ares has experimental support for the following systems: Atari 2600, MSX, MSX2,
-PC-Engine CD / TurboGrafx CD, ZX Spectrum, Neo Geo (AES/MVS), PlayStation
+PC-Engine CD / TurboGrafx CD, LaserActive, ZX Spectrum, Neo Geo (AES/MVS),
+PlayStation
ares has all the features one would expect from a great emulator system: native
multi-platform UI, dynamic rate control, save states, run-ahead, rewind and
diff --git a/emulators/ares/pkg-plist b/emulators/ares/pkg-plist
index 035623ec753e..476ac9756832 100644
--- a/emulators/ares/pkg-plist
+++ b/emulators/ares/pkg-plist
@@ -1,8 +1,8 @@
bin/ares
-%%TOOLS%%bin/arm7tdmi
+%%TOOLSARM7TDMI%%bin/arm7tdmi
%%TOOLS%%bin/genius
%%TOOLS%%bin/i8080
-%%TOOLS%%bin/m68000
+%%TOOLSM68000%%bin/m68000
%%TOOLS%%bin/mame2bml
%%TOOLS%%bin/mia
bin/sourcery
diff --git a/emulators/virtualbox-ose-70/Makefile b/emulators/virtualbox-ose-70/Makefile
index 7b6efa0001d2..4d7dea9d02ca 100644
--- a/emulators/virtualbox-ose-70/Makefile
+++ b/emulators/virtualbox-ose-70/Makefile
@@ -45,7 +45,9 @@ CONFLICTS_INSTALL= virtualbox-ose-legacy \
virtualbox-ose \
virtualbox-ose-nox11 \
virtualbox-ose-71 \
- virtualbox-ose-nox11-71
+ virtualbox-ose-nox11-71 \
+ virtualbox-ose-72 \
+ virtualbox-ose-nox11-72
PORTSCOUT= limit:^7\.0\.
SUB_FILES= pkg-message
diff --git a/emulators/virtualbox-ose-71/Makefile b/emulators/virtualbox-ose-71/Makefile
index 9b0d18590c7e..7b5d79a0d306 100644
--- a/emulators/virtualbox-ose-71/Makefile
+++ b/emulators/virtualbox-ose-71/Makefile
@@ -44,7 +44,9 @@ CONFLICTS_INSTALL= virtualbox-ose-legacy \
virtualbox-ose \
virtualbox-ose-nox11 \
virtualbox-ose-70 \
- virtualbox-ose-nox11-70
+ virtualbox-ose-nox11-70 \
+ virtualbox-ose-72 \
+ virtualbox-ose-nox11-72
PORTSCOUT= limit:^7\.1\.
SUB_FILES= pkg-message
diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk
deleted file mode 100644
index f13be222ea9a..000000000000
--- a/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk
+++ /dev/null
@@ -1,14 +0,0 @@
---- src/VBox/Runtime/Makefile.kmk.orig 2021-01-07 15:41:50 UTC
-+++ src/VBox/Runtime/Makefile.kmk
-@@ -177,6 +177,11 @@ $(IPRT_OUT_DIR)/oiddb.h.ts +| $(IPRT_OUT_DIR)/oiddb.h:
-
-
- #
-+# Set the defines that utf8-posix.cpp needs. It's used by several targets.
-+#
-+r3/posix/utf8-posix.cpp_DEFS.freebsd = $(VBOX_ICONV_DEFS)
-+
-+#
- # Unicode Specification reader used to regenerate unidata-*.cpp.
- #
- uniread_TEMPLATE = VBoxBldProg
diff --git a/emulators/virtualbox-ose-72/Makefile b/emulators/virtualbox-ose-72/Makefile
new file mode 100644
index 000000000000..3110b3efe1aa
--- /dev/null
+++ b/emulators/virtualbox-ose-72/Makefile
@@ -0,0 +1,426 @@
+PORTNAME= virtualbox-ose
+DISTVERSION= 7.2.0
+PORTREVISION?= 0
+CATEGORIES= emulators
+MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
+ LOCAL/vvd:docs
+PKGNAMESUFFIX?= -72
+DISTFILES= VirtualBox-${DISTVERSION}${EXTRACT_SUFX}:src \
+ VirtualBox-docs-${DISTVERSION}${EXTRACT_SUFX}:docs
+EXTRACT_ONLY= VirtualBox-${DISTVERSION}${EXTRACT_SUFX} \
+ VirtualBox-docs-${DISTVERSION}${EXTRACT_SUFX}
+
+MAINTAINER= vbox@FreeBSD.org
+COMMENT= General-purpose full virtualizer for x86 hardware
+WWW= https://www.virtualbox.org/
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+ONLY_FOR_ARCHS= amd64
+
+BUILD_DEPENDS= gtar:archivers/gtar \
+ kmk:devel/kBuild \
+ yasm:devel/yasm \
+ xsltproc:textproc/libxslt
+LIB_DEPENDS= libpng.so:graphics/png \
+ libcurl.so:ftp/curl
+RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod-72
+
+USES= compiler:c++17-lang cpe gnome iconv pkgconfig qt:6 ssl tar:bzip2
+CPE_VENDOR= oracle
+CPE_PRODUCT= vm_virtualbox
+USE_BINUTILS= yes
+USE_GNOME= libxml2
+USE_QT= tools:build
+USE_RC_SUBR= vboxheadless vboxwatchdog
+
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS= --disable-java --passive-mesa --disable-docs
+CONFIGURE_ARGS+= --with-gcc="${CC}" --with-g++="${CXX}"
+
+CONFLICTS_INSTALL= virtualbox-ose-legacy \
+ virtualbox-ose-nox11-legacy \
+ virtualbox-ose \
+ virtualbox-ose-nox11 \
+ virtualbox-ose-70 \
+ virtualbox-ose-nox11-70 \
+ virtualbox-ose-71 \
+ virtualbox-ose-nox11-71
+
+PORTSCOUT= limit:^7\.2\.
+SUB_FILES= pkg-message
+SUB_LIST= VBOXDIR=${VBOX_DIR} \
+ VBOX_ETC=${VBOX_ETC} \
+ VBOXGROUP=${VBOXGROUP} \
+ VBOXUSER=${VBOXUSER} \
+ VBOXWSUSER=${VBOXWSUSER}
+
+WRKSRC= ${WRKDIR}/VirtualBox-${DISTVERSION}
+
+VBOXUSER?= vboxusers
+VBOXWSUSER?= vboxusers
+VBOXGROUP?= vboxusers
+USERS= ${VBOXUSER}
+GROUPS= ${VBOXGROUP}
+VBOX_DIR= ${PREFIX}/${VBOX_DIR_REL}
+VBOX_DIR_REL= lib/virtualbox
+VBOX_ETC= ${PREFIX}/etc/vbox
+VBOX_LINKS= VBoxVRDP
+VBOX_PROGS= VBoxAutostart VBoxBalloonCtrl VBoxBugReport VBoxHeadless \
+ VBoxManage
+VBOX_UTILS= VBoxExtPackHelperApp VBoxNetAdpCtl VBoxNetDHCP VBoxNetNAT \
+ VBoxSVC
+
+PLIST_SUB= GUEST_VER=${DISTVERSION} \
+ PYTHON_VERU=${PYTHON_VER:S/./_/}${PYTHON_ABIVER} \
+ VBOXGROUP=${VBOXGROUP}
+
+SLAVE_PORT?= no
+
+OPTIONS_DEFINE= AIO ALSA DBUS DEBUG DOCS GUESTADDITIONS NLS OGG PULSEAUDIO \
+ PYTHON QT6 R0LOGGING UDPTUNNEL VBOXIMG VDE VNC VORBIS VPX \
+ WEBSERVICE X11
+OPTIONS_DEFAULT= AIO DBUS QT6 UDPTUNNEL VNC WEBSERVICE X11
+.if ${SLAVE_PORT} == no
+OPTIONS_DEFAULT+= PYTHON
+.endif
+# Since version 6.1.24 pulseaudio is broken at runtime, preventing
+# virtual machines from starting if configured to use it.
+OPTIONS_EXCLUDE+= PULSEAUDIO
+OPTIONS_SUB= yes
+
+AIO_DESC= Enable Asyncronous IO support (check pkg-message)
+DEBUG_DESC= Debug symbols, additional logs and assertions
+GUESTADDITIONS_DESC= Build with Guest Additions
+NLS_DESC= Native language support (requires QT6)
+OGG_DESC= Use libogg from audio/libogg instead of bundled one
+QT6_DESC= Build with QT6 frontend (requires X11)
+R0LOGGING_DESC= Enable R0 logging (requires DEBUG)
+UDPTUNNEL_DESC= Build with UDP tunnel support
+VBOXIMG_DESC= Build vboximg-mount (requires fuse-libs)
+VDE_DESC= Build with VDE support
+VNC_DESC= Build with VNC support
+VORBIS_DESC= Use libvorbis from audio/libvorbis instead of bundled one
+VPX_DESC= Use libvpx for video recording
+WEBSERVICE_DESC= Build Webservice
+
+ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
+ALSA_CONFIGURE_OFF= --disable-alsa
+DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
+DBUS_CONFIGURE_OFF= --disable-dbus
+DEBUG_CONFIGURE_ON= --build-debug
+NLS_IMPLIES= QT6
+OGG_LIB_DEPENDS= libogg.so:audio/libogg
+OGG_CONFIGURE_ON= --enable-libogg
+PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
+PULSEAUDIO_CONFIGURE_OFF= --disable-pulse
+PYTHON_USES= python
+PYTHON_USES_OFF= python:build
+PYTHON_USE= PYTHON=distutils,noegginfo,noflavors
+PYTHON_CONFIGURE_OFF= --disable-python
+PYTHON_VARS= pydistutils_pkgname=vboxapi pydistutils_pkgversion=1.0
+QT6_IMPLIES= X11
+QT6_USES= gl qmake:no_env qt:6 xorg
+QT6_USE= QT=base,scxml,tools,translations \
+ XORG=xcb GL=gl
+QT6_CONFIGURE_OFF= --disable-qt
+R0LOGGING_IMPLIES= DEBUG
+UDPTUNNEL_CONFIGURE_OFF= --disable-udptunnel
+VBOXIMG_LIB_DEPENDS= libfuse.so.2:filesystems/fusefs-libs
+VDE_RUN_DEPENDS= vde_switch:net/vde2
+VDE_CONFIGURE_ON= --enable-vde
+VNC_LIB_DEPENDS= libvncserver.so:net/libvncserver
+VNC_CONFIGURE_ON= --enable-vnc
+VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis \
+ libvorbisenc.so:audio/libvorbis
+VORBIS_CONFIGURE_ON= --enable-libvorbis
+VPX_LIB_DEPENDS= libvpx.so:multimedia/libvpx
+VPX_CONFIGURE_OFF= --disable-libvpx
+WEBSERVICE_BUILD_DEPENDS= soapcpp2:devel/gsoap
+X11_USES= sdl xorg
+X11_USE= SDL=sdl XORG=x11,xcursor,xext,xinerama,xmu,xorgproto,xt
+X11_CONFIGURE_OFF= --build-headless
+
+ENV=
+.export ENV
+
+.include <bsd.port.options.mk>
+
+.if ${SLAVE_PORT} == no
+CONFLICTS_INSTALL+= virtualbox-ose-nox11-72
+.else
+CONFLICTS_INSTALL+= virtualbox-ose-72
+.endif
+
+.if ${PORT_OPTIONS:MDEBUG}
+KMK_BUILDTYPE= debug
+KMK_FLAGS+= BUILD_TYPE=debug
+.else
+KMK_BUILDTYPE= release
+.endif
+
+.if ${PORT_OPTIONS:MGUESTADDITIONS}
+GUESTADDITIONS= VBoxGuestAdditions_${DISTVERSION}.iso
+DISTFILES+= ${GUESTADDITIONS}:src
+LICENSE+= Additions
+LICENSE_COMB= multi
+LICENSE_NAME_Additions= Guest Additions
+LICENSE_PERMS_Additions= auto-accept
+LICENSE_DISTFILES_Additions= ${GUESTADDITIONS}
+.endif
+
+.if ${PORT_OPTIONS:MQT6}
+PLIST_SUB+= QT=""
+VBOX_PROGS+= VirtualBox VirtualBoxVM
+VBOX_WITH_QT= 1
+.else
+PLIST_SUB+= QT="@comment "
+.endif
+
+.if ${PORT_OPTIONS:MWEBSERVICE}
+USE_RC_SUBR+= vboxinit vboxwebsrv
+VBOX_LINKS+= vboxwebsrv
+VBOX_UTILS+= vboxwebsrv webtest
+.endif
+
+.if ${PORT_OPTIONS:MX11}
+#VBOX_PROGS+= VBoxSDL
+.endif
+
+.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE}
+PLIST_SUB+= SDK=""
+.else
+PLIST_SUB+= SDK="@comment "
+.endif
+
+.if ${PORT_OPTIONS:MVBOXIMG}
+EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-vboximg-Config.kmk
+VBOX_UTILS+= vboximg-mount
+PLIST_SUB+= VBOXIMG=""
+.else
+PLIST_SUB+= VBOXIMG="@comment "
+.endif
+
+KMK_ARCH= freebsd.${ARCH}
+PLIST_SUB+= ARCH="${KMK_ARCH}"
+
+KMK_BUILDDIR= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}
+KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys VBOX_WITHOUT_DOCS=1 VBOX_GCC_std=-std=c++17
+KMK_FLAGS+= -j${MAKE_JOBS_NUMBER}
+
+.include <bsd.port.pre.mk>
+
+.if ${CHOSEN_COMPILER_TYPE} == clang
+PATCH_DEPENDS+= ${LOCALBASE}/share/kBuild/tools/GXX3.kmk:devel/kBuild
+.endif
+
+.if ${PYTHON_MAJOR_VER} >= 3
+PLIST_SUB+= PYTHON_PYCDIR=/__pycache__/ \
+ PYTHON_PYCEXT=.cpython-${PYTHON_SUFFIX}.pyc
+.else
+PLIST_SUB+= PYTHON_PYCDIR=/ \
+ PYTHON_PYCEXT=.pyc
+.endif
+
+.if ${SSL_DEFAULT} != base
+CONFIGURE_ARGS+= --with-openssl-dir="${OPENSSLBASE}"
+.endif
+
+post-patch:
+ @${ECHO_CMD} 'VBOX_PATH_APP_PRIVATE_ARCH = ${VBOX_DIR}' > \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_DOCBOOK = ${DBKXSLDIR}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_DOCBOOK_DTD = ${DBKXMLDIR}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_SHARED_LIBS = ${VBOX_DIR}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ # Please keep this even if using Clang to avoid repeated regressions.
+ # PR 245048
+ @${ECHO_CMD} "VBOX_WITH_RUNPATH = ${_GCC_RUNTIME:D${_GCC_RUNTIME}\:}${VBOX_DIR}" >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk
+.if ${SSL_DEFAULT} != base
+ @${ECHO_CMD} 'VBOX_WITH_ALT_HASH_CODE = 1' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+ @${ECHO_CMD} 'VBOX_WITH_EXTPACK_VBOXDTRACE =' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_VBOXDRV =' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_TESTCASES =' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'SDK_VBOX_LIBPNG_INCS = ${PREFIX}/include/libpng' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'SDK_VBOX_LIBPNG_LIBS = png' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP = ${VBOX_WITH_QT}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP_GH = ${VBOX_WITH_QT}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_VALIDATIONKIT =' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_X11_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_BLD_PYTHON = ${LOCALBASE}/bin/${PYTHON_VERSION}' >> \
+ ${WRKSRC}/LocalConfig.kmk
+.if ${PORT_OPTIONS:MR0LOGGING}
+ @${ECHO_CMD} 'VBOX_WITH_R0_LOGGING = 1' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+.if ${PORT_OPTIONS:MWEBSERVICE}
+ @${ECHO_CMD} 'VBOX_WITH_WEBSERVICES = 1' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_GSOAP_INSTALLED = 1' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_GSOAP = ${PREFIX}/lib/gsoap' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_GSOAP_BIN = ${PREFIX}/bin' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_PATH_GSOAP_IMPORT = ${PREFIX}/share/gsoap/import' >> \
+ ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_GCC_PEDANTIC_CXX = -Wshadow $$(VBOX_GCC_WARN) -Wno-long-long' >> \
+ ${WRKSRC}/LocalConfig.kmk
+.endif
+.if empty(PORT_OPTIONS:MX11)
+ @${ECHO} 'VBOX_WITH_VMSVGA3D =' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+.if ${CHOSEN_COMPILER_TYPE} == clang
+ @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \
+ -e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk
+ @${REINPLACE_CMD} -e 's| -fpermissive||' ${WRKSRC}/Config.kmk \
+ ${WRKSRC}/src/VBox/Main/webservice/Makefile.kmk
+ @${ECHO_CMD} 'TOOL_VBoxGccFreeBSD_LD = ${CXX}' >> ${WRKSRC}/LocalConfig.kmk
+ @${SED} -e 's|GXX3|VBoxGccFreeBSD|g' \
+ ${LOCALBASE}/share/kBuild/tools/GXX3.kmk > \
+ ${WRKSRC}/tools/kBuildTools/VBoxGccFreeBSD.kmk
+.endif
+.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1500013
+ @${ECHO_CMD} 'VBoxSVC_LDFLAGS.freebsd = -lsys' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+ # Causes a "reinplace" QA warning with default LOCALBASE
+ @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
+ ${WRKSRC}/Config.kmk ${WRKSRC}/configure \
+ ${WRKSRC}/kBuild/header.kmk ${WRKSRC}/kBuild/units/qt4.kmk \
+ ${WRKSRC}/kBuild/units/qt5.kmk ${WRKSRC}/kBuild/units/qt6.kmk ${WRKSRC}/kBuild/sdks/LIBSDL.kmk \
+ ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py
+ @${REINPLACE_CMD} \
+ -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \
+ -e 's|SUPPYTHONLIBS=.*|SUPPYTHONLIBS="${PYTHON_VERSION}${PYTHON_ABIVER}"|' \
+ ${WRKSRC}/configure
+.if empty(ICONV_LIB)
+ @${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.kmk \
+ ${WRKSRC}/src/VBox/Runtime/Makefile.kmk
+ @${ECHO_CMD} 'VBOX_ICONV_DEFS = LIBICONV_PLUG' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+ @${REINPLACE_CMD} -e 's|%%VBOX_DIR%%|${VBOX_DIR}|g' \
+ -e 's|%%VBOX_ETC%%|${VBOX_ETC}|g' \
+ -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
+ ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh
+ @${REINPLACE_CMD} -e 's|%%VBOX_ETC%%|${VBOX_ETC}|g' \
+ ${WRKSRC}/src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
+ @${REINPLACE_CMD} \
+ -e 's|^versions =.*|versions = ["${PYTHON_VER}${PYTHON_ABIVER}"]|' \
+ ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py
+
+post-patch-AIO-off:
+ @${REINPLACE_CMD} 's|r3/freebsd/fileaio-freebsd.cpp|r3/posix/fileaio-posix.cpp|' \
+ ${WRKSRC}/src/VBox/Runtime/Makefile.kmk
+
+do-build:
+ cd ${WRKSRC} && ${SH} -c '. ${WRKSRC}/env.sh && \
+ ${SETENV} ${MAKE_ENV} ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}'
+.if ${PORT_OPTIONS:MPYTHON}
+ ${PYTHON_CMD} -mcompileall \
+ ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/python/xpcom
+.endif
+
+do-install:
+.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE}
+ ${MKDIR} ${STAGEDIR}${DATADIR}/sdk
+.endif
+ cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom && \
+ ${COPYTREE_SHARE} "idl samples" ${STAGEDIR}${DATADIR}
+
+ ${MKDIR} ${STAGEDIR}${PREFIX}/include/virtualbox
+ cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/include && \
+ ${COPYTREE_SHARE} "*" ${STAGEDIR}${PREFIX}/include/virtualbox
+
+ ${MKDIR} ${STAGEDIR}${VBOX_DIR}
+ cd ${KMK_BUILDDIR}/bin && ${COPYTREE_SHARE} \
+ "*.fd *.r0 *.so components" ${STAGEDIR}${VBOX_DIR}
+.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE}
+ ${RLN} ${STAGEDIR}${DATADIR}/sdk ${STAGEDIR}${VBOX_DIR}
+.endif
+
+ ${INSTALL_SCRIPT} ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh \
+ ${STAGEDIR}${VBOX_DIR}
+.for f in ${VBOX_PROGS} ${VBOX_UTILS}
+ ${INSTALL_PROGRAM} ${KMK_BUILDDIR}/bin/${f} ${STAGEDIR}${VBOX_DIR}
+.endfor
+.for f in ${VBOX_PROGS} ${VBOX_LINKS}
+ ${LN} -fs ../${VBOX_DIR_REL}/VBox.sh ${STAGEDIR}${PREFIX}/bin/${f}
+.endfor
+.for f in ${VBOX_PROGS}
+ ${LN} -fs ../${VBOX_DIR_REL}/VBox.sh ${STAGEDIR}${PREFIX}/bin/${f:tl}
+.endfor
+
+.if ${PORT_OPTIONS:MGUESTADDITIONS}
+ ${MKDIR} ${STAGEDIR}${VBOX_DIR}/additions
+ ${INSTALL_DATA} ${DISTDIR}/${GUESTADDITIONS} \
+ ${STAGEDIR}${VBOX_DIR}/additions/
+ ${RLN} ${STAGEDIR}${VBOX_DIR}/additions/${GUESTADDITIONS} \
+ ${STAGEDIR}${VBOX_DIR}/additions/VBoxGuestAdditions.iso
+.endif
+
+.if ${PORT_OPTIONS:MDOCS}
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${WRKDIR}/VirtualBox-docs-${DISTVERSION}/UserManual.pdf \
+ ${STAGEDIR}${DOCSDIR}
+.endif
+
+.if ${PORT_OPTIONS:MNLS}
+ cd ${KMK_BUILDDIR}/obj/VirtualBox/qtnls && \
+ ${COPYTREE_SHARE} "*.qm" ${STAGEDIR}${DATADIR}/nls
+.endif
+
+.if ${PORT_OPTIONS:MPYTHON}
+ cd ${KMK_BUILDDIR}/bin/sdk/installer/python && \
+ ${SETENV} VBOX_INSTALL_PATH="${VBOX_DIR}" \
+ ${PYTHON_CMD} vboxapisetup.py install --root=${STAGEDIR}
+
+ @${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom
+ cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/python/xpcom && \
+ ${COPYTREE_SHARE} "*" ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom
+ @${MKDIR} ${STAGEDIR}${DATADIR}/sdk/bindings/xpcom/python
+ ${RLN} ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom \
+ ${STAGEDIR}${DATADIR}/sdk/bindings/xpcom/python
+.endif
+
+.if ${PORT_OPTIONS:MQT6}
+ ${INSTALL_DATA} \
+ ${WRKSRC}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_48px.png \
+ ${STAGEDIR}${PREFIX}/share/pixmaps/VBox.png
+ ${INSTALL_DATA} \
+ ${FILESDIR}/virtualbox.desktop \
+ ${STAGEDIR}${PREFIX}/share/applications/virtualbox.desktop
+.endif
+
+.if ${PORT_OPTIONS:MVNC}
+ ${MKDIR} ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/${KMK_ARCH}
+ ${INSTALL_DATA} ${KMK_BUILDDIR}/bin/ExtensionPacks/VNC/ExtPack* \
+ ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/
+ ${INSTALL_LIB} ${KMK_BUILDDIR}/bin/ExtensionPacks/VNC/${KMK_ARCH}/* \
+ ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/${KMK_ARCH}/
+.endif
+
+.if ${PORT_OPTIONS:MVBOXIMG}
+ ${LN} -fs ../${VBOX_DIR_REL}/vboximg-mount ${STAGEDIR}${PREFIX}/bin/
+.endif
+
+.if ${PORT_OPTIONS:MWEBSERVICE}
+ ${MKDIR} ${STAGEDIR}${DATADIR}/sdk/bindings/webservice
+ ${INSTALL_DATA} ${KMK_BUILDDIR}/obj/webservice/vboxweb.wsdl \
+ ${STAGEDIR}${DATADIR}/sdk/bindings/webservice/
+.endif
+
+post-install:
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/virtualbox/*.so \
+ ${STAGEDIR}${PREFIX}/lib/virtualbox/components/*.so
+
+.include <bsd.port.post.mk>
diff --git a/emulators/virtualbox-ose-72/distinfo b/emulators/virtualbox-ose-72/distinfo
new file mode 100644
index 000000000000..ed4ac420cdd3
--- /dev/null
+++ b/emulators/virtualbox-ose-72/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1756400000
+SHA256 (VirtualBox-7.2.0.tar.bz2) = 4f2804ff27848ea772aee6b637bb1e10ee74ec2da117c257413e2d2c4f670ba0
+SIZE (VirtualBox-7.2.0.tar.bz2) = 206755781
+SHA256 (VirtualBox-docs-7.2.0.tar.bz2) = 12b27989f2ab9b9316384322a8f1cdadd7003d2e2d6592298e1a84e81f5e0572
+SIZE (VirtualBox-docs-7.2.0.tar.bz2) = 9200668
+SHA256 (VBoxGuestAdditions_7.2.0.iso) = 43f7a1045cad0aab40e3af906fea37244ba6873b91b4e227245a14e51b399abd
+SIZE (VBoxGuestAdditions_7.2.0.iso) = 53143552
diff --git a/emulators/virtualbox-ose-72/files/extrapatch-Config.kmk b/emulators/virtualbox-ose-72/files/extrapatch-Config.kmk
new file mode 100644
index 000000000000..775508d23b1b
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/extrapatch-Config.kmk
@@ -0,0 +1,11 @@
+--- Config.kmk.orig 2021-04-28 16:21:25 UTC
++++ Config.kmk
+@@ -4931,7 +4931,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS
+ | xargs -J% objcopy % $(out)
+
+ ## Strip debug info (comment out if debugging or something).
+- objcopy --strip-debug $(out)
++# objcopy --strip-debug $(out)
+ endef
+ else # x86
+ TOOL_FREEBSDKMODLD_LINK_SYSMOD_OUTPUT = $(outbase).kld
diff --git a/emulators/virtualbox-ose-72/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile b/emulators/virtualbox-ose-72/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile
new file mode 100644
index 000000000000..67361da543f7
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/Support/freebsd/Makefile.orig 2012-10-18 16:23:16.000000000 +0200
++++ src/VBox/HostDrivers/Support/freebsd/Makefile 2012-10-20 08:13:07.301179212 +0200
+@@ -27,7 +27,7 @@
+
+ KMOD = vboxdrv
+
+-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DSUPDRV_WITH_RELEASE_LOGGER -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS
++CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DSUPDRV_WITH_RELEASE_LOGGER -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS -DDEBUG
+
+ .if (${MACHINE_ARCH} == "i386")
+ CFLAGS += -DRT_ARCH_X86
diff --git a/emulators/virtualbox-ose-72/files/extrapatch-vboximg-Config.kmk b/emulators/virtualbox-ose-72/files/extrapatch-vboximg-Config.kmk
new file mode 100644
index 000000000000..d84209faa8cd
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/extrapatch-vboximg-Config.kmk
@@ -0,0 +1,11 @@
+--- Config.kmk.orig 2023-10-12 15:43:35.000000000 +0700
++++ Config.kmk 2023-10-30 22:11:09.119922000 +0700
+@@ -869,7 +869,7 @@
+ # windows versions (only define when buildling win.x86).
+ #VBOX_WITH_MORE_NT4_COMPAT_BINARIES = 1
+ # Set this to enable building of the vboximg-mount FUSE mounting utility.
+-if1of ($(KBUILD_TARGET), darwin linux)
++if1of ($(KBUILD_TARGET), darwin freebsd linux)
+ VBOX_WITH_VBOXIMGMOUNT = 1
+ endif
+ # Set this to enable packaging the fuse related bits into our installer.
diff --git a/emulators/virtualbox-ose-72/files/patch-Config.kmk b/emulators/virtualbox-ose-72/files/patch-Config.kmk
new file mode 100644
index 000000000000..c284262eb189
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-Config.kmk
@@ -0,0 +1,421 @@
+--- Config.kmk.orig 2025-08-28 22:09:24 UTC
++++ Config.kmk
+@@ -624,11 +624,11 @@ endif
+ # Enable OSS audio support.
+ VBOX_WITH_AUDIO_OSS = 1
+ endif
+-if1of ($(KBUILD_TARGET), linux)
++if1of ($(KBUILD_TARGET), freebsd linux)
+ # Enable ALSA audio support.
+ VBOX_WITH_AUDIO_ALSA = 1
+ endif
+-if1of ($(KBUILD_TARGET), linux)
++if1of ($(KBUILD_TARGET), freebsd linux)
+ # Enable PulseAudio audio support.
+ VBOX_WITH_AUDIO_PULSE = 1
+ endif
+@@ -641,11 +641,11 @@ VBOX_WITH_PCI_PASSTHROUGH =
+ # (disabled with 6.1, since it's not complete/useful enough)
+ VBOX_WITH_PCI_PASSTHROUGH =
+ # Enable statically linked dbus support.
+-if1of ($(KBUILD_TARGET), linux solaris)
++if1of ($(KBUILD_TARGET), freebsd linux solaris)
+ VBOX_WITH_DBUS = 1
+ endif
+ # Enable building PAM modules.
+-if1of ($(KBUILD_TARGET), linux solaris)
++if1of ($(KBUILD_TARGET), freebsd linux solaris)
+ VBOX_WITH_PAM = 1
+ endif
+ # Enable internal networking.
+@@ -653,7 +653,7 @@ VBOX_WITH_VMSVGA = 1
+ # Enable vmsvga (svga2) graphics device variant, 2D part
+ VBOX_WITH_VMSVGA = 1
+ # Enable vmsvga (svga2) graphics device variant, 3D part
+-if1of ($(KBUILD_TARGET), darwin linux win)
++if1of ($(KBUILD_TARGET), darwin freebsd linux win)
+ VBOX_WITH_VMSVGA3D = 1
+ endif
+ # Enable vmsvga (svga2) graphics device variant, 3D part, VGPU10 DX commands
+@@ -847,7 +847,7 @@ VBOX_WITH_VBOXMANAGE_NLS = 1
+ #endif
+ # Set this to prefix all C symbols in XPCOM, to avoid dynamic linking problems
+ # caused by our XPCOM library polluting the symbol namespace for system libs.
+-if1of ($(KBUILD_TARGET), linux solaris)
++if1of ($(KBUILD_TARGET), freebsd linux solaris)
+ VBOX_WITH_XPCOM_NAMESPACE_CLEANUP = 1
+ endif
+ # The webservices api.
+@@ -1376,10 +1376,6 @@ endif
+ endif
+ endif
+
+-ifeq ($(KBUILD_TARGET),freebsd)
+- VBOX_WITH_DOCS =
+-endif
+-
+ ifeq ($(KBUILD_TARGET),haiku)
+ VBOX_WITH_VRDP_RDESKTOP =
+ # Permanent (no working SDL).
+@@ -1563,7 +1559,7 @@ ifdef VBOX_OSE
+ # not yet
+ VBOX_WITH_PLUGIN_CRYPT =
+ VBOX_WITH_DRAG_AND_DROP_PROMISES =
+- ifn1of ($(KBUILD_TARGET), linux)
++ ifn1of ($(KBUILD_TARGET), freebsd linux)
+ VBOX_WITH_DOCS =
+ VBOX_WITH_DOCS_PACKING =
+ endif
+@@ -3637,19 +3633,19 @@ ifndef VBOX_GCC_std
+ #
+ ## @todo consider maxing this out.
+ ifndef VBOX_GCC_std
+- if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.arm64 linux.arm64) # Go straight for c++17 here.
++# if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.arm64 linux.arm64) # Go straight for c++17 here.
+ VBOX_GCC_std := -std=c++17
+- # else if "$(VBOX_CLANG_VERSION_CXX)" vge 60000 # Most language features complete by v6. Lib stuff was less complete in v6, but hopefully acceptable for out purposes.
+- #VBOX_GCC_std := -std=c++17
+- else if "$(VBOX_CLANG_VERSION_CXX)" vge 50000 # darwin Xcode 5 allegedly knows what C++11 is
+- VBOX_GCC_std := -std=c++11
+- # else if "$(VBOX_GCC_VERSION_CXX)" vge 70000 # Language feature P0512R0 was v8, rest v7 or earlier. Most lib stuff present in 7, complete in v12.
+- #VBOX_GCC_std := -std=gnu++17
+- else if "$(VBOX_GCC_VERSION_CXX)" vge 40800
+- VBOX_GCC_std := -std=c++11
+- else if "$(VBOX_GCC_VERSION_CXX)" vge 40600
+- VBOX_GCC_std := -std=c++0x
+- endif
++# # else if "$(VBOX_CLANG_VERSION_CXX)" vge 60000 # Most language features complete by v6. Lib stuff was less complete in v6, but hopefully acceptable for out purposes.
++# #VBOX_GCC_std := -std=c++17
++# else if "$(VBOX_CLANG_VERSION_CXX)" vge 50000 # darwin Xcode 5 allegedly knows what C++11 is
++# VBOX_GCC_std := -std=c++11
++# # else if "$(VBOX_GCC_VERSION_CXX)" vge 70000 # Language feature P0512R0 was v8, rest v7 or earlier. Most lib stuff present in 7, complete in v12.
++# #VBOX_GCC_std := -std=gnu++17
++# else if "$(VBOX_GCC_VERSION_CXX)" vge 40800
++# VBOX_GCC_std := -std=c++11
++# else if "$(VBOX_GCC_VERSION_CXX)" vge 40600
++# VBOX_GCC_std := -std=c++0x
++# endif
+ endif
+ ifndef VBOX_VCC_std
+ if $(VBOX_VCC_TOOL_STEM) >= VCC141 # since 2017 15.3
+@@ -5688,11 +5684,11 @@ ifeq ($(VBOX_LDR_FMT),elf)
+ # Solaris driver signing.
+ TEMPLATE_VBoxR0_POST_CMDS = $(VBOX_SIGN_DRIVER_CMDS)
+ else
+- TEMPLATE_VBoxR0_LDFLAGS = -nostdlib -Bsymbolic -g
++ TEMPLATE_VBoxR0_LDFLAGS = -nostdlib -Bsymbolic -g -fuse-ld=bfd
+ ## @todo WTF doesn't the globals work? Debug info is supposed to be split everywhere. GRR
+ TEMPLATE_VBoxR0_LD_DEBUG = split
+ endif
+- if "$(KBUILD_TARGET)" == "linux" && !defined(VBOX_WITH_KMOD_WRAPPED_R0_MODS)
++ if ( "$(KBUILD_TARGET)" == "linux" || "$(KBUILD_TARGET)" == "freebsd") && !defined(VBOX_WITH_KMOD_WRAPPED_R0_MODS)
+ VBOX_WITH_VBOXR0_AS_DLL = 1
+ TEMPLATE_VBoxR0_DLLSUFF = .r0
+ TEMPLATE_VBoxR0_CFLAGS += -fPIC
+@@ -5703,7 +5699,7 @@ ifeq ($(VBOX_LDR_FMT),elf)
+ else
+ TEMPLATE_VBoxR0_CFLAGS.amd64 += -mcmodel=kernel
+ TEMPLATE_VBoxR0_CXXFLAGS.amd64 += -mcmodel=kernel
+- endif
++endif
+ ifdef VBOX_WITH_KMOD_WRAPPED_R0_MODS # For BTF/pahold issue we use -g1
+ TEMPLATE_VBoxR0_DEFS += VBOX_WITH_KMOD_WRAPPED_R0_MODS
+ TEMPLATE_VBoxR0_LDFLAGS.linux += $(PATH_ROOT)/src/VBox/HostDrivers/Support/linux/VBoxR0-wrapped.lds
+@@ -6100,7 +6096,7 @@ ifeq ($(KBUILD_TARGET),freebsd)
+ # x86 FreeBSD (6.2 or something):
+ # cc -O2 -fno-strict-aliasing -pipe -Werror -D_KERNEL -DKLD_MODULE \
+ # -nostdinc -I- -I. -I@ -I@/contrib/altq -I@/../include -I/usr/include \
+- # -finline-limit=8000 -fno-common -mno-align-long-strings -mpreferred-stack-boundary=2 \
++ # -fno-common -mno-align-long-strings \
+ # -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -ffreestanding -Wall -Wredundant-decls -Wnested-externs \
+ # -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions \
+ # -std=c99 -c ../my.c
+@@ -6111,7 +6107,7 @@ ifeq ($(KBUILD_TARGET),freebsd)
+ #
+ # AMD64 FreeBSD (7.1):
+ # cc -O2 -fno-strict-aliasing -pipe -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I. -I@ -I@/contrib/altq \
+- # -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common \
++ # --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common \
+ # -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx \
+ # -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding \
+ # -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign \
+@@ -6193,7 +6189,7 @@ ifeq ($(KBUILD_TARGET),freebsd)
+ | xargs -J% objcopy % $(outbase).kld
+
+ # Link the final .ko (a shared object).
+- ld $(flags) -Bshareable -o $(out) $(outbase).kld
++ ld $(flags) -Bshareable -znotext -o $(out) $(outbase).kld
+ endef
+ endif # x86
+
+@@ -6228,7 +6224,7 @@ ifeq ($(KBUILD_TARGET),netbsd)
+ $(VBOX_GCC_fdiagnostics-show-option) $(VBOX_GCC_fdiagnostics-color) \
+ -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
+ -Wimplicit-function-declaration -Werror-implicit-function-declaration \
+- -O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
++ -O2 -ffreestanding -fno-strict-aliasing -fno-common \
+ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ -nostdinc -std=c99 -msoft-float
+ TEMPLATE_VBoxR0Drv_CFLAGS.x86 = -m32 -mno-mmx -mno-sse -mno-avx \
+@@ -6239,7 +6235,7 @@ ifeq ($(KBUILD_TARGET),netbsd)
+ -fno-asynchronous-unwind-tables -mno-fp-ret-in-387
+ TEMPLATE_VBoxR0Drv_CXXFLAGS = -fno-exceptions -fno-rtti \
+ $(VBOX_GCC_WARN) -Wpointer-arith -Winline \
+- -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \
++ -O2 -fno-strict-aliasing -fno-common \
+ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ -nostdinc -msoft-float
+ TEMPLATE_VBoxR0Drv_CXXFLAGS.x86 = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86)
+@@ -6565,11 +6561,11 @@ else # the gcc guys
+ TEMPLATE_VBoxR3Exe_LATE_LIBS = pthread m rt dl
+ else ifeq ($(KBUILD_TARGET),os2)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3OMF
+- TEMPLATE_VBoxR3Exe_LATE_LIBS = socket iconv
++ TEMPLATE_VBoxR3Exe_LATE_LIBS = socket
+ else ifeq ($(KBUILD_TARGET),darwin)
+ TEMPLATE_VBoxR3Exe_TOOL = $(VBOX_GCC_TOOL)
+ TEMPLATE_VBoxR3Exe_LATE_LIBS =
+- TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG # Avoid 3rd party libiconv (from macports).
++ TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG # Avoid 3rd party lib (from macports).
+ TEMPLATE_VBoxR3Exe_SDKS.darwin = $(VBOX_DARWIN_DEF_SDK_SDKS)
+ TEMPLATE_VBoxR3Exe_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_DEFS)
+ TEMPLATE_VBoxR3Exe_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -fno-common
+@@ -6585,24 +6581,29 @@ else # the gcc guys
+ else ifeq ($(KBUILD_TARGET),haiku)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3
+ TEMPLATE_VBoxR3Exe_POST_CMDS = $(VBOX_HAIKU_XRES_SETVER_CMDS)
+- TEMPLATE_VBoxR3Exe_LATE_LIBS = network iconv stdc++ supc++
++ TEMPLATE_VBoxR3Exe_LATE_LIBS = network stdc++ supc++
+ TEMPLATE_VBoxR3Exe_LIBPATH += \
+ /boot/common/lib
+ # Haiku uses PIC by default...
+ TEMPLATE_VBoxR3Exe_CFLAGS += -fno-pic
+ TEMPLATE_VBoxR3Exe_CXXFLAGS += -fno-pic
+ TEMPLATE_VBoxR3Exe_LDFLAGS += -fno-pic
+- else if1of ($(KBUILD_TARGET), freebsd openbsd)
++ else if1of ($(KBUILD_TARGET), freebsd)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3
+ TEMPLATE_VBoxR3Exe_LATE_LIBS = pthread
++ TEMPLATE_VBoxR3Exe_LDFLAGS = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
++ TEMPLATE_VBoxR3Exe_LDFLAGS.freebsd.x86 = -Wl,-z,notext
+ TEMPLATE_VBoxR3Exe_INCS += \
+- /usr/include \
+- /usr/X11R6/include \
+ /usr/local/include
+ TEMPLATE_VBoxR3Exe_LIBPATH += \
+- /usr/lib \
+- /usr/X11R6/lib \
+ /usr/local/lib
++ else ifeq ($(KBUILD_TARGET), openbsd)
++ TEMPLATE_VBoxR3Exe_TOOL = GXX3
++ TEMPLATE_VBoxR3Exe_LIBS = pthread
++ TEMPLATE_VBoxR3Exe_INCS += \
++ /usr/include \
++ /usr/X11R6/include \
++ /usr/local/include
+ else ifeq ($(KBUILD_TARGET),netbsd)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3
+ TEMPLATE_VBoxR3Exe_LATE_LIBS = pthread
+@@ -6614,7 +6615,7 @@ else # the gcc guys
+ /usr/X11R7/lib
+ else ifeq ($(KBUILD_TARGET),solaris)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3PLAIN
+- TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG _REENTRANT # Avoid the GNU libiconv, for now at least.
++ TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG _REENTRANT # Avoid the GNU lib, for now at least.
+ if $(VBOX_GCC_VERSION_CC) < 30500
+ TEMPLATE_VBoxR3Exe_CFLAGS += -std=gnu99
+ endif
+@@ -6630,6 +6631,7 @@ else # the gcc guys
+ TEMPLATE_VBoxR3Exe_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
+ endif
+ ifdef VBOX_WITH_ORIGIN
++ TEMPLATE_VBoxR3Exe_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT)
+ TEMPLATE_VBoxR3Exe_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
+ endif
+ endif
+@@ -6868,7 +6870,7 @@ else
+ ifdef VBOX_WITH_NOCRT_STATIC
+ TEMPLATE_VBoxR3StaticBase_DEFS += RT_WITH_NOCRT_WRAPPERS
+ endif
+- ifn1of ($(KBUILD_TARGET), darwin linux solaris)
++ ifn1of ($(KBUILD_TARGET), darwin freebsd linux solaris)
+ # The gcc guys sans darwin, linux and solaris (don't depend on statically compiled system libs there)
+ TEMPLATE_VBoxR3StaticBase_CFLAGS = $(TEMPLATE_VBoxR3Exe_CFLAGS) -static
+ TEMPLATE_VBoxR3StaticBase_CXXFLAGS = $(TEMPLATE_VBoxR3Exe_CXXFLAGS) -static
+@@ -6936,7 +6938,7 @@ else
+ $(SDK_VBoxZlib_LATE_LIBS) \
+ $(SDK_VBoxLibLzma_LIBS)
+ if1of ($(KBUILD_TARGET), darwin freebsd)
+- TEMPLATE_VBoxR3Static_LATE_LIBS += iconv
++ TEMPLATE_VBoxR3Static_LATE_LIBS +=
+ else ifeq ($(KBUILD_TARGET),solaris)
+ TEMPLATE_VBoxR3Static_LATE_LIBS += kstat
+ endif
+@@ -7137,6 +7139,7 @@ else ifn1of ($(KBUILD_TARGET), os2)
+ else ifn1of ($(KBUILD_TARGET), os2)
+ ifneq ($(KBUILD_TYPE),asan) # Keep RPATH in asan builds so we can find libasan.so.X and libubsan.so.Y.
+ TEMPLATE_VBoxR3HardenedExe_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3Exe_LDFLAGS))
++ TEMPLATE_VBoxR3HardenedExe_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3Exe_LDFLAGS.freebsd))
+ TEMPLATE_VBoxR3HardenedExe_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3Exe_LDFLAGS.linux))
+ endif
+ endif
+@@ -7168,6 +7171,7 @@ ifn1of ($(KBUILD_TARGET), win os2)
+ $(if-expr !defined(VBOX_WITHOUT_WINDOWS_KERNEL_CODE_SIGNING_CERT),-IntegrityCheck,)
+ ifn1of ($(KBUILD_TARGET), win os2)
+ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3TstDll_LDFLAGS))
++ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.freebsd))
+ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.linux))
+ endif
+
+@@ -7192,6 +7196,7 @@ ifndef VBOX_WITH_HARDENING
+ TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
+ endif
+ ifdef VBOX_WITH_ORIGIN
++ TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT)
+ TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
+ endif
+ endif
+@@ -7570,7 +7575,7 @@ else # the GCC guys:
+ endif
+ TEMPLATE_VBoxMainExe_CXXFLAGS = -g $(VBOX_GCC_pipe) \
+ $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_Wno-multistatement-macros) $(VBOX_GCC_Wno-class-memaccess) -Wshadow \
+- -fshort-wchar -fpermissive -fexceptions -frtti $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing \
++ -fshort-wchar -fexceptions -frtti $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing \
+ $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK) \
+ $(VBOX_GCC_SANITIZER_FLAGS)
+ if !defined("VBOX_GCC_Wno-delete-non-virtual-dtor") && defined("VBOX_GCC_Wno-non-virtual-dtor")
+@@ -7633,10 +7638,19 @@ else # the GCC guys:
+ else ifeq ($(KBUILD_TARGET),haiku)
+ TEMPLATE_VBoxMainExe_TOOL = GXX3
+ TEMPLATE_VBoxMainExe_LATE_LIBS = $(LIB_RUNTIME) network stdc++ supc++
+- else if1of ($(KBUILD_TARGET), freebsd openbsd)
++ else if1of ($(KBUILD_TARGET), freebsd)
+ TEMPLATE_VBoxMainExe_TOOL = GXX3
+ TEMPLATE_VBoxMainExe_LATE_LIBS = $(LIB_RUNTIME)
++ TEMPLATE_VBoxMainExe_LDFLAGS = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
++ TEMPLATE_VBoxMainExe_LDFLAGS.freebsd.x86 = -Wl,-z,notext
+ TEMPLATE_VBoxMainExe_INCS += \
++ /usr/local/include
++ TEMPLATE_VBoxMainExe_LIBPATH += \
++ /usr/local/lib
++ else ifeq ($(KBUILD_TARGET), openbsd)
++ TEMPLATE_VBoxMainExe_TOOL = GXX3
++ TEMPLATE_VBoxMainExe_LIBS = $(LIB_RUNTIME)
++ TEMPLATE_VBoxMainExe_INCS += \
+ /usr/include \
+ /usr/X11R6/include \
+ /usr/local/include
+@@ -7668,6 +7682,7 @@ else # the GCC guys:
+ TEMPLATE_VBoxMainExe_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
+ endif
+ ifdef VBOX_WITH_ORIGIN
++ TEMPLATE_VBoxMainExe_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT)
+ TEMPLATE_VBoxMainExe_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
+ endif
+
+@@ -8352,14 +8367,13 @@ ifdef VBOX_WITH_QTGUI
+ TEMPLATE_VBoxQtGuiExe_LIBPATH += \
+ $(VBOX_LIBPATH_X11)
+ ifeq ($(KBUILD_TARGET),freebsd)
++ TEMPLATE_VBoxQtGuiExe_LDFLAGS += -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
++ TEMPLATE_VBoxQtGuiExe_LDFLAGS.freebsd.x86 = -Wl,-z,notext
+ TEMPLATE_VBoxQtGuiExe_INCS += \
+- /usr/include \
+- /usr/X11R6/include \
+ /usr/local/include
+ TEMPLATE_VBoxQtGuiExe_LIBPATH += \
+- /usr/lib \
+- /usr/X11R6/lib \
+ /usr/local/lib
++ TEMPLATE_VBoxQtGuiExe_LIBS += /usr/local/lib/qt6/libQt6PrintSupport.so
+ endif
+ ifeq ($(KBUILD_TARGET),solaris)
+ TEMPLATE_VBoxQtGuiExe_LDFLAGS.solaris = -Wl,-z,ignore # Same as VBOX_LD_as_needed.
+@@ -8623,7 +8637,7 @@ else
+ TEMPLATE_VBoxBldProg_LATE_LIBS = pthread m rt dl
+ else ifeq ($(KBUILD_HOST),os2)
+ TEMPLATE_VBoxBldProg_TOOL = GXX3OMF
+- TEMPLATE_VBoxBldProg_LATE_LIBS = socket iconv
++ TEMPLATE_VBoxBldProg_LATE_LIBS = socket
+ else ifeq ($(KBUILD_HOST),darwin)
+ TEMPLATE_VBoxBldProg_TOOL = $(VBOX_GCC_TOOL)
+ if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.7" || "$(VBOX_DARWIN_HOST_VERSION_MAJOR)" == "7"
+@@ -8663,13 +8677,20 @@ else
+ TEMPLATE_VBoxBldProg_LATE_LIBS =
+ else ifeq ($(KBUILD_HOST),haiku)
+ TEMPLATE_VBoxBldProg_TOOL = GXX3
+- TEMPLATE_VBoxBldProg_LATE_LIBS = network iconv
++ TEMPLATE_VBoxBldProg_LATE_LIBS = network
+ TEMPLATE_VBoxBldProg_LIBPATH += \
+ /boot/common/lib
+- else if1of ($(KBUILD_HOST), freebsd openbsd)
++ else if1of ($(KBUILD_HOST), freebsd)
+ TEMPLATE_VBoxBldProg_TOOL = $(VBOX_GCC_TOOL)
+ TEMPLATE_VBoxBldProg_LATE_LIBS = pthread
+ TEMPLATE_VBoxBldProg_INCS += \
++ /usr/local/include
++ TEMPLATE_VBoxBldProg_LIBPATH += \
++ /usr/local/lib
++ else ifeq ($(KBUILD_HOST), openbsd)
++ TEMPLATE_VBoxBldProg_TOOL = $(VBOX_GCC_TOOL)
++ TEMPLATE_VBoxBldProg_LIBS = pthread
++ TEMPLATE_VBoxBldProg_INCS += \
+ /usr/include \
+ /usr/X11R6/include \
+ /usr/local/include
+@@ -8716,11 +8737,11 @@ TEMPLATE_VBoxAdvBldProg_LATE_LIBS.darwin = \
+ $(TEMPLATE_VBoxBldProg_LATE_LIBS)
+ TEMPLATE_VBoxAdvBldProg_LATE_LIBS.darwin = \
+ $(TEMPLATE_VBoxAdvBldProg_LATE_LIBS) \
+- iconv \
++ \
+ $(TEMPLATE_VBoxBldProg_LATE_LIBS.darwin)
+ TEMPLATE_VBoxAdvBldProg_LATE_LIBS.freebsd = \
+ $(TEMPLATE_VBoxAdvBldProg_LATE_LIBS) \
+- iconv \
++ \
+ rt \
+ $(TEMPLATE_VBoxBldProg_LATE_LIBS.freebsd)
+ TEMPLATE_VBoxAdvBldProg_LATE_LIBS.linux = \
+@@ -8813,6 +8834,7 @@ else # the gcc guys
+ # Do not inherit sanitizer flags from VBoxR3Exe in guest executables. Deal with them separately.
+ TEMPLATE_VBoxGuestR3ExeBase_CXXFLAGS.debug = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.debug = $(NO_SUCH_VARIABLE)
++ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LDFLAGS.freebsd))
+ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LDFLAGS.linux))
+ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.debug = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LDFLAGS))
+@@ -8836,7 +8858,7 @@ else if1of ($(KBUILD_TARGET), darwin freebsd openbsd)
+ ifeq ($(KBUILD_TARGET),linux) # As few libs as possible on linux.
+ TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = pthread rt m dl
+ else if1of ($(KBUILD_TARGET), darwin freebsd openbsd)
+- TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LATE_LIBS) iconv
++ TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LATE_LIBS)
+ else ifeq ($(KBUILD_TARGET),solaris)
+ TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LATE_LIBS) nsl
+ endif
+@@ -8849,6 +8871,7 @@ TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.linux = $(TEMP
+ $(VBOX_GCC_fno-stack-protector)
+ TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.linux = $(TEMPLATE_VBoxGuestR3ExeBase_CXXFLAGS.linux)
+ # The GNU_HASH ELF tag is not supported by older systems.
++TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.freebsd += $(VBOX_LD_hash_style_sysv)
+ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.linux += $(VBOX_LD_hash_style_sysv)
+
+
+@@ -9085,6 +9108,7 @@ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TARGET
+ TEMPLATE_VBoxGuestR3XFree86Mod_CXXFLAGS.linux = $(VBOX_GCC_fno-stack-protector) # Remove symvers.h
+ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE)
+ # The GNU_HASH ELF tag is not supported by older glibc dynamic linkers.
++TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.freebsd = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv))
+ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.linux = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv))
+ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS := -r
+@@ -9128,7 +9152,7 @@ TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TARGET)
+ TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS = $(VBOX_LIB_VBGL_R3_XORG)
+ TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE)
+-TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.freebsd = iconv
++TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.freebsd =
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS = $(NO_SUCH_VARIABLE) # These three aren't necessary, just being careful.
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE)
diff --git a/emulators/virtualbox-ose-72/files/patch-configure b/emulators/virtualbox-ose-72/files/patch-configure
new file mode 100644
index 000000000000..76ed44e26acf
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-configure
@@ -0,0 +1,126 @@
+--- configure.orig 2025-08-13 19:37:05 UTC
++++ configure
+@@ -155,10 +155,14 @@ if [ "$OS" = "freebsd" ]; then
+ if [ "$OS" = "freebsd" ]; then
+ INCCURL="-I/usr/local/include"
+ LIBCURL="-L/usr/local/lib -lcurl"
++ INCALSA="-I/usr/local/include"
++ LIBALSA="-L/usr/local/lib"
+ INCPULSE="-I/usr/local/include"
+ LIBPULSE="-L/usr/local/lib"
+ INCPNG="-I/usr/local/include"
+ LIBPNG="-L/usr/local/lib -lpng"
++ INCVNCSERVER="-I/usr/local/include"
++ LIBVNCSERVER="-L/usr/local/lib"
+ else
+ INCCURL=""
+ LIBCURL="-lcurl"
+@@ -1171,6 +1175,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)
++#if !defined(SDL_VIDEO_DRIVER_X11)
++#error SDL must be compiled with X11 support
++#endif
+ printf(", OK.\n");
+ return 0;
+ #else
+@@ -1255,7 +1262,7 @@ EOF
+ #endif
+ }
+ EOF
+- if test_compile "-lasound" asound asound; then
++ if test_compile "$INCALSA $LIBALSA -lasound" asound asound; then
+ test_execute
+ fi
+ }
+@@ -1559,6 +1566,7 @@ EOF
+ SDKQT6=$PATH_SDK_QT6
+ fi
+ FLGQT6="-framework QtCore -std=c++17 -Wl,-rpath,`L_to_PATH "$LIBQT6"`"
++ FLGQT6="$FLGQT6 -std=c++11"
+ else
+ log_failure "Qt6 framework not found (can be disabled using --disable-qt)"
+ fail
+@@ -1897,7 +1905,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"
+@@ -2125,8 +2133,8 @@ EOF
+ echo "compiling the following source file:" >> $LOG
+ cat $ODIR.tmp_src.cc >> $LOG
+ echo "using the following command line:" >> $LOG
+- echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so" >> $LOG
+- $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so >> $LOG 2>&1
++ echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so -pthread" >> $LOG
++ $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so -pthread >> $LOG 2>&1
+ if [ $? -eq 0 ]; then
+ found=1
+ break
+@@ -2246,7 +2254,7 @@ check_gsoap()
+ else
+ cnf_append "VBOX_GSOAP_CXX_SOURCES" ""
+ fi
+- cnf_append "VBOX_GSOAP_CXX_LIBS" "`strip_l "$GSOAP_CXX_LIBS"`"
++ cnf_append "VBOX_GSOAP_CXX_LIBS" "`strip_l "$GSOAP_CXX_LIBS"` z"
+ gsoap_version=`pkg-config gsoapssl++ --modversion`
+ log_success "found version $gsoap_version"
+ return
+@@ -2619,7 +2627,7 @@ for option in "$@"; do
+ --with-openssl-dir=*)
+ OPENSSLDIR=`echo $option | cut -d'=' -f2`
+ INCCRYPTO="-I${OPENSSLDIR}/include"
+- LIBCRYPTO="${OPENSSLDIR}/lib/libssl.a ${OPENSSLDIR}/lib/libcrypto.a"
++ LIBCRYPTO="-L${OPENSSLDIR}/lib -lssl -lcrypto"
+ # On 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.
+@@ -2978,12 +2986,22 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then
+ [ $WITH_JAVA -eq 1 ] && check_java
+
+ # PulseAudio
+- if [ $WITH_PULSE -eq 1 ]; then
+- check_pulse
+- elif [ $WITH_PULSE -eq 0 ]; then # Force disabling PulseAudio.
+- cnf_append "VBOX_WITH_AUDIO_PULSE" ""
+- elif [ $WITH_PULSE -eq 2 ]; then # --enable-pulse was passed, force PulseAudio.
+- cnf_append "VBOX_WITH_AUDIO_PULSE" "1"
++ if [ "$OS" = "linux" -o "$OS" = "freebsd" -o "$OS" = "netbsd" ]; then
++ if [ $WITH_ALSA -eq 1 ]; then
++ check_alsa
++ else
++ cnf_append "VBOX_WITH_AUDIO_ALSA" ""
++ fi
++ if [ $WITH_PULSE -eq 1 ]; then
++ check_pulse
++ elif [ $WITH_PULSE -eq 0 ]; then # Force disabling PulseAudio.
++ cnf_append "VBOX_WITH_AUDIO_PULSE" ""
++ elif [ $WITH_PULSE -eq 2 ]; then # --enable-pulse was passed, force PulseAudio.
++ cnf_append "VBOX_WITH_AUDIO_PULSE" "1"
++ fi
++ if [ $WITH_DBUS -eq 0 ]; then
++ cnf_append "VBOX_WITH_DBUS" ""
++ fi
+ fi
+ fi
+
+@@ -2999,14 +3017,6 @@ if [ "$OS" = "linux" ]; then
+ cnf_append "VBOX_WITHOUT_LINUX_TEST_BUILDS" "1"
+ fi
+ if [ $ONLY_ADDITIONS -eq 0 ]; then
+- if [ $WITH_ALSA -eq 1 ]; then
+- check_alsa
+- else
+- cnf_append "VBOX_WITH_AUDIO_ALSA" ""
+- fi
+- if [ $WITH_DBUS -eq 0 ]; then
+- cnf_append "VBOX_WITH_DBUS" ""
+- fi
+ if [ $WITH_DEVMAPPER -eq 1 ]; then
+ check_libdevmapper
+ else
diff --git a/emulators/virtualbox-ose-72/files/patch-doc_manual_en__US_dita_UserManual.ditamap b/emulators/virtualbox-ose-72/files/patch-doc_manual_en__US_dita_UserManual.ditamap
new file mode 100644
index 000000000000..c8337d7aeba6
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-doc_manual_en__US_dita_UserManual.ditamap
@@ -0,0 +1,11 @@
+--- doc/manual/en_US/dita/UserManual.ditamap.orig 2025-08-13 19:37:06 UTC
++++ doc/manual/en_US/dita/UserManual.ditamap
+@@ -540,7 +540,7 @@
+ <topicref href="topics/security-model.dita"/>
+ <topicref href="topics/secure-config-vms.dita">
+ <topicref href="topics/security-networking.dita"/>
+- <topicref href="topics/security-of-remote-vms.dita"/>
++<!-- <topicref href="topics/security-of-remote-vms.dita"/> -->
+ <topicref href="topics/security-vrdp-auth.dita"/>
+ <topicref href="topics/security_clipboard.dita"/>
+ <topicref href="topics/security-shared-folders.dita"/>
diff --git a/emulators/virtualbox-ose-72/files/patch-include-iprt-x86.h b/emulators/virtualbox-ose-72/files/patch-include-iprt-x86.h
new file mode 100644
index 000000000000..cedf78a0ef02
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-include-iprt-x86.h
@@ -0,0 +1,19 @@
+--- include/iprt/x86.h.orig 2025-08-13 19:37:26 UTC
++++ include/iprt/x86.h
+@@ -53,6 +53,16 @@
+ # pragma D depends_on library vbox-types.d
+ #endif
+
++/* Workaround for FreeBSD machine/specialreg.h defining MSRs */
++#ifdef RT_OS_FREEBSD
++# undef MSR_P5_MC_ADDR
++# undef MSR_P5_MC_TYPE
++# undef MSR_IA32_PLATFORM_ID
++# undef MSR_BBL_CR_CTL3
++# undef MSR_IA32_MISC_ENABLE
++# undef MSR_IA32_FEATURE_CONTROL
++#endif
++
+ /** Workaround for Solaris sys/regset.h defining CS, DS and sys/controlregs.h
+ * defining MSR_IA32_FLUSH_CMD and MSR_AMD_VIRT_SPEC_CTL */
+ #ifdef RT_OS_SOLARIS
diff --git a/emulators/virtualbox-ose-72/files/patch-include_VBox_com_array.h b/emulators/virtualbox-ose-72/files/patch-include_VBox_com_array.h
new file mode 100644
index 000000000000..77d77ddd3e11
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-include_VBox_com_array.h
@@ -0,0 +1,36 @@
+--- include/VBox/com/array.h.orig 2025-08-13 19:37:15 UTC
++++ include/VBox/com/array.h
+@@ -181,7 +181,7 @@
+
+ #include "VBox/com/defs.h"
+
+-#if RT_GNUC_PREREQ(4, 6) || (defined(_MSC_VER) && (_MSC_VER >= 1600))
++#if RT_GNUC_PREREQ(4, 6) || (defined(_MSC_VER) && (_MSC_VER >= 1600)) || defined(_LIBCPP_VERSION)
+ /** @def VBOX_WITH_TYPE_TRAITS
+ * Type traits are a C++ 11 feature, so not available everywhere (yet).
+ * Only GCC 4.6 or newer and MSVC++ 16.0 (Visual Studio 2010) or newer.
+@@ -1014,12 +1014,12 @@ class SafeArray : public Traits (public)
+ {
+ /** @todo r=klaus should do this as a AssertCompile, but cannot find a way which works. */
+ Assert(sizeof(T) <= sizeof(Zeroes));
+- AssertReturn(m.arr != NULL, *(T *)&Zeroes[0]);
+- AssertReturn(aIdx < size(), *(T *)&Zeroes[0]);
++ AssertReturn(m.arr != NULL, *((T *)1));
++ AssertReturn(aIdx < size(), *((T *)1));
+ #ifdef VBOX_WITH_XPCOM
+ return m.arr[aIdx];
+ #else
+- AssertReturn(m.raw != NULL, *(T *)&Zeroes[0]);
++ AssertReturn(m.raw != NULL, *((T *)1));
+ return m.raw[aIdx];
+ #endif
+ }
+@@ -1034,7 +1034,7 @@ class SafeArray : public Traits (public)
+ #ifdef VBOX_WITH_XPCOM
+ return m.arr[aIdx];
+ #else
+- AssertReturn(m.raw != NULL, *(const T *)&Zeroes[0]);
++ AssertReturn(m.raw != NULL, *((T *)1));
+ return m.raw[aIdx];
+ #endif
+ }
diff --git a/emulators/virtualbox-ose-72/files/patch-include_VBox_sup.h b/emulators/virtualbox-ose-72/files/patch-include_VBox_sup.h
new file mode 100644
index 000000000000..77fee2d23d0a
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-include_VBox_sup.h
@@ -0,0 +1,11 @@
+--- include/VBox/sup.h.orig 2025-08-13 19:37:16 UTC
++++ include/VBox/sup.h
+@@ -2325,7 +2325,7 @@ SUPR0DECL(void) SUPR0BadContext(PSUPDRVSESSION pSessio
+
+ SUPR0DECL(void) SUPR0BadContext(PSUPDRVSESSION pSession, const char *pszFile, uint32_t uLine, const char *pszExpr);
+
+-#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD)
++#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS)
+ /**
+ * Translates a physical address to a virtual mapping (valid up to end of page).
+ * @returns VBox status code.
diff --git a/emulators/virtualbox-ose-72/files/patch-include_iprt_string.h b/emulators/virtualbox-ose-72/files/patch-include_iprt_string.h
new file mode 100644
index 000000000000..b06991588730
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-include_iprt_string.h
@@ -0,0 +1,14 @@
+--- include/iprt/string.h.orig 2025-08-13 19:37:25 UTC
++++ include/iprt/string.h
+@@ -57,6 +57,11 @@
+ #elif defined(RT_OS_FREEBSD) && defined(_KERNEL)
+ RT_C_DECLS_BEGIN
+ # include <sys/libkern.h>
++ /*
++ * Kludge for the FreeBSD kernel:
++ * sys/libkern.h includes sys/param.h via sys/systm.h since r335879.
++ */
++# undef PVM
+ RT_C_DECLS_END
+
+ #elif defined(RT_OS_NETBSD) && defined(_KERNEL)
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
new file mode 100644
index 000000000000..5344a7ab812f
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
@@ -0,0 +1,284 @@
+--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2025-08-13 19:41:14 UTC
++++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c
+@@ -55,6 +55,7 @@
+ #include <sys/uio.h>
+ #include <sys/bus.h>
+ #include <sys/poll.h>
++#include <sys/proc.h>
+ #include <sys/selinfo.h>
+ #include <sys/queue.h>
+ #include <sys/lock.h>
+@@ -71,6 +72,7 @@
+ #include <VBox/version.h>
+ #include <VBox/log.h>
+ #include <iprt/assert.h>
++#include <iprt/err.h>
+ #include <iprt/initterm.h>
+ #include <iprt/process.h>
+ #include <iprt/string.h>
+@@ -112,8 +114,6 @@ struct VBoxGuestDeviceState
+ struct resource *pIrqRes;
+ /** Pointer to the IRQ handler. */
+ void *pfnIrqHandler;
+- /** VMMDev version */
+- uint32_t u32Version;
+ };
+
+
+@@ -123,8 +123,7 @@ struct VBoxGuestDeviceState
+ /*
+ * Character device file handlers.
+ */
+-static d_fdopen_t vgdrvFreeBSDOpen;
+-static d_close_t vgdrvFreeBSDClose;
++static d_open_t vgdrvFreeBSDOpen;
+ 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 @@ static struct cdevsw g_vgdrvFreeBSDChrDevSW =
+ {
+ .d_version = D_VERSION,
+ .d_flags = D_TRACKCLOSE | D_NEEDMINOR,
+- .d_fdopen = vgdrvFreeBSDOpen,
+- .d_close = vgdrvFreeBSDClose,
++ .d_open = vgdrvFreeBSDOpen,
+ .d_ioctl = vgdrvFreeBSDIOCtl,
+ .d_read = vgdrvFreeBSDRead,
+ .d_write = vgdrvFreeBSDWrite,
+@@ -164,81 +162,28 @@ static struct cdevsw g_vgdrvFreeBSDChrDevSW =
+ .d_name = "vboxguest"
+ };
+
++/** Device structure. */
++static struct cdev *g_pDev;
++
+ /** Device extention & session data association structure. */
+ static VBOXGUESTDEVEXT g_DevExt;
+
+-/** List of cloned device. Managed by the kernel. */
+-static struct clonedevs *g_pvgdrvFreeBSDClones;
+-/** The dev_clone event handler tag. */
+-static eventhandler_tag g_vgdrvFreeBSDEHTag;
+ /** Reference counter */
+ static volatile uint32_t cUsers;
+ /** selinfo structure used for polling. */
+ static struct selinfo g_SelInfo;
+
+-/**
+- * DEVFS event handler.
+- */
+-static void vgdrvFreeBSDClone(void *pvArg, struct ucred *pCred, char *pszName, int cchName, struct cdev **ppDev)
++static void vgdrvFreeBSDDtr(void *pSession)
+ {
+- int iUnit;
+- int rc;
+-
+- Log(("vgdrvFreeBSDClone: pszName=%s ppDev=%p\n", pszName, ppDev));
+-
+- /*
+- * One device node per user, si_drv1 points to the session.
+- * /dev/vboxguest<N> where N = {0...255}.
+- */
+- if (!ppDev)
+- return;
+- if (strcmp(pszName, "vboxguest") == 0)
+- iUnit = -1;
+- else if (dev_stdclone(pszName, NULL, "vboxguest", &iUnit) != 1)
+- return;
+- if (iUnit >= 256)
+- {
+- Log(("vgdrvFreeBSDClone: iUnit=%d >= 256 - rejected\n", iUnit));
+- return;
+- }
+-
+- Log(("vgdrvFreeBSDClone: pszName=%s iUnit=%d\n", pszName, iUnit));
+-
+- rc = clone_create(&g_pvgdrvFreeBSDClones, &g_vgdrvFreeBSDChrDevSW, &iUnit, ppDev, 0);
+- Log(("vgdrvFreeBSDClone: clone_create -> %d; iUnit=%d\n", rc, iUnit));
+- if (rc)
+- {
+- *ppDev = make_dev(&g_vgdrvFreeBSDChrDevSW,
+- iUnit,
+- UID_ROOT,
+- GID_WHEEL,
+- 0664,
+- "vboxguest%d", iUnit);
+- if (*ppDev)
+- {
+- dev_ref(*ppDev);
+- (*ppDev)->si_flags |= SI_CHEAPCLONE;
+- Log(("vgdrvFreeBSDClone: Created *ppDev=%p iUnit=%d si_drv1=%p si_drv2=%p\n",
+- *ppDev, iUnit, (*ppDev)->si_drv1, (*ppDev)->si_drv2));
+- (*ppDev)->si_drv1 = (*ppDev)->si_drv2 = NULL;
+- }
+- else
+- Log(("vgdrvFreeBSDClone: make_dev iUnit=%d failed\n", iUnit));
+- }
+- else
+- Log(("vgdrvFreeBSDClone: Existing *ppDev=%p iUnit=%d si_drv1=%p si_drv2=%p\n",
+- *ppDev, iUnit, (*ppDev)->si_drv1, (*ppDev)->si_drv2));
++ VGDrvCommonCloseSession(&g_DevExt, pSession);
++ ASMAtomicDecU32(&cUsers);
+ }
+
+ /**
+ * File open handler
+ *
+ */
+-#if __FreeBSD_version >= 700000
+-static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOpen, struct thread *pTd, struct file *pFd)
+-#else
+-static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOpen, struct thread *pTd)
+-#endif
++static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOpen, int DevType, struct thread *pTd)
+ {
+ int rc;
+ PVBOXGUESTSESSION pSession;
+@@ -250,12 +195,6 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
+ LogFlow(("vgdrvFreeBSDOpen:\n"));
+
+ /*
+- * Try grab it (we don't grab the giant, remember).
+- */
+- if (!ASMAtomicCmpXchgPtr(&pDev->si_drv1, (void *)0x42, NULL))
+- return EBUSY;
+-
+- /*
+ * Create a new session.
+ */
+ fRequestor = VMMDEV_REQUESTOR_USERMODE | VMMDEV_REQUESTOR_TRUST_NOT_GIVEN;
+@@ -272,47 +211,20 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
+ rc = VGDrvCommonCreateUserSession(&g_DevExt, fRequestor, &pSession);
+ if (RT_SUCCESS(rc))
+ {
+- if (ASMAtomicCmpXchgPtr(&pDev->si_drv1, pSession, (void *)0x42))
+- {
+- Log(("vgdrvFreeBSDOpen: success - g_DevExt=%p pSession=%p rc=%d pid=%d\n", &g_DevExt, pSession, rc, (int)RTProcSelf()));
++ Log(("vgdrvFreeBSDOpen: success - g_DevExt=%p pSession=%p rc=%d pid=%d\n", &g_DevExt, pSession, rc, (int)RTProcSelf()));
++ rc = devfs_set_cdevpriv(pSession, vgdrvFreeBSDDtr);
++ if (rc)
++ VGDrvCommonCloseSession(&g_DevExt, pSession);
++ else
+ ASMAtomicIncU32(&cUsers);
+- return 0;
+- }
+-
+- VGDrvCommonCloseSession(&g_DevExt, pSession);
++ return rc;
+ }
+
+ LogRel(("vgdrvFreeBSDOpen: failed. rc=%d\n", rc));
+ return RTErrConvertToErrno(rc);
+ }
+
+-/**
+- * File close handler
+- *
+- */
+-static int vgdrvFreeBSDClose(struct cdev *pDev, int fFile, int DevType, struct thread *pTd)
+-{
+- 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...
+- */
+- if (RT_VALID_PTR(pSession))
+- {
+- VGDrvCommonCloseSession(&g_DevExt, pSession);
+- if (!ASMAtomicCmpXchgPtr(&pDev->si_drv1, NULL, pSession))
+- Log(("vgdrvFreeBSDClose: si_drv1=%p expected %p!\n", pDev->si_drv1, pSession));
+- ASMAtomicDecU32(&cUsers);
+- /* Don't use destroy_dev here because it may sleep resulting in a hanging user process. */
+- destroy_dev_sched(pDev);
+- }
+- else
+- Log(("vgdrvFreeBSDClose: si_drv1=%p!\n", pSession));
+- return 0;
+-}
+-
+-
+ /**
+ * I/O control request.
+ *
+@@ -326,8 +238,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;
+- devfs_get_cdevpriv((void **)&pSession);
++ int rc;
+
++ rc = devfs_get_cdevpriv((void **)&pSession);
++ if (rc)
++ return rc;
++
+ /*
+ * Deal with the fast ioctl path first.
+ */
+@@ -526,8 +442,10 @@ static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEv
+
+ 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)
+ /*
+ * Reverse what we did in vgdrvFreeBSDAttach.
+ */
+- if (g_vgdrvFreeBSDEHTag != NULL)
+- EVENTHANDLER_DEREGISTER(dev_clone, g_vgdrvFreeBSDEHTag);
++ destroy_dev(g_pDev);
+
+- clone_cleanup(&g_pvgdrvFreeBSDClones);
+-
+ vgdrvFreeBSDRemoveIRQ(pDevice, pState);
+
+ if (pState->pVMMDevMemRes)
+@@ -738,18 +653,21 @@ static int vgdrvFreeBSDAttach(device_t pDevice)
+ VGDrvCommonProcessOptionsFromHost(&g_DevExt);
+
+ /*
+- * Configure device cloning.
++ * Configure device.
+ */
+- clone_setup(&g_pvgdrvFreeBSDClones);
+- g_vgdrvFreeBSDEHTag = EVENTHANDLER_REGISTER(dev_clone, vgdrvFreeBSDClone, 0, 1000);
+- if (g_vgdrvFreeBSDEHTag)
++ g_pDev = make_dev(&g_vgdrvFreeBSDChrDevSW,
++ 0,
++ UID_ROOT,
++ GID_WHEEL,
++ 0664,
++ "vboxguest");
++ if (g_pDev)
+ {
+ printf(DEVICE_NAME ": loaded successfully\n");
+ return 0;
+ }
+
+- printf(DEVICE_NAME ": EVENTHANDLER_REGISTER(dev_clone,,,) failed\n");
+- clone_cleanup(&g_pvgdrvFreeBSDClones);
++ printf(DEVICE_NAME ": make_dev failed\n");
+ vgdrvFreeBSDRemoveIRQ(pDevice, pState);
+ }
+ else
+@@ -793,8 +711,12 @@ static driver_t vgdrvFreeBSDDriver =
+ sizeof(struct VBoxGuestDeviceState),
+ };
+
++#if __FreeBSD_version >= 1400058
++DRIVER_MODULE(vboxguest, pci, vgdrvFreeBSDDriver, 0, 0);
++#else
+ static devclass_t vgdrvFreeBSDClass;
+
+ DRIVER_MODULE(vboxguest, pci, vgdrvFreeBSDDriver, vgdrvFreeBSDClass, 0, 0);
++#endif
+ MODULE_VERSION(vboxguest, 1);
+
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
new file mode 100644
index 000000000000..1430dbb721fb
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
@@ -0,0 +1,27 @@
+--- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2025-08-13 19:41:14 UTC
++++ src/VBox/Additions/common/VBoxGuest/freebsd/Makefile
+@@ -35,7 +35,7 @@ KMOD = vboxguest
+ #
+ 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
+
+ .if (${MACHINE_ARCH} == "i386")
+ CFLAGS += -DRT_ARCH_X86
+@@ -91,6 +91,7 @@ SRCS += \
+ handletable.c \
+ handletablectx.c \
+ once.c \
++ term.c \
+ thread.c
+
+ .PATH: ${.CURDIR}/common/string
+@@ -163,6 +164,7 @@ SRCS += \
+
+ .PATH: ${.CURDIR}/r0drv
+ SRCS += \
++ alloc-ef-r0drv.c \
+ alloc-r0drv.c \
+ initterm-r0drv.c \
+ memobj-r0drv.c \
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest
new file mode 100644
index 000000000000..57eed06c6dbe
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest
@@ -0,0 +1,34 @@
+--- src/VBox/Additions/common/VBoxGuest/freebsd/files_vboxguest.orig 2025-08-13 19:41:14 UTC
++++ src/VBox/Additions/common/VBoxGuest/freebsd/files_vboxguest
+@@ -74,6 +74,7 @@ FILES_VBOXGUEST_NOBIN=" \
+ ${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \
+ ${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \
+ ${PATH_ROOT}/include/iprt/types.h=>include/iprt/types.h \
++ ${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \
+ ${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \
+ ${PATH_ROOT}/include/iprt/uuid.h=>include/iprt/uuid.h \
+ ${PATH_ROOT}/include/iprt/crc.h=>include/iprt/crc.h \
+@@ -125,6 +126,7 @@ FILES_VBOXGUEST_NOBIN=" \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.h=>common/misc/handletable.h \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablectx.cpp=>common/misc/handletablectx.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/once.cpp=>common/misc/once.c \
++ ${PATH_ROOT}/src/VBox/Runtime/common/misc/term.cpp=>common/misc/term.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/thread.cpp=>common/misc/thread.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg1Weak.cpp=>common/misc/RTAssertMsg1Weak.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg2.cpp=>common/misc/RTAssertMsg2.c \
+@@ -200,6 +202,7 @@ FILES_VBOXGUEST_NOBIN=" \
+ ${PATH_ROOT}/src/VBox/Runtime/generic/errvars-generic.cpp=>generic/errvars-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/generic/timer-generic.cpp=>generic/timer-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/generic/mppresent-generic.cpp=>generic/mppresent-generic.c \
++ ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-ef-r0drv.cpp=>r0drv/alloc-ef-r0drv.c \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-r0drv.cpp=>r0drv/alloc-r0drv.c \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-r0drv.h=>r0drv/alloc-r0drv.h \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/initterm-r0drv.cpp=>r0drv/initterm-r0drv.c \
+@@ -226,6 +229,7 @@ FILES_VBOXGUEST_NOBIN=" \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/freebsd/sleepqueue-r0drv-freebsd.h=>r0drv/freebsd/sleepqueue-r0drv-freebsd.h \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/semspinmutex-r0drv-generic.c=>r0drv/generic/semspinmutex-r0drv-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/mpnotification-r0drv-generic.cpp=>r0drv/generic/mpnotification-r0drv-generic.c \
++ ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/threadctxhooks-r0drv-generic.cpp=>r0drv/generic/threadctxhooks-r0drv-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp=>r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/memobj-r0drv.cpp=>r0drv/memobj-r0drv.c \
+ ${PATH_ROOT}/src/VBox/Runtime/VBox/log-vbox.cpp=>VBox/log-vbox.c \
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient
new file mode 100644
index 000000000000..5ac88befbb88
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient
@@ -0,0 +1,25 @@
+--- src/VBox/Additions/x11/Installer/98vboxadd-xclient.orig 2025-08-13 19:41:21 UTC
++++ src/VBox/Additions/x11/Installer/98vboxadd-xclient
+@@ -42,15 +42,15 @@ elif test -z "${SSH_CONNECTION}"; then
+ # not use "exit" here as this script is "source"d, not executed.
+
+ # Check wheather X11 or Wayland version of VBoxClient should be started.
+- vbox_wl_check=$(/usr/bin/vboxwl --check 2> /dev/null)
++ vbox_wl_check=$(/usr/local/bin/vboxwl --check 2> /dev/null)
+ if test "$vbox_wl_check" = "WL"; then
+- /usr/bin/VBoxClient --wayland
++ /usr/local/bin/VBoxClient --wayland
+ else
+- /usr/bin/VBoxClient --clipboard
+- /usr/bin/VBoxClient --seamless
+- /usr/bin/VBoxClient --draganddrop
++ /usr/local/bin/VBoxClient --clipboard
++ /usr/local/bin/VBoxClient --seamless
++ /usr/local/bin/VBoxClient --draganddrop
+ fi
+
+- /usr/bin/VBoxClient --checkhostversion
+- /usr/bin/VBoxClient --vmsvga-session # In case VMSVGA emulation is enabled
++ /usr/local/bin/VBoxClient --checkhostversion
++ /usr/local/bin/VBoxClient --vmsvga-session # In case VMSVGA emulation is enabled
+ fi
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop
new file mode 100644
index 000000000000..a76eb7616038
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop
@@ -0,0 +1,10 @@
+--- src/VBox/Additions/x11/Installer/vboxclient.desktop.orig 2020-05-13 19:37:09 UTC
++++ src/VBox/Additions/x11/Installer/vboxclient.desktop
+@@ -8,6 +8,6 @@ Comment[C]=VirtualBox User Session Services
+ Comment=VirtualBox User Session Services
+ Comment[it]=Servizi di sessione utente di VirtualBox
+ Comment[pl]=Usługi sesji użytkownika VirtualBox
+-Exec=/usr/bin/VBoxClient-all
++Exec=/usr/local/bin/VBoxClient-all
+ X-GNOME-Autostart-enabled=true
+ X-KDE-autostart-after=panel
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk
new file mode 100644
index 000000000000..2427e708059b
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk
@@ -0,0 +1,20 @@
+--- src/VBox/HostDrivers/VBoxNetAdp/Makefile.kmk.orig 2025-08-13 19:51:10 UTC
++++ src/VBox/HostDrivers/VBoxNetAdp/Makefile.kmk
+@@ -220,10 +220,14 @@ ifeq ($(KBUILD_TARGET),freebsd)
+ $$(if $$(eq $$(VBoxNetAdp/freebsd/Makefile_VBOX_HARDENED),$$(VBOX_WITH_HARDENING)),,FORCE) \
+ | $$(dir $$@)
+ $(QUIET)$(RM) -f -- $@
+- ifndef VBOX_WITH_HARDENING
+- $(QUIET)$(SED) -e "s;VBOX_WITH_HARDENING;;g" --output $@ $<
+- else
+ $(QUIET)$(CP) -f $< $@
++ ifndef VBOX_WITH_HARDENING
++ $(QUIET)$(SED) -e "s;-DVBOX_WITH_HARDENING;;g" --output $@.tmp $@
++ $(QUIET)$(MV) -f $@.tmp $@
++ endif
++ ifndef VBOX_WITH_NETFLT_VIMAGE
++ $(QUIET)$(SED) -e "s;-DVIMAGE;;g" --output $@.tmp $@
++ $(QUIET)$(MV) -f $@.tmp $@
+ endif
+
+ endif # freebsd
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt b/emulators/virtualbox-ose-72/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt
new file mode 100644
index 000000000000..1ee95be5b24d
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt
@@ -0,0 +1,10 @@
+--- src/VBox/HostDrivers/VBoxNetFlt/freebsd/files_vboxnetflt.orig 2025-08-13 19:51:11 UTC
++++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/files_vboxnetflt
+@@ -73,6 +73,7 @@ VBOX_VBOXNETFLT_SOURCES=" \
+ ${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \
+ ${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \
+ ${PATH_ROOT}/include/iprt/uuid.h=>include/iprt/uuid.h \
++ ${PATH_ROOT}/include/iprt/x86.h=>include/iprt/x86.h \
+ ${PATH_ROOT}/include/iprt/x86-helpers.h=>include/iprt/x86-helpers.h \
+ ${PATH_ROOT}/include/iprt/nocrt/limits.h=>include/iprt/nocrt/limits.h \
+ ${PATH_ROOT}/include/VBox/cdefs.h=>include/VBox/cdefs.h \
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Installer-Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src-VBox-Installer-Makefile.kmk
new file mode 100644
index 000000000000..f9e9ce8ec516
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Installer-Makefile.kmk
@@ -0,0 +1,14 @@
+--- src/VBox/Installer/Makefile.kmk.orig 2025-08-13 19:51:15 UTC
++++ src/VBox/Installer/Makefile.kmk
+@@ -51,9 +51,11 @@ ifndef VBOX_ONLY_SDK
+ if "$(KBUILD_TARGET)" == "win" && "$(KBUILD_HOST)" == "win"
+ include $(PATH_SUB_CURRENT)/win/Makefile.kmk
+ endif
++if 0
+ if "$(KBUILD_TARGET)" == "freebsd" && "$(KBUILD_HOST)" == "freebsd"
+ include $(PATH_SUB_CURRENT)/freebsd/Makefile.kmk
+ endif
++endif
+ endif
+
+ include $(PATH_SUB_CURRENT)/common/Makefile.kmk
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Installer-freebsd-VBox.sh b/emulators/virtualbox-ose-72/files/patch-src-VBox-Installer-freebsd-VBox.sh
new file mode 100644
index 000000000000..b4c177a54d1c
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Installer-freebsd-VBox.sh
@@ -0,0 +1,77 @@
+--- src/VBox/Installer/freebsd/VBox.sh.orig 2016-08-27 05:10:34 UTC
++++ src/VBox/Installer/freebsd/VBox.sh
+@@ -0,0 +1,74 @@
++#!/bin/sh
++#
++# Oracle VM VirtualBox startup script, FreeBSD hosts.
++#
++# Copyright (C) 2006-2012 Oracle Corporation
++#
++# This file is part of VirtualBox Open Source Edition (OSE), as
++# available from http://www.virtualbox.org. This file is free software;
++# you can redistribute it and/or modify it under the terms of the GNU
++# General Public License (GPL) as published by the Free Software
++# Foundation, in version 2 as it comes in the "COPYING" file of the
++# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
++# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
++#
++
++PATH="/sbin:/bin:/usr/sbin:/usr/bin:%%LOCALBASE%%/sbin:%%LOCALBASE%%/bin"
++CONFIG="%%VBOX_ETC%%/vbox.cfg"
++
++test -r "${CONFIG}" &&
++ . "${CONFIG}"
++test -z "${INSTALL_DIR}" &&
++ if test -d %%VBOX_DIR%% &&
++ test -f %%VBOX_DIR%%/VBoxRT.so; then
++ INSTALL_DIR=%%VBOX_DIR%%
++ else
++ >&2 echo "Could not find VirtualBox installation. Please reinstall."
++ exit 1
++ fi
++
++if [ -d /etc/vbox ]; then
++ >&2 cat <<-EOH
++ WARNING: Directory /etc/vbox found, but ignored. VirtualBox
++ configuration files are stored in %%VBOX_ETC%%/.
++ EOH
++fi
++
++# workaround for the KDE dialog problem
++KDE_FORK_SLAVES=1; export KDE_FORK_SLAVES
++
++APP=`basename $0`
++case "$APP" in
++ VirtualBox|virtualbox)
++ exec "$INSTALL_DIR/VirtualBox" "$@"
++ ;;
++ VirtualBoxVM|virtualboxvm)
++ exec "$INSTALL_DIR/VirtualBoxVM" "$@"
++ ;;
++ VBoxManage|vboxmanage)
++ exec "$INSTALL_DIR/VBoxManage" "$@"
++ ;;
++ VBoxSDL|vboxsdl)
++ exec "$INSTALL_DIR/VBoxSDL" "$@"
++ ;;
++ VBoxVRDP|VBoxHeadless|vboxheadless)
++ exec "$INSTALL_DIR/VBoxHeadless" "$@"
++ ;;
++ VBoxAutostart|vboxautostart)
++ exec "$INSTALL_DIR/VBoxAutostart" "$@"
++ ;;
++ VBoxBalloonCtrl|vboxballoonctrl)
++ exec "$INSTALL_DIR/VBoxBalloonCtrl" "$@"
++ ;;
++ VBoxBugReport|vboxbugreport)
++ exec "$INSTALL_DIR/VBoxBugReport" "$@"
++ ;;
++ vboxwebsrv)
++ exec "$INSTALL_DIR/vboxwebsrv" "$@"
++ ;;
++ *)
++ >&2 echo "Unknown application - $APP"
++ exit 1
++ ;;
++esac
++exit 0
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp b/emulators/virtualbox-ose-72/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp
new file mode 100644
index 000000000000..85c886d9ec84
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Main/src-server/VirtualBoxImpl.cpp.orig 2025-08-13 19:51:27 UTC
++++ src/VBox/Main/src-server/VirtualBoxImpl.cpp
+@@ -3097,7 +3097,7 @@ int VirtualBox::i_encryptSettingBytes(const uint8_t *a
+ if (aCiphertextSize < 32)
+ return VERR_INVALID_PARAMETER;
+
+- AssertCompile(sizeof(m->SettingsCipherKey) >= 32);
++ // AssertCompile(sizeof(m->SettingsCipherKey) >= 32);
+
+ /* store the first 8 bytes of the cipherkey for verification */
+ for (i = 0, j = 0; i < 8; i++, j++)
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h b/emulators/virtualbox-ose-72/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h
new file mode 100644
index 000000000000..d3f79ede9e50
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h
@@ -0,0 +1,39 @@
+Without the first part of this patch, any waits for periods shorter than a
+single tick return immediately leading to a lot of unnecessary spinning. For
+example, I observe that my guest's idle loop does a lot of sleeps with periods
+slightly shorter than 1 ms (1/hz), e.g. 900us. All that waiting turns into pure
+spinning and VirtualBox eats 100% of a core.
+
+The clamping improves the situation significantly. Also, it (approximately)
+follows what tvtohz does. The rest of the patch just chases an upstream
+KPI change.
+
+Submitted by: Andriy Gapon <avg@FreeBSD.org>
+--- src/VBox/Runtime/r0drv/freebsd/sleepqueue-r0drv-freebsd.h.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/sleepqueue-r0drv-freebsd.h
+@@ -94,6 +94,8 @@ DECLINLINE(uint32_t) rtR0SemBsdWaitUpdateTimeout(PRTR0
+ uint64_t cTicks = ASMMultU64ByU32DivByU32(uTimeout, hz, UINT32_C(1000000000));
+ if (cTicks >= INT_MAX)
+ return RTSEMWAIT_FLAGS_INDEFINITE;
++ else if (cTicks == 0 && uTimeout > 0)
++ pWait->iTimeout = 1;
+ else
+ pWait->iTimeout = (int)cTicks;
+ #endif
+@@ -310,10 +312,16 @@ DECLINLINE(void) rtR0SemBsdSignal(void *pvWaitChan)
+ DECLINLINE(void) rtR0SemBsdSignal(void *pvWaitChan)
+ {
+ sleepq_lock(pvWaitChan);
++#if __FreeBSD_version < 1500022
+ int fWakeupSwapProc = sleepq_signal(pvWaitChan, SLEEPQ_CONDVAR, 0, 0);
++#else
++ sleepq_signal(pvWaitChan, SLEEPQ_CONDVAR, 0, 0);
++#endif
+ sleepq_release(pvWaitChan);
++#if __FreeBSD_version < 1500022
+ if (fWakeupSwapProc)
+ kick_proc0();
++#endif
+ }
+
+ /**
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp
new file mode 100644
index 000000000000..0c463e3d9923
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp
@@ -0,0 +1,71 @@
+--- src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp.orig 2025-08-13 19:41:16 UTC
++++ src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp
+@@ -77,8 +77,8 @@
+ # include <net/if.h>
+ # include <pwd.h> /* getpwuid */
+ # include <unistd.h>
+-# if !defined(RT_OS_OS2) && !defined(RT_OS_FREEBSD) && !defined(RT_OS_HAIKU)
+-# include <utmpx.h> /** @todo FreeBSD 9 should have this. */
++# if !defined(RT_OS_OS2) && !defined(RT_OS_HAIKU)
++# include <utmpx.h>
+ # endif
+ # ifdef RT_OS_OS2
+ # include <net/if_dl.h>
+@@ -573,7 +573,7 @@ static void vgsvcVMInfoWriteFixedProperties(void)
+ }
+
+
+-#if defined(VBOX_WITH_DBUS) && defined(RT_OS_LINUX) /* Not yet for Solaris/FreeBSB. */
++#if defined(VBOX_WITH_DBUS) && (defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)) /* Not yet for Solaris. */
+ /*
+ * Simple wrappers to work around compiler-specific va_list madness.
+ */
+@@ -702,12 +702,6 @@ static int vgsvcVMInfoWriteUsers(void)
+ #ifdef RT_OS_WINDOWS
+ rc = VGSvcVMInfoWinWriteUsers(&g_VMInfoPropCache, &pszUserList, &cUsersInList);
+
+-#elif defined(RT_OS_FREEBSD)
+- /** @todo FreeBSD: Port logged on user info retrieval.
+- * However, FreeBSD 9 supports utmpx, so we could use the code
+- * block below (?). */
+- rc = VERR_NOT_IMPLEMENTED;
+-
+ #elif defined(RT_OS_HAIKU)
+ /** @todo Haiku: Port logged on user info retrieval. */
+ rc = VERR_NOT_IMPLEMENTED;
+@@ -733,7 +727,7 @@ static int vgsvcVMInfoWriteUsers(void)
+ while ( (ut_user = getutxent())
+ && RT_SUCCESS(rc))
+ {
+-# ifdef RT_OS_DARWIN /* No ut_user->ut_session on Darwin */
++# if defined(RT_OS_DARWIN) || defined(RT_OS_FREEBSD) /* No ut_user->ut_session on Darwin/FreeBSD */
+ VGSvcVerbose(4, "Found entry '%s' (type: %d, PID: %RU32)\n", ut_user->ut_user, ut_user->ut_type, ut_user->ut_pid);
+ # else
+ VGSvcVerbose(4, "Found entry '%s' (type: %d, PID: %RU32, session: %RU32)\n",
+@@ -749,7 +743,7 @@ static int vgsvcVMInfoWriteUsers(void)
+ }
+
+ # ifdef VBOX_WITH_DBUS
+-# if defined(RT_OS_LINUX) /* Not yet for Solaris/FreeBSB. */
++# if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) /* Not yet for Solaris. */
+ DBusError dbErr;
+ DBusConnection *pConnection = NULL;
+ int rc2 = RTDBusLoadLib();
+@@ -1074,7 +1068,7 @@ static int vgsvcVMInfoWriteUsers(void)
+ if ( fHaveLibDbus
+ && dbus_error_is_set(&dbErr))
+ dbus_error_free(&dbErr);
+-# endif /* RT_OS_LINUX */
++# endif /* RT_OS_LINUX || RT_OS_FREEBSD */
+ # endif /* VBOX_WITH_DBUS */
+
+ /* Calc the string length. */
+@@ -1109,7 +1103,7 @@ static int vgsvcVMInfoWriteUsers(void)
+ RTMemFree(papszUsers);
+
+ endutxent(); /* Close utmpx file. */
+-#endif /* !RT_OS_WINDOWS && !RT_OS_FREEBSD && !RT_OS_HAIKU && !RT_OS_OS2 */
++#endif /* !RT_OS_WINDOWS && !RT_OS_HAIKU && !RT_OS_OS2 */
+
+ Assert(RT_FAILURE(rc) || cUsersInList == 0 || (pszUserList && *pszUserList));
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_pam_pam__vbox.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_pam_pam__vbox.cpp
new file mode 100644
index 000000000000..ff9853417bdd
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_pam_pam__vbox.cpp
@@ -0,0 +1,20 @@
+--- src/VBox/Additions/common/pam/pam_vbox.cpp.orig 2025-08-13 19:41:17 UTC
++++ src/VBox/Additions/common/pam/pam_vbox.cpp
+@@ -113,7 +113,7 @@ static void pam_vbox_writesyslog(char *pszBuf)
+ openlog("pam_vbox", LOG_PID, LOG_AUTHPRIV);
+ syslog(LOG_ERR, "%s", pszBuf);
+ closelog();
+-#elif defined(RT_OS_SOLARIS)
++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_SOLARIS)
+ syslog(LOG_ERR, "pam_vbox: %s\n", pszBuf);
+ #endif
+ }
+@@ -192,7 +192,7 @@ static int vbox_set_msg(pam_handle_t *hPAM, int iStyle
+
+ pam_message msg;
+ msg.msg_style = iStyle;
+-#ifdef RT_OS_SOLARIS
++#if defined(RT_OS_FREEBSD) || defined(RT_OS_SOLARIS)
+ msg.msg = (char*)pszText;
+ #else
+ msg.msg = pszText;
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_Makefile b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_Makefile
new file mode 100644
index 000000000000..4f026e38c70a
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_Makefile
@@ -0,0 +1,38 @@
+--- src/VBox/Additions/freebsd/Makefile.orig 2025-08-13 19:41:17 UTC
++++ src/VBox/Additions/freebsd/Makefile
+@@ -40,6 +40,14 @@ all:
+ cp vboxvfs/vboxvfs.ko .; \
+ fi; \
+ fi
++ @echo
++ @if [ -d mount_vboxvfs ]; then \
++ echo "=== Building mount_vboxvfs binary ==="; \
++ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C mount_vboxvfs clean obj depend all; \
++ if [ -f mount_vboxvfs ]; then \
++ cp mount_vboxvfs/mount_vboxvfs .; \
++ fi; \
++ fi
+
+
+ install:
+@@ -47,13 +55,19 @@ install:
+ @if [ -d vboxvfs ]; then \
+ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvfs install; \
+ fi
++ @if [ -d mount_vboxvfs ]; then \
++ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C mount_vboxvfs install; \
++ fi
+
+ clean:
+ @$(MAKE) -C vboxguest clean
+ @if [ -d vboxvfs ]; then \
+ $(MAKE) -C vboxvfs clean; \
+ fi
+- rm -f vboxguest.*o vboxvfs.*o
++ @if [ -d mount_vboxvfs ]; then \
++ $(MAKE) -C mount_vboxvfs clean; \
++ fi
++ rm -f vboxguest.*o vboxvfs.*o mount_vboxvfs
+
+ load:
+ @/sbin/kldunload vboxvfs || true
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_Makefile.kmk
new file mode 100644
index 000000000000..821e1fc5d431
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_Makefile.kmk
@@ -0,0 +1,31 @@
+--- src/VBox/Additions/freebsd/Makefile.kmk.orig 2025-08-13 19:41:17 UTC
++++ src/VBox/Additions/freebsd/Makefile.kmk
+@@ -33,8 +33,9 @@ endif
+ endif
+
+ # Include sub-makefiles.
+-#include $(PATH_SUB_CURRENT)/vboxvfs/Makefile.kmk
+-include $(PATH_SUB_CURRENT)/drm/Makefile.kmk
++include $(PATH_SUB_CURRENT)/vboxvfs/Makefile.kmk
++#include $(PATH_SUB_CURRENT)/drm/Makefile.kmk
++include $(PATH_SUB_CURRENT)/mount_vboxvfs/Makefile.kmk
+
+ #
+ # Globals
+@@ -76,11 +77,14 @@ VBOX_FBSD_ADD_STRIP_BIN = \
+ vboxvideo_drv_14.so \
+ vboxvideo_drv_15.so \
+ vboxvideo_drv_16.so \
+- vboxvideo_drv_17.so
++ vboxvideo_drv_17.so \
++ $(if $(VBOX_WITH_PAM),pam_vbox.so,) \
++ VBoxOGL.so \
++ mount_vboxvfs
+
+ VBOX_FBSD_ADD_MODULES = \
+ vboxguest \
+- vboxvideo_drm
++ vboxvfs
+
+ #
+ # All the bin files that go into the archives.
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_drm_vboxvideo__drm.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_drm_vboxvideo__drm.c
new file mode 100644
index 000000000000..3ab11cbd1ed7
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_drm_vboxvideo__drm.c
@@ -0,0 +1,17 @@
+--- src/VBox/Additions/freebsd/drm/vboxvideo_drm.c.orig 2025-08-13 19:41:18 UTC
++++ src/VBox/Additions/freebsd/drm/vboxvideo_drm.c
+@@ -164,10 +164,14 @@ static driver_t vboxvideo_driver = {
+ sizeof(struct drm_device)
+ };
+
++#if __FreeBSD_version >= 1400058
++DRIVER_MODULE(vboxvideo, vgapci, vboxvideo_driver, 0, 0);
++#else
+ extern devclass_t drm_devclass;
+ #if __FreeBSD_version >= 700010
+ DRIVER_MODULE(vboxvideo, vgapci, vboxvideo_driver, drm_devclass, 0, 0);
+ #else
+ DRIVER_MODULE(vboxvideo, pci, vboxvideo_driver, drm_devclass, 0, 0);
++#endif
+ #endif
+ MODULE_DEPEND(vboxvideo, drm, 1, 1, 1);
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
new file mode 100644
index 000000000000..270472c045e3
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
@@ -0,0 +1,31 @@
+--- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2025-05-11 03:54:13 UTC
++++ src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk
+@@ -0,0 +1,28 @@
++# $Id: Makefile.kmk $
++## @file
++# Sub-Makefile for the FreeBSD Shared folder mount utility.
++#
++
++SUB_DEPTH = ../../../../..
++include $(KBUILD_PATH)/subheader.kmk
++
++ifneq ($(KBUILD_HOST),freebsd)
++$(error "The FreeBSD guest additions can only be built on FreeBSD!")
++endif
++
++MOUNT= $(VBOX_FREEBSD_SRC)/../sbin/mount
++
++CFLAGS+=-I$(MOUNT)
++
++PROGRAMS += mount_vboxvfs
++mount_vboxvfs_TEMPLATE = NewVBoxGuestR3Exe
++mount_vboxvfs_SOURCES = mount_vboxvfs.c
++
++ifdef HAVE_MNTOPTS_IN_LIBUTIL
++mount_vboxvfs_LIBS = util
++else
++mount_vboxvfs_SOURCES += $(MOUNT)/getmntopts.c
++endif
++
++include $(FILE_KBUILD_SUB_FOOTER)
++
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.8 b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.8
new file mode 100644
index 000000000000..41fcdd6d019b
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.8
@@ -0,0 +1,56 @@
+--- src/VBox/Additions/freebsd/mount_vboxvfs/mount_vboxvfs.8.orig 2025-08-28 22:09:24 UTC
++++ src/VBox/Additions/freebsd/mount_vboxvfs/mount_vboxvfs.8
+@@ -0,0 +1,53 @@
++.\"
++.\" Copyright (c) 1992, 1993, 1994
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.Dd August 5, 2013
++.Dt MOUNT_VBOXFS 8
++.Os
++.Sh NAME
++.Nm mount_vboxfs
++.Nd "Mount the VirtualBox shared folder NAME from the host system to MOUNTPOINT"
++.Sh SYNOPSIS
++.Nm
++.Op Fl o Ar options
++.Ar NAME
++.Ar MOUNTPOINT
++.Sh DESCRIPTION
++The
++.Nm
++Mount the VirtualBox shared folder NAME from the host system to MOUNTPOINT
++.Pp
++The options are as follows:
++.Bl -tag -width indent
++.Fl w
++mount the shared folder writably (the default)
++.Fl r
++mount the shared folder read-only
++.Fl o
++OPTION[,OPTION...] use the mount options specified
++.El
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.c
new file mode 100644
index 000000000000..1f85abc198b9
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.c
@@ -0,0 +1,171 @@
+--- src/VBox/Additions/freebsd/mount_vboxvfs/mount_vboxvfs.c.orig 2025-08-28 22:09:24 UTC
++++ src/VBox/Additions/freebsd/mount_vboxvfs/mount_vboxvfs.c
+@@ -0,0 +1,168 @@
++/*
++* Copyright (c) 1992, 1993, 1994
++* The Regents of the University of California. All rights reserved.
++*
++* Redistribution and use in source and binary forms, with or without
++* modification, are permitted provided that the following conditions
++* are met:
++* 1. Redistributions of source code must retain the above copyright
++* notice, this list of conditions and the following disclaimer.
++* 2. Redistributions in binary form must reproduce the above copyright
++* notice, this list of conditions and the following disclaimer in the
++* documentation and/or other materials provided with the distribution.
++* 4. Neither the name of the University nor the names of its contributors
++* may be used to endorse or promote products derived from this software
++* without specific prior written permission.
++*
++* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++* SUCH DAMAGE.
++*/
++
++#include <sys/cdio.h>
++#include <sys/stat.h>
++#include <sys/file.h>
++#include <sys/iconv.h>
++#include <sys/param.h>
++#include <sys/linker.h>
++#include <sys/module.h>
++#include <sys/mount.h>
++#include <sys/uio.h>
++
++#include <err.h>
++#include <errno.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
++#include <sysexits.h>
++#include <unistd.h>
++
++#include "mntopts.h"
++
++#define MAX_HOST_NAME 256
++static char mount_point[MAXPATHLEN + 1];
++static char vboxfs_vfsname[] = "vboxvfs";
++static struct mntopt mopts[] = {
++ MOPT_STDOPTS,
++ MOPT_END
++};
++
++static void usage(void) __dead2;
++
++static void
++usage(void)
++{
++ fprintf(stderr,
++ "Usage: [OPTIONS] NAME MOUNTPOINT\n"
++ "Mount the VirtualBox shared folder NAME to MOUNTPOINT.\n"
++ "\nOptions:\n"
++ " -w mount the shared folder writable \n"
++ " -r mount the shared folder read-only (the default)\n");
++ exit(1);
++}
++
++int
++main(int argc, char *argv[])
++{
++ struct iovec *iov;
++ struct stat st;
++ char *host_name;
++ char errmsg[255];
++ uid_t uid;
++ gid_t gid;
++ mode_t dir_mode, file_mode;
++ int iovlen;
++ int ronly = 0;
++ int error, ch;
++ int mntflags = 0;
++
++ iov = NULL;
++ iovlen = 0;
++ errmsg[0] = '\0';
++ uid = (uid_t)-1;
++ gid = (gid_t)-1;
++ file_mode = 0;
++ dir_mode = 0;
++
++ while ((ch = getopt(argc, argv, "rwo:h")) != -1)
++ switch(ch) {
++ default:
++ fprintf(stderr, "unknown option `%c:%#x'\n", ch, ch);
++ return (1);
++
++ case '?':
++ case 'h':
++ usage();
++ case 'r':
++ ronly = 1;
++ break;
++ case 'w':
++ ronly = 0;
++ break;
++ case 'o':
++ getmntopts(optarg, mopts, &mntflags, 0);
++ break;
++ }
++
++ if (argc - optind < 2)
++ usage();
++
++ host_name = argv[optind];
++ realpath(argv[optind+1], mount_point);
++
++ if (stat(mount_point, &st) == -1)
++ err(EX_OSERR, "could not find mount point %s", mount_point);
++
++ if (!S_ISDIR(st.st_mode)) {
++ errno = ENOTDIR;
++ err(EX_OSERR, "can't mount on %s", mount_point);
++ }
++
++ if (strlen(host_name) > MAX_HOST_NAME - 1)
++ err(EX_OSERR, "host name is too big %s", host_name);
++
++ if (ronly == 0)
++ mntflags |= MNT_ASYNC;
++ if (uid == (uid_t)-1)
++ uid = st.st_uid;
++ if (gid == (gid_t)-1)
++ gid = st.st_gid;
++ if (file_mode == 0)
++ file_mode = st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO);
++ if (dir_mode == 0) {
++ dir_mode = file_mode;
++ if (dir_mode & S_IRUSR)
++ dir_mode |= S_IXUSR;
++ if (dir_mode & S_IRGRP)
++ dir_mode |= S_IXGRP;
++ if (dir_mode & S_IROTH)
++ dir_mode |= S_IXOTH;
++ }
++
++ build_iovec(&iov, &iovlen, "fstype", vboxfs_vfsname, (size_t)-1);
++ build_iovec(&iov, &iovlen, "fspath", mount_point, (size_t)-1);
++ build_iovec(&iov, &iovlen, "from", host_name, (size_t)-1);
++ build_iovec_argf(&iov, &iovlen, "uid", "%d", uid);
++ build_iovec_argf(&iov, &iovlen, "gid", "%d", gid);
++ build_iovec_argf(&iov, &iovlen, "file_mode", "%o", file_mode);
++ build_iovec_argf(&iov, &iovlen, "dir_mode", "%o", dir_mode);
++ build_iovec(&iov, &iovlen, "errmsg", errmsg, sizeof(errmsg));
++
++ error = nmount(iov, iovlen, mntflags);
++ if (error == -1) {
++ if (errmsg[0] != '\0')
++ err(1, "%s: error: %s", mount_point, errmsg);
++ else
++ err(1, "%s: error %d", mount_point, error);
++ }
++
++ return (0);
++}
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_bcmp.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_bcmp.c
new file mode 100644
index 000000000000..fb4d7fac8c06
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_bcmp.c
@@ -0,0 +1,12 @@
+--- src/VBox/Additions/freebsd/vboxvfs/bcmp.c.orig 2021-02-21 19:09:22 UTC
++++ src/VBox/Additions/freebsd/vboxvfs/bcmp.c
+@@ -0,0 +1,9 @@
++#include <sys/types.h>
++
++int bcmp(const void *b1, const void *b2, size_t len);
++
++int
++bcmp(const void *b1, const void *b2, size_t len)
++{
++ return __builtin_memcmp((b1), (b2), (len));
++}
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h
new file mode 100644
index 000000000000..46b57e5a9d13
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h
@@ -0,0 +1,428 @@
+--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs.h.orig 2025-08-13 19:41:18 UTC
++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs.h
+@@ -1,8 +1,3 @@
+-/* $Id: vboxvfs.h $ */
+-/** @file
+- * Description.
+- */
+-
+ /*
+ * Copyright (C) 2010-2025 Oracle and/or its affiliates.
+ *
+@@ -34,72 +29,378 @@
+ #define VBOXVFS_VFSNAME "vboxvfs"
+ #define VBOXVFS_VERSION 1
+
+-#define MAX_HOST_NAME 256
+-#define MAX_NLS_NAME 32
++#define MAX_HOST_NAME 256
++#define MAX_NLS_NAME 32
++//#define MODEMASK 07777 /* mode bits plus permission bits */
++/** Helper macros */
++#define VFSTOVBOXFS(mp) ((struct vboxfs_mnt *)((mp)->mnt_data))
++#define VP_TO_VBOXFS_NODE(vp) ((struct vboxfs_node *)(vp)->v_data)
++#define VBOXTOV(np) ((struct vnode *)(np)->n_vnode)
+
+-struct vboxvfs_mount_info {
+- char name[MAX_HOST_NAME];
+- char nls_name[MAX_NLS_NAME];
+- int uid;
+- int gid;
+- int ttl;
+-};
++#define ROOTDIR_INO 1
++#define THEFILE_INO 2
++#define THEFILE_NAME "thefile"
+
++#define VBOXFS_NODE_LOCK(node) mtx_lock(&(node)->sf_interlock)
++#define VBOXFS_NODE_UNLOCK(node) mtx_unlock(&(node)->sf_interlock)
++#define VBOXFS_NODE_MTX(node) (&(node)->sf_interlock)
++#define VBOXFS_NODE_ASSERT_LOCKED(node) mtx_assert(VBOXFS_NODE_MTX(node), \
++ MA_OWNED)
++
++#ifdef INVARIANTS
++#define VBOXFS_ASSERT_LOCKED(node) do { \
++ MPASS(node != NULL); \
++ MPASS(node->sf_vnode != NULL); \
++ if (!VOP_ISLOCKED(node->sf_vnode) && \
++ !mtx_owned(VBOXFS_NODE_MTX(node))) \
++ panic("vboxfs: node is not locked: %p", node); \
++ } while (0)
++#define VBOXFS_ASSERT_ELOCKED(node) do { \
++ MPASS((node) != NULL); \
++ MPASS((node)->sf_vnode != NULL); \
++ mtx_assert(VBOXFS_NODE_MTX(node), MA_OWNED); \
++ ASSERT_VOP_LOCKED((node)->sf_vnode, "vboxfs"); \
++ } while (0)
++#else
++#define VBOXFS_ASSERT_LOCKED(node) (void)0
++#define VBOXFS_ASSERT_ELOCKED(node) (void)0
++#endif
++
++#define VBOXFS_VNODE_ALLOCATING 1
++#define VBOXFS_VNODE_WANT 2
++#define VBOXFS_VNODE_DOOMED 4
++#define VBOXFS_VNODE_WRECLAIM 8
++
++MALLOC_DECLARE(M_VBOXVFS);
++
+ #ifdef _KERNEL
++#ifndef FREEBSD_STYLE
++#include "../../../../../include/iprt/nocrt/limits.h"
++#include "../../../../../include/iprt/alloc.h"
++#include "../../../../../include/iprt/asm.h"
++#include "../../../../../include/iprt/asm-amd64-x86.h"
++#include "../../../../../include/iprt/asm-math.h"
++#include "../../../../../include/iprt/assert.h"
++#include "../../../../../include/iprt/cdefs.h"
++#include "../../../../../include/iprt/err.h"
++#include "../../../../../include/iprt/fs.h"
++#include "../../../../../include/iprt/log.h"
++#include "../../../../../include/iprt/mem.h"
++#include "../../../../../include/iprt/param.h"
++#include "../../../../../include/iprt/path.h"
++#include "../../../../../include/iprt/semaphore.h"
++#include "../../../../../include/iprt/stdarg.h"
++#include "../../../../../include/iprt/stdint.h"
++#include "../../../../../include/iprt/string.h"
++#include "../../../../../include/iprt/time.h"
++#include "../../../../../include/iprt/types.h"
++#include "../../../../../include/iprt/uni.h"
+
+-#include <VBox/VBoxGuestLibSharedFolders.h>
++#else
++
++#include "iprt/nocrt/limits.h"
++#include "iprt/alloc.h"
++#include "iprt/asm.h"
++#include "iprt/asm-amd64-x86.h"
++#include "iprt/asm-math.h"
++#include "iprt/assert.h"
++#include "iprt/cdefs.h"
++#include "iprt/err.h"
++#include "iprt/fs.h"
++#include "iprt/log.h"
++#include "iprt/mem.h"
++#include "iprt/param.h"
++#include "iprt/path.h"
++#include "iprt/semaphore.h"
++#include "iprt/stdarg.h"
++#include "iprt/stdint.h"
++#include "iprt/string.h"
++#include "iprt/time.h"
++#include "iprt/types.h"
++#include "iprt/uni.h"
++
++#include "common/VBoxGuestLib/SysHlp.h"
++
++#endif /* !FREEBSD_STYLE */
++
+ #include <sys/mount.h>
+ #include <sys/vnode.h>
++#include <sys/_timespec.h>
+
+-struct vboxvfsmount {
+- uid_t uid;
+- gid_t gid;
+- mode_t file_mode;
+- mode_t dir_mode;
+- struct mount *mp;
+- struct ucred *owner;
+- u_int flags;
+- long nextino;
+- int caseopt;
+- int didrele;
++#include <VBox/VBoxGuestLibSharedFolders.h>
++
++#if __FreeBSD_version >= 1400093
++typedef __enum_uint8(vtype) enum_vtype_t;
++#else
++typedef enum vtype enum_vtype_t;
++#endif
++
++#define VBOXVFS_DEBUG(lvl, ...) do { \
++ if (vboxvfs_debug >= (lvl)) { \
++ printf("VBOXVFS[%u]: ", lvl); \
++ printf(__VA_ARGS__); \
++ printf("\n"); \
++ } \
++} while (0)
++
++/*
++ * representation of an active mount point
++ */
++struct sfp_mount {
++ VBGLSFMAP map;
+ };
+
+-/* structs - stolen from the linux shared module code */
++/*
++ * Mount / Unmount a shared folder.
++ *
++ * sfprov_mount() takes as input the connection pointer and the name of
++ * the shared folder. On success, it returns zero and supplies an
++ * sfp_mount_t handle. On failure it returns any relevant errno value.
++ *
++ * sfprov_unmount() unmounts the mounted file system. It returns 0 on
++ * success and any relevant errno on failure.
++ */
++typedef struct sfp_mount sfp_mount_t;
++
++struct sfp_file {
++ SHFLHANDLE handle;
++ VBGLSFMAP map; /* need this again for the close operation */
++};
++
++typedef struct sfp_file sfp_file_t;
++
++/*
++ * File operations: open/close/read/write/etc.
++ *
++ * open/create can return any relevant errno, however ENOENT
++ * generally means that the host file didn't exist.
++ */
++typedef struct sffs_stat {
++ mode_t sf_mode;
++ off_t sf_size;
++ off_t sf_alloc;
++ struct timespec sf_atime;
++ struct timespec sf_mtime;
++ struct timespec sf_ctime;
++} sffs_stat_t;
++
++/*
++ * Read directory entries.
++ */
++/*
++ * a singly linked list of buffers, each containing an array of stat's+dirent's.
++ * sf_len is length of the sf_entries array, in bytes.
++ */
++typedef struct sffs_dirents {
++ struct sffs_dirents *sf_next;
++ long long sf_len;
++ struct sffs_dirent {
++ sffs_stat_t sf_stat;
++ struct dirent sf_entry; /* this is variable length */
++ off_t sf_off;
++ } sf_entries[1];
++} sffs_dirents_t;
++
++/*
++ * Shared Folders filesystem per-mount data structure.
++ */
++struct vboxfs_mnt {
++ struct mount *sf_vfsp; /* filesystem's vfs struct */
++ sfp_mount_t *sf_handle; /* guest-host communication handle */
++ uid_t sf_uid; /* owner of all shared folders */
++ gid_t sf_gid; /* group of all shared folders */
++ mode_t sf_dmode; /* mode of all directories */
++ mode_t sf_fmode; /* mode of all files */
++ mode_t sf_dmask; /* mask of all directories */
++ mode_t sf_fmask; /* mask of all files */
++ int sf_stat_ttl; /* ttl for stat caches (in ms) */
++ int sf_fsync; /* whether to honor fsync or not */
++ uint64_t sf_ino; /* per FS ino generator */
++ uma_zone_t sf_node_pool;
++ struct vboxfs_node *sf_root;
++};
++
++/*
++ * vboxfs_node is the file system dependent vnode data for vboxfs.
++ * vboxfs_node's also track all files ever accessed, both open and closed.
++ * It duplicates some of the information in vnode, since it holds
++ * information for files that may have been completely closed.
++ *
++ */
++struct vboxfs_node {
++ struct vboxfs_mnt *vboxfsmp; /* containing mounted file system */
++ char *sf_path; /* full pathname to file or dir */
++ uint64_t sf_ino; /* assigned unique ID number */
++ struct vnode *sf_vnode; /* vnode if active */
++ sfp_file_t *sf_file; /* non NULL if open */
++ struct vboxfs_node *sf_parent; /* parent sfnode of this one */
++ uint32_t sf_opencnt; /* sf_file reference counter */
++ uint16_t sf_children; /* number of children sfnodes */
++ uint8_t sf_type; /* VDIR or VREG */
++ uint8_t sf_vpstate; /* XXX: ADD COMMENT */
++ uint8_t sf_is_stale; /* this is stale and should be purged */
++ sffs_stat_t sf_stat; /* cached file attrs for this node */
++ uint64_t sf_stat_time; /* last-modified time of sf_stat */
++ sffs_dirents_t *sf_dir_list; /* list of entries for this directory */
++
++ /* interlock to protect sf_vpstate, sf_file and sf_opencnt */
++ struct mtx sf_interlock;
++};
++
++struct vboxfs_mount_info {
++ char name[MAX_HOST_NAME]; /* share name */
++ char nls_name[MAX_NLS_NAME];/* name of an I/O charset */
++ int uid; /* user ID for all entries, default 0=root */
++ int gid; /* group ID for all entries, default 0=root */
++ int ttl; /* time to live */
++ int dmode; /* mode for directories if != 0xffffffff */
++ int fmode; /* mode for regular files if != 0xffffffff */
++ int dmask; /* umask applied to directories */
++ int fmask; /* umask applied to regular files */
++};
++
+ struct sf_glob_info {
+- VBGLSFMAP map;
+-/* struct nls_table *nls;*/
+- int ttl;
+- int uid;
+- int gid;
+- struct vnode *vnode_root;
++ VBGLSFMAP map;
++/* struct nls_table *nls;*/
++ int ttl;
++ int uid;
++ int gid;
++ struct vnode *vnode_root;
+ };
+
++/** Per-file system mount instance data. */
++typedef struct vboxfs_globinfo
++{
++ VBGLSFMAP Map;
++ int Ttl;
++ int Uid;
++ int Gid;
++ struct mount *pVFS;
++ struct vboxfs_node *pVNodeRoot;
++} vboxfs_globinfo_t;
++
+ struct sf_inode_info {
+- SHFLSTRING *path;
+- int force_restat;
++ SHFLSTRING *path;
++ int force_restat;
+ };
+
+ #if 0
+ struct sf_dir_info {
+- struct list_head info_list;
++ struct list_head info_list;
+ };
+ #endif
+
+ struct sf_dir_buf {
+- size_t nb_entries;
+- size_t free_bytes;
+- size_t used_bytes;
+- void *buf;
++ size_t nb_entries;
++ size_t free_bytes;
++ size_t used_bytes;
++ void *buf;
+ #if 0
+- struct list_head head;
++ struct list_head head;
+ #endif
+ };
+
+ struct sf_reg_info {
+- SHFLHANDLE handle;
++ SHFLHANDLE handle;
+ };
+
++int vboxfs_alloc_vp(struct mount *, struct vboxfs_node *, int,
++ struct vnode **);
++void vboxfs_free_vp(struct vnode *);
++
++int vboxfs_alloc_node(struct mount *, struct vboxfs_mnt *, const char*,
++ enum_vtype_t, uid_t, gid_t, mode_t, struct vboxfs_node *,
++ struct vboxfs_node **);
++void vboxfs_free_node(struct vboxfs_mnt *, struct vboxfs_node *);
++
++/*
++ * These are the provider interfaces used by sffs to access the underlying
++ * shared file system.
++ */
++#define SFPROV_VERSION 1
++
++/*
++ * Initialization and termination.
++ * sfprov_connect() is called once before any other interfaces and returns
++ * a handle used in further calls. The argument should be SFPROV_VERSION
++ * from above. On failure it returns a NULL pointer.
++ *
++ * sfprov_disconnect() must only be called after all sf file systems have been
++ * unmounted.
++ */
++typedef struct sfp_connection sfp_connection_t;
++
++extern sfp_connection_t *sfprov_connect(int);
++extern void sfprov_disconnect(void);
++
++extern int sfprov_mount(char *, sfp_mount_t **);
++extern int sfprov_unmount(sfp_mount_t *);
++
++/*
++ * query information about a mounted file system
++ */
++typedef struct sffs_fsinfo {
++ uint64_t blksize;
++ uint64_t blksused;
++ uint64_t blksavail;
++ uint32_t maxnamesize;
++ uint32_t readonly;
++ uint32_t serial;
++} sffs_fsinfo_t;
++
++extern int sfprov_get_fsinfo(sfp_mount_t *, sffs_fsinfo_t *);
++
++extern int sfprov_create(sfp_mount_t *, char *path, mode_t mode,
++ sffs_stat_t *stat);
++extern int sfprov_open(sfp_mount_t *, char *path, sfp_file_t **fp);
++extern int sfprov_close(sfp_file_t *fp);
++extern int sfprov_read(sfp_file_t *, char * buffer, uint64_t offset,
++ uint32_t *numbytes, int buflocked);
++extern int sfprov_write(sfp_file_t *, char * buffer, uint64_t offset,
++ uint32_t *numbytes, int buflocked);
++extern int sfprov_fsync(sfp_file_t *fp);
++
++
++/*
++ * get/set information about a file (or directory) using pathname
++ */
++extern int sfprov_get_mode(sfp_mount_t *, char *, mode_t *);
++extern int sfprov_get_size(sfp_mount_t *, char *, uint64_t *);
++extern int sfprov_get_atime(sfp_mount_t *, char *, struct timespec *);
++extern int sfprov_get_mtime(sfp_mount_t *, char *, struct timespec *);
++extern int sfprov_get_ctime(sfp_mount_t *, char *, struct timespec *);
++extern int sfprov_get_attr(sfp_mount_t *, char *, sffs_stat_t *);
++extern int sfprov_set_attr(sfp_mount_t *, char *, mode_t,
++ struct timespec, struct timespec, struct timespec);
++extern int sfprov_set_size(sfp_mount_t *, char *, uint64_t);
++
++
++/*
++ * File/Directory operations
++ */
++extern int sfprov_trunc(sfp_mount_t *, char *);
++extern int sfprov_remove(sfp_mount_t *, char *path, u_int is_link);
++extern int sfprov_mkdir(sfp_mount_t *, char *path, mode_t mode,
++ sffs_stat_t *stat);
++extern int sfprov_rmdir(sfp_mount_t *, char *path);
++extern int sfprov_rename(sfp_mount_t *, char *from, char *to, u_int is_dir);
++
++
++/*
++ * Symbolic link operations
++ */
++extern int sfprov_set_show_symlinks(void);
++extern int sfprov_readlink(sfp_mount_t *, char *path, char *target,
++ size_t tgt_size);
++extern int sfprov_symlink(sfp_mount_t *, char *linkname, char *target,
++ sffs_stat_t *stat);
++
++#define SFFS_DIRENTS_SIZE 8192
++#define SFFS_DIRENTS_OFF (offsetof(sffs_dirents_t, sf_entries[0]))
++
++extern int sfprov_readdir(sfp_mount_t *mnt, char *path,
++ sffs_dirents_t **dirents);
++
+ #endif /* KERNEL */
+
+ #endif /* !GA_INCLUDED_SRC_freebsd_vboxvfs_vboxvfs_h */
+-
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c
new file mode 100644
index 000000000000..1d793f39e3bc
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c
@@ -0,0 +1,1015 @@
+--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_prov.c.orig 2025-08-28 22:09:24 UTC
++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_prov.c
+@@ -0,0 +1,1012 @@
++/*
++ * Copyright (C) 2008-2016 Oracle Corporation
++ *
++ * This file is part of VirtualBox Open Source Edition (OSE), as
++ * available from http://www.virtualbox.org. This file is free software;
++ * you can redistribute it and/or modify it under the terms of the GNU
++ * General Public License (GPL) as published by the Free Software
++ * Foundation, in version 2 as it comes in the "COPYING" file of the
++ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
++ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
++ *
++ * The contents of this file may alternatively be used under the terms
++ * of the Common Development and Distribution License Version 1.0
++ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
++ * VirtualBox OSE distribution, in which case the provisions of the
++ * CDDL are applicable instead of those of the GPL.
++ *
++ * You may elect to license modified versions of this file under the
++ * terms and conditions of either the GPL or the CDDL or both.
++ */
++
++/*
++ * Provider interfaces for shared folder file system.
++ */
++
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <sys/param.h>
++#include <sys/systm.h>
++#include <sys/kernel.h>
++#include <sys/malloc.h>
++#include <sys/mount.h>
++#include <sys/vnode.h>
++#include <sys/dirent.h>
++#include <sys/proc.h>
++#include <vm/vm.h>
++#include <vm/pmap.h>
++#include <vm/vm_kern.h>
++#include <vm/vm_map.h>
++#include <vm/vm_object.h>
++#include <vm/vm_extern.h>
++#include <vm/uma.h>
++#include "vboxvfs.h"
++
++#define DIRENT_RECLEN(namelen) \
++ ((offsetof(struct dirent, d_name[0]) + 1 + (namelen) + 7) & ~ 7)
++#define DIRENT_NAMELEN(reclen) \
++ ((reclen) - (offsetof(struct dirent, d_name[0])))
++
++static VBGLSFCLIENT vbox_client;
++
++extern u_int vboxvfs_debug;
++
++static int
++sfprov_vbox2errno(int rc)
++{
++ if (rc == VERR_ACCESS_DENIED)
++ return (EACCES);
++ if (rc == VERR_INVALID_NAME)
++ return (ENOENT);
++ return (RTErrConvertToErrno(rc));
++}
++
++/*
++ * utility to create strings
++ */
++static SHFLSTRING *
++sfprov_string(char *path, int *sz)
++{
++ SHFLSTRING *str;
++ int len = strlen(path);
++
++ *sz = len + 1 + sizeof (*str) - sizeof (str->String);
++ str = malloc(*sz, M_VBOXVFS, M_WAITOK | M_ZERO);
++ str->u16Size = len + 1;
++ str->u16Length = len;
++ strcpy(str->String.utf8, path);
++ return (str);
++}
++
++sfp_connection_t *
++sfprov_connect(int version)
++{
++ /* only one version for now, so must match */
++ int error = -1;
++
++ if (version != SFPROV_VERSION) {
++ printf("%s: version mismatch (%d, expected %d)\n", __func__,
++ version, SFPROV_VERSION);
++ return (NULL);
++ }
++
++ if (RT_FAILURE(VbglR0SfInit()))
++ return (NULL);
++
++ if (RT_FAILURE(VbglR0SfConnect(&vbox_client))) {
++ VbglR0SfTerm();
++ return (NULL);
++ }
++
++ if (RT_FAILURE(VbglR0SfSetUtf8(&vbox_client))) {
++ VbglR0SfDisconnect(&vbox_client);
++ VbglR0SfTerm();
++ return (NULL);
++ }
++ return ((sfp_connection_t *)&vbox_client);
++}
++
++void
++sfprov_disconnect()
++{
++ VbglR0SfDisconnect(&vbox_client);
++ VbglR0SfTerm();
++}
++
++int
++sfprov_mount(char *path, sfp_mount_t **mnt)
++{
++ sfp_mount_t *m;
++ SHFLSTRING *str;
++ int size;
++ int rc;
++
++ VBOXVFS_DEBUG(1, "%s: Enter", __FUNCTION__);
++ VBOXVFS_DEBUG(1, "%s: path: [%s]", __FUNCTION__, path);
++
++ m = malloc(sizeof (*m), M_VBOXVFS, M_WAITOK | M_ZERO);
++ str = sfprov_string(path, &size);
++
++ int error;
++ rc = VbglR0SfMapFolder(&vbox_client, str, &m->map);
++ if (RT_FAILURE(rc)) {
++ free(m, M_VBOXVFS);
++ *mnt = NULL;
++ error = sfprov_vbox2errno(rc);
++ } else {
++ *mnt = m;
++ error = 0;
++ }
++ free(str, M_VBOXVFS);
++ printf("%s(%s): error=%d rc=%d\n", __func__, path, error, rc);
++ return (error);
++}
++
++int
++sfprov_unmount(sfp_mount_t *mnt)
++{
++ int rc;
++
++ rc = VbglR0SfUnmapFolder(&vbox_client, &mnt->map);
++ if (RT_FAILURE(rc)) {
++ printf("sfprov_unmount: VbglR0SfUnmapFolder() failed rc=%d\n", rc);
++ rc = sfprov_vbox2errno(rc);
++ } else {
++ rc = 0;
++ }
++
++ free(mnt, M_VBOXVFS);
++ return (rc);
++}
++
++/*
++ * query information about a mounted file system
++ */
++int
++sfprov_get_fsinfo(sfp_mount_t *mnt, sffs_fsinfo_t *fsinfo)
++{
++ int rc;
++ SHFLVOLINFO info;
++ uint32_t bytes = sizeof(SHFLVOLINFO);
++ size_t bytesused;
++
++ rc = VbglR0SfFsInfo(&vbox_client, &mnt->map, 0,
++ (SHFL_INFO_GET | SHFL_INFO_VOLUME), &bytes, (SHFLDIRINFO *)&info);
++ if (RT_FAILURE(rc))
++ return (sfprov_vbox2errno(rc));
++
++ fsinfo->blksize = info.ulBytesPerAllocationUnit;
++ bytesused =
++ info.ullTotalAllocationBytes - info.ullAvailableAllocationBytes;
++ fsinfo->blksused = bytesused / info.ulBytesPerAllocationUnit;
++ fsinfo->blksavail = info.ullAvailableAllocationBytes /
++ info.ulBytesPerAllocationUnit;
++ fsinfo->maxnamesize = info.fsProperties.cbMaxComponent;
++ fsinfo->readonly = info.fsProperties.fReadOnly;
++ fsinfo->serial = info.ulSerial;
++ return (0);
++}
++
++/*
++ * file/directory information conversions.
++ */
++static void
++sfprov_fmode_from_mode(RTFMODE *fMode, mode_t mode)
++{
++ RTFMODE m = 0;
++
++#define mode_set(r) ((mode & (S_##r)) ? RTFS_UNIX_##r : 0)
++ m = mode_set (ISUID);
++ m |= mode_set (ISGID);
++ m |= (mode & S_ISVTX) ? RTFS_UNIX_ISTXT : 0;
++ m |= mode_set (IRUSR);
++ m |= mode_set (IWUSR);
++ m |= mode_set (IXUSR);
++ m |= mode_set (IRGRP);
++ m |= mode_set (IWGRP);
++ m |= mode_set (IXGRP);
++ m |= mode_set (IROTH);
++ m |= mode_set (IWOTH);
++ m |= mode_set (IXOTH);
++
++ if (S_ISDIR(mode))
++ m |= RTFS_TYPE_DIRECTORY;
++ else if (S_ISREG(mode))
++ m |= RTFS_TYPE_FILE;
++ else if (S_ISFIFO(mode))
++ m |= RTFS_TYPE_FIFO;
++ else if (S_ISCHR(mode))
++ m |= RTFS_TYPE_DEV_CHAR;
++ else if (S_ISBLK(mode))
++ m |= RTFS_TYPE_DEV_BLOCK;
++ else if (S_ISLNK(mode))
++ m |= RTFS_TYPE_SYMLINK;
++ else if (S_ISSOCK(mode))
++ m |= RTFS_TYPE_SOCKET;
++ else
++ m |= RTFS_TYPE_FILE;
++
++ *fMode = m;
++}
++
++static void
++sfprov_mode_from_fmode(mode_t *mode, RTFMODE fMode)
++{
++ mode_t m = 0;
++
++ if (RTFS_IS_DIRECTORY(fMode))
++ m |= S_IFDIR;
++ else if (RTFS_IS_FILE(fMode))
++ m |= S_IFREG;
++ else if (RTFS_IS_FIFO(fMode))
++ m |= S_IFIFO;
++ else if (RTFS_IS_DEV_CHAR(fMode))
++ m |= S_IFCHR;
++ else if (RTFS_IS_DEV_BLOCK(fMode))
++ m |= S_IFBLK;
++ else if (RTFS_IS_SYMLINK(fMode))
++ m |= S_IFLNK;
++ else if (RTFS_IS_SOCKET(fMode))
++ m |= S_IFSOCK;
++
++ if (fMode & RTFS_UNIX_IRUSR)
++ m |= S_IRUSR;
++ if (fMode & RTFS_UNIX_IWUSR)
++ m |= S_IWUSR;
++ if (fMode & RTFS_UNIX_IXUSR)
++ m |= S_IXUSR;
++ if (fMode & RTFS_UNIX_IRGRP)
++ m |= S_IRGRP;
++ if (fMode & RTFS_UNIX_IWGRP)
++ m |= S_IWGRP;
++ if (fMode & RTFS_UNIX_IXGRP)
++ m |= S_IXGRP;
++ if (fMode & RTFS_UNIX_IROTH)
++ m |= S_IROTH;
++ if (fMode & RTFS_UNIX_IWOTH)
++ m |= S_IWOTH;
++ if (fMode & RTFS_UNIX_IXOTH)
++ m |= S_IXOTH;
++ if (fMode & RTFS_UNIX_ISUID)
++ m |= S_ISUID;
++ if (fMode & RTFS_UNIX_ISGID)
++ m |= S_ISGID;
++ if (fMode & RTFS_UNIX_ISTXT)
++ m |= S_ISVTX;
++ *mode = m;
++}
++
++static void
++sfprov_ftime_from_timespec(struct timespec *time, RTTIMESPEC *ts)
++{
++ uint64_t nanosec = RTTimeSpecGetNano(ts);
++ time->tv_sec = nanosec / UINT64_C(1000000000);
++ time->tv_nsec = nanosec % UINT64_C(1000000000);
++}
++
++static void
++sfprov_stat_from_info(sffs_stat_t *stat, SHFLFSOBJINFO *info)
++{
++ sfprov_mode_from_fmode(&stat->sf_mode, info->Attr.fMode);
++ stat->sf_size = info->cbObject;
++ stat->sf_alloc = info->cbAllocated;
++ sfprov_ftime_from_timespec(&stat->sf_atime, &info->AccessTime);
++ sfprov_ftime_from_timespec(&stat->sf_mtime, &info->ModificationTime);
++ sfprov_ftime_from_timespec(&stat->sf_ctime, &info->ChangeTime);
++}
++
++/*
++ * File operations: open/close/read/write/etc.
++ *
++ * open/create can return any relevant errno, however ENOENT
++ * generally means that the host file didn't exist.
++ */
++int
++sfprov_create(
++ sfp_mount_t *mnt,
++ char *path,
++ mode_t mode,
++ sffs_stat_t *stat)
++{
++ int rc;
++ SHFLCREATEPARMS parms;
++ SHFLSTRING *str;
++ int size;
++ sfp_file_t *newfp;
++
++ str = sfprov_string(path, &size);
++ parms.Handle = SHFL_HANDLE_NIL;
++ parms.Info.cbObject = 0;
++ sfprov_fmode_from_mode(&parms.Info.Attr.fMode, mode);
++ parms.CreateFlags = SHFL_CF_ACT_CREATE_IF_NEW |
++ SHFL_CF_ACT_REPLACE_IF_EXISTS | SHFL_CF_ACCESS_READWRITE;
++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms);
++ free(str, M_VBOXVFS);
++
++ if (RT_FAILURE(rc))
++ return (sfprov_vbox2errno(rc));
++ if (parms.Handle == SHFL_HANDLE_NIL) {
++ if (parms.Result == SHFL_FILE_EXISTS)
++ return (EEXIST);
++ return (ENOENT);
++ }
++ (void)VbglR0SfClose(&vbox_client, &mnt->map, parms.Handle);
++ sfprov_stat_from_info(stat, &parms.Info);
++ return (0);
++}
++
++int
++sfprov_open(sfp_mount_t *mnt, char *path, sfp_file_t **fp)
++{
++ int rc;
++ SHFLCREATEPARMS parms;
++ SHFLSTRING *str;
++ int size;
++ sfp_file_t *newfp;
++
++ /*
++ * First we attempt to open it read/write. If that fails we
++ * try read only.
++ */
++ bzero(&parms, sizeof(parms));
++ str = sfprov_string(path, &size);
++ parms.Handle = SHFL_HANDLE_NIL;
++ parms.Info.cbObject = 0;
++ parms.CreateFlags = SHFL_CF_ACT_FAIL_IF_NEW | SHFL_CF_ACCESS_READWRITE;
++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms);
++ if (RT_FAILURE(rc) && rc != VERR_ACCESS_DENIED) {
++ free(str, M_VBOXVFS);
++ return (sfprov_vbox2errno(rc));
++ }
++ if (parms.Handle == SHFL_HANDLE_NIL) {
++ if (parms.Result == SHFL_PATH_NOT_FOUND ||
++ parms.Result == SHFL_FILE_NOT_FOUND) {
++ free(str, M_VBOXVFS);
++ return (ENOENT);
++ }
++ parms.CreateFlags =
++ SHFL_CF_ACT_FAIL_IF_NEW | SHFL_CF_ACCESS_READ;
++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms);
++ if (RT_FAILURE(rc)) {
++ free(str, M_VBOXVFS);
++ return (sfprov_vbox2errno(rc));
++ }
++ if (parms.Handle == SHFL_HANDLE_NIL) {
++ free(str, M_VBOXVFS);
++ return (ENOENT);
++ }
++ }
++ else
++ free(str, M_VBOXVFS);
++ newfp = malloc(sizeof(sfp_file_t), M_VBOXVFS, M_WAITOK | M_ZERO);
++ newfp->handle = parms.Handle;
++ newfp->map = mnt->map;
++ *fp = newfp;
++ return (0);
++}
++
++int
++sfprov_trunc(sfp_mount_t *mnt, char *path)
++{
++ int rc;
++ SHFLCREATEPARMS parms;
++ SHFLSTRING *str;
++ int size;
++
++ /*
++ * open it read/write.
++ */
++ str = sfprov_string(path, &size);
++ parms.Handle = 0;
++ parms.Info.cbObject = 0;
++ parms.CreateFlags = SHFL_CF_ACT_FAIL_IF_NEW | SHFL_CF_ACCESS_READWRITE |
++ SHFL_CF_ACT_OVERWRITE_IF_EXISTS;
++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms);
++ free(str, M_VBOXVFS);
++
++ if (RT_FAILURE(rc)) {
++ return (sfprov_vbox2errno(rc));
++ }
++ (void)VbglR0SfClose(&vbox_client, &mnt->map, parms.Handle);
++ return (0);
++}
++
++int
++sfprov_close(sfp_file_t *fp)
++{
++ int rc;
++
++ rc = VbglR0SfClose(&vbox_client, &fp->map, fp->handle);
++ free(fp, M_VBOXVFS);
++ return (0);
++}
++
++int
++sfprov_read(sfp_file_t *fp, char *buffer, uint64_t offset, uint32_t *numbytes,
++ int buflocked)
++{
++ int rc;
++
++ rc = VbglR0SfRead(&vbox_client, &fp->map, fp->handle, offset,
++ numbytes, (uint8_t *)buffer, buflocked);
++ if (RT_FAILURE(rc))
++ return (sfprov_vbox2errno(rc));
++ return (0);
++}
++
++int
++sfprov_write(sfp_file_t *fp, char *buffer, uint64_t offset, uint32_t *numbytes,
++ int buflocked)
++{
++ int rc;
++
++ rc = VbglR0SfWrite(&vbox_client, &fp->map, fp->handle, offset,
++ numbytes, (uint8_t *)buffer, buflocked);
++ if (RT_FAILURE(rc))
++ return (sfprov_vbox2errno(rc));
++ return (0);
++}
++
++int
++sfprov_fsync(sfp_file_t *fp)
++{
++ int rc;
++
++ rc = VbglR0SfFlush(&vbox_client, &fp->map, fp->handle);
++ if (RT_FAILURE(rc))
++ return (sfprov_vbox2errno(rc));
++ return (0);
++}
++
++
++static int
++sfprov_getinfo(sfp_mount_t *mnt, char *path, PSHFLFSOBJINFO info)
++{
++ int rc;
++ SHFLCREATEPARMS parms;
++ SHFLSTRING *str;
++ int size;
++
++ str = sfprov_string(path, &size);
++ parms.Handle = 0;
++ parms.Info.cbObject = 0;
++ parms.CreateFlags = SHFL_CF_LOOKUP | SHFL_CF_ACT_FAIL_IF_NEW;
++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms);
++ free(str, M_VBOXVFS);
++
++ if (RT_FAILURE(rc))
++ return (sfprov_vbox2errno(rc));
++ if (parms.Result != SHFL_FILE_EXISTS)
++ return (ENOENT);
++ *info = parms.Info;
++ return (0);
++}
++
++/*
++ * get information about a file (or directory)
++ */
++int
++sfprov_get_mode(sfp_mount_t *mnt, char *path, mode_t *mode)
++{
++ int rc;
++ SHFLFSOBJINFO info;
++
++ rc = sfprov_getinfo(mnt, path, &info);
++ if (rc)
++ return (rc);
++ sfprov_mode_from_fmode(mode, info.Attr.fMode);
++ return (0);
++}
++
++int
++sfprov_get_size(sfp_mount_t *mnt, char *path, uint64_t *size)
++{
++ int rc;
++ SHFLFSOBJINFO info;
++
++ rc = sfprov_getinfo(mnt, path, &info);
++ if (rc)
++ return (rc);
++ *size = info.cbObject;
++ return (0);
++}
++
++
++int
++sfprov_get_atime(sfp_mount_t *mnt, char *path, struct timespec *time)
++{
++ int rc;
++ SHFLFSOBJINFO info;
++
++ rc = sfprov_getinfo(mnt, path, &info);
++ if (rc)
++ return (rc);
++ sfprov_ftime_from_timespec(time, &info.AccessTime);
++ return (0);
++}
++
++int
++sfprov_get_mtime(sfp_mount_t *mnt, char *path, struct timespec *time)
++{
++ int rc;
++ SHFLFSOBJINFO info;
++
++ rc = sfprov_getinfo(mnt, path, &info);
++ if (rc)
++ return (rc);
++ sfprov_ftime_from_timespec(time, &info.ModificationTime);
++ return (0);
++}
++
++int
++sfprov_get_ctime(sfp_mount_t *mnt, char *path, struct timespec *time)
++{
++ int rc;
++ SHFLFSOBJINFO info;
++
++ rc = sfprov_getinfo(mnt, path, &info);
++ if (rc)
++ return (rc);
++ sfprov_ftime_from_timespec(time, &info.ChangeTime);
++ return (0);
++}
++
++int
++sfprov_get_attr(sfp_mount_t *mnt, char *path, sffs_stat_t *attr)
++{
++ int rc;
++ SHFLFSOBJINFO info;
++
++ rc = sfprov_getinfo(mnt, path, &info);
++ if (rc)
++ return (rc);
++ sfprov_stat_from_info(attr, &info);
++ return (0);
++}
++
++static void
++sfprov_timespec_from_ftime(RTTIMESPEC *ts, struct timespec time)
++{
++ uint64_t nanosec = UINT64_C(1000000000) * time.tv_sec + time.tv_nsec;
++ RTTimeSpecSetNano(ts, nanosec);
++}
++
++int
++sfprov_set_attr(
++ sfp_mount_t *mnt,
++ char *path,
++ mode_t mode,
++ struct timespec atime,
++ struct timespec mtime,
++ struct timespec ctime)
++{
++ int rc, err;
++ SHFLCREATEPARMS parms;
++ SHFLSTRING *str;
++ SHFLFSOBJINFO info;
++ uint32_t bytes;
++ int str_size;
++
++ str = sfprov_string(path, &str_size);
++ parms.Handle = 0;
++ parms.Info.cbObject = 0;
++ parms.CreateFlags = SHFL_CF_ACT_OPEN_IF_EXISTS
++ | SHFL_CF_ACT_FAIL_IF_NEW
++ | SHFL_CF_ACCESS_ATTR_WRITE;
++
++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms);
++
++ if (RT_FAILURE(rc)) {
++ printf("sfprov_set_attr: VbglR0SfCreate(%s) failed rc=%d\n",
++ path, rc);
++ err = sfprov_vbox2errno(rc);
++ goto fail2;
++ }
++ if (parms.Result != SHFL_FILE_EXISTS) {
++ err = ENOENT;
++ goto fail1;
++ }
++
++ RT_ZERO(info);
++#if 0
++ if (mask & AT_MODE)
++ sfprov_fmode_from_mode(&info.Attr.fMode, mode);
++ if (mask & AT_ATIME)
++ sfprov_timespec_from_ftime(&info.AccessTime, atime);
++ if (mask & AT_MTIME)
++ sfprov_timespec_from_ftime(&info.ModificationTime, mtime);
++ if (mask & AT_CTIME)
++ sfprov_timespec_from_ftime(&info.ChangeTime, ctime);
++#endif
++ bytes = sizeof(info);
++ rc = VbglR0SfFsInfo(&vbox_client, &mnt->map, parms.Handle,
++ (SHFL_INFO_SET | SHFL_INFO_FILE), &bytes, (SHFLDIRINFO *)&info);
++ if (RT_FAILURE(rc)) {
++ if (rc != VERR_ACCESS_DENIED && rc != VERR_WRITE_PROTECT)
++ {
++ printf("sfprov_set_attr: VbglR0SfFsInfo(%s, FILE) failed rc=%d\n",
++ path, rc);
++ }
++ err = sfprov_vbox2errno(rc);
++ goto fail1;
++ }
++
++ err = 0;
++
++fail1:
++ rc = VbglR0SfClose(&vbox_client, &mnt->map, parms.Handle);
++ if (RT_FAILURE(rc)) {
++ printf("sfprov_set_attr: VbglR0SfClose(%s) failed rc=%d\n",
++ path, rc);
++ }
++fail2:
++ free(str, M_VBOXVFS);
++ return err;
++}
++
++int
++sfprov_set_size(sfp_mount_t *mnt, char *path, uint64_t size)
++{
++ int rc, err;
++ SHFLCREATEPARMS parms;
++ SHFLSTRING *str;
++ SHFLFSOBJINFO info;
++ uint32_t bytes;
++ int str_size;
++
++ str = sfprov_string(path, &str_size);
++ parms.Handle = 0;
++ parms.Info.cbObject = 0;
++ parms.CreateFlags = SHFL_CF_ACT_OPEN_IF_EXISTS
++ | SHFL_CF_ACT_FAIL_IF_NEW
++ | SHFL_CF_ACCESS_WRITE;
++
++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms);
++
++ if (RT_FAILURE(rc)) {
++ printf("sfprov_set_size: VbglR0SfCreate(%s) failed rc=%d\n",
++ path, rc);
++ err = sfprov_vbox2errno(rc);
++ goto fail2;
++ }
++ if (parms.Result != SHFL_FILE_EXISTS) {
++ err = ENOENT;
++ goto fail1;
++ }
++
++ RT_ZERO(info);
++ info.cbObject = size;
++ bytes = sizeof(info);
++ rc = VbglR0SfFsInfo(&vbox_client, &mnt->map, parms.Handle,
++ (SHFL_INFO_SET | SHFL_INFO_SIZE), &bytes, (SHFLDIRINFO *)&info);
++ if (RT_FAILURE(rc)) {
++ printf("sfprov_set_size: VbglR0SfFsInfo(%s, SIZE) failed rc=%d\n",
++ path, rc);
++ err = sfprov_vbox2errno(rc);
++ goto fail1;
++ }
++
++ err = 0;
++
++fail1:
++ rc = VbglR0SfClose(&vbox_client, &mnt->map, parms.Handle);
++ if (RT_FAILURE(rc)) {
++ printf("sfprov_set_size: VbglR0SfClose(%s) failed rc=%d\n",
++ path, rc);
++ }
++fail2:
++ free(str, M_VBOXVFS);
++ return err;
++}
++
++/*
++ * Directory operations
++ */
++int
++sfprov_mkdir(
++ sfp_mount_t *mnt,
++ char *path,
++ mode_t mode,
++ sffs_stat_t *stat)
++{
++ int rc;
++ SHFLCREATEPARMS parms;
++ SHFLSTRING *str;
++ int size;
++
++ str = sfprov_string(path, &size);
++ parms.Handle = SHFL_HANDLE_NIL;
++ parms.Info.cbObject = 0;
++ sfprov_fmode_from_mode(&parms.Info.Attr.fMode, mode);
++ parms.CreateFlags = SHFL_CF_DIRECTORY | SHFL_CF_ACT_CREATE_IF_NEW |
++ SHFL_CF_ACT_FAIL_IF_EXISTS | SHFL_CF_ACCESS_READ;
++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms);
++ free(str, M_VBOXVFS);
++
++ if (RT_FAILURE(rc))
++ return (sfprov_vbox2errno(rc));
++ if (parms.Handle == SHFL_HANDLE_NIL) {
++ if (parms.Result == SHFL_FILE_EXISTS)
++ return (EEXIST);
++ return (ENOENT);
++ }
++ (void)VbglR0SfClose(&vbox_client, &mnt->map, parms.Handle);
++ sfprov_stat_from_info(stat, &parms.Info);
++ return (0);
++}
++
++int
++sfprov_set_show_symlinks(void)
++{
++ int rc;
++
++ rc = VbglR0SfSetSymlinks(&vbox_client);
++ if (RT_FAILURE(rc))
++ return (sfprov_vbox2errno(rc));
++
++ return (0);
++}
++
++int
++sfprov_remove(sfp_mount_t *mnt, char *path, u_int is_link)
++{
++ int rc;
++ SHFLSTRING *str;
++ int size;
++
++ str = sfprov_string(path, &size);
++ rc = VbglR0SfRemove(&vbox_client, &mnt->map, str,
++ SHFL_REMOVE_FILE | (is_link ? SHFL_REMOVE_SYMLINK : 0));
++ free(str, M_VBOXVFS);
++ if (RT_FAILURE(rc))
++ return (sfprov_vbox2errno(rc));
++ return (0);
++}
++
++int
++sfprov_readlink(
++ sfp_mount_t *mnt,
++ char *path,
++ char *target,
++ size_t tgt_size)
++{
++ int rc;
++ SHFLSTRING *str;
++ int size;
++
++ str = sfprov_string(path, &size);
++
++ rc = VbglR0SfReadLink(&vbox_client, &mnt->map, str, (uint32_t) tgt_size,
++ target);
++ if (RT_FAILURE(rc))
++ rc = sfprov_vbox2errno(rc);
++
++ free(str, M_VBOXVFS);
++ return (rc);
++}
++
++int
++sfprov_symlink(
++ sfp_mount_t *mnt,
++ char *linkname,
++ char *target,
++ sffs_stat_t *stat)
++{
++ int rc;
++ SHFLSTRING *lnk, *tgt;
++ int lnk_size, tgt_size;
++ SHFLFSOBJINFO info;
++
++ lnk = sfprov_string(linkname, &lnk_size);
++ tgt = sfprov_string(target, &tgt_size);
++
++ rc = VbglR0SfSymlink(&vbox_client, &mnt->map, lnk, tgt, &info);
++ if (RT_FAILURE(rc)) {
++ rc = sfprov_vbox2errno(rc);
++ goto done;
++ }
++
++ if (stat != NULL)
++ sfprov_stat_from_info(stat, &info);
++
++done:
++ free(lnk, M_VBOXVFS);
++ free(tgt, M_VBOXVFS);
++
++ return (rc);
++}
++
++int
++sfprov_rmdir(sfp_mount_t *mnt, char *path)
++{
++ int rc;
++ SHFLSTRING *str;
++ int size;
++
++ str = sfprov_string(path, &size);
++ rc = VbglR0SfRemove(&vbox_client, &mnt->map, str, SHFL_REMOVE_DIR);
++ free(str, M_VBOXVFS);
++ if (RT_FAILURE(rc))
++ return (sfprov_vbox2errno(rc));
++ return (0);
++}
++
++int
++sfprov_rename(sfp_mount_t *mnt, char *from, char *to, u_int is_dir)
++{
++ int rc;
++ SHFLSTRING *old, *new;
++ int old_size, new_size;
++
++ old = sfprov_string(from, &old_size);
++ new = sfprov_string(to, &new_size);
++ rc = VbglR0SfRename(&vbox_client, &mnt->map, old, new,
++ (is_dir ? SHFL_RENAME_DIR : SHFL_RENAME_FILE) |
++ SHFL_RENAME_REPLACE_IF_EXISTS);
++ free(old, M_VBOXVFS);
++ free(new, M_VBOXVFS);
++ if (RT_FAILURE(rc))
++ return (sfprov_vbox2errno(rc));
++ return (0);
++}
++
++/*
++ * Read all filenames in a directory.
++ *
++ * - success - all entries read and returned
++ * - ENOENT - Couldn't open the directory for reading
++ * - EINVAL - Internal error of some kind
++ *
++ * On successful return, *dirents points to a list of sffs_dirents_t;
++ * for each dirent, all fields except the d_ino will be set appropriately.
++ * The caller is responsible for freeing the dirents buffer.
++ */
++int
++sfprov_readdir(
++ sfp_mount_t *mnt,
++ char *path,
++ sffs_dirents_t **dirents)
++{
++ int error;
++ char *cp;
++ int len;
++ SHFLSTRING *mask_str = NULL; /* must be path with "/" appended */
++ int mask_size;
++ sfp_file_t *fp;
++ uint32_t infobuff_alloc = 16384;
++ SHFLDIRINFO *infobuff = NULL, *info;
++ uint32_t numbytes;
++ uint32_t nents;
++ uint32_t size;
++ off_t offset;
++ sffs_dirents_t *cur_buf;
++ struct sffs_dirent *dirent;
++ unsigned short reclen;
++ unsigned short entlen;
++
++ *dirents = NULL;
++
++ error = sfprov_open(mnt, path, &fp);
++ if (error != 0)
++ return (ENOENT);
++
++ /*
++ * Allocate the first dirents buffers.
++ */
++ *dirents = malloc(SFFS_DIRENTS_SIZE, M_VBOXVFS, M_WAITOK | M_ZERO);
++ if (*dirents == NULL) {
++ error = (ENOSPC);
++ goto done;
++ }
++ cur_buf = *dirents;
++ cur_buf->sf_next = NULL;
++ cur_buf->sf_len = 0;
++
++ /*
++ * Create mask that VBox expects. This needs to be the directory path,
++ * plus a "*" wildcard to get all files.
++ */
++ len = strlen(path) + 3;
++ cp = malloc(len, M_VBOXVFS, M_WAITOK | M_ZERO);
++ if (cp == NULL) {
++ error = (ENOSPC);
++ goto done;
++ }
++ strcpy(cp, path);
++ strcat(cp, "/*");
++ mask_str = sfprov_string(cp, &mask_size);
++ free(cp, M_VBOXVFS);
++
++ /*
++ * Now loop using VbglR0SfDirInfo
++ */
++ infobuff = malloc(infobuff_alloc, M_VBOXVFS, M_WAITOK | M_ZERO);
++ if (infobuff == NULL) {
++ error = (ENOSPC);
++ goto done;
++ }
++
++ offset = 0;
++ for (;;) {
++ numbytes = infobuff_alloc;
++ error = VbglR0SfDirInfo(&vbox_client, &fp->map, fp->handle,
++ mask_str, 0, 0, &numbytes, infobuff, &nents);
++
++ switch (error) {
++ case VINF_SUCCESS:
++ /* fallthrough */
++ case VERR_NO_MORE_FILES:
++ break;
++ case VERR_NO_TRANSLATION:
++ /* XXX ??? */
++ break;
++ default:
++ error = sfprov_vbox2errno(error);
++ goto done;
++ }
++
++ /*
++ * Create the dirent_t's and save the stats for each name
++ */
++ for (info = infobuff; (char *) info < (char *) infobuff + numbytes; nents--) {
++ size_t buflen;
++
++ /* expand buffers if we need more space */
++ reclen = DIRENT_RECLEN(strlen(info->name.String.utf8));
++ entlen = sizeof(struct sffs_dirent) + reclen;
++ buflen = SFFS_DIRENTS_OFF + cur_buf->sf_len + entlen;
++ if (buflen > SFFS_DIRENTS_SIZE) {
++ cur_buf->sf_next = malloc(SFFS_DIRENTS_SIZE,
++ M_VBOXVFS, M_WAITOK | M_ZERO);
++ if (cur_buf->sf_next == NULL) {
++ error = ENOSPC;
++ goto done;
++ }
++ cur_buf = cur_buf->sf_next;
++ cur_buf->sf_next = NULL;
++ cur_buf->sf_len = 0;
++ }
++
++ /* create the dirent with the name, offset, and len */
++ dirent = (struct sffs_dirent *)
++ (((char *) &cur_buf->sf_entries[0]) + cur_buf->sf_len);
++ strncpy(&dirent->sf_entry.d_name[0],
++ info->name.String.utf8, DIRENT_NAMELEN(reclen));
++ dirent->sf_entry.d_reclen = reclen;
++ dirent->sf_entry.d_namlen = strlen(info->name.String.utf8);
++ dirent->sf_entry.d_name[dirent->sf_entry.d_namlen] = 0;
++ offset += entlen;
++ dirent->sf_off = offset;
++
++ /* save the stats */
++ sfprov_stat_from_info(&dirent->sf_stat, &info->Info);
++
++ /* next info */
++ cur_buf->sf_len += entlen;
++ size = offsetof (SHFLDIRINFO, name.String) + info->name.u16Size;
++ info = (SHFLDIRINFO *) ((uintptr_t) info + size);
++ }
++ KASSERT(nents == 0, ("nents != 0"));
++ KASSERT((char *) info == (char *) infobuff + numbytes, "(char *) info != (char *) infobuff + numbytes");
++
++ if (error == VERR_NO_MORE_FILES)
++ break;
++ }
++ error = 0;
++
++done:
++ if (error != 0) {
++ while (*dirents) {
++ cur_buf = (*dirents)->sf_next;
++ free(*dirents, M_VBOXVFS);
++ *dirents = cur_buf;
++ }
++ }
++ if (infobuff != NULL)
++ free(infobuff, M_VBOXVFS);
++ if (mask_str != NULL)
++ free(mask_str, M_VBOXVFS);
++ sfprov_close(fp);
++
++ return (error);
++}
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c
new file mode 100644
index 000000000000..cd272f0205e8
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c
@@ -0,0 +1,644 @@
+--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c.orig 2025-08-13 19:41:18 UTC
++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c
+@@ -1,8 +1,3 @@
+-/* $Id: vboxvfs_vfsops.c $ */
+-/** @file
+- * Description.
+- */
+-
+ /*
+ * Copyright (C) 2008-2025 Oracle and/or its affiliates.
+ *
+@@ -24,245 +19,478 @@
+ *
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+-
+-#include "vboxvfs.h"
++#include <sys/types.h>
+ #include <sys/param.h>
+ #include <sys/systm.h>
+ #include <sys/proc.h>
+ #include <sys/bio.h>
+ #include <sys/buf.h>
++#include <sys/conf.h>
++#include <sys/dirent.h>
+ #include <sys/kernel.h>
+ #include <sys/sysctl.h>
+ #include <sys/vnode.h>
+ #include <sys/mount.h>
++#include <sys/namei.h>
++#include <sys/fcntl.h>
++#include <sys/priv.h>
+ #include <sys/stat.h>
+ #include <sys/malloc.h>
+ #include <sys/module.h>
++#include <sys/sbuf.h>
+
+-#include <iprt/mem.h>
++#include <geom/geom.h>
++#include <geom/geom_vfs.h>
++#include <vm/uma.h>
++#include "vboxvfs.h"
+
+ #define VFSMP2SFGLOBINFO(mp) ((struct sf_glob_info *)mp->mnt_data)
+
+-static int vboxvfs_version = VBOXVFS_VERSION;
++#ifdef MALLOC_DECLARE
++MALLOC_DEFINE(M_VBOXVFS, "vboxvfs", "VBOX VFS");
++#endif
+
+-SYSCTL_NODE(_vfs, OID_AUTO, vboxvfs, CTLFLAG_RW, 0, "VirtualBox shared filesystem");
+-SYSCTL_INT(_vfs_vboxvfs, OID_AUTO, version, CTLFLAG_RD, &vboxvfs_version, 0, "");
++static sfp_connection_t *sfprov = NULL;
+
+-/* global connection to the host service. */
+-static VBGLSFCLIENT g_vboxSFClient;
++static int vboxfs_version = VBOXVFS_VERSION;
++u_int vboxvfs_debug = 1;
+
+-static vfs_init_t vboxvfs_init;
+-static vfs_uninit_t vboxvfs_uninit;
+-static vfs_cmount_t vboxvfs_cmount;
+-static vfs_mount_t vboxvfs_mount;
+-static vfs_root_t vboxvfs_root;
+-static vfs_quotactl_t vboxvfs_quotactl;
+-static vfs_statfs_t vboxvfs_statfs;
+-static vfs_unmount_t vboxvfs_unmount;
++SYSCTL_NODE(_vfs, OID_AUTO, vboxfs, CTLFLAG_RW, 0, "VirtualBox shared filesystem");
++SYSCTL_INT(_vfs_vboxfs, OID_AUTO, version, CTLFLAG_RD, &vboxfs_version, 0, "");
++SYSCTL_UINT(_vfs_vboxfs, OID_AUTO, debug, CTLFLAG_RW, &vboxvfs_debug, 0, "Debug level");
+
+-static struct vfsops vboxvfs_vfsops = {
+- .vfs_init = vboxvfs_init,
+- .vfs_cmount = vboxvfs_cmount,
+- .vfs_mount = vboxvfs_mount,
+- .vfs_quotactl = vboxvfs_quotactl,
+- .vfs_root = vboxvfs_root,
+- .vfs_statfs = vboxvfs_statfs,
+- .vfs_sync = vfs_stdsync,
+- .vfs_uninit = vboxvfs_uninit,
+- .vfs_unmount = vboxvfs_unmount,
++static vfs_init_t vboxfs_init;
++static vfs_uninit_t vboxfs_uninit;
++static vfs_cmount_t vboxfs_cmount;
++static vfs_mount_t vboxfs_mount;
++static vfs_root_t vboxfs_root;
++static vfs_quotactl_t vboxfs_quotactl;
++static vfs_statfs_t vboxfs_statfs;
++static vfs_unmount_t vboxfs_unmount;
++
++static struct vfsops vboxfs_vfsops = {
++ .vfs_init = vboxfs_init,
++ .vfs_cmount = vboxfs_cmount,
++ .vfs_mount = vboxfs_mount,
++ .vfs_quotactl = vboxfs_quotactl,
++ .vfs_root = vboxfs_root,
++ .vfs_statfs = vboxfs_statfs,
++ .vfs_sync = vfs_stdsync,
++ .vfs_uninit = vboxfs_uninit,
++ .vfs_unmount = vboxfs_unmount
+ };
+
+
+-VFS_SET(vboxvfs_vfsops, vboxvfs, VFCF_NETWORK);
++VFS_SET(vboxfs_vfsops, vboxvfs, VFCF_NETWORK);
+ MODULE_DEPEND(vboxvfs, vboxguest, 1, 1, 1);
+
+-static int vboxvfs_cmount(struct mntarg *ma, void * data, int flags, struct thread *td)
++/*
++ * Allocates a new node of type 'type' inside the 'tmp' mount point, with
++ * its owner set to 'uid', its group to 'gid' and its mode set to 'mode',
++ * using the credentials of the process 'p'.
++ *
++ * If the node type is set to 'VDIR', then the parent parameter must point
++ * to the parent directory of the node being created. It may only be NULL
++ * while allocating the root node.
++ *
++ * If the node type is set to 'VBLK' or 'VCHR', then the rdev parameter
++ * specifies the device the node represents.
++ *
++ * If the node type is set to 'VLNK', then the parameter target specifies
++ * the file name of the target file for the symbolic link that is being
++ * created.
++ *
++ * Note that new nodes are retrieved from the available list if it has
++ * items or, if it is empty, from the node pool as long as there is enough
++ * space to create them.
++ *
++ * Returns zero on success or an appropriate error code on failure.
++ */
++int
++vboxfs_alloc_node(struct mount *mp, struct vboxfs_mnt *vsfmp, const char *fullpath,
++ enum_vtype_t type, uid_t uid, gid_t gid, mode_t mode, struct vboxfs_node *parent,
++ struct vboxfs_node **node)
+ {
+- struct vboxvfs_mount_info args;
+- int rc = 0;
++ struct vboxfs_node *nnode;
+
+- printf("%s: Enter\n", __FUNCTION__);
++ if ((mp->mnt_kern_flag & MNTK_UNMOUNT) != 0) {
++ /*
++ * When a new tmpfs node is created for fully
++ * constructed mount point, there must be a parent
++ * node, which vnode is locked exclusively. As
++ * consequence, if the unmount is executing in
++ * parallel, vflush() cannot reclaim the parent vnode.
++ * Due to this, the check for MNTK_UNMOUNT flag is not
++ * racy: if we did not see MNTK_UNMOUNT flag, then tmp
++ * cannot be destroyed until node construction is
++ * finished and the parent vnode unlocked.
++ *
++ * Tmpfs does not need to instantiate new nodes during
++ * unmount.
++ */
++ return (EBUSY);
++ }
+
+- rc = copyin(data, &args, sizeof(struct vboxvfs_mount_info));
+- if (rc)
+- return rc;
++ nnode = (struct vboxfs_node *)uma_zalloc_arg(
++ vsfmp->sf_node_pool, vsfmp, M_WAITOK);
+
+- ma = mount_argf(ma, "uid", "%d", args.uid);
+- ma = mount_argf(ma, "gid", "%d", args.gid);
+- ma = mount_arg(ma, "from", args.name, -1);
++ /* Generic initialization. */
++ nnode->sf_type = type;
++ nnode->sf_ino = vsfmp->sf_ino++;
++ nnode->sf_path = strdup(fullpath, M_VBOXVFS);
++ nnode->sf_parent = parent;
++ nnode->vboxfsmp = vsfmp;
+
+- rc = kernel_mount(ma, flags);
++ /* Type-specific initialization. */
++ switch (nnode->sf_type) {
++ case VBLK:
++ case VCHR:
++ case VDIR:
++ case VFIFO:
++ case VSOCK:
++ case VLNK:
++ case VREG:
++ break;
+
+- printf("%s: Leave rc=%d\n", __FUNCTION__, rc);
++ default:
++ panic("vboxfs_alloc_node: type %p %d", nnode, (int)nnode->sf_type);
++ }
+
+- return rc;
++ *node = nnode;
++ return 0;
+ }
+
+-static const char *vboxvfs_opts[] = {
+- "uid", "gid", "from", "fstype", "fspath", "errmsg", NULL
+-};
+-
+-static int vboxvfs_mount(struct mount *mp, struct thread *td)
++void
++vboxfs_free_node(struct vboxfs_mnt *vboxfs, struct vboxfs_node *node)
+ {
+- int rc;
+- char *pszShare;
+- int cbShare, cbOption;
+- int uid = 0, gid = 0;
+- struct sf_glob_info *pShFlGlobalInfo;
+- SHFLSTRING *pShFlShareName = NULL;
+- int cbShFlShareName;
+
+- printf("%s: Enter\n", __FUNCTION__);
++#ifdef INVARIANTS
++ TMPFS_NODE_LOCK(node);
++ MPASS(node->sf_vnode == NULL);
++ MPASS((node->sf_vpstate & TMPFS_VNODE_ALLOCATING) == 0);
++ TMPFS_NODE_UNLOCK(node);
++#endif
++ if (node->sf_path)
++ free(node->sf_path, M_VBOXVFS);
+
+- if (mp->mnt_flag & (MNT_UPDATE | MNT_ROOTFS))
+- return EOPNOTSUPP;
++ uma_zfree(vboxfs->sf_node_pool, node);
++}
+
+- if (vfs_filteropt(mp->mnt_optnew, vboxvfs_opts))
+- {
+- vfs_mount_error(mp, "%s", "Invalid option");
+- return EINVAL;
+- }
++static int
++vboxfs_cmount(struct mntarg *ma, void *data, uint64_t flags)
++{
++ struct vboxfs_mount_info args;
++ int error = 0;
+
+- rc = vfs_getopt(mp->mnt_optnew, "from", (void **)&pszShare, &cbShare);
+- if (rc || pszShare[cbShare-1] != '\0' || cbShare > 0xfffe)
+- return EINVAL;
++ if (data == NULL)
++ return (EINVAL);
++ error = copyin(data, &args, sizeof(struct vboxfs_mount_info));
++ if (error)
++ return (error);
+
+- rc = vfs_getopt(mp->mnt_optnew, "gid", (void **)&gid, &cbOption);
+- if ((rc != ENOENT) && (rc || cbOption != sizeof(gid)))
+- return EINVAL;
++ ma = mount_argf(ma, "uid", "%d", args.uid);
++ ma = mount_argf(ma, "gid", "%d", args.gid);
++ ma = mount_argf(ma, "file_mode", "%d", args.fmode);
++ ma = mount_argf(ma, "dir_mode", "%d", args.dmode);
++ ma = mount_arg(ma, "from", args.name, -1);
+
+- rc = vfs_getopt(mp->mnt_optnew, "uid", (void **)&uid, &cbOption);
+- if ((rc != ENOENT) && (rc || cbOption != sizeof(uid)))
+- return EINVAL;
++ return (kernel_mount(ma, flags));
++}
+
+- pShFlGlobalInfo = RTMemAllocZ(sizeof(struct sf_glob_info));
+- if (!pShFlGlobalInfo)
+- return ENOMEM;
++static const char *vboxfs_opts[] = {
++ "fstype",
++ "fspath",
++ "from",
++ "uid",
++ "gid",
++ "file_mode",
++ "dir_mode",
++ "errmsg",
++ NULL
++};
+
+- cbShFlShareName = offsetof (SHFLSTRING, String.utf8) + cbShare + 1;
+- pShFlShareName = RTMemAllocZ(cbShFlShareName);
+- if (!pShFlShareName)
+- return VERR_NO_MEMORY;
++#define VBOX_INTOPT(optname, val, base) do { \
++ char *ep, *optarg = NULL; \
++ if (vfs_getopt(opts, optname, (void **)&optarg, NULL) == 0) { \
++ if (optarg != NULL && *optarg == '\0') \
++ optarg = NULL; \
++ if (optarg != NULL) \
++ val = strtoul(optarg, &ep, base); \
++ if (optarg == NULL || *ep != '\0') { \
++ struct sbuf *sb = sbuf_new_auto(); \
++ sbuf_printf(sb, "Invalid %s: \"%s\"", optname, \
++ optarg); \
++ sbuf_finish(sb); \
++ vfs_mount_error(mp, sbuf_data(sb)); \
++ sbuf_delete(sb); \
++ return (EINVAL); \
++ } \
++ } \
++} while (0)
+
+- pShFlShareName->u16Length = cbShare;
+- pShFlShareName->u16Size = cbShare + 1;
+- memcpy (pShFlShareName->String.utf8, pszShare, cbShare + 1);
++static int
++vboxfs_node_ctor(void *mem, int size, void *arg, int flags)
++{
++ struct vboxfs_node *node = (struct vboxfs_node *)mem;
+
+- rc = VbglR0SfMapFolder (&g_vboxSFClient, pShFlShareName, &pShFlGlobalInfo->map);
+- RTMemFree(pShFlShareName);
++ node->sf_vnode = NULL;
++ node->sf_vpstate = 0;
+
+- if (RT_FAILURE (rc))
+- {
+- RTMemFree(pShFlGlobalInfo);
+- printf("VbglR0SfMapFolder failed rc=%d\n", rc);
+- return EPROTO;
+- }
++ return (0);
++}
+
+- pShFlGlobalInfo->uid = uid;
+- pShFlGlobalInfo->gid = gid;
++static void
++vboxfs_node_dtor(void *mem, int size, void *arg)
++{
++ struct vboxfs_node *node = (struct vboxfs_node *)mem;
++ node->sf_type = VNON;
++}
+
+- mp->mnt_data = pShFlGlobalInfo;
++static int
++vboxfs_node_init(void *mem, int size, int flags)
++{
++ struct vboxfs_node *node = (struct vboxfs_node *)mem;
++ node->sf_ino = 0;
+
+- /** @todo root vnode. */
++ mtx_init(&node->sf_interlock, "tmpfs node interlock", NULL, MTX_DEF);
+
+- vfs_getnewfsid(mp);
+- vfs_mountedfrom(mp, pszShare);
++ return (0);
++}
+
+- printf("%s: Leave rc=0\n", __FUNCTION__);
++static void
++vboxfs_node_fini(void *mem, int size)
++{
++ struct vboxfs_node *node = (struct vboxfs_node *)mem;
+
+- return 0;
++ mtx_destroy(&node->sf_interlock);
+ }
+
+-static int vboxvfs_unmount(struct mount *mp, int mntflags, struct thread *td)
++static int
++vboxfs_mount(struct mount *mp)
+ {
+- struct sf_glob_info *pShFlGlobalInfo = VFSMP2SFGLOBINFO(mp);
+- int rc;
+- int flags = 0;
++ struct vboxfs_mnt *vboxfsmp = NULL;
++ struct vfsoptlist *opts = mp->mnt_optnew;
++ sfp_mount_t *handle = NULL;
++ int readonly = 0;
++ sffs_fsinfo_t fsinfo;
++ int error, share_len;
++ char *share_name;
++ mode_t file_mode = 0, dir_mode = 0;
++ uid_t uid = 0;
++ gid_t gid = 0;
++ struct vboxfs_node *root;
+
+- rc = VbglR0SfUnmapFolder(&g_vboxSFClient, &pShFlGlobalInfo->map);
+- if (RT_FAILURE(rc))
+- printf("Failed to unmap shared folder\n");
++ if (mp->mnt_flag & (MNT_UPDATE | MNT_ROOTFS))
++ return (EOPNOTSUPP);
+
+- if (mntflags & MNT_FORCE)
+- flags |= FORCECLOSE;
++ if (vfs_filteropt(opts, vboxfs_opts)) {
++ vfs_mount_error(mp, "%s", "Invalid option");
++ return (EINVAL);
++ }
+
+- /* There is 1 extra root vnode reference (vnode_root). */
+- rc = vflush(mp, 1, flags, td);
+- if (rc)
+- return rc;
++ VBOX_INTOPT("uid", uid, 10);
++ VBOX_INTOPT("gid", gid, 10);
++ VBOX_INTOPT("file_mode", file_mode, 8);
++ VBOX_INTOPT("dir_mode", dir_mode, 8);
++ VBOX_INTOPT("ro", readonly, 10);
+
++ error = vfs_getopt(opts, "from", (void **)&share_name, &share_len);
++ if (error != 0 || share_len == 0) {
++ vfs_mount_error(mp, "Invalid from");
++ return (EINVAL);
++ }
+
+- RTMemFree(pShFlGlobalInfo);
+- mp->mnt_data = NULL;
++ vboxfsmp = malloc(sizeof(struct vboxfs_mnt), M_VBOXVFS, M_WAITOK | M_ZERO);
++ vboxfsmp->sf_uid = uid;
++ vboxfsmp->sf_gid = gid;
++ vboxfsmp->sf_fmode = file_mode & (S_IRWXU | S_IRWXG | S_IRWXO);
++ vboxfsmp->sf_dmode = dir_mode & (S_IRWXU | S_IRWXG | S_IRWXO);
++ vboxfsmp->sf_ino = 3;
++ vboxfsmp->sf_stat_ttl = 200;
+
+- return 0;
++ /* Invoke Hypervisor mount interface before proceeding */
++ error = sfprov_mount(share_name, &handle);
++ if (error)
++ return (error);
++
++ /* Determine whether the filesystem must be read-only. */
++ error = sfprov_get_fsinfo(handle, &fsinfo);
++ if (error != 0) {
++ sfprov_unmount(handle);
++ return (error);
++ }
++ if (readonly == 0)
++ readonly = (fsinfo.readonly != 0);
++
++ vboxfsmp->sf_handle = handle;
++ vboxfsmp->sf_vfsp = mp;
++
++ vboxfsmp->sf_node_pool = uma_zcreate("VBOXFS node",
++ sizeof(struct vboxfs_node),
++ vboxfs_node_ctor, vboxfs_node_dtor,
++ vboxfs_node_init, vboxfs_node_fini,
++ UMA_ALIGN_PTR, 0);
++
++ /* Allocate the root node. */
++ error = vboxfs_alloc_node(mp, vboxfsmp, "", VDIR, 0,
++ 0, 0755, NULL, &root);
++
++ if (error != 0 || root == NULL) {
++ uma_zdestroy(vboxfsmp->sf_node_pool);
++ free(vboxfsmp, M_VBOXVFS);
++ return error;
++ }
++
++ root->sf_parent = root;
++ vboxfsmp->sf_root = root;
++
++ MNT_ILOCK(mp);
++ mp->mnt_data = vboxfsmp;
++ mp->mnt_stat.f_fsid.val[0] = fsinfo.serial;
++ mp->mnt_stat.f_fsid.val[1] = 0;
++ mp->mnt_flag |= MNT_LOCAL;
++ if (readonly != 0)
++ mp->mnt_flag |= MNT_RDONLY;
++
++ mp->mnt_kern_flag |= MNTK_LOOKUP_SHARED | MNTK_EXTENDED_SHARED;
++ MNT_IUNLOCK(mp);
++ vfs_mountedfrom(mp, share_name);
++
++ return (0);
+ }
+
+-static int vboxvfs_root(struct mount *mp, int flags, struct vnode **vpp, struct thread *td)
++/*
++ * Unmount a shared folder.
++ *
++ * vboxfs_unmount umounts the mounted file system. It return 0
++ * on sucess and any relevant errno on failure.
++ */
++static int
++vboxfs_unmount(struct mount *mp, int mntflags)
+ {
+- int rc = 0;
+- struct sf_glob_info *pShFlGlobalInfo = VFSMP2SFGLOBINFO(mp);
+- struct vnode *vp;
++ struct vboxfs_mnt *vboxfsmp;
++ struct thread *td;
++ int error;
++ int flags;
+
+- printf("%s: Enter\n", __FUNCTION__);
++ vboxfsmp = VFSTOVBOXFS(mp);
++ td = curthread;
++ flags = 0;
++ if (mntflags & MNT_FORCE)
++ flags |= FORCECLOSE;
+
+- vp = pShFlGlobalInfo->vnode_root;
+- VREF(vp);
++ error = vflush(mp, 0, flags, td);
++ if (error)
++ return (error);
+
+- vn_lock(vp, flags | LK_RETRY, td);
+- *vpp = vp;
++ /* Invoke Hypervisor unmount interface before proceeding */
++ error = sfprov_unmount(vboxfsmp->sf_handle);
++ if (error != 0) {
++ /* TBD anything here? */
++ }
+
+- printf("%s: Leave\n", __FUNCTION__);
++ uma_zdestroy(vboxfsmp->sf_node_pool);
+
+- return rc;
++ free(vboxfsmp, M_VBOXVFS);
++ MNT_ILOCK(mp);
++ mp->mnt_data = NULL;
++ mp->mnt_flag &= ~MNT_LOCAL;
++ MNT_IUNLOCK(mp);
++
++ return (0);
+ }
+
+-static int vboxvfs_quotactl(struct mount *mp, int cmd, uid_t uid, void *arg, struct thread *td)
++static int
++vboxfs_root(struct mount *mp, int flags, struct vnode **vpp)
+ {
+- return EOPNOTSUPP;
++ int error;
++ error = vboxfs_alloc_vp(mp, VFSTOVBOXFS(mp)->sf_root, flags, vpp);
++
++ if (!error)
++ (*vpp)->v_vflag |= VV_ROOT;
++
++ return error;
+ }
+
+-int vboxvfs_init(struct vfsconf *vfsp)
++/*
++ * Do operation associated with quotas, not supported
++ */
++static int
++vboxfs_quotactl(struct mount *mp, int cmd, uid_t uid, void *arg
++#if __FreeBSD_version >= 1400018
++ , bool *mp_busy
++#endif
++ )
+ {
+- int rc;
++ return (EOPNOTSUPP);
++}
+
+- /* Initialize the R0 guest library. */
+- rc = VbglR0SfInit();
+- if (RT_FAILURE(rc))
+- return ENXIO;
++/*
++ * Initialize the filesystem globals.
++ */
++static int
++vboxfs_init(struct vfsconf *vfsp)
++{
++ int error;
+
+- /* Connect to the host service. */
+- rc = VbglR0SfConnect(&g_vboxSFClient);
+- if (RT_FAILURE(rc))
+- {
+- printf("Failed to get connection to host! rc=%d\n", rc);
+- VbglR0SfTerm();
+- return ENXIO;
+- }
++ DROP_GIANT();
+
+- rc = VbglR0SfSetUtf8(&g_vboxSFClient);
+- if (RT_FAILURE (rc))
+- {
+- printf("VbglR0SfSetUtf8 failed, rc=%d\n", rc);
+- VbglR0SfDisconnect(&g_vboxSFClient);
+- VbglR0SfTerm();
+- return EPROTO;
+- }
++ sfprov = sfprov_connect(SFPROV_VERSION);
++ if (sfprov == NULL) {
++ printf("%s: couldn't connect to sf provider", __func__);
++ return (ENODEV);
++ }
+
+- printf("Successfully loaded shared folder module\n");
++ error = sfprov_set_show_symlinks();
++ if (error != 0)
++ printf("%s: host unable to show symlinks, error=%d\n",
++ __func__, error);
+
+- return 0;
++ PICKUP_GIANT();
++ return (0);
+ }
+
+-int vboxvfs_uninit(struct vfsconf *vfsp)
++/*
++ * Undo the work of vboxfs_init().
++ */
++static int
++vboxfs_uninit(struct vfsconf *vfsp)
+ {
+- VbglR0SfDisconnect(&g_vboxSFClient);
+- VbglR0SfTerm();
+
+- return 0;
++ DROP_GIANT();
++ sfprov_disconnect();
++ PICKUP_GIANT();
++ return (0);
+ }
+
+-int vboxvfs_statfs(struct mount *mp, struct statfs *sbp, struct thread *td)
++/*
++ * Get filesystem statistics.
++ */
++static int
++vboxfs_statfs(struct mount *mp, struct statfs *sbp)
+ {
+- return 0;
++ struct vboxfs_mnt *vboxfsmp;
++ sffs_fsinfo_t fsinfo;
++ int error;
++
++ vboxfsmp = VFSTOVBOXFS(mp);
++
++ error = sfprov_get_fsinfo(vboxfsmp->sf_handle, &fsinfo);
++ if (error != 0)
++ return (error);
++
++ sbp->f_iosize = fsinfo.blksize;
++ sbp->f_bsize = fsinfo.blksize;
++
++ sbp->f_bfree = fsinfo.blksavail;
++ sbp->f_bavail = fsinfo.blksavail;
++ sbp->f_files = fsinfo.blksavail / 4; /* some kind of reasonable value */
++ sbp->f_ffree = fsinfo.blksavail / 4;
++
++ sbp->f_blocks = fsinfo.blksused + sbp->f_bavail;
++ sbp->f_fsid.val[0] = mp->mnt_stat.f_fsid.val[0];
++ sbp->f_fsid.val[1] = mp->mnt_stat.f_fsid.val[1];
++ sbp->f_namemax = fsinfo.maxnamesize;
++
++ return (0);
+ }
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c
new file mode 100644
index 000000000000..90a799eef1db
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c
@@ -0,0 +1,1543 @@
+--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c.orig 2025-08-13 19:41:18 UTC
++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c
+@@ -24,228 +24,1416 @@
+ *
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+-
+-#include "vboxvfs.h"
+ #include <sys/param.h>
+ #include <sys/systm.h>
+ #include <sys/namei.h>
+ #include <sys/kernel.h>
+-#include <sys/proc.h>
++#include <sys/types.h>
++#include <sys/malloc.h>
++#include <sys/stat.h>
+ #include <sys/bio.h>
++#include <sys/conf.h>
+ #include <sys/buf.h>
+-#include <sys/fcntl.h>
++#include <sys/iconv.h>
+ #include <sys/mount.h>
+-#include <sys/unistd.h>
+ #include <sys/vnode.h>
+-#include <sys/limits.h>
+-#include <sys/lockf.h>
+-#include <sys/stat.h>
++#include <sys/dirent.h>
++#include <sys/queue.h>
++#include <sys/unistd.h>
++#include <sys/endian.h>
+
+-#include <vm/vm.h>
+-#include <vm/vm_extern.h>
++#include <vm/uma.h>
+
++#include "vboxvfs.h"
++
++#if __FreeBSD_version < 1300063
++#define VN_IS_DOOMED(vp) (((vp)->v_iflag & VI_DOOMED) != 0)
++#endif
++
+ /*
+ * Prototypes for VBOXVFS vnode operations
+ */
+-static vop_create_t vboxvfs_create;
+-static vop_mknod_t vboxvfs_mknod;
+-static vop_open_t vboxvfs_open;
+-static vop_close_t vboxvfs_close;
+-static vop_access_t vboxvfs_access;
+-static vop_getattr_t vboxvfs_getattr;
+-static vop_setattr_t vboxvfs_setattr;
+-static vop_read_t vboxvfs_read;
+-static vop_write_t vboxvfs_write;
+-static vop_fsync_t vboxvfs_fsync;
+-static vop_remove_t vboxvfs_remove;
+-static vop_link_t vboxvfs_link;
+-static vop_lookup_t vboxvfs_lookup;
+-static vop_rename_t vboxvfs_rename;
+-static vop_mkdir_t vboxvfs_mkdir;
+-static vop_rmdir_t vboxvfs_rmdir;
+-static vop_symlink_t vboxvfs_symlink;
+-static vop_readdir_t vboxvfs_readdir;
+-static vop_strategy_t vboxvfs_strategy;
+-static vop_print_t vboxvfs_print;
+-static vop_pathconf_t vboxvfs_pathconf;
+-static vop_advlock_t vboxvfs_advlock;
+-static vop_getextattr_t vboxvfs_getextattr;
+-static vop_ioctl_t vboxvfs_ioctl;
+-static vop_getpages_t vboxvfs_getpages;
+-static vop_inactive_t vboxvfs_inactive;
+-static vop_putpages_t vboxvfs_putpages;
+-static vop_reclaim_t vboxvfs_reclaim;
++static vop_create_t vboxfs_create;
++static vop_open_t vboxfs_open;
++static vop_close_t vboxfs_close;
++static vop_access_t vboxfs_access;
++static vop_getattr_t vboxfs_getattr;
++static vop_setattr_t vboxfs_setattr;
++static vop_read_t vboxfs_read;
++static vop_readlink_t vboxfs_readlink;
++static vop_write_t vboxfs_write;
++static vop_fsync_t vboxfs_fsync;
++static vop_remove_t vboxfs_remove;
++static vop_link_t vboxfs_link;
++static vop_lookup_t vboxfs_lookup;
++static vop_cachedlookup_t vboxfs_cachedlookup;
++static vop_rename_t vboxfs_rename;
++static vop_mkdir_t vboxfs_mkdir;
++static vop_rmdir_t vboxfs_rmdir;
++static vop_symlink_t vboxfs_symlink;
++static vop_readdir_t vboxfs_readdir;
++static vop_print_t vboxfs_print;
++static vop_pathconf_t vboxfs_pathconf;
++static vop_advlock_t vboxfs_advlock;
++static vop_ioctl_t vboxfs_ioctl;
++static vop_inactive_t vboxfs_inactive;
++static vop_reclaim_t vboxfs_reclaim;
++static vop_vptofh_t vboxfs_vptofh;
+
+-struct vop_vector vboxvfs_vnodeops = {
+- .vop_default = &default_vnodeops,
++struct vop_vector vboxfs_vnodeops = {
++ .vop_default = &default_vnodeops,
+
+- .vop_access = vboxvfs_access,
+- .vop_advlock = vboxvfs_advlock,
+- .vop_close = vboxvfs_close,
+- .vop_create = vboxvfs_create,
+- .vop_fsync = vboxvfs_fsync,
+- .vop_getattr = vboxvfs_getattr,
+- .vop_getextattr = vboxvfs_getextattr,
+- .vop_getpages = vboxvfs_getpages,
+- .vop_inactive = vboxvfs_inactive,
+- .vop_ioctl = vboxvfs_ioctl,
+- .vop_link = vboxvfs_link,
+- .vop_lookup = vboxvfs_lookup,
+- .vop_mkdir = vboxvfs_mkdir,
+- .vop_mknod = vboxvfs_mknod,
+- .vop_open = vboxvfs_open,
+- .vop_pathconf = vboxvfs_pathconf,
+- .vop_print = vboxvfs_print,
+- .vop_putpages = vboxvfs_putpages,
+- .vop_read = vboxvfs_read,
+- .vop_readdir = vboxvfs_readdir,
+- .vop_reclaim = vboxvfs_reclaim,
+- .vop_remove = vboxvfs_remove,
+- .vop_rename = vboxvfs_rename,
+- .vop_rmdir = vboxvfs_rmdir,
+- .vop_setattr = vboxvfs_setattr,
+- .vop_strategy = vboxvfs_strategy,
+- .vop_symlink = vboxvfs_symlink,
+- .vop_write = vboxvfs_write,
++ .vop_access = vboxfs_access,
++ .vop_advlock = VOP_EOPNOTSUPP,
++ .vop_close = vboxfs_close,
++ .vop_create = vboxfs_create,
++ .vop_fsync = vboxfs_fsync,
++ .vop_getattr = vboxfs_getattr,
++ .vop_getextattr = VOP_EOPNOTSUPP,
++ .vop_inactive = vboxfs_inactive,
++ .vop_ioctl = vboxfs_ioctl,
++ .vop_link = vboxfs_link,
++ .vop_lookup = vboxfs_lookup,
++ .vop_cachedlookup = vboxfs_cachedlookup,
++ .vop_mkdir = vboxfs_mkdir,
++ .vop_mknod = VOP_EOPNOTSUPP,
++ .vop_open = vboxfs_open,
++ .vop_pathconf = vboxfs_pathconf,
++ .vop_print = vboxfs_print,
++ .vop_read = vboxfs_read,
++ .vop_readdir = vboxfs_readdir,
++ .vop_readlink = vboxfs_readlink,
++ .vop_reclaim = vboxfs_reclaim,
++ .vop_remove = vboxfs_remove,
++ .vop_rename = vboxfs_rename,
++ .vop_rmdir = vboxfs_rmdir,
++ .vop_setattr = vboxfs_setattr,
++ .vop_vptofh = vboxfs_vptofh,
++ .vop_symlink = vboxfs_symlink,
++ .vop_write = vboxfs_write,
++ .vop_bmap = VOP_EOPNOTSUPP
+ };
++#if __FreeBSD_version > 1300068
++VFS_VOP_VECTOR_REGISTER(vboxfs_vnodeops);
++#endif
+
+-static int vboxvfs_access(struct vop_access_args *ap)
++static uint64_t
++vsfnode_cur_time_usec(void)
+ {
+- return 0;
++ struct timeval now;
++
++ getmicrotime(&now);
++
++ return (now.tv_sec*1000 + now.tv_usec);
+ }
+
+-static int vboxvfs_open(struct vop_open_args *ap)
++static int
++vsfnode_stat_cached(struct vboxfs_node *np)
+ {
+- return 0;
++ return (vsfnode_cur_time_usec() - np->sf_stat_time) <
++ np->vboxfsmp->sf_stat_ttl * 1000UL;
+ }
+
+-static int vboxvfs_close(struct vop_close_args *ap)
++static int
++vsfnode_update_stat_cache(struct vboxfs_node *np)
+ {
+- return 0;
++ int error;
++
++ error = sfprov_get_attr(np->vboxfsmp->sf_handle, np->sf_path,
++ &np->sf_stat);
++#if 0
++ if (error == ENOENT)
++ sfnode_make_stale(node);
++#endif
++ if (error == 0)
++ np->sf_stat_time = vsfnode_cur_time_usec();
++
++ return (error);
+ }
+
+-static int vboxvfs_getattr(struct vop_getattr_args *ap)
++/*
++ * Need to clear v_object for insmntque failure.
++ */
++static void
++vboxfs_insmntque_dtr(struct vnode *vp, void *dtr_arg)
+ {
+- return 0;
++
++ // XXX: vboxfs_destroy_vobject(vp, vp->v_object);
++ vp->v_object = NULL;
++ vp->v_data = NULL;
++ vp->v_op = &dead_vnodeops;
++ vgone(vp);
++ vput(vp);
+ }
+
+-static int vboxvfs_setattr(struct vop_setattr_args *ap)
++/*
++ * Allocates a new vnode for the node node or returns a new reference to
++ * an existing one if the node had already a vnode referencing it. The
++ * resulting locked vnode is returned in *vpp.
++ *
++ * Returns zero on success or an appropriate error code on failure.
++ */
++int
++vboxfs_alloc_vp(struct mount *mp, struct vboxfs_node *node, int lkflag,
++ struct vnode **vpp)
+ {
+- return 0;
++ struct vnode *vp;
++ int error;
++
++ error = 0;
++loop:
++ VBOXFS_NODE_LOCK(node);
++loop1:
++ if ((vp = node->sf_vnode) != NULL) {
++ MPASS((node->sf_vpstate & VBOXFS_VNODE_DOOMED) == 0);
++ VI_LOCK(vp);
++ if ((node->sf_type == VDIR && node->sf_parent == NULL) ||
++ (VN_IS_DOOMED(vp) &&
++ (lkflag & LK_NOWAIT) != 0)) {
++ VI_UNLOCK(vp);
++ VBOXFS_NODE_UNLOCK(node);
++ error = ENOENT;
++ vp = NULL;
++ goto out;
++ }
++ if (VN_IS_DOOMED(vp)) {
++ VI_UNLOCK(vp);
++ node->sf_vpstate |= VBOXFS_VNODE_WRECLAIM;
++ while ((node->sf_vpstate & VBOXFS_VNODE_WRECLAIM) != 0) {
++ msleep(&node->sf_vnode, VBOXFS_NODE_MTX(node),
++ 0, "vsfE", 0);
++ }
++ goto loop1;
++ }
++ VBOXFS_NODE_UNLOCK(node);
++#if __FreeBSD_version < 1300109
++ error = vget(vp, lkflag | LK_INTERLOCK, curthread);
++#else
++ error = vget(vp, lkflag | LK_INTERLOCK);
++#endif
++ if (error == ENOENT)
++ goto loop;
++ if (error != 0) {
++ vp = NULL;
++ goto out;
++ }
++
++ /*
++ * Make sure the vnode is still there after
++ * getting the interlock to avoid racing a free.
++ */
++ if (node->sf_vnode == NULL || node->sf_vnode != vp) {
++ vput(vp);
++ goto loop;
++ }
++
++ goto out;
++ }
++
++ if ((node->sf_vpstate & VBOXFS_VNODE_DOOMED) ||
++ (node->sf_type == VDIR && node->sf_parent == NULL)) {
++ VBOXFS_NODE_UNLOCK(node);
++ error = ENOENT;
++ vp = NULL;
++ goto out;
++ }
++
++ /*
++ * otherwise lock the vp list while we call getnewvnode
++ * since that can block.
++ */
++ if (node->sf_vpstate & VBOXFS_VNODE_ALLOCATING) {
++ node->sf_vpstate |= VBOXFS_VNODE_WANT;
++ error = msleep((caddr_t) &node->sf_vpstate,
++ VBOXFS_NODE_MTX(node), PDROP | PCATCH,
++ "vboxfs_alloc_vp", 0);
++ if (error)
++ return error;
++
++ goto loop;
++ } else
++ node->sf_vpstate |= VBOXFS_VNODE_ALLOCATING;
++
++ VBOXFS_NODE_UNLOCK(node);
++
++ /* Get a new vnode and associate it with our node. */
++ error = getnewvnode("vboxfs", mp, &vboxfs_vnodeops, &vp);
++ if (error != 0)
++ goto unlock;
++ MPASS(vp != NULL);
++
++ /* lkflag is ignored, the lock is exclusive */
++ (void) vn_lock(vp, lkflag | LK_RETRY);
++
++ vp->v_data = node;
++ vp->v_type = node->sf_type;
++
++ /* Type-specific initialization. */
++ switch (node->sf_type) {
++ case VBLK:
++ /* FALLTHROUGH */
++ case VCHR:
++ /* FALLTHROUGH */
++ case VLNK:
++ /* FALLTHROUGH */
++ case VSOCK:
++ /* FALLTHROUGH */
++ case VFIFO:
++ /* FALLTHROUGH */
++ case VREG:
++ break;
++ case VDIR:
++ MPASS(node->sf_parent != NULL);
++ if (node->sf_parent == node)
++ vp->v_vflag |= VV_ROOT;
++ break;
++
++ default:
++ panic("vboxfs_alloc_vp: type %p %d", node, (int)node->sf_type);
++ }
++
++ if (vp->v_type != VFIFO)
++ VN_LOCK_ASHARE(vp);
++
++#if __FreeBSD_version < 1400051
++ error = insmntque1(vp, mp, vboxfs_insmntque_dtr, NULL);
++#else
++ error = insmntque(vp, mp);
++#endif
++ if (error) {
++#if __FreeBSD_version >= 1400051
++ vboxfs_insmntque_dtr(vp, NULL);
++#endif
++ vp = NULL;
++ }
++
++unlock:
++ VBOXFS_NODE_LOCK(node);
++
++ MPASS(node->sf_vpstate & VBOXFS_VNODE_ALLOCATING);
++ node->sf_vpstate &= ~VBOXFS_VNODE_ALLOCATING;
++ node->sf_vnode = vp;
++
++ if (node->sf_vpstate & VBOXFS_VNODE_WANT) {
++ node->sf_vpstate &= ~VBOXFS_VNODE_WANT;
++ VBOXFS_NODE_UNLOCK(node);
++ wakeup((caddr_t) &node->sf_vpstate);
++ } else
++ VBOXFS_NODE_UNLOCK(node);
++
++out:
++ *vpp = vp;
++
++#ifdef INVARIANTS
++ if (error == 0) {
++ MPASS(*vpp != NULL && VOP_ISLOCKED(*vpp));
++ VBOXFS_NODE_LOCK(node);
++ MPASS(*vpp == node->sf_vnode);
++ VBOXFS_NODE_UNLOCK(node);
++ }
++#endif
++
++ return error;
+ }
+
+-static int vboxvfs_read(struct vop_read_args *ap)
++/*
++ * Destroys the association between the vnode vp and the node it
++ * references.
++ */
++void
++vboxfs_free_vp(struct vnode *vp)
+ {
+- return 0;
++ struct vboxfs_node *node;
++
++ node = VP_TO_VBOXFS_NODE(vp);
++
++ VBOXFS_NODE_ASSERT_LOCKED(node);
++ node->sf_vnode = NULL;
++ if ((node->sf_vpstate & VBOXFS_VNODE_WRECLAIM) != 0)
++ wakeup(&node->sf_vnode);
++ node->sf_vpstate &= ~VBOXFS_VNODE_WRECLAIM;
++ vp->v_data = NULL;
+ }
+
+-static int vboxvfs_write(struct vop_write_args *ap)
++/*
++ * Allocate new vboxfs_node and vnode for given file
++ */
++static int
++vboxfs_alloc_file(struct vboxfs_mnt *vboxfsmp, const char *fullpath,
++ enum_vtype_t type, mode_t mode, struct vboxfs_node *parent,
++ int lkflag, struct vnode **vpp)
+ {
+- return 0;
++ int error;
++ struct vboxfs_node *unode;
++
++ error = vboxfs_alloc_node(vboxfsmp->sf_vfsp, vboxfsmp, fullpath, type,
++ vboxfsmp->sf_uid, vboxfsmp->sf_gid, mode, parent, &unode);
++
++ if (error)
++ goto out;
++
++ error = vboxfs_alloc_vp(vboxfsmp->sf_vfsp, unode, lkflag, vpp);
++ if (error)
++ vboxfs_free_node(vboxfsmp, unode);
++
++out:
++ return (error);
+ }
+
+-static int vboxvfs_create(struct vop_create_args *ap)
++static int
++vboxfs_vn_get_ino_alloc(struct mount *mp, void *arg, int lkflags,
++ struct vnode **rvp)
+ {
+- return 0;
++
++ return (vboxfs_alloc_vp(mp, arg, lkflags, rvp));
+ }
+
+-static int vboxvfs_remove(struct vop_remove_args *ap)
++/*
++ * Construct a new pathname given an sfnode plus an optional tail
++ * component of length len
++ * This handles ".." and "."
++ */
++static char *
++sfnode_construct_path(struct vboxfs_node *node, char *tail, int len)
+ {
+- return 0;
++ char *p;
++ size_t dstsz;
++
++ if (len <= 2 && tail[0] == '.' && (len == 1 || tail[1] == '.'))
++ panic("construct path for %s", tail);
++ dstsz = strlen(node->sf_path) + 1 + len + 1;
++ p = malloc(dstsz, M_VBOXVFS, M_WAITOK);
++ strcpy(p, node->sf_path);
++ strcat(p, "/");
++ strlcat(p, tail, dstsz);
++ return (p);
+ }
+
+-static int vboxvfs_rename(struct vop_rename_args *ap)
++static int
++vboxfs_access(struct vop_access_args *ap)
+ {
+- return 0;
++ struct vnode *vp = ap->a_vp;
++ accmode_t accmode = ap->a_accmode;
++ struct vboxfs_node *node;
++ int error;
++ mode_t m;
++
++ MPASS(VOP_ISLOCKED(vp));
++
++ node = VP_TO_VBOXFS_NODE(vp);
++
++ if ((accmode & VWRITE) && (vp->v_mount->mnt_flag & MNT_RDONLY)) {
++ switch (vp->v_type) {
++ case VDIR:
++ case VLNK:
++ case VREG:
++ return (EROFS);
++ /* NOT REACHED */
++ default:
++ break;
++ }
++ }
++
++ if (vsfnode_stat_cached(node))
++ error = 0;
++ else
++ error = vsfnode_update_stat_cache(node);
++ m = (error == 0) ? node->sf_stat.sf_mode : 0;
++
++#if __FreeBSD_version < 1300105
++ return (vaccess(vp->v_type, m, node->vboxfsmp->sf_uid,
++ node->vboxfsmp->sf_gid, accmode, ap->a_cred, NULL));
++#else
++ return (vaccess(vp->v_type, m, node->vboxfsmp->sf_uid,
++ node->vboxfsmp->sf_gid, accmode, ap->a_cred));
++#endif
+ }
+
+-static int vboxvfs_link(struct vop_link_args *ap)
++/*
++ * Clears the (cached) directory listing for the node.
++ */
++static void
++vfsnode_clear_dir_list(struct vboxfs_node *np)
+ {
+- return EOPNOTSUPP;
++ while (np->sf_dir_list != NULL) {
++ sffs_dirents_t *next = np->sf_dir_list->sf_next;
++ free(np->sf_dir_list, M_VBOXVFS);
++ np->sf_dir_list = next;
++ }
+ }
+
+-static int vboxvfs_symlink(struct vop_symlink_args *ap)
++static int
++vboxfs_get_sfp_file(struct vboxfs_node *np)
+ {
+- return EOPNOTSUPP;
++ sfp_file_t *fp;
++ int error;
++
++ fp = NULL;
++ VBOXFS_NODE_LOCK(np);
++ for (;;) {
++ if (np->sf_file != NULL) {
++ if (fp != NULL)
++ (void) sfprov_close(fp);
++ np->sf_opencnt++;
++ fp = np->sf_file;
++ break;
++ } else if (fp != NULL) {
++ np->sf_file = fp;
++ KASSERT(np->sf_opencnt == 0,
++ ("np %p opencnt (%d) must be zero.",
++ np, np->sf_opencnt));
++ np->sf_opencnt = 1;
++ break;
++ }
++ VBOXFS_NODE_UNLOCK(np);
++ error = sfprov_open(np->vboxfsmp->sf_handle, np->sf_path, &fp);
++ if (error != 0)
++ return (error);
++ VBOXFS_NODE_LOCK(np);
++ }
++ VBOXFS_NODE_UNLOCK(np);
++
++ return (0);
+ }
+
+-static int vboxvfs_mknod(struct vop_mknod_args *ap)
++static void
++vboxfs_put_sfp_file(struct vboxfs_node *np)
+ {
+- return EOPNOTSUPP;
++ VBOXFS_NODE_LOCK(np);
++ np->sf_opencnt--;
++ if (np->sf_opencnt == 0) {
++ (void) sfprov_close(np->sf_file);
++ np->sf_file = NULL;
++ }
++ VBOXFS_NODE_UNLOCK(np);
+ }
+
+-static int vboxvfs_mkdir(struct vop_mkdir_args *ap)
++static int
++vboxfs_open(struct vop_open_args *ap)
+ {
+- return 0;
++ struct vboxfs_node *np;
++ int error;
++
++ MPASS(VOP_ISLOCKED(vp));
++
++ np = VP_TO_VBOXFS_NODE(ap->a_vp);
++ error = vboxfs_get_sfp_file(np);
++ if (error != 0)
++ goto out;
++
++ vnode_create_vobject(ap->a_vp, 0, ap->a_td);
++out:
++ MPASS(VOP_ISLOCKED(vp));
++
++ return (error);
+ }
+
+-static int vboxvfs_rmdir(struct vop_rmdir_args *ap)
++static void
++vfsnode_invalidate_stat_cache(struct vboxfs_node *np)
+ {
+- return 0;
++ np->sf_stat_time = 0;
+ }
+
+-static int vboxvfs_readdir(struct vop_readdir_args *ap)
++static int
++vboxfs_close(struct vop_close_args *ap)
+ {
+- return 0;
++ struct vnode *vp = ap->a_vp;
++ struct vboxfs_node *np;
++
++ np = VP_TO_VBOXFS_NODE(vp);
++
++ /*
++ * Free the directory entries for the node. We do this on this call
++ * here because the directory node may not become inactive for a long
++ * time after the readdir is over. Case in point, if somebody cd's into
++ * the directory then it won't become inactive until they cd away again.
++ * In such a case we would end up with the directory listing not getting
++ * updated (i.e. the result of 'ls' always being the same) until they
++ * change the working directory.
++ */
++ vfsnode_clear_dir_list(np);
++
++ vfsnode_invalidate_stat_cache(np);
++
++ vboxfs_put_sfp_file(np);
++
++ return (0);
+ }
+
+-static int vboxvfs_fsync(struct vop_fsync_args *ap)
++static int
++vboxfs_getattr(struct vop_getattr_args *ap)
+ {
+- return 0;
++ struct vnode *vp = ap->a_vp;
++ struct vattr *vap = ap->a_vap;
++ struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp);
++ struct vboxfs_mnt *mp = np->vboxfsmp;
++ mode_t mode;
++ int error = 0;
++
++ mode = 0;
++ vap->va_type = vp->v_type;
++
++ vap->va_nlink = 1; /* number of references to file */
++ vap->va_uid = mp->sf_uid; /* owner user id */
++ vap->va_gid = mp->sf_gid; /* owner group id */
++ vap->va_rdev = NODEV; /* device the special file represents */
++ vap->va_gen = VNOVAL; /* generation number of file */
++ vap->va_flags = 0; /* flags defined for file */
++ vap->va_filerev = 0; /* file modification number */
++ vap->va_vaflags = 0; /* operations flags */
++ vap->va_fileid = np->sf_ino; /* file id */
++ vap->va_fsid = vp->v_mount->mnt_stat.f_fsid.val[0];
++ if (vap->va_fileid == 0)
++ vap->va_fileid = 2;
++
++ vap->va_atime.tv_sec = VNOVAL;
++ vap->va_atime.tv_nsec = VNOVAL;
++ vap->va_mtime.tv_sec = VNOVAL;
++ vap->va_mtime.tv_nsec = VNOVAL;
++ vap->va_ctime.tv_sec = VNOVAL;
++ vap->va_ctime.tv_nsec = VNOVAL;
++
++ if (!vsfnode_stat_cached(np)) {
++ error = vsfnode_update_stat_cache(np);
++ if (error != 0)
++ goto done;
++ }
++
++ vap->va_atime = np->sf_stat.sf_atime;
++ vap->va_mtime = np->sf_stat.sf_mtime;
++ vap->va_ctime = np->sf_stat.sf_ctime;
++
++ mode = np->sf_stat.sf_mode;
++
++ vap->va_mode = mode;
++ if (S_ISDIR(mode)) {
++ vap->va_type = VDIR; /* vnode type (for create) */
++ vap->va_mode = mp->sf_dmode != 0 ? (mp->sf_dmode & 0777) : vap->va_mode;
++ vap->va_mode &= ~mp->sf_dmask;
++ vap->va_mode |= S_IFDIR;
++ } else if (S_ISREG(mode)) {
++ vap->va_type = VREG;
++ vap->va_mode = mp->sf_fmode != 0 ? (mp->sf_fmode & 0777) : vap->va_mode;
++ vap->va_mode &= ~mp->sf_fmask;
++ vap->va_mode |= S_IFREG;
++ } else if (S_ISFIFO(mode))
++ vap->va_type = VFIFO;
++ else if (S_ISCHR(mode))
++ vap->va_type = VCHR;
++ else if (S_ISBLK(mode))
++ vap->va_type = VBLK;
++ else if (S_ISLNK(mode)) {
++ vap->va_type = VLNK;
++ vap->va_mode = mp->sf_fmode != 0 ? (mp->sf_fmode & 0777) : vap->va_mode;
++ vap->va_mode &= ~mp->sf_fmask;
++ vap->va_mode |= S_IFLNK;
++ } else if (S_ISSOCK(mode))
++ vap->va_type = VSOCK;
++
++ vap->va_size = np->sf_stat.sf_size;
++ vap->va_blocksize = 512;
++ /* bytes of disk space held by file */
++ vap->va_bytes = (np->sf_stat.sf_alloc + 511) / 512;
++
++done:
++ return (error);
+ }
+
+-static int vboxvfs_print (struct vop_print_args *ap)
++static int
++vboxfs_setattr(struct vop_setattr_args *ap)
+ {
+- return 0;
++ struct vnode *vp = ap->a_vp;
++ struct vattr *vap = ap->a_vap;
++ struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp);
++ int error;
++ mode_t mode;
++
++ mode = vap->va_mode;
++ if (vp->v_type == VREG)
++ mode |= S_IFREG;
++ else if (vp->v_type == VDIR)
++ mode |= S_IFDIR;
++ else if (vp->v_type == VBLK)
++ mode |= S_IFBLK;
++ else if (vp->v_type == VCHR)
++ mode |= S_IFCHR;
++ else if (vp->v_type == VLNK)
++ mode |= S_IFLNK;
++ else if (vp->v_type == VFIFO)
++ mode |= S_IFIFO;
++ else if (vp->v_type == VSOCK)
++ mode |= S_IFSOCK;
++
++ vfsnode_invalidate_stat_cache(np);
++
++ error = sfprov_set_attr(np->vboxfsmp->sf_handle, np->sf_path,
++ mode, vap->va_atime, vap->va_mtime, vap->va_ctime);
++#if 0
++ if (error == ENOENT)
++ sfnode_make_stale(np);
++#endif
++ if (vap->va_size != (u_quad_t)VNOVAL) {
++ switch (vp->v_type) {
++ case VDIR:
++ return (EISDIR);
++ case VLNK:
++ /* FALLTHROUGH */
++ case VREG:
++ error = sfprov_set_size(np->vboxfsmp->sf_handle, np->sf_path, vap->va_size);
++ break;
++ case VCHR:
++ /* FALLTHROUGH */
++ case VBLK:
++ /* FALLTHROUGH */
++ case VSOCK:
++ /* FALLTHROUGH */
++ case VFIFO:
++ /* FALLTHROUGH */
++ case VNON:
++ /* FALLTHROUGH */
++ case VBAD:
++ /* FALLTHROUGH */
++ case VMARKER:
++ return (0);
++ }
++ }
++
++ return (error);
+ }
+
+-static int vboxvfs_pathconf (struct vop_pathconf_args *ap)
++#define blkoff(vboxfsmp, loc) ((loc) & (vboxfsmp)->bmask)
++
++static int
++vboxfs_read(struct vop_read_args *ap)
+ {
+- return 0;
++ struct vnode *vp = ap->a_vp;
++ struct uio *uio = ap->a_uio;
++ struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp);
++ int error = 0;
++ uint32_t bytes;
++ uint32_t done;
++ unsigned long offset;
++ ssize_t total;
++ void *tmpbuf;
++
++ if (vp->v_type == VDIR)
++ return (EISDIR);
++
++ if (vp->v_type != VREG)
++ return (EINVAL);
++
++ if (uio->uio_offset < 0)
++ return (EINVAL);
++
++ total = uio->uio_resid;
++ if (total == 0)
++ return (0);
++
++ /*
++ * XXXGONZO: this is just to get things working
++ * should be optimized
++ */
++ tmpbuf = contigmalloc(PAGE_SIZE, M_DEVBUF, M_WAITOK, 0, ~0, PAGE_SIZE, 0);
++ if (tmpbuf == 0)
++ return (ENOMEM);
++
++ /*
++ * XXX VOP_READ() is called without VOP_OPEN() on exec case.
++ * We need to ensure the file is opened here.
++ */
++ error = vboxfs_get_sfp_file(np);
++ if (error != 0) /* Maybe removed on the host. */
++ return (EIO);
++ do {
++ offset = uio->uio_offset;
++ done = bytes = min(PAGE_SIZE, uio->uio_resid);
++ error = sfprov_read(np->sf_file, tmpbuf,
++ offset, &done, 0);
++ if (error == 0 && done > 0)
++ error = uiomove(tmpbuf, done, uio);
++ } while (error == 0 && uio->uio_resid > 0 && done > 0);
++ vboxfs_put_sfp_file(np);
++
++ contigfree(tmpbuf, PAGE_SIZE, M_DEVBUF);
++
++ /* a partial read is never an error */
++ if (total != uio->uio_resid)
++ error = 0;
++
++ return (error);
+ }
+
+-static int vboxvfs_strategy (struct vop_strategy_args *ap)
++static int
++vboxfs_write(struct vop_write_args *ap)
+ {
+- return 0;
++ struct vnode *vp = ap->a_vp;
++ struct uio *uio = ap->a_uio;
++ struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp);
++ int error = 0;
++ uint32_t bytes;
++ uint32_t done;
++ unsigned long offset;
++ ssize_t total;
++ void *tmpbuf;
++
++ if (vp->v_type == VDIR)
++ return (EISDIR);
++
++ if (vp->v_type != VREG)
++ return (EINVAL);
++
++ if (uio->uio_offset < 0)
++ return (EINVAL);
++
++ total = uio->uio_resid;
++ if (total == 0)
++ return (0);
++
++ /*
++ * XXXGONZO: this is just to get things working
++ * should be optimized
++ */
++ tmpbuf = contigmalloc(PAGE_SIZE, M_DEVBUF, M_WAITOK, 0, ~0, PAGE_SIZE, 0);
++ if (tmpbuf == 0)
++ return (ENOMEM);
++
++ do {
++ offset = uio->uio_offset;
++ bytes = min(PAGE_SIZE, uio->uio_resid);
++ error = uiomove(tmpbuf, bytes, uio);
++ if (error != 0)
++ break;
++ done = bytes;
++ error = sfprov_write(np->sf_file, tmpbuf,
++ offset, &done, 0);
++ if (error != 0)
++ break;
++ total -= done;
++ if (done != bytes)
++ uio->uio_resid += bytes - done;
++ } while (error == 0 && uio->uio_resid > 0 && done > 0);
++
++ contigfree(tmpbuf, PAGE_SIZE, M_DEVBUF);
++
++ /* a partial write is never an error */
++ if (total != uio->uio_resid)
++ error = 0;
++
++ return (error);
+ }
+
+-static int vboxvfs_ioctl(struct vop_ioctl_args *ap)
++static int
++vboxfs_create(struct vop_create_args *ap)
+ {
+- return ENOTTY;
++ struct vnode *dvp = ap->a_dvp;
++ struct vnode **vpp = ap->a_vpp;
++ struct componentname *cnp = ap->a_cnp;
++ struct vattr *vap = ap->a_vap;
++ sffs_stat_t stat;
++ char *fullpath = NULL;
++ struct vboxfs_node *dir = VP_TO_VBOXFS_NODE(dvp);
++ int error;
++ struct vboxfs_mnt *vboxfsmp = dir->vboxfsmp;
++
++ MPASS(vap->va_type == VREG);
++
++ fullpath = sfnode_construct_path(dir, cnp->cn_nameptr, cnp->cn_namelen);
++ error = sfprov_create(dir->vboxfsmp->sf_handle, fullpath, vap->va_mode,
++ &stat);
++
++ if (error)
++ goto out;
++
++ error = vboxfs_alloc_file(vboxfsmp, fullpath, VREG, vap->va_mode, dir, cnp->cn_lkflags, vpp);
++
++out:
++ if (fullpath)
++ free(fullpath, M_VBOXVFS);
++
++ if (error == 0) {
++ vfsnode_clear_dir_list(dir);
++ if ((cnp->cn_flags & MAKEENTRY) != 0)
++ cache_enter(dvp, *vpp, cnp);
++ }
++
++ return (error);
+ }
+
+-static int vboxvfs_getextattr(struct vop_getextattr_args *ap)
++static int
++vboxfs_remove(struct vop_remove_args *ap)
+ {
+- return 0;
++ struct vnode *dvp = ap->a_dvp;
++ struct vnode *vp = ap->a_vp;
++ struct vboxfs_node *np, *dir;
++
++ int error;
++
++ MPASS(VOP_ISLOCKED(dvp));
++ MPASS(VOP_ISLOCKED(vp));
++
++ error = 0;
++
++ np = VP_TO_VBOXFS_NODE(vp);
++ dir = VP_TO_VBOXFS_NODE(vp);
++
++ error = sfprov_remove(np->vboxfsmp->sf_handle, np->sf_path,
++ np->sf_type == VLNK);
++
++#if 0
++ if (error == ENOENT || error == 0)
++ sfnode_make_stale(np);
++#endif
++
++ if (error == 0)
++ vfsnode_clear_dir_list(dir);
++
++out:
++ return (error);
+ }
+
+-static int vboxvfs_advlock(struct vop_advlock_args *ap)
++static int
++vboxfs_rename(struct vop_rename_args *ap)
+ {
+- return 0;
++ struct vnode *fvp;
++ struct vnode *fdvp;
++ struct vnode *tvp;
++ struct vnode *tdvp;
++ struct componentname *fcnp;
++ struct componentname *tcnp;
++ struct vboxfs_node *np;
++ int ret;
++
++ fvp = ap->a_fvp;
++ fdvp = ap->a_fdvp;
++ tvp = ap->a_tvp;
++ tdvp = ap->a_tdvp;
++ fcnp = ap->a_fcnp;
++ tcnp = ap->a_tcnp;
++
++ /* Check for cross-device rename */
++ if ((fvp->v_mount != tdvp->v_mount) ||
++ (tvp && (fvp->v_mount != tvp->v_mount))) {
++ ret = EXDEV;
++ goto out;
++ }
++ np = VP_TO_VBOXFS_NODE(fvp);
++ if (np == NULL)
++ return (0);
++ ret = sfprov_rename(np->vboxfsmp->sf_handle,
++ fcnp->cn_nameptr, tcnp->cn_nameptr, fvp->v_type == VDIR);
++out:
++ if (tdvp == tvp)
++ vrele(tdvp);
++ else
++ vput(tdvp);
++ if (tvp)
++ vput(tvp);
++ vrele(fdvp);
++ vrele(fvp);
++ return (ret);
+ }
+
+-static int vboxvfs_lookup(struct vop_lookup_args *ap)
++static int
++vboxfs_link(struct vop_link_args *ap)
+ {
+- return 0;
++ return (EOPNOTSUPP);
+ }
+
+-static int vboxvfs_inactive(struct vop_inactive_args *ap)
++static int
++vboxfs_symlink(struct vop_symlink_args *ap)
+ {
+- return 0;
++ struct vnode *dvp = ap->a_dvp;
++ struct vnode **vpp = ap->a_vpp;
++ struct componentname *cnp = ap->a_cnp;
++ struct vattr *vap = ap->a_vap;
++ sffs_stat_t stat;
++ char *fullpath = NULL;
++ struct vboxfs_node *dir = VP_TO_VBOXFS_NODE(dvp);
++ int error;
++ struct vboxfs_mnt *vboxfsmp = dir->vboxfsmp;
++
++ MPASS(vap->va_type == VLNK);
++
++ fullpath = sfnode_construct_path(dir, cnp->cn_nameptr, cnp->cn_namelen);
++ error = sfprov_symlink(dir->vboxfsmp->sf_handle, fullpath, ap->a_target, &stat);
++
++ if (error)
++ goto out;
++
++ error = vboxfs_alloc_file(vboxfsmp, fullpath, VLNK, vap->va_mode, dir, cnp->cn_lkflags, vpp);
++
++out:
++ if (fullpath)
++ free(fullpath, M_VBOXVFS);
++
++ if (error == 0)
++ vfsnode_clear_dir_list(dir);
++
++ return (error);
+ }
+
+-static int vboxvfs_reclaim(struct vop_reclaim_args *ap)
++static int
++vboxfs_mkdir(struct vop_mkdir_args *ap)
+ {
+- return 0;
++ struct vnode *dvp = ap->a_dvp;
++ struct vnode **vpp = ap->a_vpp;
++ struct componentname *cnp = ap->a_cnp;
++ struct vattr *vap = ap->a_vap;
++ sffs_stat_t stat;
++ char *fullpath = NULL;
++ struct vboxfs_node *dir = VP_TO_VBOXFS_NODE(dvp);
++ int error;
++ struct vboxfs_mnt *vboxfsmp = dir->vboxfsmp;
++
++ MPASS(vap->va_type == VDIR);
++
++ fullpath = sfnode_construct_path(dir, cnp->cn_nameptr, cnp->cn_namelen);
++ error = sfprov_mkdir(dir->vboxfsmp->sf_handle, fullpath, vap->va_mode,
++ &stat);
++
++ if (error)
++ goto out;
++
++ error = vboxfs_alloc_file(vboxfsmp, fullpath, VDIR, vap->va_mode, dir, cnp->cn_lkflags, vpp);
++
++out:
++ if (fullpath)
++ free(fullpath, M_VBOXVFS);
++
++ if (error == 0)
++ vfsnode_clear_dir_list(dir);
++
++ return (error);
+ }
+
+-static int vboxvfs_getpages(struct vop_getpages_args *ap)
++static int
++vboxfs_rmdir(struct vop_rmdir_args *ap)
+ {
+- return 0;
++ struct vnode *dvp = ap->a_dvp;
++ struct vnode *vp = ap->a_vp;
++ struct vboxfs_node *np, *dir;
++
++ int error;
++
++ MPASS(VOP_ISLOCKED(dvp));
++ MPASS(VOP_ISLOCKED(vp));
++
++ error = 0;
++
++ np = VP_TO_VBOXFS_NODE(vp);
++ dir = VP_TO_VBOXFS_NODE(vp);
++
++ error = sfprov_rmdir(np->vboxfsmp->sf_handle, np->sf_path);
++
++#if 0
++ if (error == ENOENT || error == 0)
++ sfnode_make_stale(np);
++#endif
++
++ if (error == 0)
++ vfsnode_clear_dir_list(dir);
++
++out:
++ return (error);
+ }
+
+-static int vboxvfs_putpages(struct vop_putpages_args *ap)
++static int
++vboxfs_readdir(struct vop_readdir_args *ap)
+ {
+- return 0;
++ int *eofp = ap->a_eofflag;
++ struct vnode *vp = ap->a_vp;
++ struct uio *uio = ap->a_uio;
++ struct vboxfs_node *dir = VP_TO_VBOXFS_NODE(vp);
++ struct vboxfs_node *node = NULL;
++ struct sffs_dirent *dirent = NULL;
++ sffs_dirents_t *cur_buf;
++ off_t offset = 0;
++ off_t orig_off = uio->uio_offset;
++ int error = 0;
++ int dummy_eof;
++
++ if (vp->v_type != VDIR)
++ return (ENOTDIR);
++
++ if (eofp == NULL)
++ eofp = &dummy_eof;
++ *eofp = 0;
++
++ /*
++ * Get the directory entry names from the host. This gets all
++ * entries. These are stored in a linked list of sffs_dirents_t
++ * buffers, each of which contains a list of dirent64_t's.
++ */
++ if (dir->sf_dir_list == NULL) {
++ error = sfprov_readdir(dir->vboxfsmp->sf_handle, dir->sf_path,
++ &dir->sf_dir_list);
++ if (error != 0)
++ goto done;
++ }
++
++ /*
++ * Validate and skip to the desired offset.
++ */
++ cur_buf = dir->sf_dir_list;
++ offset = 0;
++
++ while (cur_buf != NULL && offset + cur_buf->sf_len <= uio->uio_offset) {
++ offset += cur_buf->sf_len;
++ cur_buf = cur_buf->sf_next;
++ }
++
++ if (cur_buf == NULL && offset != uio->uio_offset) {
++ error = EINVAL;
++ goto done;
++ }
++
++ if (cur_buf != NULL && offset != uio->uio_offset) {
++ off_t off = offset;
++ int step;
++ dirent = &cur_buf->sf_entries[0];
++
++ while (off < uio->uio_offset) {
++ if (dirent->sf_off == uio->uio_offset)
++ break;
++ step = sizeof(struct sffs_dirent) + dirent->sf_entry.d_reclen;
++ dirent = (struct sffs_dirent *) (((char *) dirent) + step);
++ off += step;
++ }
++
++ if (off >= uio->uio_offset) {
++ error = EINVAL;
++ goto done;
++ }
++ }
++
++ offset = uio->uio_offset - offset;
++
++ /*
++ * Lookup each of the names, so that we have ino's, and copy to
++ * result buffer.
++ */
++ while (cur_buf != NULL) {
++ if (offset >= cur_buf->sf_len) {
++ cur_buf = cur_buf->sf_next;
++ offset = 0;
++ continue;
++ }
++
++ dirent = (struct sffs_dirent *)
++ (((char *) &cur_buf->sf_entries[0]) + offset);
++ if (dirent->sf_entry.d_reclen > uio->uio_resid)
++ break;
++
++ if (strcmp(dirent->sf_entry.d_name, ".") == 0) {
++ node = dir;
++ } else if (strcmp(dirent->sf_entry.d_name, "..") == 0) {
++ node = dir->sf_parent;
++ if (node == NULL)
++ node = dir;
++ } else {
++#if 0
++ node = vsfnode_lookup(dir, dirent->sf_entry.d_name, VNON,
++ 0, &dirent->sf_stat, vsfnode_cur_time_usec(), NULL);
++ if (node == NULL)
++ panic("sffs_readdir() lookup failed");
++#endif
++ }
++
++ if (node)
++ dirent->sf_entry.d_fileno = node->sf_ino;
++ else
++ dirent->sf_entry.d_fileno = 0xdeadbeef;
++
++ error = uiomove(&dirent->sf_entry, dirent->sf_entry.d_reclen, uio);
++ if (error != 0)
++ break;
++
++ uio->uio_offset = dirent->sf_off;
++ offset += sizeof(struct sffs_dirent) + dirent->sf_entry.d_reclen;
++ }
++
++ if (error == 0 && cur_buf == NULL)
++ *eofp = 1;
++done:
++ if (error != 0)
++ uio->uio_offset = orig_off;
++ return (error);
+ }
+
++static int
++vboxfs_readlink(struct vop_readlink_args *v)
++{
++ struct vnode *vp = v->a_vp;
++ struct uio *uio = v->a_uio;
++
++ int error;
++ struct vboxfs_node *np;
++ void *tmpbuf;
++
++ MPASS(uio->uio_offset == 0);
++ MPASS(vp->v_type == VLNK);
++
++ np = VP_TO_VBOXFS_NODE(vp);
++
++ tmpbuf = contigmalloc(MAXPATHLEN, M_DEVBUF, M_WAITOK, 0, ~0, 1, 0);
++ if (tmpbuf == NULL)
++ return (ENOMEM);
++
++ error = sfprov_readlink(np->vboxfsmp->sf_handle, np->sf_path, tmpbuf,
++ MAXPATHLEN);
++ if (error)
++ goto done;
++
++ error = uiomove(tmpbuf, strlen(tmpbuf), uio);
++
++done:
++ if (tmpbuf)
++ contigfree(tmpbuf, MAXPATHLEN, M_DEVBUF);
++ return (error);
++}
++
++static int
++vboxfs_fsync(struct vop_fsync_args *ap)
++{
++ struct vnode *vp;
++ struct vboxfs_node *np;
++ int ret;
++
++ vp = ap->a_vp;
++ np = VP_TO_VBOXFS_NODE(vp);
++ if (np == NULL)
++ return (0);
++ ret = sfprov_fsync(np->sf_file);
++ return (ret);
++}
++
++static int
++vboxfs_print(struct vop_print_args *ap)
++{
++ struct vnode *vp = ap->a_vp;
++ struct vboxfs_node *np;
++
++ np = VP_TO_VBOXFS_NODE(vp);
++
++ if (np == NULL) {
++ printf("No vboxfs_node data\n");
++ return (0);
++ }
++
++ printf("\tpath = %s, parent = %p", np->sf_path,
++ np->sf_parent ? np->sf_parent : NULL);
++ printf("\n");
++ return (0);
++}
++
++static int
++vboxfs_pathconf(struct vop_pathconf_args *ap)
++{
++ register_t *retval = ap->a_retval;
++ int error = 0;
++
++ switch (ap->a_name) {
++ case _PC_LINK_MAX:
++ *retval = 65535;
++ break;
++ case _PC_NAME_MAX:
++ *retval = NAME_MAX;
++ break;
++ case _PC_PATH_MAX:
++ *retval = PATH_MAX;
++ break;
++ default:
++ error = EINVAL;
++ break;
++ }
++ return (error);
++}
++
++/*
++ * File specific ioctls.
++ */
++static int
++vboxfs_ioctl(struct vop_ioctl_args *ap)
++{
++ return (ENOTTY);
++}
++
++/*
++ * Lookup an entry in a directory and create a new vnode if found.
++ */
++static int
++vboxfs_lookup1(struct vnode *dvp, struct vnode **vpp,
++ struct componentname *cnp)
++{
++ char *nameptr = cnp->cn_nameptr; /* the name of the file or directory */
++ struct vnode *tdp = NULL;
++ struct vboxfs_node *node = VP_TO_VBOXFS_NODE(dvp);
++ struct vboxfs_mnt *vboxfsmp = node->vboxfsmp;
++ u_long nameiop = cnp->cn_nameiop;
++ u_long flags = cnp->cn_flags;
++ sffs_stat_t stat;
++ //long namelen;
++ ino_t id = 0;
++ int ltype, type, error = 0;
++ int lkflags = cnp->cn_lkflags;
++ char *fullpath = NULL;
++
++ *vpp = NULLVP;
++ error = ENOENT;
++ if (cnp->cn_flags & ISDOTDOT) {
++ error = vn_vget_ino_gen(dvp, vboxfs_vn_get_ino_alloc,
++ node->sf_parent, cnp->cn_lkflags, vpp);
++ error = ENOENT;
++ if (error != 0)
++ goto out;
++
++ } else if (cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.') {
++ VREF(dvp);
++ *vpp = dvp;
++ error = 0;
++ } else {
++ mode_t m;
++ type = VNON;
++ fullpath = sfnode_construct_path(node, cnp->cn_nameptr, cnp->cn_namelen);
++ error = sfprov_get_attr(node->vboxfsmp->sf_handle,
++ fullpath, &stat);
++ // stat_time = vsfnode_cur_time_usec();
++
++ m = stat.sf_mode;
++ if (error != 0) {
++ /* The entry was not found in the directory.
++ * This is OK if we are creating or renaming an
++ * entry and are working on the last component of
++ * the path name. */
++ if ((cnp->cn_flags & ISLASTCN) &&
++ (cnp->cn_nameiop == CREATE || \
++ cnp->cn_nameiop == RENAME ||
++ (cnp->cn_nameiop == DELETE &&
++ cnp->cn_flags & DOWHITEOUT &&
++ cnp->cn_flags & ISWHITEOUT))) {
++ error = VOP_ACCESS(dvp, VWRITE, cnp->cn_cred,
++#if __FreeBSD_version < 1400037
++ cnp->cn_thread);
++#else
++ curthread);
++#endif
++ if (error != 0)
++ goto out;
++
++#if __FreeBSD_version < 1400068
++ /* Keep the component name in the buffer for
++ * future uses. */
++ cnp->cn_flags |= SAVENAME;
++#endif
++
++ error = EJUSTRETURN;
++ } else
++ error = ENOENT;
++ }
++ else {
++ if (S_ISDIR(m))
++ type = VDIR;
++ else if (S_ISREG(m))
++ type = VREG;
++ else if (S_ISLNK(m))
++ type = VLNK;
++ error = vboxfs_alloc_file(vboxfsmp, fullpath, type, 0755, node, cnp->cn_lkflags, vpp);
++ }
++ }
++
++ if ((cnp->cn_flags & MAKEENTRY) != 0)
++ cache_enter(dvp, *vpp, cnp);
++out:
++ if (fullpath)
++ free(fullpath, M_VBOXVFS);
++
++ return (error);
++}
++
++static int
++vboxfs_cachedlookup(struct vop_cachedlookup_args *ap)
++{
++ return (vboxfs_lookup1(ap->a_dvp, ap->a_vpp, ap->a_cnp));
++}
++
++static int
++vboxfs_lookup(struct vop_lookup_args *ap)
++{
++ struct vnode *dvp = ap->a_dvp;
++ struct componentname *cnp = ap->a_cnp;
++ struct vboxfs_node *np = VP_TO_VBOXFS_NODE(dvp);
++ struct timespec mtime;
++ int flags = cnp->cn_flags;
++ int error;
++
++ if (dvp->v_type != VDIR)
++ return (ENOTDIR);
++
++ if ((flags & ISLASTCN) && (dvp->v_mount->mnt_flag & MNT_RDONLY) &&
++ (cnp->cn_nameiop == DELETE || cnp->cn_nameiop == RENAME))
++ return (EROFS);
++
++ error = vn_dir_check_exec(dvp, cnp);
++ if (error != 0)
++ return (error);
++
++ /* Check if the directory is unmodified on the host. */
++ mtime = np->sf_stat.sf_mtime;
++ error = vsfnode_update_stat_cache(np);
++ if (error == 0) {
++ if (mtime.tv_sec == np->sf_stat.sf_mtime.tv_sec &&
++ mtime.tv_nsec == np->sf_stat.sf_mtime.tv_nsec)
++ return (vfs_cache_lookup(ap));
++ }
++
++ cache_purge(dvp);
++
++ return (vboxfs_lookup1(ap->a_dvp, ap->a_vpp, ap->a_cnp));
++}
++
++static int
++vboxfs_inactive(struct vop_inactive_args *ap)
++{
++ return (0);
++}
++
++static int
++vboxfs_reclaim(struct vop_reclaim_args *ap)
++{
++ struct vnode *vp;
++ struct vboxfs_node *node;
++ struct vboxfs_mnt *vboxfsmp;
++
++ vp = ap->a_vp;
++ node = VP_TO_VBOXFS_NODE(vp);
++ vboxfsmp = node->vboxfsmp;
++
++ vnode_destroy_vobject(vp);
++ vp->v_object = NULL;
++ cache_purge(vp);
++
++ VBOXFS_NODE_LOCK(node);
++ VBOXFS_ASSERT_ELOCKED(node);
++ vboxfs_free_vp(vp);
++
++ /* If the node referenced by this vnode was deleted by the user,
++ * we must free its associated data structures (now that the vnode
++ * is being reclaimed). */
++ if ((node->sf_vpstate & VBOXFS_VNODE_ALLOCATING) == 0) {
++ node->sf_vpstate = VBOXFS_VNODE_DOOMED;
++ VBOXFS_NODE_UNLOCK(node);
++ vboxfs_free_node(vboxfsmp, node);
++ } else
++ VBOXFS_NODE_UNLOCK(node);
++
++ MPASS(vp->v_data == NULL);
++
++ return (0);
++}
++
++static int
++vboxfs_vptofh(struct vop_vptofh_args *ap)
++{
++
++ return (EOPNOTSUPP);
++}
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
new file mode 100644
index 000000000000..bd5e626ecea2
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
@@ -0,0 +1,29 @@
+--- src/VBox/Additions/x11/vboxmouse/Makefile.kmk.orig 2025-08-13 19:41:22 UTC
++++ src/VBox/Additions/x11/vboxmouse/Makefile.kmk
+@@ -237,10 +237,22 @@ ifdef VBOX_USE_SYSTEM_XORG_HEADERS
+
+
+ ifdef VBOX_USE_SYSTEM_XORG_HEADERS
+- # As vboxmouse_drv is not needed at all for X.Org Server 1.7 and later do not
+- # build it in this case.
+- DLLS := $(filter-out vboxmouse_drv_%,$(DLLS))
+- SYSMODS := $(filter-out vboxmouse_drv%,$(SYSMODS))
++ ifeq ($(KBUILD_TARGET),freebsd)
++ DLLS += vboxmouse_drv_system
++ vboxmouse_drv_system_TEMPLATE = VBOXGUESTR3XORGMOD
++ vboxmouse_drv_system_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
++ vboxmouse_drv_system_INCS := \
++ /usr/local/include/pixman-1 \
++ /usr/local/include/xorg \
++ $(PATH_SUB_CURRENT)
++ vboxmouse_drv_system_SOURCES = \
++ vboxmouse.c
++ else
++ # As vboxmouse_drv is not needed at all for X.Org Server 1.7 and later do not
++ # build it in this case.
++ DLLS := $(filter-out vboxmouse_drv_%,$(DLLS))
++ SYSMODS := $(filter-out vboxmouse_drv%,$(SYSMODS))
++ endif
+ endif
+
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp
new file mode 100644
index 000000000000..de5a81911c03
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp
@@ -0,0 +1,20 @@
+--- src/VBox/Devices/Graphics/DevVGA-SVGA.cpp.orig 2025-08-13 19:47:43 UTC
++++ src/VBox/Devices/Graphics/DevVGA-SVGA.cpp
+@@ -178,7 +178,7 @@
+ # ifdef RT_OS_DARWIN
+ # include "DevVGA-SVGA3d-cocoa.h"
+ # endif
+-# ifdef RT_OS_LINUX
++# if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ # ifdef IN_RING3
+ # include "DevVGA-SVGA3d-glLdr.h"
+ # endif
+@@ -7949,7 +7949,7 @@ static void vmsvgaR3PowerOnDevice(PPDMDEVINS pDevIns,
+ }
+ # endif
+
+-# if defined(VBOX_WITH_VMSVGA3D) && defined(RT_OS_LINUX)
++# if defined(VBOX_WITH_VMSVGA3D) && (defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX))
+ if (pThis->svga.f3DEnabled)
+ {
+ /* The FIFO thread may use X API for accelerated screen output. */
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp
new file mode 100644
index 000000000000..4d74ec64cec0
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-dx11.cpp.orig 2025-08-13 19:47:43 UTC
++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-dx11.cpp
+@@ -3021,7 +3021,7 @@ static DECLCALLBACK(int) vmsvga3dBackInit(PPDMDEVINS p
+ RT_NOREF(pDevIns, pThis);
+
+ int rc;
+-#ifdef RT_OS_LINUX /** @todo Remove, this is currently needed for loading the X11 library in order to call XInitThreads(). */
++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) /** @todo Remove, this is currently needed for loading the X11 library in order to call XInitThreads(). */
+ rc = glLdrInit(pDevIns);
+ if (RT_FAILURE(rc))
+ {
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp
new file mode 100644
index 000000000000..e9ae5d0b71f9
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp
@@ -0,0 +1,29 @@
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp.orig 2025-04-14 17:55:41 UTC
++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp
+@@ -196,7 +196,7 @@ int glLdrInit(PPDMDEVINS pDevIns)
+ pfn_wglDeleteContext = 0;
+ pfn_wglMakeCurrent = 0;
+ pfn_wglShareLists = 0;
+-#elif defined(RT_OS_LINUX)
++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ pfn_XConfigureWindow = 0;
+ pfn_XCloseDisplay = 0;
+ pfn_XCreateColormap = 0;
+@@ -306,7 +306,7 @@ int glLdrInit(PPDMDEVINS pDevIns)
+ GLGETPROC_(wglDeleteContext, "");
+ GLGETPROC_(wglMakeCurrent, "");
+ GLGETPROC_(wglShareLists, "");
+-#elif defined(RT_OS_LINUX)
++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ X11GETPROC_(XConfigureWindow);
+ X11GETPROC_(XCloseDisplay);
+ X11GETPROC_(XCreateColormap);
+@@ -407,7 +407,7 @@ int glLdrInit(PPDMDEVINS pDevIns)
+ GLGETPROC_(glVertexPointer, "");
+ GLGETPROC_(glViewport, "");
+
+-#ifdef RT_OS_LINUX
++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ XInitThreads();
+ #endif
+ return VINF_SUCCESS;
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h
new file mode 100644
index 000000000000..52d86f546033
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h
@@ -0,0 +1,11 @@
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h.orig 2025-04-14 17:55:41 UTC
++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h
+@@ -346,7 +346,7 @@ GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC);
+ GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC);
+ #define wglShareLists pfn_wglShareLists
+
+-#elif defined(RT_OS_LINUX)
++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ /*
+ * GLX
+ */
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp
new file mode 100644
index 000000000000..74106db011ff
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp
@@ -0,0 +1,56 @@
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp.orig 2025-04-14 17:55:42 UTC
++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp
+@@ -1198,7 +1198,7 @@ static DECLCALLBACK(int) vmsvga3dBackTerminate(PVGASTA
+ RTSemEventDestroy(pState->WndRequestSem);
+ #elif defined(RT_OS_DARWIN)
+
+-#elif defined(RT_OS_LINUX)
++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ /* signal to the thread that it is supposed to exit */
+ pState->bTerminate = true;
+ /* wait for it to terminate */
+@@ -3216,7 +3216,7 @@ static DECLCALLBACK(int) vmsvga3dBackGenerateMipmaps(P
+ }
+
+
+-#ifdef RT_OS_LINUX
++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ /**
+ * X11 event handling thread.
+ *
+@@ -3246,7 +3246,7 @@ static DECLCALLBACK(int) vmsvga3dXEventThread(RTTHREAD
+ }
+ return VINF_SUCCESS;
+ }
+-#endif // RT_OS_LINUX
++#endif // RT_OS_FREEBSD || RT_OS_LINUX
+
+
+ /**
+@@ -3484,7 +3484,7 @@ int vmsvga3dContextDefineOgl(PVGASTATECC pThisCC, uint
+ return VINF_SUCCESS;
+ }
+
+-#if defined(RT_OS_LINUX)
++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ /*
+ * HW accelerated graphics output.
+ */
+@@ -3976,7 +3976,7 @@ static DECLCALLBACK(int) vmsvga3dBackSurfaceBlitToScre
+ return VINF_SUCCESS;
+ }
+
+-#else /* !RT_OS_LINUX */
++#else /* !RT_OS_FREEBSD && !RT_OS_LINUX */
+
+ static DECLCALLBACK(int) vmsvga3dBackDefineScreen(PVGASTATE pThis, PVGASTATECC pThisCC, VMSVGASCREENOBJECT *pScreen)
+ {
+@@ -4096,7 +4096,7 @@ static int vmsvga3dContextDestroyOgl(PVGASTATECC pThis
+ AssertRC(rc);
+ #elif defined(RT_OS_DARWIN)
+ vmsvga3dCocoaDestroyViewAndContext(pContext->cocoaView, pContext->cocoaContext);
+-#elif defined(RT_OS_LINUX)
++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ glXMakeCurrent(pState->display, None, NULL);
+ glXDestroyContext(pState->display, pContext->glxContext);
+ XDestroyWindow(pState->display, pContext->window);
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Makefile.kmk
new file mode 100644
index 000000000000..b66a828f5eb2
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Makefile.kmk
@@ -0,0 +1,44 @@
+--- src/VBox/Devices/Makefile.kmk.orig 2025-08-13 19:48:02 UTC
++++ src/VBox/Devices/Makefile.kmk
+@@ -135,6 +135,7 @@ if !defined(VBOX_ONLY_EXTPACKS)
+ VBoxDDU_LDFLAGS.darwin += -framework IOKit
+ endif
+
++ VBoxDDU_LDFLAGS.freebsd = $(VBOX_GCC_NO_UNDEFINED)
+ VBoxDDU_LDFLAGS.linux = $(VBOX_GCC_NO_UNDEFINED)
+ $(call VBOX_SET_VER_INFO_DLL,VBoxDDU,VirtualBox VMM Devices and Drivers Utilities)
+
+@@ -290,6 +291,7 @@ if !defined(VBOX_ONLY_EXTPACKS) && "$(intersects $(KBU
+ -framework SystemConfiguration \
+ -framework AVFoundation \
+ -framework Foundation
++ VBoxDD_LDFLAGS.freebsd = $(VBOX_GCC_NO_UNDEFINED)
+ VBoxDD_LDFLAGS.linux = $(VBOX_GCC_NO_UNDEFINED)
+
+ # --- Tracing bits. ---
+@@ -334,7 +336,7 @@ if !defined(VBOX_ONLY_EXTPACKS) && "$(intersects $(KBU
+ Graphics/DevVGA-SVGA-cmd.cpp
+ endif
+ ifdef VBOX_WITH_VMSVGA3D
+- if1of ($(KBUILD_TARGET), linux win)
++ if1of ($(KBUILD_TARGET), linux win freebsd)
+ # Dynamically load 3D library (opengl32, libGL).
+ # This is a temporary solution. In future the 3D backend will be in a separate library.
+ VBOX_WITH_VMSVGA3D_DYNAMIC_LOAD = 1
+@@ -410,6 +412,7 @@ if !defined(VBOX_ONLY_EXTPACKS) && "$(intersects $(KBU
+ Graphics/DevVGA-SVGA3d-glLdr.cpp
+ else
+ VBoxDD_LIBS.linux += X11 GL
++ VBoxDD_LIBS.freebsd += X11 GL
+ VBoxDD_LIBS.win += $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Opengl32.lib
+ endif
+ VBoxDD_LDFLAGS.darwin += -framework OpenGL
+@@ -1523,6 +1526,8 @@ if defined(VBOX_WITH_VMSVGA3D) && !defined(VBOX_ONLY_E
+ VBoxSVGA3D_INCS = $(VBOX_GRAPHICS_INCS)
+ VBoxSVGA3D_INCS.win := \
+ Graphics/shaderlib/libWineStub/include
++ VBoxSVGA3D_INCS.freebsd := \
++ Graphics/shaderlib/wine/include
+ VBoxSVGA3D_INCS.linux := \
+ Graphics/shaderlib/wine/include
+ VBoxSVGA3D_INCS.darwin := \
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Network_DrvNAT.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Network_DrvNAT.cpp
new file mode 100644
index 000000000000..088c8e1fe3c1
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_Network_DrvNAT.cpp
@@ -0,0 +1,10 @@
+--- src/VBox/Devices/Network/DrvNAT.cpp.orig 2025-08-13 19:48:03 UTC
++++ src/VBox/Devices/Network/DrvNAT.cpp
+@@ -57,6 +57,7 @@
+
+ #ifdef RT_OS_FREEBSD
+ # include <netinet/in.h>
++# include <sys/socket.h>
+ #endif
+
+ #include <iprt/asm.h>
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_PC_ipxe_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_PC_ipxe_Makefile.kmk
new file mode 100644
index 000000000000..fa3a87062c6c
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_PC_ipxe_Makefile.kmk
@@ -0,0 +1,29 @@
+--- src/VBox/Devices/PC/ipxe/Makefile.kmk.orig 2025-08-13 19:48:06 UTC
++++ src/VBox/Devices/PC/ipxe/Makefile.kmk
+@@ -45,7 +45,7 @@ iPxeBiosBin_CLEAN = \
+ iPxeBiosBin_CLEAN = \
+ $(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c \
+
+-if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.amd64 darwin.arm64 linux.arm64 os2.x86 solaris.amd64 win.amd64 win.arm64)
++if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.amd64 darwin.arm64 linux.arm64 os2.x86 solaris.amd64 win.amd64 win.arm64 linux.amd64 freebsd.amd64)
+ $$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c: $(PATH_SUB_CURRENT)/iPxeBiosBin.rom $(VBOX_BIN2C) | $$(dir $$@)
+ $(call MSG_TOOL,bin2c,iPxeBiosBin,$<,$@)
+ $(QUIET)$(VBOX_BIN2C) -min 32 -max 56 -mask 0x1ff -export NetBiosBinary $< $@
+@@ -131,7 +131,7 @@ endif
+ -falign-loops=1 \
+ -Os \
+ -falign-functions=1 \
+- -mpreferred-stack-boundary=2 \
++ -mstack-alignment=2 \
+ -mregparm=3 \
+ -mrtd \
+ -freg-struct-return \
+@@ -154,7 +154,7 @@ endif
+ -falign-jumps=1 \
+ -falign-loops=1 \
+ -falign-functions=1 \
+- -mpreferred-stack-boundary=2 \
++ -mstack-alignment=2 \
+ -mregparm=3 \
+ -mrtd \
+ -freg-struct-return \
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_USB_freebsd_USBProxyDevice-freebsd.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_USB_freebsd_USBProxyDevice-freebsd.cpp
new file mode 100644
index 000000000000..8258164501b2
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Devices_USB_freebsd_USBProxyDevice-freebsd.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Devices/USB/freebsd/USBProxyDevice-freebsd.cpp.orig 2025-08-13 19:49:01 UTC
++++ src/VBox/Devices/USB/freebsd/USBProxyDevice-freebsd.cpp
+@@ -67,7 +67,7 @@
+ #include "../USBProxyDevice.h"
+
+ /** Maximum endpoints supported. */
+-#define USBFBSD_MAXENDPOINTS 127
++#define USBFBSD_MAXENDPOINTS 126
+ #define USBFBSD_MAXFRAMES 56
+
+ /** This really needs to be defined in vusb.h! */
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp
new file mode 100644
index 000000000000..d4bae4a6c016
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp
@@ -0,0 +1,58 @@
+--- src/VBox/ExtPacks/VNC/VBoxVNC.cpp.orig 2025-08-13 19:50:02 UTC
++++ src/VBox/ExtPacks/VNC/VBoxVNC.cpp
+@@ -55,7 +55,7 @@
+
+ #ifdef LIBVNCSERVER_IPv6
+ // enable manually!
+-// #define VBOX_USE_IPV6
++#define VBOX_USE_IPV6
+ #endif
+
+
+@@ -431,7 +431,7 @@ DECLCALLBACK(int) VNCServerImpl::VRDEEnableConnections
+
+ // get address
+ char *pszTCPAddress = (char *)RTMemTmpAllocZ(VNC_ADDRESS_OPTION_MAX);
+- rc = instance->mCallbacks->VRDECallbackProperty(instance->mCallback,
++ int rc = instance->mCallbacks->VRDECallbackProperty(instance->mCallback,
+ VRDE_QP_NETWORK_ADDRESS,
+ pszTCPAddress,
+ VNC_ADDRESS_OPTION_MAX,
+@@ -592,19 +592,35 @@ DECLCALLBACK(int) VNCServerImpl::VRDEEnableConnections
+ pszServerAddress6 = szIPv6ListenAll;
+ }
+
+- if (pszVNCPort4 && uServerPort4 == 0)
++ if (strlen(pszVNCPort4) > 0 && uServerPort4 == 0)
+ {
+ rc = RTStrToUInt32Ex(pszVNCPort4, NULL, 10, &uServerPort4);
+ if (!RT_SUCCESS(rc) || uServerPort4 > 65535)
+ uServerPort4 = 0;
+ }
+
+- if (pszVNCPort6 && uServerPort6 == 0)
++ if (strlen(pszVNCPort6) > 0 && uServerPort6 == 0)
+ {
+ rc = RTStrToUInt32Ex(pszVNCPort6, NULL, 10, &uServerPort6);
+ if (!RT_SUCCESS(rc) || uServerPort6 > 65535)
+ uServerPort6 = 0;
+ }
++
++/* Backward compatibility with set port in "TCP/Ports" only { */
++ if (uServerPort4 == 0 && strlen(pszTCPPort) > 0)
++ {
++ rc = RTStrToUInt32Ex(pszTCPPort, NULL, 10, &uServerPort4);
++ if (!RT_SUCCESS(rc) || uServerPort4 > 65535)
++ uServerPort4 = 0;
++ }
++
++ if (uServerPort6 == 0 && strlen(pszTCPPort) > 0)
++ {
++ rc = RTStrToUInt32Ex(pszTCPPort, NULL, 10, &uServerPort6);
++ if (!RT_SUCCESS(rc) || uServerPort6 > 65535)
++ uServerPort6 = 0;
++ }
++/* } */
+
+ if (uServerPort4 == 0 || uServerPort6 == 0)
+ vncServer->autoPort = 1;
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp
new file mode 100644
index 000000000000..ed1f32e0ce97
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp.orig 2025-08-13 19:50:04 UTC
++++ src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp
+@@ -63,7 +63,7 @@ using namespace com;
+ # include <iprt/process.h>
+ #endif
+
+-#if defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) || defined(RT_OS_SOLARIS)
++#if defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD)
+ # include <cerrno>
+ #endif
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp
new file mode 100644
index 000000000000..838da1e0f15d
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp
@@ -0,0 +1,29 @@
+--- src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp.orig 2025-08-13 19:50:05 UTC
++++ src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp
+@@ -151,7 +151,7 @@ enum
+ MODIFYVM_UARTMODE,
+ MODIFYVM_UARTTYPE,
+ MODIFYVM_UART,
+-#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS)
++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS)
+ MODIFYVM_LPTMODE,
+ MODIFYVM_LPT,
+ #endif
+@@ -393,7 +393,7 @@ static const RTGETOPTDEF g_aModifyVMOptions[] =
+ OPT2("--uart-mode", "--uartmode", MODIFYVM_UARTMODE, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX),
+ OPT2("--uart-type", "--uarttype", MODIFYVM_UARTTYPE, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX),
+ OPT1("--uart", MODIFYVM_UART, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX),
+-#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS)
++#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) || defined(RT_OS_FREEBSD)
+ OPT2("--lpt-mode", "--lptmode", MODIFYVM_LPTMODE, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX),
+ OPT1("--lpt", MODIFYVM_LPT, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX),
+ #endif
+@@ -2680,7 +2680,7 @@ RTEXITCODE handleModifyVM(HandlerArg *a)
+ break;
+ }
+
+-#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS)
++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS)
+ case MODIFYVM_LPTMODE:
+ {
+ ComPtr<IParallelPort> lpt;
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxManager.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxManager.cpp
new file mode 100644
index 000000000000..7f18eb80356b
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxManager.cpp
@@ -0,0 +1,46 @@
+--- src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp.orig 2025-08-13 19:50:55 UTC
++++ src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
+@@ -2402,6 +2402,9 @@ void UIVirtualBoxManager::prepare()
+ qApp->installEventFilter(this);
+ #endif
+
++ /* Prepare notification-center invisibvle way: */
++ prepareNotificationCenter();
++
+ /* Cache media data early if necessary: */
+ if (uiCommon().agressiveCaching())
+ gpMediumEnumerator->enumerateMedia();
+@@ -2446,6 +2449,12 @@ void UIVirtualBoxManager::prepare()
+ #endif /* VBOX_GUI_WITH_NETWORK_MANAGER && VBOX_WITH_UPDATE_REQUEST */
+ }
+
++void UIVirtualBoxManager::prepareNotificationCenter()
++{
++ UINotificationCenter::create();
++
++}
++
+ void UIVirtualBoxManager::prepareCloudMachineManager()
+ {
+ UICloudMachineManager::create();
+@@ -2805,6 +2814,12 @@ void UIVirtualBoxManager::cleanupCloudMachineManager()
+ UICloudMachineManager::destroy();
+ }
+
++void UIVirtualBoxManager::cleanupNotificationCenter()
++{
++ UINotificationCenter::destroy();
++
++}
++
+ void UIVirtualBoxManager::cleanup()
+ {
+ /* Ask sub-dialogs to commit data: */
+@@ -2814,6 +2829,7 @@ void UIVirtualBoxManager::cleanup()
+ cleanupWidgets();
+ cleanupMenuBar();
+ cleanupCloudMachineManager();
++ cleanupNotificationCenter();
+ }
+
+ UIVirtualMachineItem *UIVirtualBoxManager::currentItem() const
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxManager.h b/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxManager.h
new file mode 100644
index 000000000000..80daea0c318c
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxManager.h
@@ -0,0 +1,20 @@
+--- src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h.orig 2025-08-13 19:50:55 UTC
++++ src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
+@@ -341,6 +341,8 @@ private slots: (private)
+ * @{ */
+ /** Prepares window. */
+ void prepare();
++ /** Prepares notification-center. */
++ void prepareNotificationCenter();
+ /** Prepares cloud machine manager. */
+ void prepareCloudMachineManager();
+ /** Prepares icon. */
+@@ -366,6 +368,8 @@ private slots: (private)
+ void cleanupMenuBar();
+ /** Cleanups cloud machine manager. */
+ void cleanupCloudMachineManager();
++ /** Cleanups notification-center. */
++ void cleanupNotificationCenter();
+ /** Cleanups window. */
+ void cleanup();
+ /** @} */
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxWidget.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxWidget.cpp
new file mode 100644
index 000000000000..52f736783c17
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Frontends_VirtualBox_src_manager_UIVirtualBoxWidget.cpp
@@ -0,0 +1,24 @@
+--- src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp.orig 2025-08-13 19:50:55 UTC
++++ src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp
+@@ -399,8 +399,8 @@ void UIVirtualBoxWidget::prepareWidgets()
+ }
+ }
+
+- /* Create notification-center: */
+- UINotificationCenter::create(this);
++ /* Reparent notification-center: */
++ gpNotificationCenter->setParent(this);
+
+ /* Update toolbar finally: */
+ updateToolbar();
+@@ -746,8 +746,8 @@ void UIVirtualBoxWidget::cleanup()
+
+ void UIVirtualBoxWidget::cleanup()
+ {
+- /* Destroy notification-center: */
+- UINotificationCenter::destroy();
++ /* Reparent notification-center: */
++ gpNotificationCenter->setParent(0);
+ }
+
+ UIGlobalToolsWidget *UIVirtualBoxWidget::globalToolsWidget() const
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_SUPDrv.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_SUPDrv.cpp
new file mode 100644
index 000000000000..9c25da533123
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_SUPDrv.cpp
@@ -0,0 +1,13 @@
+--- src/VBox/HostDrivers/Support/SUPDrv.cpp.orig 2025-08-13 19:51:08 UTC
++++ src/VBox/HostDrivers/Support/SUPDrv.cpp
+@@ -322,8 +322,8 @@ static SUPFUNC g_aFunctions[] =
+ SUPEXP_STK_BACK( 2, SUPR0PageFree),
+ SUPEXP_STK_BACK( 6, SUPR0PageMapKernel),
+ SUPEXP_STK_BACK( 6, SUPR0PageProtect),
+-#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD)
+- SUPEXP_STK_OKAY( 2, SUPR0HCPhysToVirt), /* only-linux, only-solaris, only-freebsd */
++#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS)
++ SUPEXP_STK_OKAY( 2, SUPR0HCPhysToVirt), /* only-linux, only-solaris */
+ #endif
+ SUPEXP_STK_BACK( 2, SUPR0PrintfV),
+ SUPEXP_STK_BACK( 1, SUPR0GetSessionGVM),
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_SUPDrvInternal.h b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_SUPDrvInternal.h
new file mode 100644
index 000000000000..df4d3cd76817
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_SUPDrvInternal.h
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/Support/SUPDrvInternal.h.orig 2025-08-13 19:51:08 UTC
++++ src/VBox/HostDrivers/Support/SUPDrvInternal.h
+@@ -368,7 +368,7 @@
+ # define SUPDRV_WITHOUT_MSR_PROBER
+ #endif
+
+-#if 1
++#if 0
+ /** @def SUPDRV_USE_TSC_DELTA_THREAD
+ * Use a dedicated kernel thread to service TSC-delta measurement requests.
+ * @todo Test on servers with many CPUs and sockets. */
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_Makefile b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_Makefile
new file mode 100644
index 000000000000..f0d605f2addd
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_Makefile
@@ -0,0 +1,30 @@
+--- src/VBox/HostDrivers/Support/freebsd/Makefile.orig 2025-08-13 19:51:09 UTC
++++ src/VBox/HostDrivers/Support/freebsd/Makefile
+@@ -93,6 +93,7 @@ SRCS += \
+ assert.c \
+ handletable.c \
+ handletablectx.c \
++ handletablesimple.c \
+ once.c \
+ term.c \
+ thread.c
+@@ -117,7 +118,8 @@ SRCS += \
+ strprintf2-ellipsis.c \
+ strtonum.c \
+ memchr.c \
+- stringalloc.c
++ stringalloc.c \
++ utf-8.c
+
+ .PATH: ${.CURDIR}/common/rand
+ SRCS += \
+@@ -163,7 +165,8 @@ SRCS += \
+ rtStrFormatKernelAddress-generic.c \
+ errvars-generic.c \
+ mppresent-generic.c \
+- timer-generic.c
++ timer-generic.c \
++ system-page-size-generic.c
+
+ .PATH: ${.CURDIR}/r0drv
+ SRCS += \
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c
new file mode 100644
index 000000000000..7faa07739f14
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c
@@ -0,0 +1,234 @@
+--- src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c.orig 2025-01-21 14:06:14 UTC
++++ src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c
+@@ -44,9 +44,13 @@
+ #include <sys/fcntl.h>
+ #include <sys/conf.h>
+ #include <sys/uio.h>
++#include <vm/vm.h>
+ #include <vm/pmap.h> /* for pmap_map() */
++#include <sys/mutex.h>
++#include <sys/smp.h> /* mp_maxcpus */
+
+ #include "../SUPDrvInternal.h"
++#include "freebsd/the-freebsd-kernel.h"
+ #include <VBox/version.h>
+ #include <iprt/initterm.h>
+ #include <iprt/string.h>
+@@ -58,7 +62,15 @@
+ #include <iprt/alloc.h>
+ #include <iprt/err.h>
+ #include <iprt/asm.h>
++#include <iprt/x86.h>
+
++
++#ifdef VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV
++# include <machine/cpufunc.h>
++# include <machine/md_var.h>
++# include <machine/specialreg.h>
++#endif
++
+ #ifdef VBOX_WITH_HARDENING
+ # define VBOXDRV_PERM 0600
+ #else
+@@ -77,7 +89,9 @@ static d_ioctl_t VBoxDrvFreeBSDIOCtl;
+ static d_open_t VBoxDrvFreeBSDOpenSys;
+ static void vboxdrvFreeBSDDtr(void *pvData);
+ static d_ioctl_t VBoxDrvFreeBSDIOCtl;
++static d_ioctl_t VBoxDrvFreeBSDIOCtlSMAP;
+ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSession, u_long ulCmd, caddr_t pvData, struct thread *pTd);
++static bool VBoxDrvFreeBSDCpuHasSMAP(void);
+
+
+ /*********************************************************************************************************************************
+@@ -94,7 +108,8 @@ static moduledata_t g_VBoxDrvFreeBSDModule =
+ };
+
+ /** Declare the module as a pseudo device. */
+-DECLARE_MODULE(vboxdrv, g_VBoxDrvFreeBSDModule, SI_SUB_PSEUDO, SI_ORDER_ANY);
++#define KERNEL_RELBRANCHEND (roundup(__FreeBSD_version, 500) - 1)
++DECLARE_MODULE_WITH_MAXVER(vboxdrv, g_VBoxDrvFreeBSDModule, SI_SUB_PSEUDO, SI_ORDER_ANY, KERNEL_RELBRANCHEND);
+ MODULE_VERSION(vboxdrv, 1);
+
+ /**
+@@ -141,6 +156,13 @@ static int VBoxDrvFreeBSDModuleEvent(struct module *pM
+ static int VBoxDrvFreeBSDModuleEvent(struct module *pMod, int enmEventType, void *pvArg)
+ {
+ int rc;
++
++ /* Refuse to load if mp_maxcpus is wrong */
++ if (MAXCPU != mp_maxcpus) {
++ printf("vboxdrv: MAXCPU != mp_maxcpus (%d != %d)\n", MAXCPU, mp_maxcpus);
++ return EINVAL;
++ }
++
+ switch (enmEventType)
+ {
+ case MOD_LOAD:
+@@ -183,6 +205,13 @@ static int VBoxDrvFreeBSDLoad(void)
+ rc = supdrvInitDevExt(&g_VBoxDrvFreeBSDDevExt, sizeof(SUPDRVSESSION));
+ if (RT_SUCCESS(rc))
+ {
++ if (VBoxDrvFreeBSDCpuHasSMAP())
++ {
++ LogRel(("disabling SMAP for VBoxDrvFreeBSDIOCtl\n"));
++ g_VBoxDrvFreeBSDChrDevSwSys.d_ioctl = VBoxDrvFreeBSDIOCtlSMAP;
++ g_VBoxDrvFreeBSDChrDevSwUsr.d_ioctl = VBoxDrvFreeBSDIOCtlSMAP;
++ }
++
+ /*
+ * Configure character devices. Add symbolic links for compatibility.
+ */
+@@ -322,7 +351,45 @@ static int VBoxDrvFreeBSDIOCtl(struct cdev *pDev, u_lo
+ return VBoxDrvFreeBSDIOCtlSlow(pSession, ulCmd, pvData, pTd);
+ }
+
++/**
++ * Alternative Device I/O Control entry point on hosts with SMAP support.
++ *
++ * @returns depends...
++ * @param pDev The device.
++ * @param ulCmd The command.
++ * @param pvData Pointer to the data.
++ * @param fFile The file descriptor flags.
++ * @param pTd The calling thread.
++ */
++static int VBoxDrvFreeBSDIOCtlSMAP(struct cdev *pDev, u_long ulCmd, caddr_t pvData, int fFile, struct thread *pTd)
++{
++ /*
++ * Allow VBox R0 code to touch R3 memory. Setting the AC bit disables the
++ * SMAP check.
++ */
++ RTCCUINTREG fSavedEfl = ASMAddFlags(X86_EFL_AC);
+
++ int rc = VBoxDrvFreeBSDIOCtl(pDev, ulCmd, pvData, fFile, pTd);
++
++#ifdef VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV
++ /*
++ * Before we restore AC and the rest of EFLAGS, check if the IOCtl handler code
++ * accidentially modified it or some other important flag.
++ */
++ if (RT_UNLIKELY( (ASMGetFlags() & (X86_EFL_AC | X86_EFL_IF | X86_EFL_DF | X86_EFL_IOPL))
++ != ((fSavedEfl & (X86_EFL_AC | X86_EFL_IF | X86_EFL_DF | X86_EFL_IOPL)) | X86_EFL_AC) ))
++ {
++ char szTmp[48];
++ RTStrPrintf(szTmp, sizeof(szTmp), "ulCmd=%#x: %#x->%#x!", ulCmd, (uint32_t)fSavedEfl, (uint32_t)ASMGetFlags());
++ supdrvBadContext(&g_VBoxDrvFreeBSDDevExt, "SUPDrv-freebsd.c", __LINE__, szTmp);
++ }
++#endif
++
++ ASMSetFlags(fSavedEfl);
++ return rc;
++}
++
++
+ /**
+ * Deal with the 'slow' I/O control requests.
+ *
+@@ -372,11 +439,10 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes
+ */
+ SUPREQHDR Hdr;
+ pvUser = *(void **)pvData;
+- int rc = copyin(pvUser, &Hdr, sizeof(Hdr));
+- if (RT_UNLIKELY(rc))
++ if (RT_FAILURE(RTR0MemUserCopyFrom(&Hdr, (uintptr_t)pvUser, sizeof(Hdr))))
+ {
+- OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyin(%p,Hdr,) -> %#x; ulCmd=%#lx\n", pvUser, rc, ulCmd));
+- return rc;
++ OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyin(%p,Hdr,); ulCmd=%#lx\n", pvUser, ulCmd));
++ return EFAULT;
+ }
+ if (RT_UNLIKELY((Hdr.fFlags & SUPREQHDR_FLAGS_MAGIC_MASK) != SUPREQHDR_FLAGS_MAGIC))
+ {
+@@ -401,13 +467,12 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes
+ OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: failed to allocate buffer of %d bytes; ulCmd=%#lx\n", cbReq, ulCmd));
+ return ENOMEM;
+ }
+- rc = copyin(pvUser, pHdr, Hdr.cbIn);
+- if (RT_UNLIKELY(rc))
++ if (RT_FAILURE(RTR0MemUserCopyFrom(pHdr, (uintptr_t)pvUser, Hdr.cbIn)))
+ {
+- OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyin(%p,%p,%#x) -> %#x; ulCmd=%#lx\n",
+- pvUser, pHdr, Hdr.cbIn, rc, ulCmd));
++ OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyin(%p,%p,%#x); ulCmd=%#lx\n",
++ pvUser, pHdr, Hdr.cbIn, ulCmd));
+ RTMemTmpFree(pHdr);
+- return rc;
++ return EFAULT;
+ }
+ if (Hdr.cbIn < cbReq)
+ RT_BZERO((uint8_t *)pHdr + Hdr.cbIn, cbReq - Hdr.cbIn);
+@@ -435,9 +500,8 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes
+ OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: too much output! %#x > %#x; uCmd=%#lx!\n", cbOut, cbReq, ulCmd));
+ cbOut = cbReq;
+ }
+- rc = copyout(pHdr, pvUser, cbOut);
+- if (RT_UNLIKELY(rc))
+- OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyout(%p,%p,%#x) -> %d; uCmd=%#lx!\n", pHdr, pvUser, cbOut, rc, ulCmd));
++ if (RT_FAILURE(RTR0MemUserCopyTo((uintptr_t)pvUser, pHdr, cbOut)))
++ OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyout(%p,%p,%#x); uCmd=%#lx!\n", pHdr, pvUser, cbOut, ulCmd));
+
+ Log(("VBoxDrvFreeBSDIOCtlSlow: returns %d / %d ulCmd=%lx\n", 0, pHdr->rc, ulCmd));
+
+@@ -540,8 +604,7 @@ bool VBOXCALL supdrvOSAreCpusOfflinedOnSuspend(void)
+
+ bool VBOXCALL supdrvOSAreCpusOfflinedOnSuspend(void)
+ {
+- /** @todo verify this. */
+- return false;
++ return true;
+ }
+
+
+@@ -637,31 +700,44 @@ int VBOXCALL supdrvOSMsrProberModify(RTCPUID idCpu,
+ #endif /* SUPDRV_WITH_MSR_PROBER */
+
+
+-#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_ARM64)
+-SUPR0DECL(int) SUPR0HCPhysToVirt(RTHCPHYS HCPhys, void **ppv)
++/**
++ * Check if the CPU has SMAP support.
++ */
++static bool VBoxDrvFreeBSDCpuHasSMAP(void)
+ {
+- AssertReturn(!(HCPhys & PAGE_OFFSET_MASK), VERR_INVALID_POINTER);
+- AssertReturn(HCPhys != NIL_RTHCPHYS, VERR_INVALID_POINTER);
+- *ppv = (void *)(uintptr_t)pmap_map(NULL, HCPhys, (HCPhys | PAGE_OFFSET_MASK) + 1, VM_PROT_WRITE | VM_PROT_READ);
+- return VINF_SUCCESS;
+-}
++#ifdef VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV
++ if ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0)
++ return true;
+ #endif
++ return false;
++}
+
+
+ SUPR0DECL(int) SUPR0PrintfV(const char *pszFormat, va_list va)
+ {
+ char szMsg[256];
++ IPRT_FREEBSD_SAVE_EFL_AC();
++
+ RTStrPrintfV(szMsg, sizeof(szMsg), pszFormat, va);
+ szMsg[sizeof(szMsg) - 1] = '\0';
+
+ printf("%s", szMsg);
++
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return 0;
+ }
+
+
+ SUPR0DECL(uint32_t) SUPR0GetKernelFeatures(void)
+ {
+- return 0;
++ uint32_t fFlags = 0;
++#ifdef VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV
++ if (g_VBoxDrvFreeBSDChrDevSwSys.d_ioctl == VBoxDrvFreeBSDIOCtlSMAP)
++ fFlags |= SUPKERNELFEATURES_SMAP;
++ else
++ Assert(!(ASMGetCR4() & X86_CR4_SMAP));
++#endif
++ return fFlags;
+ }
+
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPLib-freebsd.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPLib-freebsd.cpp
new file mode 100644
index 000000000000..11813244f938
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPLib-freebsd.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp.orig 2025-08-13 19:51:09 UTC
++++ src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp
+@@ -88,7 +88,7 @@ DECLHIDDEN(int) suplibOsInit(PSUPLIBDATA pThis, bool f
+ /*
+ * Try open the BSD device.
+ */
+- const char * const *pszDeviceNm = fFlags & SUPR3INIT_F_UNRESTRICTED ? DEVICE_NAME_SYS : DEVICE_NAME_USR;
++ const char * pszDeviceNm = fFlags & SUPR3INIT_F_UNRESTRICTED ? DEVICE_NAME_SYS : DEVICE_NAME_USR;
+ int hDevice = open(pszDeviceNm, O_RDWR, 0);
+ if (hDevice < 0)
+ {
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_files__vboxdrv b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_files__vboxdrv
new file mode 100644
index 000000000000..013a5e605910
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_Support_freebsd_files__vboxdrv
@@ -0,0 +1,34 @@
+--- src/VBox/HostDrivers/Support/freebsd/files_vboxdrv.orig 2025-08-13 19:51:09 UTC
++++ src/VBox/HostDrivers/Support/freebsd/files_vboxdrv
+@@ -71,6 +71,7 @@ FILES_VBOXDRV_NOBIN=" \
+ ${PATH_ROOT}/include/iprt/stdarg.h=>include/iprt/stdarg.h \
+ ${PATH_ROOT}/include/iprt/stdint.h=>include/iprt/stdint.h \
+ ${PATH_ROOT}/include/iprt/string.h=>include/iprt/string.h \
++ ${PATH_ROOT}/include/iprt/system.h=>include/iprt/system.h \
+ ${PATH_ROOT}/include/iprt/thread.h=>include/iprt/thread.h \
+ ${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \
+ ${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \
+@@ -133,6 +134,7 @@ FILES_VBOXDRV_NOBIN=" \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.cpp=>common/misc/handletable.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.h=>common/misc/handletable.h \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablectx.cpp=>common/misc/handletablectx.c \
++ ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablesimple.cpp=>common/misc/handletablesimple.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/once.cpp=>common/misc/once.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/term.cpp=>common/misc/term.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/thread.cpp=>common/misc/thread.c \
+@@ -154,6 +156,7 @@ FILES_VBOXDRV_NOBIN=" \
+ ${PATH_ROOT}/src/VBox/Runtime/common/string/strprintf2-ellipsis.cpp=>common/string/strprintf2-ellipsis.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/string/strtonum.cpp=>common/string/strtonum.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/string/memchr.cpp=>common/string/memchr.c \
++ ${PATH_ROOT}/src/VBox/Runtime/common/string/utf-8.cpp=>common/string/utf-8.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/string/stringalloc.cpp=>common/string/stringalloc.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/rand/rand.cpp=>common/rand/rand.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/rand/randadv.cpp=>common/rand/randadv.c \
+@@ -200,6 +203,7 @@ FILES_VBOXDRV_NOBIN=" \
+ ${PATH_ROOT}/src/VBox/Runtime/generic/RTMpOnPair-generic.cpp=>generic/RTMpOnPair-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/generic/errvars-generic.cpp=>generic/errvars-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/generic/mppresent-generic.cpp=>generic/mppresent-generic.c \
++ ${PATH_ROOT}/src/VBox/Runtime/generic/system-page-size-generic.cpp=>generic/system-page-size-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/generic/timer-generic.cpp=>generic/timer-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/generic/uuid-generic.cpp=>generic/uuid-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-r0drv.cpp=>r0drv/alloc-r0drv.c \
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile
new file mode 100644
index 000000000000..7275c942126d
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/VBoxNetAdp/freebsd/Makefile.orig 2025-08-13 19:51:10 UTC
++++ src/VBox/HostDrivers/VBoxNetAdp/freebsd/Makefile
+@@ -36,7 +36,7 @@ KMOD = vboxnetadp
+
+ KMOD = vboxnetadp
+
+-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVIMAGE
++CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS -DVIMAGE -Iinclude -I. -Ir0drv -w
+
+ .if (${MACHINE_ARCH} == "i386")
+ CFLAGS += -DRT_ARCH_X86
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_VBoxNetAdp-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_VBoxNetAdp-freebsd.c
new file mode 100644
index 000000000000..8da432449fe1
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_VBoxNetAdp-freebsd.c
@@ -0,0 +1,147 @@
+--- src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c.orig 2024-01-11 12:25:08 UTC
++++ src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c
+@@ -216,7 +216,11 @@ static void VBoxNetAdpFreeBSDNetinit(void *priv)
+ PVBOXNETADP pThis = priv;
+ struct ifnet *ifp = pThis->u.s.ifp;
+
++#if __FreeBSD_version >= 1500000
++ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
++#else
+ ifp->if_drv_flags |= IFF_DRV_RUNNING;
++#endif
+ }
+
+ /**
+@@ -226,25 +230,46 @@ static void VBoxNetAdpFreeBSDNetstart(struct ifnet *if
+ */
+ static void VBoxNetAdpFreeBSDNetstart(struct ifnet *ifp)
+ {
++#if __FreeBSD_version >= 1500000
++ PVBOXNETADP pThis = if_getsoftc(ifp);
++#else
+ PVBOXNETADP pThis = ifp->if_softc;
++#endif
+ struct mbuf *m;
+
++#if __FreeBSD_version >= 1500000
++ if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING)
++#else
+ if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING)
++#endif
+ return;
+
++#if __FreeBSD_version >= 1500000
++ if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
++ while (!if_sendq_empty(ifp))
++#else
+ ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+ while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
++#endif
+ {
+ #if __FreeBSD_version >= 1100036
+ if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1);
+ #else
+ ifp->if_opackets++;
+ #endif
++#if __FreeBSD_version >= 1500000
++ m = if_dequeue(ifp);
++#else
+ IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
++#endif
+ BPF_MTAP(ifp, m);
+ m_freem(m);
+ }
++#if __FreeBSD_version >= 1500000
++ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
++#else
+ ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
++#endif
+ }
+
+ /**
+@@ -257,6 +282,18 @@ static int VBoxNetAdpFreeBSDNetioctl(struct ifnet *ifp
+ switch (cmd)
+ {
+ case SIOCSIFFLAGS:
++#if __FreeBSD_version >= 1500000
++ if (if_getflags(ifp) & IFF_UP)
++ {
++ if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING))
++ if_init(ifp, if_getsoftc(ifp));
++ }
++ else
++ {
++ if (if_getdrvflags(ifp) & IFF_DRV_RUNNING)
++ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
++ }
++#else
+ if (ifp->if_flags & IFF_UP)
+ {
+ if (!(ifp->if_drv_flags & IFF_DRV_RUNNING))
+@@ -267,6 +304,7 @@ static int VBoxNetAdpFreeBSDNetioctl(struct ifnet *ifp
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+ ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ }
++#endif
+ break;
+ case SIOCGIFMEDIA:
+ {
+@@ -301,7 +339,11 @@ int vboxNetAdpOsCreate(PVBOXNETADP pThis, PCRTMAC pMac
+
+ int vboxNetAdpOsCreate(PVBOXNETADP pThis, PCRTMAC pMac)
+ {
++#if __FreeBSD_version >= 1500000
++ if_t ifp;
++#else
+ struct ifnet *ifp;
++#endif
+
+ VBOXCURVNET_SET_FROM_UCRED();
+ ifp = if_alloc(IFT_ETHER);
+@@ -309,6 +351,16 @@ int vboxNetAdpOsCreate(PVBOXNETADP pThis, PCRTMAC pMac
+ return VERR_NO_MEMORY;
+
+ if_initname(ifp, VBOXNETADP_NAME, pThis->iUnit);
++#if __FreeBSD_version >= 1500000
++ if_setsoftc(ifp, pThis);
++ if_setmtu(ifp, ETHERMTU);
++ if_setflagbits(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, 0);
++ if_setioctlfn(ifp, VBoxNetAdpFreeBSDNetioctl);
++ if_setstartfn(ifp, VBoxNetAdpFreeBSDNetstart);
++ if_setinitfn(ifp, VBoxNetAdpFreeBSDNetinit);
++ if_setsendqlen(ifp, IFQ_MAXLEN);
++ if_setsendqready(ifp);
++#else
+ ifp->if_softc = pThis;
+ ifp->if_mtu = ETHERMTU;
+ ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
+@@ -318,10 +370,17 @@ int vboxNetAdpOsCreate(PVBOXNETADP pThis, PCRTMAC pMac
+ IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN);
+ ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN;
+ IFQ_SET_READY(&ifp->if_snd);
++#endif
+ ether_ifattach(ifp, (void *)pMac);
++#if __FreeBSD_version >= 1500000
++ (void)if_setbaudrate(ifp, 0);
++
++ strncpy(pThis->szName, if_name(ifp), VBOXNETADP_MAX_NAME_LEN);
++#else
+ ifp->if_baudrate = 0;
+
+ strncpy(pThis->szName, ifp->if_xname, VBOXNETADP_MAX_NAME_LEN);
++#endif
+ pThis->u.s.ifp = ifp;
+ VBOXCURVNET_RESTORE();
+ return 0;
+@@ -332,7 +391,11 @@ void vboxNetAdpOsDestroy(PVBOXNETADP pThis)
+ struct ifnet *ifp;
+
+ ifp = pThis->u.s.ifp;
++#if __FreeBSD_version >= 1500000
++ VBOXCURVNET_SET(if_getvnet(ifp));
++#else
+ VBOXCURVNET_SET(ifp->if_vnet);
++#endif
+ ether_ifdetach(ifp);
+ if_free(ifp);
+ VBOXCURVNET_RESTORE();
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk
new file mode 100644
index 000000000000..1bf366252bc2
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk.orig 2025-08-13 19:51:11 UTC
++++ src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk
+@@ -337,7 +337,7 @@ ifeq ($(KBUILD_TARGET),freebsd)
+ $(QUIET)$(RM) -f -- $@
+ $(QUIET)$(CP) -f $< $@
+ ifndef VBOX_WITH_HARDENING
+- $(QUIET)$(SED) -e "s;VBOX_WITH_HARDENING;;g" --output $@.tmp $@
++ $(QUIET)$(SED) -e "s;-DVBOX_WITH_HARDENING;;g" --output $@.tmp $@
+ ${QUIET}$(MV) -f $@.tmp $@
+ endif
+ ifndef VBOX_WITH_NETFLT_VIMAGE
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile
new file mode 100644
index 000000000000..e1db154e2347
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/VBoxNetFlt/freebsd/Makefile.orig 2025-08-13 19:51:11 UTC
++++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/Makefile
+@@ -36,7 +36,7 @@ KMOD = vboxnetflt
+
+ KMOD = vboxnetflt
+
+-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVIMAGE
++CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS -DVIMAGE -Iinclude -I. -Ir0drv -w
+
+ .if (${MACHINE_ARCH} == "i386")
+ CFLAGS += -DRT_ARCH_X86
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c
new file mode 100644
index 000000000000..6e3d40a42e43
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c
@@ -0,0 +1,471 @@
+--- src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c.orig 2024-01-11 12:25:08 UTC
++++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c
+@@ -52,6 +52,7 @@
+ #include <net/if_dl.h>
+ #include <net/if_types.h>
+ #include <net/ethernet.h>
++#include <net/if_vlan_var.h>
+
+ #include <netgraph/ng_message.h>
+ #include <netgraph/netgraph.h>
+@@ -73,6 +74,7 @@
+
+ #define VBOXNETFLT_OS_SPECFIC 1
+ #include "../VBoxNetFltInternal.h"
++#include "freebsd/the-freebsd-kernel.h"
+
+ static int vboxnetflt_modevent(struct module *, int, void *);
+ static ng_constructor_t ng_vboxnetflt_constructor;
+@@ -149,6 +151,7 @@ MODULE_DEPEND(ng_vboxnetflt, vboxdrv, 1, 1, 1);
+ */
+ MODULE_VERSION(vboxnetflt, 1);
+ MODULE_DEPEND(ng_vboxnetflt, vboxdrv, 1, 1, 1);
++MODULE_DEPEND(ng_vboxnetflt, ng_ether, 1, 1, 1);
+
+ /**
+ * The (common) global data.
+@@ -181,8 +184,6 @@ static int vboxnetflt_modevent(struct module *pMod, in
+ printf("vboxNetFltInitGlobalsAndIdc failed %d\n", rc);
+ return RTErrConvertToErrno(rc);
+ }
+- /* No MODULE_VERSION in ng_ether so we can't MODULE_DEPEND it */
+- kern_kldload(curthread, "ng_ether", NULL);
+ break;
+
+ case MOD_UNLOAD:
+@@ -334,12 +335,20 @@ static int ng_vboxnetflt_rcvdata(hook_p hook, item_p i
+ {
+ const node_p node = NG_HOOK_NODE(hook);
+ PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node);
++#if __FreeBSD_version >= 1500000
++ if_t ifp = pThis->u.s.ifp;
++#else
+ struct ifnet *ifp = pThis->u.s.ifp;
++#endif
+ struct mbuf *m;
+ struct m_tag *mtag;
+ bool fActive;
+
++#if __FreeBSD_version >= 1500000
++ VBOXCURVNET_SET(if_getvnet(ifp));
++#else
+ VBOXCURVNET_SET(ifp->if_vnet);
++#endif
+ fActive = vboxNetFltTryRetainBusyActive(pThis);
+
+ NGI_GET_M(item, m);
+@@ -361,7 +370,14 @@ static int ng_vboxnetflt_rcvdata(hook_p hook, item_p i
+ {
+ if (mtag != NULL || !fActive)
+ {
++#if __FreeBSD_version >= 1300049
++ struct epoch_tracker et;
++ NET_EPOCH_ENTER(et);
++#endif
+ ether_demux(ifp, m);
++#if __FreeBSD_version >= 1300049
++ NET_EPOCH_EXIT(et);
++#endif
+ if (fActive)
+ vboxNetFltRelease(pThis, true /*fBusy*/);
+ VBOXCURVNET_RESTORE();
+@@ -433,12 +449,22 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend
+ {
+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg;
+ struct mbuf *m, *m0;
++#if __FreeBSD_version >= 1500000
++ if_t ifp = pThis->u.s.ifp;
++#else
+ struct ifnet *ifp = pThis->u.s.ifp;
++#endif
+ unsigned int cSegs = 0;
+ bool fDropIt = false, fActive;
++ bool is_vl_tagged = false;
++ uint16_t vl_tag;
+ PINTNETSG pSG;
+
++#if __FreeBSD_version >= 1500000
++ VBOXCURVNET_SET(if_getvnet(ifp));
++#else
+ VBOXCURVNET_SET(ifp->if_vnet);
++#endif
+ vboxNetFltRetain(pThis, true /* fBusy */);
+ for (;;)
+ {
+@@ -448,6 +474,19 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend
+ if (m == NULL)
+ break;
+
++ /* Prepend a VLAN header for consumption by the virtual switch */
++ if (m->m_flags & M_VLANTAG) {
++ vl_tag = m->m_pkthdr.ether_vtag;
++ is_vl_tagged = true;
++
++ m = ether_vlanencap(m, m->m_pkthdr.ether_vtag);
++ if (m == NULL) {
++ printf("vboxflt: unable to prepend VLAN header\n");
++ break;
++ }
++ m->m_flags &= ~M_VLANTAG;
++ }
++
+ for (m0 = m; m0 != NULL; m0 = m0->m_next)
+ if (m0->m_len > 0)
+ cSegs++;
+@@ -462,10 +501,39 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend
+ vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0);
+ fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, NULL /* pvIf */, pSG, INTNETTRUNKDIR_WIRE);
+ RTMemTmpFree(pSG);
++
++ /* Restore the VLAN flags before re-injecting the packet */
++ if (is_vl_tagged && !fDropIt) {
++ struct ether_vlan_header *vl_hdr;
++
++ /* This shouldn't fail, as the header was just prepended */
++ if (m->m_len < sizeof(*vl_hdr) && (m = m_pullup(m, sizeof(*vl_hdr))) == NULL) {
++ printf("vboxflt: unable to pullup VLAN header\n");
++ m_freem(m);
++ break;
++ }
++
++ /* Copy the MAC dhost/shost over the 802.1q field */
++ vl_hdr = mtod(m, struct ether_vlan_header *);
++ bcopy((char *)vl_hdr, (char *)vl_hdr + ETHER_VLAN_ENCAP_LEN, ETHER_HDR_LEN - ETHER_TYPE_LEN);
++ m_adj(m, ETHER_VLAN_ENCAP_LEN);
++
++ m->m_pkthdr.ether_vtag = vl_tag;
++ m->m_flags |= M_VLANTAG;
++ }
++
+ if (fDropIt)
+ m_freem(m);
+- else
++ else {
++#if __FreeBSD_version >= 1300049
++ struct epoch_tracker et;
++ NET_EPOCH_ENTER(et);
++#endif
+ ether_demux(ifp, m);
++#if __FreeBSD_version >= 1300049
++ NET_EPOCH_EXIT(et);
++#endif
++ }
+ }
+ vboxNetFltRelease(pThis, true /* fBusy */);
+ VBOXCURVNET_RESTORE();
+@@ -478,12 +546,20 @@ static void vboxNetFltFreeBSDoutput(void *arg, int pen
+ {
+ PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg;
+ struct mbuf *m, *m0;
++#if __FreeBSD_version >= 1500000
++ if_t ifp = pThis->u.s.ifp;
++#else
+ struct ifnet *ifp = pThis->u.s.ifp;
++#endif
+ unsigned int cSegs = 0;
+ bool fDropIt = false, fActive;
+ PINTNETSG pSG;
+
++#if __FreeBSD_version >= 1500000
++ VBOXCURVNET_SET(if_getvnet(ifp));
++#else
+ VBOXCURVNET_SET(ifp->if_vnet);
++#endif
+ vboxNetFltRetain(pThis, true /* fBusy */);
+ for (;;)
+ {
+@@ -521,26 +597,41 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
+ */
+ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *pvIfData, PINTNETSG pSG, uint32_t fDst)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ NOREF(pvIfData);
+
+ void (*input_f)(struct ifnet *, struct mbuf *);
++#if __FreeBSD_version >= 1500000
++ if_t ifp;
++#else
+ struct ifnet *ifp;
++#endif
+ struct mbuf *m;
+ struct m_tag *mtag;
+ bool fActive;
+ int error;
+
+ ifp = ASMAtomicUoReadPtrT(&pThis->u.s.ifp, struct ifnet *);
++#if __FreeBSD_version >= 1500000
++ VBOXCURVNET_SET(if_getvnet(ifp));
++#else
+ VBOXCURVNET_SET(ifp->if_vnet);
++#endif
+
+ if (fDst & INTNETTRUNKDIR_WIRE)
+ {
+ m = vboxNetFltFreeBSDSGMBufFromSG(pThis, pSG);
+ if (m == NULL)
++ {
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
++ }
+ m = m_pullup(m, ETHER_HDR_LEN);
+ if (m == NULL)
++ {
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
++ }
+
+ m->m_flags |= M_PKTHDR;
+ ether_output_frame(ifp, m);
+@@ -550,10 +641,16 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
+ {
+ m = vboxNetFltFreeBSDSGMBufFromSG(pThis, pSG);
+ if (m == NULL)
++ {
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
++ }
+ m = m_pullup(m, ETHER_HDR_LEN);
+ if (m == NULL)
++ {
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
++ }
+ /*
+ * Delivering packets to the host will be captured by the
+ * input hook. Tag the packet with a mbuf tag so that we
+@@ -564,6 +661,7 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
+ if (mtag == NULL)
+ {
+ m_freem(m);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
+ }
+
+@@ -571,9 +669,21 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
+ m_tag_prepend(m, mtag);
+ m->m_flags |= M_PKTHDR;
+ m->m_pkthdr.rcvif = ifp;
++#if __FreeBSD_version >= 1300049
++ struct epoch_tracker et;
++ NET_EPOCH_ENTER(et);
++#endif
++#if __FreeBSD_version >= 1500000
++ if_input(ifp, m);
++#else
+ ifp->if_input(ifp, m);
++#endif
++#if __FreeBSD_version >= 1300049
++ NET_EPOCH_EXIT(et);
++#endif
+ }
+ VBOXCURVNET_RESTORE();
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -586,15 +696,23 @@ int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, voi
+
+ int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, void *pvContext)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ char nam[NG_NODESIZ];
++#if __FreeBSD_version >= 1500000
++ if_t ifp;
++#else
+ struct ifnet *ifp;
++#endif
+ node_p node;
+
+ VBOXCURVNET_SET_FROM_UCRED();
+ NOREF(pvContext);
+ ifp = ifunit(pThis->szName);
+ if (ifp == NULL)
++ {
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_INTNET_FLT_IF_NOT_FOUND;
++ }
+
+ /* Create a new netgraph node for this instance */
+ if (ng_make_node_common(&ng_vboxnetflt_typestruct, &node) != 0)
+@@ -604,7 +722,11 @@ int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, voi
+
+ ASMAtomicUoWritePtr(&pThis->u.s.ifp, ifp);
+ pThis->u.s.node = node;
++#if __FreeBSD_version >= 1500000
++ bcopy(if_getlladdr(ifp), &pThis->u.s.MacAddr, ETHER_ADDR_LEN);
++#else
+ bcopy(IF_LLADDR(ifp), &pThis->u.s.MacAddr, ETHER_ADDR_LEN);
++#endif
+ ASMAtomicUoWriteBool(&pThis->fDisconnectedFromHost, false);
+
+ /* Initialize deferred input queue */
+@@ -638,16 +760,26 @@ int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, voi
+ vboxNetFltRelease(pThis, true /*fBusy*/);
+ }
+ VBOXCURVNET_RESTORE();
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+
+ return VINF_SUCCESS;
+ }
+
+ bool vboxNetFltOsMaybeRediscovered(PVBOXNETFLTINS pThis)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
++#if __FreeBSD_version >= 1500000
++ if_t ifp, ifp0;
++#else
+ struct ifnet *ifp, *ifp0;
++#endif
+
+ ifp = ASMAtomicUoReadPtrT(&pThis->u.s.ifp, struct ifnet *);
++#if __FreeBSD_version >= 1500000
++ VBOXCURVNET_SET(if_getvnet(ifp));
++#else
+ VBOXCURVNET_SET(ifp->if_vnet);
++#endif
+ /*
+ * Attempt to check if the interface is still there and re-initialize if
+ * something has changed.
+@@ -660,6 +792,7 @@ bool vboxNetFltOsMaybeRediscovered(PVBOXNETFLTINS pThi
+ pThis->u.s.node = NULL;
+ }
+ VBOXCURVNET_RESTORE();
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+
+ if (ifp0 != NULL)
+ {
+@@ -672,6 +805,7 @@ void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis)
+
+ void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskin);
+ taskqueue_drain(taskqueue_fast, &pThis->u.s.tskout);
+@@ -684,6 +818,7 @@ void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis)
+ ng_rmnode_self(pThis->u.s.node);
+ VBOXCURVNET_RESTORE();
+ pThis->u.s.node = NULL;
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ }
+
+ int vboxNetFltOsPreInitInstance(PVBOXNETFLTINS pThis)
+@@ -697,7 +832,12 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
+
+ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, bool fActive)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
++#if __FreeBSD_version >= 1500000
++ if_t ifp;
++#else
+ struct ifnet *ifp;
++#endif
+ struct ifreq ifreq;
+ int error;
+ node_p node;
+@@ -709,18 +849,30 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
+ Log(("%s: fActive:%d\n", __func__, fActive));
+
+ ifp = ASMAtomicUoReadPtrT(&pThis->u.s.ifp, struct ifnet *);
++#if __FreeBSD_version >= 1500000
++ VBOXCURVNET_SET(if_getvnet(ifp));
++#else
+ VBOXCURVNET_SET(ifp->if_vnet);
++#endif
+ node = ASMAtomicUoReadPtrT(&pThis->u.s.node, node_p);
+
+ memset(&ifreq, 0, sizeof(struct ifreq));
+ /* Activate interface */
+ if (fActive)
+ {
++#if __FreeBSD_version >= 1500000
++ pThis->u.s.flags = if_getflags(ifp);
++#else
+ pThis->u.s.flags = ifp->if_flags;
++#endif
+ ifpromisc(ifp, 1);
+
+ /* ng_ether nodes are named after the interface name */
++#if __FreeBSD_version >= 1500000
++ snprintf(path, sizeof(path), "%s:", if_name(ifp));
++#else
+ snprintf(path, sizeof(path), "%s:", ifp->if_xname);
++#endif
+
+ /*
+ * Send a netgraph connect message to the ng_ether node
+@@ -730,9 +882,16 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
+ NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_CONNECT,
+ sizeof(struct ngm_connect), M_NOWAIT);
+ if (msg == NULL)
++ {
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return;
++ }
+ con = (struct ngm_connect *)msg->data;
++#if __FreeBSD_version >= 1500000
++ snprintf(con->path, NG_PATHSIZ, "vboxnetflt_%s:", if_name(ifp));
++#else
+ snprintf(con->path, NG_PATHSIZ, "vboxnetflt_%s:", ifp->if_xname);
++#endif
+ strlcpy(con->ourhook, "lower", NG_HOOKSIZ);
+ strlcpy(con->peerhook, "input", NG_HOOKSIZ);
+ NG_SEND_MSG_PATH(error, node, msg, path, 0);
+@@ -744,10 +903,17 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
+ NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_CONNECT,
+ sizeof(struct ngm_connect), M_NOWAIT);
+ if (msg == NULL)
++ {
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return;
++ }
+ con = (struct ngm_connect *)msg->data;
+ snprintf(con->path, NG_PATHSIZ, "vboxnetflt_%s:",
++#if __FreeBSD_version >= 1500000
++ if_name(ifp));
++#else
+ ifp->if_xname);
++#endif
+ strlcpy(con->ourhook, "upper", sizeof(con->ourhook));
+ strlcpy(con->peerhook, "output", sizeof(con->peerhook));
+ NG_SEND_MSG_PATH(error, node, msg, path, 0);
+@@ -759,7 +925,11 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
+ ifpromisc(ifp, 0);
+
+ /* Disconnect msgs are addressed to ourself */
++#if __FreeBSD_version >= 1500000
++ snprintf(path, sizeof(path), "vboxnetflt_%s:", if_name(ifp));
++#else
+ snprintf(path, sizeof(path), "vboxnetflt_%s:", ifp->if_xname);
++#endif
+
+ /*
+ * Send a netgraph message to disconnect our 'input' hook
+@@ -767,7 +937,10 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
+ NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_RMHOOK,
+ sizeof(struct ngm_rmhook), M_NOWAIT);
+ if (msg == NULL)
++ {
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return;
++ }
+ rm = (struct ngm_rmhook *)msg->data;
+ strlcpy(rm->ourhook, "input", NG_HOOKSIZ);
+ NG_SEND_MSG_PATH(error, node, msg, path, 0);
+@@ -778,12 +951,16 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
+ NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_RMHOOK,
+ sizeof(struct ngm_rmhook), M_NOWAIT);
+ if (msg == NULL)
++ {
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return;
++ }
+ rm = (struct ngm_rmhook *)msg->data;
+ strlcpy(rm->ourhook, "output", NG_HOOKSIZ);
+ NG_SEND_MSG_PATH(error, node, msg, path, 0);
+ }
+ VBOXCURVNET_RESTORE();
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ }
+
+ int vboxNetFltOsDisconnectIt(PVBOXNETFLTINS pThis)
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp
new file mode 100644
index 000000000000..2c13b666afaf
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp.orig 2025-08-13 19:51:12 UTC
++++ src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
+@@ -759,7 +759,7 @@ int Adapter::doIOCtl(unsigned long iCmd, VBOXNETADPREQ
+ * Global config file implementation *
+ *********************************************************************************************************************************/
+
+-#define VBOX_GLOBAL_NETWORK_CONFIG_PATH "/etc/vbox/networks.conf"
++#define VBOX_GLOBAL_NETWORK_CONFIG_PATH "%%VBOX_ETC%%/networks.conf"
+ #define VBOXNET_DEFAULT_IPV4MASK "255.255.255.0"
+
+ class NetworkAddress
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_Makefile.kmk
new file mode 100644
index 000000000000..48ced38ac98c
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_Makefile.kmk
@@ -0,0 +1,10 @@
+--- src/VBox/Main/Makefile.kmk.orig 2025-08-13 19:51:19 UTC
++++ src/VBox/Main/Makefile.kmk
+@@ -771,6 +771,7 @@ if !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_EXTPA
+
+ VBoxSVC_SOURCES.freebsd = \
+ src-server/freebsd/HostHardwareFreeBSD.cpp \
++ $(if $(VBOX_WITH_DBUS),src-server/linux/HostPowerLinux.cpp) \
+ src-server/HostDnsServiceResolvConf.cpp
+
+ VBoxSVC_LDFLAGS.freebsd += -lcam
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_include_HostPower.h b/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_include_HostPower.h
new file mode 100644
index 000000000000..90bd737f000d
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_include_HostPower.h
@@ -0,0 +1,20 @@
+--- src/VBox/Main/include/HostPower.h.orig 2025-08-13 19:51:21 UTC
++++ src/VBox/Main/include/HostPower.h
+@@ -41,7 +41,7 @@
+
+ #include <vector>
+
+-#ifdef RT_OS_LINUX
++#if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)
+ # include <VBox/dbus.h>
+ #endif
+
+@@ -77,7 +77,7 @@ class HostPowerServiceWin : public HostPowerService (p
+ RTTHREAD mThread;
+ };
+ # endif
+-# if defined(RT_OS_LINUX) || defined(DOXYGEN_RUNNING)
++# if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) || defined(DOXYGEN_RUNNING)
+ /**
+ * The Linux hosted Power Service.
+ */
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_src-server_HostImpl.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_src-server_HostImpl.cpp
new file mode 100644
index 000000000000..3327edf47c79
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_src-server_HostImpl.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Main/src-server/HostImpl.cpp.orig 2025-08-13 19:51:26 UTC
++++ src/VBox/Main/src-server/HostImpl.cpp
+@@ -339,7 +339,7 @@ HRESULT Host::init(VirtualBox *aParent)
+
+ #if defined(RT_OS_WINDOWS)
+ m->pHostPowerService = new HostPowerServiceWin(m->pParent);
+-#elif defined(RT_OS_LINUX) && defined(VBOX_WITH_DBUS)
++#elif (defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)) && defined(VBOX_WITH_DBUS)
+ m->pHostPowerService = new HostPowerServiceLinux(m->pParent);
+ #elif defined(RT_OS_DARWIN)
+ m->pHostPowerService = new HostPowerServiceDarwin(m->pParent);
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp
new file mode 100644
index 000000000000..ec8a2226f1c9
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp
@@ -0,0 +1,24 @@
+--- src/VBox/Main/src-server/freebsd/PerformanceFreeBSD.cpp.orig 2025-08-13 19:51:28 UTC
++++ src/VBox/Main/src-server/freebsd/PerformanceFreeBSD.cpp
+@@ -90,8 +90,10 @@ int CollectorFreeBSD::getHostMemoryUsage(ULONG *total,
+ cbParameter = sizeof(cPagesMemInactive);
+ if (!sysctlbyname("vm.stats.vm.v_inactive_count", &cPagesMemInactive, &cbParameter, NULL, 0))
+ cProcessed++;
++#if __FreeBSD_version < 1200016
+ cbParameter = sizeof(cPagesMemCached);
+ if (!sysctlbyname("vm.stats.vm.v_cache_count", &cPagesMemCached, &cbParameter, NULL, 0))
++#endif
+ cProcessed++;
+ cbParameter = sizeof(cbPage);
+ if (!sysctlbyname("hw.pagesize", &cbPage, &cbParameter, NULL, 0))
+@@ -100,8 +102,8 @@ int CollectorFreeBSD::getHostMemoryUsage(ULONG *total,
+ if (cProcessed == 6)
+ {
+ *total = cbMemPhys / _1K;
+- *used = cPagesMemUsed * (cbPage / _1K);
+- *available = (cPagesMemFree + cPagesMemInactive + cPagesMemCached ) * (cbPage / _1K);
++ *used = (uint64_t)cPagesMemUsed * (cbPage / _1K);
++ *available = ((uint64_t)cPagesMemFree + cPagesMemInactive + cPagesMemCached) * (cbPage / _1K);
+ }
+ else
+ vrc = VERR_NOT_SUPPORTED;
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_Makefile.kmk
new file mode 100644
index 000000000000..7d80c20cb908
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_Makefile.kmk
@@ -0,0 +1,29 @@
+--- src/VBox/Runtime/Makefile.kmk.orig 2025-08-28 22:09:24 UTC
++++ src/VBox/Runtime/Makefile.kmk
+@@ -233,6 +233,9 @@ $(IPRT_OUT_DIR)/oiddb.h.ts +| $(IPRT_OUT_DIR)/oiddb.h:
+ $(QUIET)$(oiddb2c_1_TARGET) "$@" $(filter %.cfg,$^)
+ $(QUIET)$(CP) --changed -fv "$@" "$(IPRT_OUT_DIR)/oiddb.h"
+
++# Set the defines that utf8-posix.cpp needs. It's used by several targets.
++#
++r3/posix/utf8-posix.cpp_DEFS.freebsd = $(VBOX_ICONV_DEFS)
+
+ #
+ # Unicode Specification reader used to regenerate unidata-*.cpp.
+@@ -1516,6 +1519,7 @@ RuntimeBaseR3_SOURCES.freebsd = \
+ generic/RTProcDaemonize-generic.cpp \
+ generic/RTProcIsRunningByName-generic.cpp \
+ generic/RTThreadGetNativeState-generic.cpp \
++ generic/system-page-size-generic.cpp \
+ r3/freebsd/fileaio-freebsd.cpp \
+ r3/freebsd/RTFileQuerySectorSize-freebsd.cpp \
+ r3/freebsd/mp-freebsd.cpp \
+@@ -3072,6 +3076,8 @@ VBoxRT_LDFLAGS.win = /MANIFEST \
+ /delayload:ole32.dll \
+ /delayload:oleaut32.dll \
+ /delayload:advapi32.dll
++VBoxRT_LDFLAGS.freebsd = \
++ -Wl,--allow-multiple-definition
+
+ if1of (VBoxRT, $(DLLS))
+ $(call VBOX_SET_VER_INFO_DLL,VBoxRT,VirtualBox Runtime)
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c
new file mode 100644
index 000000000000..564b70a0f108
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c
@@ -0,0 +1,58 @@
+--- src/VBox/Runtime/r0drv/freebsd/alloc-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/alloc-r0drv-freebsd.c
+@@ -88,6 +88,7 @@ DECLHIDDEN(int) rtR0MemAllocEx(size_t cb, uint32_t fFl
+
+ DECLHIDDEN(int) rtR0MemAllocEx(size_t cb, uint32_t fFlags, PRTMEMHDR *ppHdr)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ size_t cbAllocated = cb;
+ PRTMEMHDR pHdr = (PRTMEMHDR)malloc(cb + sizeof(RTMEMHDR), M_IPRTHEAP,
+ fFlags & RTMEMHDR_FLAG_ZEROED ? M_NOWAIT | M_ZERO : M_NOWAIT);
+@@ -99,21 +100,28 @@ DECLHIDDEN(int) rtR0MemAllocEx(size_t cb, uint32_t fFl
+ pHdr->cbReq = cb;
+
+ *ppHdr = pHdr;
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+- }
++ }
++
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
+ }
+
+
+ DECLHIDDEN(void) rtR0MemFree(PRTMEMHDR pHdr)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
++
+ pHdr->u32Magic += 1;
+ free(pHdr, M_IPRTHEAP);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ }
+
+
+ RTR0DECL(void *) RTMemContAlloc(PRTCCPHYS pPhys, size_t cb)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ void *pv;
+
+ /*
+@@ -138,6 +146,7 @@ RTR0DECL(void *) RTMemContAlloc(PRTCCPHYS pPhys, size_
+ *pPhys = vtophys(pv);
+ Assert(!(*pPhys & PAGE_OFFSET_MASK));
+ }
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return pv;
+ }
+
+@@ -147,7 +156,9 @@ RTR0DECL(void) RTMemContFree(void *pv, size_t cb)
+ if (pv)
+ {
+ AssertMsg(!((uintptr_t)pv & PAGE_OFFSET_MASK), ("pv=%p\n", pv));
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ contigfree(pv, cb, M_IPRTCONT);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ }
+ }
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c
new file mode 100644
index 000000000000..53f7659961b2
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c
@@ -0,0 +1,29 @@
+--- src/VBox/Runtime/r0drv/freebsd/assert-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/assert-r0drv-freebsd.c
+@@ -78,15 +78,18 @@ DECLHIDDEN(void) rtR0AssertNativeMsg1(const char *pszE
+
+ DECLHIDDEN(void) rtR0AssertNativeMsg1(const char *pszExpr, unsigned uLine, const char *pszFile, const char *pszFunction)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ printf("\r\n!!Assertion Failed!!\r\n"
+ "Expression: %s\r\n"
+ "Location : %s(%d) %s\r\n",
+ pszExpr, pszFile, uLine, pszFunction);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ }
+
+
+ DECLHIDDEN(void) rtR0AssertNativeMsg2V(bool fInitial, const char *pszFormat, va_list va)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ char szMsg[256];
+
+ RTStrPrintfV(szMsg, sizeof(szMsg) - 1, pszFormat, va);
+@@ -94,6 +97,7 @@ DECLHIDDEN(void) rtR0AssertNativeMsg2V(bool fInitial,
+ printf("%s", szMsg);
+
+ NOREF(fInitial);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ }
+
+
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
new file mode 100644
index 000000000000..4c0ed355709c
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
@@ -0,0 +1,408 @@
+--- 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
+@@ -140,8 +140,10 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+
+ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)pMem;
+ int rc;
++ vm_map_t pMap;
+
+ switch (pMemFreeBSD->Core.enmType)
+ {
+@@ -156,8 +158,6 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+
+ case RTR0MEMOBJTYPE_LOCK:
+ {
+- vm_map_t pMap = kernel_map;
+-
+ 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)
+ case RTR0MEMOBJTYPE_PHYS_NC:
+ {
+ VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
++#if __FreeBSD_version < 1500038
+ 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)
+ #if __FreeBSD_version < 1000000
+ vm_page_unlock_queues();
+ #endif
++#else /* __FreeBSD_version >= 1500038 */
++ struct pctrie_iter pages;
++ vm_page_t page;
++
++ vm_page_iter_init(&pages, pMemFreeBSD->pObject);
++ VM_RADIX_FORALL(page, &pages)
++ (void)vm_page_unwire_noq(page);
++#endif
+ VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
+ vm_object_deallocate(pMemFreeBSD->pObject);
+ break;
+@@ -221,6 +230,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
+ return VERR_INTERNAL_ERROR;
+ }
+
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -330,7 +340,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOBJFRE
+ size_t cPages = atop(pMemFreeBSD->Core.cb);
+ int rc;
+
+- pMemFreeBSD->pObject = vm_object_allocate(OBJT_PHYS, cPages);
++ pMemFreeBSD->pObject = vm_pager_allocate(OBJT_PHYS, NULL,
++ pMemFreeBSD->Core.cb, VM_PROT_ALL, 0, curthread->td_ucred);
+
+ /* No additional object reference for auto-deallocation upon unmapping. */
+ #if __FreeBSD_version >= 1000055
+@@ -372,6 +383,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
+
+ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PAGE,
+ NULL, cb, pszTag);
+ if (pMemFreeBSD)
+@@ -381,8 +393,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
+ *ppMem = &pMemFreeBSD->Core;
+ else
+ rtR0MemObjDelete(&pMemFreeBSD->Core);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return rc;
+ }
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
+ }
+
+@@ -396,6 +410,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
+
+ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_LOW, NULL, cb, pszTag);
+ if (pMemFreeBSD)
+ {
+@@ -404,8 +419,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
+ *ppMem = &pMemFreeBSD->Core;
+ else
+ rtR0MemObjDelete(&pMemFreeBSD->Core);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return rc;
+ }
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
+ }
+
+@@ -413,6 +430,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
+ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS PhysHigest,
+ bool fExecutable, const char *pszTag)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_CONT,
+ NULL, cb, pszTag);
+ if (pMemFreeBSD)
+@@ -425,8 +443,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
+ }
+ else
+ rtR0MemObjDelete(&pMemFreeBSD->Core);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return rc;
+ }
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
+ }
+
+@@ -434,6 +454,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)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ /* create the object. */
+ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), enmType, NULL, cb, pszTag);
+ if (pMemFreeBSD)
+@@ -441,7 +462,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+ vm_paddr_t const VmPhysAddrHigh = PhysHighest != NIL_RTHCPHYS ? PhysHighest : ~(vm_paddr_t)0;
+ u_long const cPages = atop(cb);
+
+- pMemFreeBSD->pObject = vm_object_allocate(OBJT_PHYS, cPages);
++ pMemFreeBSD->pObject = vm_pager_allocate(OBJT_PHYS, NULL,
++ pMemFreeBSD->Core.cb, VM_PROT_ALL, 0, curthread->td_ucred);
+
+ int rc = rtR0MemObjFreeBSDPhysAllocHelper(pMemFreeBSD->pObject, cPages, VmPhysAddrHigh,
+ uAlignment, fContiguous, true, rcNoMem);
+@@ -451,7 +473,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+ {
+ Assert(enmType == RTR0MEMOBJTYPE_PHYS);
+ VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
+- pMemFreeBSD->Core.u.Phys.PhysBase = VM_PAGE_TO_PHYS(vm_page_find_least(pMemFreeBSD->pObject, 0));
++ pMemFreeBSD->Core.u.Phys.PhysBase = VM_PAGE_TO_PHYS(vm_radix_lookup_ge(&pMemFreeBSD->pObject->rtree, 0));
+ VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
+ pMemFreeBSD->Core.u.Phys.fAllocated = true;
+ }
+@@ -464,8 +486,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+ vm_object_deallocate(pMemFreeBSD->pObject);
+ rtR0MemObjDelete(&pMemFreeBSD->Core);
+ }
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return rc;
+ }
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
+ }
+
+@@ -488,6 +512,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
+ const char *pszTag)
+ {
+ AssertReturn(uCachePolicy == RTMEM_CACHE_POLICY_DONT_CARE, VERR_NOT_SUPPORTED);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ /* create the object. */
+ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PHYS,
+@@ -499,8 +524,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
+ pMemFreeBSD->Core.u.Phys.PhysBase = Phys;
+ pMemFreeBSD->Core.u.Phys.uCachePolicy = uCachePolicy;
+ *ppMem = &pMemFreeBSD->Core;
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
+ }
+
+@@ -512,6 +539,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
+ vm_offset_t AddrStart, size_t cb, uint32_t fAccess,
+ RTR0PROCESS R0Process, int fFlags, const char *pszTag)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ int rc;
+ NOREF(fAccess);
+
+@@ -521,21 +549,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
+ if (!pMemFreeBSD)
+ return VERR_NO_MEMORY;
+
+- /*
+- * We could've used vslock here, but we don't wish to be subject to
+- * resource usage restrictions, so we'll call vm_map_wire directly.
+- */
+- rc = vm_map_wire(pVmMap, /* the map */
+- AddrStart, /* start */
+- AddrStart + cb, /* end */
+- fFlags); /* flags */
++ if (pVmMap != kernel_map) {
++ /*
++ * We could've used vslock here, but we don't wish to be subject to
++ * resource usage restrictions, so we'll call vm_map_wire directly.
++ */
++ rc = vm_map_wire(pVmMap, /* the map */
++ AddrStart, /* start */
++ AddrStart + cb, /* end */
++ fFlags); /* flags */
++ }
++ else
++ rc = KERN_SUCCESS;
++
+ if (rc == KERN_SUCCESS)
+ {
+ pMemFreeBSD->Core.u.Lock.R0Process = R0Process;
+ *ppMem = &pMemFreeBSD->Core;
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+ rtR0MemObjDelete(&pMemFreeBSD->Core);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;/** @todo fix mach -> vbox error conversion for freebsd. */
+ }
+
+@@ -575,6 +610,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)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ int rc;
+
+ /*
+@@ -633,11 +669,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
+ pMemFreeBSD->Core.pv = (void *)MapAddress;
+ pMemFreeBSD->Core.u.ResVirt.R0Process = R0Process;
+ *ppMem = &pMemFreeBSD->Core;
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+ rc = VERR_NO_MEMORY; /** @todo fix translation (borrow from darwin) */
+ rtR0MemObjDelete(&pMemFreeBSD->Core);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return rc;
+
+ }
+@@ -661,6 +699,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)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
++
+ // 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
+ Assert((vm_offset_t)pMemFreeBSD->Core.pv == Addr);
+ pMemFreeBSD->Core.u.Mapping.R0Process = NIL_RTR0PROCESS;
+ *ppMem = &pMemFreeBSD->Core;
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+ rc = vm_map_remove(kernel_map, Addr, Addr + cbSub);
+@@ -723,6 +764,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
+ else
+ vm_object_deallocate(pMemToMapFreeBSD->pObject);
+
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
+ }
+
+@@ -730,6 +772,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)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
++
+ /*
+ * Check for unsupported stuff.
+ */
+@@ -787,44 +831,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
+
+ if (rc == KERN_SUCCESS)
+ {
+- rc = vm_map_wire(pProcMap, AddrR3, AddrR3 + pMemToMap->cb, VM_MAP_WIRE_USER|VM_MAP_WIRE_NOHOLES);
++ rc = vm_map_wire(pProcMap, AddrR3, AddrR3 + cbSub, VM_MAP_WIRE_USER|VM_MAP_WIRE_NOHOLES);
+ AssertMsg(rc == KERN_SUCCESS, ("%#x\n", rc));
+
+- rc = vm_map_inherit(pProcMap, AddrR3, AddrR3 + pMemToMap->cb, VM_INHERIT_SHARE);
++ rc = vm_map_inherit(pProcMap, AddrR3, AddrR3 + cbSub, VM_INHERIT_SHARE);
+ AssertMsg(rc == KERN_SUCCESS, ("%#x\n", rc));
+
+ /*
+ * Create a mapping object for it.
+ */
+ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(RTR0MEMOBJFREEBSD), RTR0MEMOBJTYPE_MAPPING,
+- (void *)AddrR3, pMemToMap->cb, pszTag);
++ (void *)AddrR3, cbSub, pszTag);
+ if (pMemFreeBSD)
+ {
+ Assert((vm_offset_t)pMemFreeBSD->Core.pv == AddrR3);
+ pMemFreeBSD->Core.u.Mapping.R0Process = R0Process;
+ *ppMem = &pMemFreeBSD->Core;
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+- rc = vm_map_remove(pProcMap, AddrR3, AddrR3 + pMemToMap->cb);
++ rc = vm_map_remove(pProcMap, AddrR3, AddrR3 + cbSub);
+ AssertMsg(rc == KERN_SUCCESS, ("Deleting mapping failed\n"));
+ }
+ else
+ vm_object_deallocate(pMemToMapFreeBSD->pObject);
+
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
+ }
+
+
+ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINTERNAL pMem, size_t offSub, size_t cbSub, uint32_t fProt)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ vm_prot_t ProtectionFlags = 0;
+ vm_offset_t AddrStart = (uintptr_t)pMem->pv + offSub;
+ vm_offset_t AddrEnd = AddrStart + cbSub;
+ vm_map_t pVmMap = rtR0MemObjFreeBSDGetMap(pMem);
+
+ if (!pVmMap)
++ {
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NOT_SUPPORTED;
++ }
+
+ if ((fProt & RTMEM_PROT_NONE) == RTMEM_PROT_NONE)
+ ProtectionFlags = VM_PROT_NONE;
+@@ -835,7 +885,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT
+ if ((fProt & RTMEM_PROT_EXEC) == RTMEM_PROT_EXEC)
+ ProtectionFlags |= VM_PROT_EXECUTE;
+
++#if __FreeBSD_version >= 1300135
++ int krc = vm_map_protect(pVmMap, AddrStart, AddrEnd, ProtectionFlags, 0, VM_MAP_PROTECT_SET_PROT);
++#else
+ int krc = vm_map_protect(pVmMap, AddrStart, AddrEnd, ProtectionFlags, FALSE);
++#endif
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ if (krc == KERN_SUCCESS)
+ return VINF_SUCCESS;
+
+@@ -860,11 +915,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+
+ vm_offset_t pb = (vm_offset_t)pMemFreeBSD->Core.pv + ptoa(iPage);
+
+- struct proc *pProc = (struct proc *)pMemFreeBSD->Core.u.Lock.R0Process;
+- struct vm_map *pProcMap = &pProc->p_vmspace->vm_map;
+- pmap_t pPhysicalMap = vm_map_pmap(pProcMap);
++ if (pMemFreeBSD->Core.u.Mapping.R0Process != NIL_RTR0PROCESS)
++ {
++ RTHCPHYS addr;
++ IPRT_FREEBSD_SAVE_EFL_AC();
++ struct proc *pProc = (struct proc *)pMemFreeBSD->Core.u.Lock.R0Process;
++ struct vm_map *pProcMap = &pProc->p_vmspace->vm_map;
++ pmap_t pPhysicalMap = vm_map_pmap(pProcMap);
+
+- return pmap_extract(pPhysicalMap, pb);
++ addr = pmap_extract(pPhysicalMap, pb);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
++ return addr;
++ }
++ return vtophys(pb);
+ }
+
+ case RTR0MEMOBJTYPE_MAPPING:
+@@ -873,11 +936,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+
+ if (pMemFreeBSD->Core.u.Mapping.R0Process != NIL_RTR0PROCESS)
+ {
++ RTHCPHYS addr;
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ struct proc *pProc = (struct proc *)pMemFreeBSD->Core.u.Mapping.R0Process;
+ struct vm_map *pProcMap = &pProc->p_vmspace->vm_map;
+ pmap_t pPhysicalMap = vm_map_pmap(pProcMap);
+
+- return pmap_extract(pPhysicalMap, pb);
++ addr = pmap_extract(pPhysicalMap, pb);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
++ return addr;
+ }
+ return vtophys(pb);
+ }
+@@ -888,9 +955,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
+ {
+ RTHCPHYS addr;
+
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
+ addr = VM_PAGE_TO_PHYS(vm_page_lookup(pMemFreeBSD->pObject, iPage));
+ VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return addr;
+ }
+
+@@ -910,7 +979,7 @@ DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping
+ DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping(PRTR0MEMOBJINTERNAL pMem)
+ {
+ PRTR0MEMOBJFREEBSD const pMemFreeBsd = (PRTR0MEMOBJFREEBSD)pMem;
+- size_t const cPages = pMemSolaris->Core.cb >> PAGE_SHIFT;
++ size_t const cPages = atop(pMemFreeBsd->Core.cb);
+ size_t iPage;
+ for (iPage = 0; iPage < cPages; iPage++)
+ {
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c
new file mode 100644
index 000000000000..637f67bbe59a
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c
@@ -0,0 +1,22 @@
+--- src/VBox/Runtime/r0drv/freebsd/memuserkernel-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/memuserkernel-r0drv-freebsd.c
+@@ -46,7 +46,9 @@ RTR0DECL(int) RTR0MemUserCopyFrom(void *pvDst, RTR3PTR
+
+ RTR0DECL(int) RTR0MemUserCopyFrom(void *pvDst, RTR3PTR R3PtrSrc, size_t cb)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ int rc = copyin((const void *)R3PtrSrc, pvDst, cb);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ if (RT_LIKELY(rc == 0))
+ return VINF_SUCCESS;
+ return VERR_ACCESS_DENIED;
+@@ -55,7 +57,9 @@ RTR0DECL(int) RTR0MemUserCopyTo(RTR3PTR R3PtrDst, void
+
+ RTR0DECL(int) RTR0MemUserCopyTo(RTR3PTR R3PtrDst, void const *pvSrc, size_t cb)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ int rc = copyout(pvSrc, (void *)R3PtrDst, cb);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ if (RT_LIKELY(rc == 0))
+ return VINF_SUCCESS;
+ return VERR_ACCESS_DENIED;
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c
new file mode 100644
index 000000000000..5548551e9ab5
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c
@@ -0,0 +1,92 @@
+--- src/VBox/Runtime/r0drv/freebsd/mp-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/mp-r0drv-freebsd.c
+@@ -157,7 +157,9 @@ static void rtmpOnAllFreeBSDWrapper(void *pvArg)
+ static void rtmpOnAllFreeBSDWrapper(void *pvArg)
+ {
+ PRTMPARGS pArgs = (PRTMPARGS)pvArg;
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ pArgs->pfnWorker(curcpu, pArgs->pvUser1, pArgs->pvUser2);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ }
+
+
+@@ -169,7 +171,9 @@ RTDECL(int) RTMpOnAll(PFNRTMPWORKER pfnWorker, void *p
+ Args.pvUser2 = pvUser2;
+ Args.idCpu = NIL_RTCPUID;
+ Args.cHits = 0;
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ smp_rendezvous(NULL, rtmpOnAllFreeBSDWrapper, smp_no_rendezvous_barrier, &Args);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -185,7 +189,11 @@ static void rtmpOnOthersFreeBSDWrapper(void *pvArg)
+ PRTMPARGS pArgs = (PRTMPARGS)pvArg;
+ RTCPUID idCpu = curcpu;
+ if (pArgs->idCpu != idCpu)
++ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ pArgs->pfnWorker(idCpu, pArgs->pvUser1, pArgs->pvUser2);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
++ }
+ }
+
+
+@@ -206,6 +214,7 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER pfnWorker, void
+ Args.pvUser2 = pvUser2;
+ Args.idCpu = RTMpCpuId();
+ Args.cHits = 0;
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ #if __FreeBSD_version >= 700000
+ # if __FreeBSD_version >= 900000
+ Mask = all_cpus;
+@@ -217,6 +226,7 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER pfnWorker, void
+ #else
+ smp_rendezvous(NULL, rtmpOnOthersFreeBSDWrapper, NULL, &Args);
+ #endif
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ }
+ return VINF_SUCCESS;
+ }
+@@ -234,8 +244,10 @@ static void rtmpOnSpecificFreeBSDWrapper(void *pvArg)
+ RTCPUID idCpu = curcpu;
+ if (pArgs->idCpu == idCpu)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ pArgs->pfnWorker(idCpu, pArgs->pvUser1, pArgs->pvUser2);
+ ASMAtomicIncU32(&pArgs->cHits);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ }
+ }
+
+@@ -258,6 +270,7 @@ RTDECL(int) RTMpOnSpecific(RTCPUID idCpu, PFNRTMPWORKE
+ Args.pvUser2 = pvUser2;
+ Args.idCpu = idCpu;
+ Args.cHits = 0;
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ #if __FreeBSD_version >= 700000
+ # if __FreeBSD_version >= 900000
+ CPU_SETOF(idCpu, &Mask);
+@@ -268,6 +281,7 @@ RTDECL(int) RTMpOnSpecific(RTCPUID idCpu, PFNRTMPWORKE
+ #else
+ smp_rendezvous(NULL, rtmpOnSpecificFreeBSDWrapper, NULL, &Args);
+ #endif
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return Args.cHits == 1
+ ? VINF_SUCCESS
+ : VERR_CPU_NOT_FOUND;
+@@ -297,12 +311,14 @@ RTDECL(int) RTMpPokeCpu(RTCPUID idCpu)
+ if (!RTMpIsCpuOnline(idCpu))
+ return VERR_CPU_NOT_FOUND;
+
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ # if __FreeBSD_version >= 900000
+ CPU_SETOF(idCpu, &Mask);
+ # else
+ Mask = (cpumask_t)1 << idCpu;
+ # endif
+ smp_rendezvous_cpus(Mask, NULL, rtmpFreeBSDPokeCallback, smp_no_rendezvous_barrier, NULL);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+
+ return VINF_SUCCESS;
+ }
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c
new file mode 100644
index 000000000000..cb5deba5ce97
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c
@@ -0,0 +1,53 @@
+--- src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c
+@@ -111,7 +111,9 @@ RTDECL(int) RTSemEventCreateEx(PRTSEMEVENT phEventSem
+ Assert(!(fFlags & RTSEMEVENT_FLAGS_BOOTSTRAP_HACK) || (fFlags & RTSEMEVENT_FLAGS_NO_LOCK_VAL));
+ AssertPtrReturn(phEventSem, VERR_INVALID_POINTER);
+
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ PRTSEMEVENTINTERNAL pThis = (PRTSEMEVENTINTERNAL)RTMemAllocZ(sizeof(*pThis));
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ if (!pThis)
+ return VERR_NO_MEMORY;
+
+@@ -162,10 +164,12 @@ RTDECL(int) RTSemEventDestroy(RTSEMEVENT hEventSem)
+ /*
+ * Invalidate it and signal the object just in case.
+ */
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ ASMAtomicWriteU32(&pThis->u32Magic, ~RTSEMEVENT_MAGIC);
+ ASMAtomicWriteU32(&pThis->fState, 0);
+ rtR0SemBsdBroadcast(pThis);
+ rtR0SemEventBsdRelease(pThis);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -183,9 +187,11 @@ RTDECL(int) RTSemEventSignal(RTSEMEVENT hEventSem)
+ /*
+ * Signal the event object.
+ */
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ ASMAtomicWriteU32(&pThis->fState, 1);
+ rtR0SemBsdSignal(pThis);
+ rtR0SemEventBsdRelease(pThis);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -209,6 +215,7 @@ static int rtR0SemEventWait(PRTSEMEVENTINTERNAL pThis,
+ AssertPtrReturn(pThis, VERR_INVALID_PARAMETER);
+ AssertMsgReturn(pThis->u32Magic == RTSEMEVENT_MAGIC, ("%p u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_PARAMETER);
+ AssertReturn(RTSEMWAIT_FLAGS_ARE_VALID(fFlags), VERR_INVALID_PARAMETER);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ rtR0SemEventBsdRetain(pThis);
+
+ /*
+@@ -258,6 +265,7 @@ static int rtR0SemEventWait(PRTSEMEVENTINTERNAL pThis,
+ }
+
+ rtR0SemEventBsdRelease(pThis);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return rc;
+ }
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c
new file mode 100644
index 000000000000..dab1b22fcd36
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c
@@ -0,0 +1,73 @@
+--- src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c
+@@ -130,7 +130,9 @@ RTDECL(int) RTSemEventMultiCreateEx(PRTSEMEVENTMULTI
+ PRTSEMEVENTMULTIINTERNAL pThis;
+
+ AssertReturn(!(fFlags & ~RTSEMEVENTMULTI_FLAGS_NO_LOCK_VAL), VERR_INVALID_PARAMETER);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ pThis = (PRTSEMEVENTMULTIINTERNAL)RTMemAlloc(sizeof(*pThis));
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ if (pThis)
+ {
+ pThis->u32Magic = RTSEMEVENTMULTI_MAGIC;
+@@ -186,10 +188,12 @@ RTDECL(int) RTSemEventMultiDestroy(RTSEMEVENTMULTI hE
+ /*
+ * Invalidate it and signal the object just in case.
+ */
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ ASMAtomicWriteU32(&pThis->u32Magic, ~RTSEMEVENTMULTI_MAGIC);
+ ASMAtomicAndU32(&pThis->fStateAndGen, RTSEMEVENTMULTIBSD_GEN_MASK);
+ rtR0SemBsdBroadcast(pThis);
+ rtR0SemEventMultiBsdRelease(pThis);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -198,6 +202,7 @@ RTDECL(int) RTSemEventMultiSignal(RTSEMEVENTMULTI hEv
+ {
+ uint32_t fNew;
+ uint32_t fOld;
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ /*
+ * Validate input.
+@@ -224,12 +229,15 @@ RTDECL(int) RTSemEventMultiSignal(RTSEMEVENTMULTI hEv
+
+ rtR0SemBsdBroadcast(pThis);
+ rtR0SemEventMultiBsdRelease(pThis);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+
+ RTDECL(int) RTSemEventMultiReset(RTSEMEVENTMULTI hEventMultiSem)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
++
+ /*
+ * Validate input.
+ */
+@@ -246,6 +254,7 @@ RTDECL(int) RTSemEventMultiReset(RTSEMEVENTMULTI hEve
+ ASMAtomicAndU32(&pThis->fStateAndGen, ~RTSEMEVENTMULTIBSD_STATE_MASK);
+
+ rtR0SemEventMultiBsdRelease(pThis);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -262,6 +271,7 @@ static int rtR0SemEventMultiBsdWait(PRTSEMEVENTMULTIIN
+ static int rtR0SemEventMultiBsdWait(PRTSEMEVENTMULTIINTERNAL pThis, uint32_t fFlags, uint64_t uTimeout,
+ PCRTLOCKVALSRCPOS pSrcPos)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ uint32_t fOrgStateAndGen;
+ int rc;
+
+@@ -321,6 +331,7 @@ static int rtR0SemEventMultiBsdWait(PRTSEMEVENTMULTIIN
+ }
+
+ rtR0SemEventMultiBsdRelease(pThis);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return rc;
+ }
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semfastmutex-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semfastmutex-r0drv-freebsd.c
new file mode 100644
index 000000000000..21c03b87326e
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semfastmutex-r0drv-freebsd.c
@@ -0,0 +1,59 @@
+--- src/VBox/Runtime/r0drv/freebsd/semfastmutex-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/semfastmutex-r0drv-freebsd.c
+@@ -96,6 +96,7 @@ RTDECL(int) RTSemFastMutexCreate(PRTSEMFASTMUTEX phFa
+ {
+ AssertCompile(sizeof(RTSEMFASTMUTEXINTERNAL) > sizeof(void *));
+ AssertPtrReturn(phFastMtx, VERR_INVALID_POINTER);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ PRTSEMFASTMUTEXINTERNAL pThis = (PRTSEMFASTMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis));
+ if (pThis)
+@@ -104,8 +105,10 @@ RTDECL(int) RTSemFastMutexCreate(PRTSEMFASTMUTEX phFa
+ sx_init_flags(&pThis->SxLock, "IPRT Fast Mutex Semaphore", SX_DUPOK);
+
+ *phFastMtx = pThis;
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
+ }
+
+@@ -117,11 +120,13 @@ RTDECL(int) RTSemFastMutexDestroy(RTSEMFASTMUTEX hFas
+ return VINF_SUCCESS;
+ AssertPtrReturn(pThis, VERR_INVALID_HANDLE);
+ AssertMsgReturn(pThis->u32Magic == RTSEMFASTMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ ASMAtomicWriteU32(&pThis->u32Magic, RTSEMFASTMUTEX_MAGIC_DEAD);
+ sx_destroy(&pThis->SxLock);
+ RTMemFree(pThis);
+
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -131,8 +136,11 @@ RTDECL(int) RTSemFastMutexRequest(RTSEMFASTMUTEX hFas
+ PRTSEMFASTMUTEXINTERNAL pThis = hFastMtx;
+ AssertPtrReturn(pThis, VERR_INVALID_HANDLE);
+ AssertMsgReturn(pThis->u32Magic == RTSEMFASTMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ sx_xlock(&pThis->SxLock);
++
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -142,8 +150,11 @@ RTDECL(int) RTSemFastMutexRelease(RTSEMFASTMUTEX hFas
+ PRTSEMFASTMUTEXINTERNAL pThis = hFastMtx;
+ AssertPtrReturn(pThis, VERR_INVALID_HANDLE);
+ AssertMsgReturn(pThis->u32Magic == RTSEMFASTMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ sx_xunlock(&pThis->SxLock);
++
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c
new file mode 100644
index 000000000000..048d345398eb
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c
@@ -0,0 +1,80 @@
+--- src/VBox/Runtime/r0drv/freebsd/semmutex-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/semmutex-r0drv-freebsd.c
+@@ -72,6 +72,7 @@ RTDECL(int) RTSemMutexCreate(PRTSEMMUTEX phMutexSem)
+ {
+ AssertCompile(sizeof(RTSEMMUTEXINTERNAL) > sizeof(void *));
+ AssertPtrReturn(phMutexSem, VERR_INVALID_POINTER);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ PRTSEMMUTEXINTERNAL pThis = (PRTSEMMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis));
+ if (pThis)
+@@ -80,8 +81,10 @@ RTDECL(int) RTSemMutexCreate(PRTSEMMUTEX phMutexSem)
+ sx_init_flags(&pThis->SxLock, "IPRT Mutex Semaphore", SX_RECURSE);
+
+ *phMutexSem = pThis;
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VERR_NO_MEMORY;
+ }
+
+@@ -93,12 +96,14 @@ RTDECL(int) RTSemMutexDestroy(RTSEMMUTEX hMutexSem)
+ return VINF_SUCCESS;
+ AssertPtrReturn(pThis, VERR_INVALID_HANDLE);
+ AssertMsgReturn(pThis->u32Magic == RTSEMMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ AssertReturn(ASMAtomicCmpXchgU32(&pThis->u32Magic, RTSEMMUTEX_MAGIC_DEAD, RTSEMMUTEX_MAGIC), VERR_INVALID_HANDLE);
+
+ sx_destroy(&pThis->SxLock);
+ RTMemFree(pThis);
+
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -109,6 +114,7 @@ RTDECL(int) RTSemMutexRequest(RTSEMMUTEX hMutexSem, R
+ int rc;
+ AssertPtrReturn(pThis, VERR_INVALID_HANDLE);
+ AssertMsgReturn(pThis->u32Magic == RTSEMMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ if (cMillies == RT_INDEFINITE_WAIT)
+ {
+@@ -143,6 +149,7 @@ RTDECL(int) RTSemMutexRequest(RTSEMMUTEX hMutexSem, R
+ } while (RTTimeSystemMilliTS() - StartTS < cMillies);
+ }
+
++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -159,6 +166,7 @@ RTDECL(int) RTSemMutexRequestNoResume(RTSEMMUTEX hMut
+ int rc;
+ AssertPtrReturn(pThis, VERR_INVALID_HANDLE);
+ AssertMsgReturn(pThis->u32Magic == RTSEMMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ if (cMillies == RT_INDEFINITE_WAIT)
+ {
+@@ -196,6 +204,7 @@ RTDECL(int) RTSemMutexRequestNoResume(RTSEMMUTEX hMut
+ } while (RTTimeSystemMilliTS() - StartTS < cMillies);
+ }
+
++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -211,8 +220,11 @@ RTDECL(int) RTSemMutexRelease(RTSEMMUTEX hMutexSem)
+ PRTSEMMUTEXINTERNAL pThis = hMutexSem;
+ AssertPtrReturn(pThis, VERR_INVALID_HANDLE);
+ AssertMsgReturn(pThis->u32Magic == RTSEMMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ sx_xunlock(&pThis->SxLock);
++
++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC();
+ return VINF_SUCCESS;
+ }
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c
new file mode 100644
index 000000000000..442c6e1c243d
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c
@@ -0,0 +1,30 @@
+--- src/VBox/Runtime/r0drv/freebsd/spinlock-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/spinlock-r0drv-freebsd.c
+@@ -116,7 +116,9 @@ RTDECL(int) RTSpinlockCreate(PRTSPINLOCK pSpinlock, u
+ * Allocate.
+ */
+ AssertCompile(sizeof(RTSPINLOCKINTERNAL) > sizeof(void *));
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ PRTSPINLOCKINTERNAL pThis = (PRTSPINLOCKINTERNAL)RTMemAllocZ(sizeof(*pThis));
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ if (!pThis)
+ return VERR_NO_MEMORY;
+
+@@ -150,7 +152,9 @@ RTDECL(int) RTSpinlockDestroy(RTSPINLOCK Spinlock)
+ * Make the lock invalid and release the memory.
+ */
+ ASMAtomicIncU32(&pThis->u32Magic);
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ RTMemFree(pThis);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -176,6 +180,7 @@ RTDECL(void) RTSpinlockAcquire(RTSPINLOCK Spinlock)
+ {
+ RT_ASSERT_PREEMPT_CPUID_SPIN_ACQUIRED(pThis);
+ pThis->fIntSaved = fIntSaved;
++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC_EX(fIntSaved);
+ return;
+ }
+ if (--c <= 0)
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_the-freebsd-kernel.h b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_the-freebsd-kernel.h
new file mode 100644
index 000000000000..c783814425f5
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_the-freebsd-kernel.h
@@ -0,0 +1,48 @@
+--- src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h.orig 2025-04-14 17:59:14 UTC
++++ src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h
+@@ -97,6 +97,7 @@
+ #include <sys/smp.h>
+ #include <sys/sleepqueue.h>
+ #include <sys/sx.h>
++#include <sys/vmmeter.h> /* vm_cnt */
+ #include <vm/vm.h>
+ #include <vm/pmap.h> /* for vtophys */
+ #include <vm/vm_map.h>
+@@ -104,10 +105,11 @@
+ #include <vm/vm_kern.h>
+ #include <vm/vm_param.h> /* KERN_SUCCESS ++ */
+ #include <vm/vm_page.h>
++#include <vm/vm_pager.h>
+ #include <vm/vm_phys.h> /* vm_phys_alloc_* */
+ #include <vm/vm_extern.h> /* kmem_alloc_attr */
+ #include <vm/vm_pageout.h> /* vm_contig_grow_cache */
+-#include <sys/vmmeter.h> /* cnt */
++#include <vm/vm_radix.h>
+ #include <sys/resourcevar.h>
+ #include <machine/cpu.h>
+
+@@ -165,6 +167,24 @@
+ */
+ #if 0 /** @todo Not available yet. */
+ # define USE_KMEM_ALLOC_PROT
++#endif
++
++/**
++ * Macros for preserving EFLAGS.AC (despair / paranoid)
++ */
++#if __FreeBSD_version >= 1200076 && defined(RT_ARCH_AMD64)
++# include <iprt/asm-amd64-x86.h>
++# include <iprt/x86.h>
++# define IPRT_FREEBSD_SAVE_EFL_AC() RTCCUINTREG const fSavedEfl = ASMGetFlags()
++# define IPRT_FREEBSD_RESTORE_EFL_AC() ASMSetFlags(fSavedEfl)
++# define IPRT_FREEBSD_RESTORE_EFL_ONLY_AC() ASMChangeFlags(~X86_EFL_AC, fSavedEfl & X86_EFL_AC)
++# define IPRT_FREEBSD_RESTORE_EFL_ONLY_AC_EX(f) ASMChangeFlags(~X86_EFL_AC, (f) & X86_EFL_AC)
++# define VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV
++#else
++# define IPRT_FREEBSD_SAVE_EFL_AC() do { } while (0)
++# define IPRT_FREEBSD_RESTORE_EFL_AC() do { } while (0)
++# define IPRT_FREEBSD_RESTORE_EFL_ONLY_AC() do { } while (0)
++# define IPRT_FREEBSD_RESTORE_EFL_ONLY_AC_EX(f) do { } while (0)
+ #endif
+
+ #endif /* !IPRT_INCLUDED_SRC_r0drv_freebsd_the_freebsd_kernel_h */
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c
new file mode 100644
index 000000000000..73a0eab649ad
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c
@@ -0,0 +1,91 @@
+--- src/VBox/Runtime/r0drv/freebsd/thread-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/thread-r0drv-freebsd.c
+@@ -59,7 +59,6 @@ static int rtR0ThreadFbsdSleepCommon(RTMSINTERVAL cMil
+ static int rtR0ThreadFbsdSleepCommon(RTMSINTERVAL cMillies)
+ {
+ int rc;
+- int cTicks;
+
+ /*
+ * 0 ms sleep -> yield.
+@@ -70,30 +69,34 @@ static int rtR0ThreadFbsdSleepCommon(RTMSINTERVAL cMil
+ return VINF_SUCCESS;
+ }
+
++ IPRT_FREEBSD_SAVE_EFL_AC();
++
+ /*
+ * Translate milliseconds into ticks and go to sleep.
+ */
+ if (cMillies != RT_INDEFINITE_WAIT)
+ {
+- if (hz == 1000)
+- cTicks = cMillies;
+- else if (hz == 100)
+- cTicks = cMillies / 10;
+- else
+- {
+- int64_t cTicks64 = ((uint64_t)cMillies * hz) / 1000;
+- cTicks = (int)cTicks64;
+- if (cTicks != cTicks64)
+- cTicks = INT_MAX;
+- }
++ struct timeval tv;
++
++ tv.tv_sec = cMillies / 1000;
++ tv.tv_usec = cMillies * 1000;
++
++ rc = tsleep_sbt((void *)RTThreadSleep,
++ PZERO | PCATCH,
++ "iprtsl", /* max 6 chars */
++ tvtosbt(tv),
++ 0,
++ C_ABSOLUTE);
+ }
+ else
+- cTicks = 0; /* requires giant lock! */
+-
+- rc = tsleep((void *)RTThreadSleep,
+- PZERO | PCATCH,
+- "iprtsl", /* max 6 chars */
+- cTicks);
++ {
++ /* requires giant lock! */
++ rc = tsleep((void *)RTThreadSleep,
++ PZERO | PCATCH,
++ "iprts0", /* max 6 chars */
++ 0);
++ }
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ switch (rc)
+ {
+ case 0:
+@@ -124,11 +127,13 @@ RTDECL(bool) RTThreadYield(void)
+
+ RTDECL(bool) RTThreadYield(void)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ #if __FreeBSD_version >= 900032
+ kern_yield(curthread->td_user_pri);
+ #else
+ uio_yield();
+ #endif
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return false; /** @todo figure this one ... */
+ }
+
+@@ -177,12 +182,14 @@ RTDECL(void) RTThreadPreemptRestore(PRTTHREADPREEMPTST
+
+ RTDECL(void) RTThreadPreemptRestore(PRTTHREADPREEMPTSTATE pState)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC(); /* paranoia */
+ AssertPtr(pState);
+ Assert(pState->u32Reserved == 42);
+ pState->u32Reserved = 0;
+
+ RT_ASSERT_PREEMPT_CPUID_RESTORE(pState);
+ critical_exit();
++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC(); /* paranoia */
+ }
+
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c
new file mode 100644
index 000000000000..2af30cf1e27a
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c
@@ -0,0 +1,35 @@
+--- src/VBox/Runtime/r0drv/freebsd/thread2-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/thread2-r0drv-freebsd.c
+@@ -104,6 +104,8 @@ DECLHIDDEN(int) rtThreadNativeSetPriority(PRTTHREADINT
+ return VERR_INVALID_PARAMETER;
+ }
+
++ IPRT_FREEBSD_SAVE_EFL_AC();
++
+ #if __FreeBSD_version < 700000
+ /* Do like they're doing in subr_ntoskrnl.c... */
+ mtx_lock_spin(&sched_lock);
+@@ -120,6 +122,7 @@ DECLHIDDEN(int) rtThreadNativeSetPriority(PRTTHREADINT
+ thread_unlock(curthread);
+ #endif
+
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -169,6 +172,7 @@ DECLHIDDEN(int) rtThreadNativeCreate(PRTTHREADINT pThr
+
+ DECLHIDDEN(int) rtThreadNativeCreate(PRTTHREADINT pThreadInt, PRTNATIVETHREAD pNativeThread)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ int rc;
+ struct proc *pProc;
+
+@@ -184,6 +188,7 @@ DECLHIDDEN(int) rtThreadNativeCreate(PRTTHREADINT pThr
+ }
+ else
+ rc = RTErrConvertFromErrno(rc);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return rc;
+ }
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c
new file mode 100644
index 000000000000..cf453e69a1f9
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c
@@ -0,0 +1,43 @@
+--- src/VBox/Runtime/r0drv/freebsd/time-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/time-r0drv-freebsd.c
+@@ -74,16 +74,23 @@ RTDECL(uint64_t) RTTimeNanoTS(void)
+
+ RTDECL(uint64_t) RTTimeNanoTS(void)
+ {
+- struct timespec tsp;
+- nanouptime(&tsp);
+- return tsp.tv_sec * RT_NS_1SEC_64
+- + tsp.tv_nsec;
++ struct bintime bt;
++ uint64_t ns;
++ binuptime(&bt);
++ ns = RT_NS_1SEC_64 * bt.sec;
++ ns += (RT_NS_1SEC_64 * (uint32_t)(bt.frac >> 32)) >> 32;
++ return ns;
+ }
+
+
+ RTDECL(uint64_t) RTTimeMilliTS(void)
+ {
+- return RTTimeNanoTS() / RT_NS_1MS;
++ struct bintime bt;
++ uint64_t ms;
++ binuptime(&bt);
++ ms = RT_MS_1SEC_64 * bt.sec;
++ ms += (RT_MS_1SEC_64 * (uint32_t)(bt.frac >> 32)) >> 32;
++ return ms;
+ }
+
+
+@@ -101,8 +108,7 @@ RTDECL(PRTTIMESPEC) RTTimeNow(PRTTIMESPEC pTime)
+
+ RTDECL(PRTTIMESPEC) RTTimeNow(PRTTIMESPEC pTime)
+ {
+- struct timespec tsp;
+- nanotime(&tsp);
+- return RTTimeSpecSetTimespec(pTime, &tsp);
++ struct timespec ts;
++ nanotime(&ts);
++ return RTTimeSpecSetTimespec(pTime, &ts);
+ }
+-
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c
new file mode 100644
index 000000000000..537199743da8
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c
@@ -0,0 +1,68 @@
+--- src/VBox/Runtime/r0drv/freebsd/timer-r0drv-freebsd.c.orig 2025-08-13 19:51:51 UTC
++++ src/VBox/Runtime/r0drv/freebsd/timer-r0drv-freebsd.c
+@@ -126,6 +126,7 @@ RTDECL(int) RTTimerCreateEx(PRTTIMER *ppTimer, uint64_
+ RTDECL(int) RTTimerCreateEx(PRTTIMER *ppTimer, uint64_t u64NanoInterval, uint32_t fFlags, PFNRTTIMER pfnTimer, void *pvUser)
+ {
+ *ppTimer = NULL;
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ /*
+ * Validate flags.
+@@ -155,6 +156,7 @@ RTDECL(int) RTTimerCreateEx(PRTTIMER *ppTimer, uint64_
+ callout_init(&pTimer->Callout, CALLOUT_MPSAFE);
+
+ *ppTimer = pTimer;
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -175,6 +177,8 @@ RTDECL(int) RTTimerDestroy(PRTTIMER pTimer)
+
+ RTDECL(int) RTTimerDestroy(PRTTIMER pTimer)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
++
+ /* It's ok to pass NULL pointer. */
+ if (pTimer == /*NIL_RTTIMER*/ NULL)
+ return VINF_SUCCESS;
+@@ -187,6 +191,8 @@ RTDECL(int) RTTimerDestroy(PRTTIMER pTimer)
+ pTimer->u32Magic++;
+ callout_stop(&pTimer->Callout);
+ RTMemFree(pTimer);
++
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -194,6 +200,7 @@ RTDECL(int) RTTimerStart(PRTTIMER pTimer, uint64_t u64
+ RTDECL(int) RTTimerStart(PRTTIMER pTimer, uint64_t u64First)
+ {
+ struct timeval tv;
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ if (!rtTimerIsValid(pTimer))
+ return VERR_INVALID_HANDLE;
+@@ -217,12 +224,15 @@ RTDECL(int) RTTimerStart(PRTTIMER pTimer, uint64_t u64
+ tv.tv_usec = (u64First % 1000000000) / 1000;
+ callout_reset(&pTimer->Callout, tvtohz(&tv), rtTimerFreeBSDCallback, pTimer);
+
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+
+ RTDECL(int) RTTimerStop(PRTTIMER pTimer)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
++
+ if (!rtTimerIsValid(pTimer))
+ return VERR_INVALID_HANDLE;
+ if (pTimer->fSuspended)
+@@ -234,6 +244,7 @@ RTDECL(int) RTTimerStop(PRTTIMER pTimer)
+ pTimer->fSuspended = true;
+ callout_stop(&pTimer->Callout);
+
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp
new file mode 100644
index 000000000000..87ae993446a3
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp
@@ -0,0 +1,39 @@
+--- src/VBox/Runtime/r3/freebsd/systemmem-freebsd.cpp.orig 2025-04-14 17:59:18 UTC
++++ src/VBox/Runtime/r3/freebsd/systemmem-freebsd.cpp
+@@ -75,7 +75,6 @@ RTDECL(int) RTSystemQueryAvailableRam(uint64_t *pcb)
+ u_int cPagesMemFree = 0;
+ u_int cPagesMemInactive = 0;
+ u_int cPagesMemCached = 0;
+- u_int cPagesMemUsed = 0;
+ int cbPage = 0;
+ size_t cbParameter;
+ int cProcessed = 0;
+@@ -83,25 +82,23 @@ RTDECL(int) RTSystemQueryAvailableRam(uint64_t *pcb)
+ cbParameter = sizeof(cPagesMemFree);
+ if (sysctlbyname("vm.stats.vm.v_free_count", &cPagesMemFree, &cbParameter, NULL, 0))
+ rc = RTErrConvertFromErrno(errno);
+- cbParameter = sizeof(cPagesMemUsed);
+- if ( RT_SUCCESS(rc)
+- && sysctlbyname("vm.stats.vm.v_active_count", &cPagesMemUsed, &cbParameter, NULL, 0))
+- rc = RTErrConvertFromErrno(errno);
+ cbParameter = sizeof(cPagesMemInactive);
+ if ( RT_SUCCESS(rc)
+ && sysctlbyname("vm.stats.vm.v_inactive_count", &cPagesMemInactive, &cbParameter, NULL, 0))
+ rc = RTErrConvertFromErrno(errno);
++#if __FreeBSD_version < 1200016
+ cbParameter = sizeof(cPagesMemCached);
+ if ( RT_SUCCESS(rc)
+ && sysctlbyname("vm.stats.vm.v_cache_count", &cPagesMemCached, &cbParameter, NULL, 0))
+ rc = RTErrConvertFromErrno(errno);
++#endif
+ cbParameter = sizeof(cbPage);
+ if ( RT_SUCCESS(rc)
+ && sysctlbyname("hw.pagesize", &cbPage, &cbParameter, NULL, 0))
+ rc = RTErrConvertFromErrno(errno);
+
+ if (RT_SUCCESS(rc))
+- *pcb = (cPagesMemFree + cPagesMemInactive + cPagesMemCached ) * cbPage;
++ *pcb = ((uint64_t)cPagesMemFree + cPagesMemInactive + cPagesMemCached) * cbPage;
+
+ return rc;
+ }
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r3_posix_process-creation-posix.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r3_posix_process-creation-posix.cpp
new file mode 100644
index 000000000000..06bfba5d3dac
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r3_posix_process-creation-posix.cpp
@@ -0,0 +1,38 @@
+--- src/VBox/Runtime/r3/posix/process-creation-posix.cpp.orig 2025-08-13 19:51:58 UTC
++++ src/VBox/Runtime/r3/posix/process-creation-posix.cpp
+@@ -40,7 +40,7 @@
+ *********************************************************************************************************************************/
+ #define LOG_GROUP RTLOGGROUP_PROCESS
+ #include <iprt/cdefs.h>
+-#ifdef RT_OS_LINUX
++#if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)
+ # define IPRT_WITH_DYNAMIC_CRYPT_R
+ #endif
+ #if (defined(RT_OS_LINUX) || defined(RT_OS_OS2)) && !defined(_GNU_SOURCE)
+@@ -85,7 +85,7 @@
+ # include <xlocale.h> /* for newlocale() */
+ #endif
+
+-#if defined(RT_OS_LINUX) || defined(RT_OS_OS2)
++#if defined(RT_OS_LINUX) || defined(RT_OS_OS2) || defined(RT_OS_FREEBSD)
+ /* While Solaris has posix_spawn() of course we don't want to use it as
+ * we need to have the child in a different process contract, no matter
+ * whether it is started detached or not. */
+@@ -174,7 +174,7 @@
+ # define IPRT_LIBPAM_FILE_3 "libpam.1.dylib"
+ # define IPRT_LIBPAM_FILE_3_FIRST_VER 0
+ # define IPRT_LIBPAM_FILE_3_END_VER 0
+-# elif RT_OS_LINUX
++# elif RT_OS_LINUX || RT_OS_FREEBSD
+ # define IPRT_LIBPAM_FILE_1 "libpam.so.0"
+ # define IPRT_LIBPAM_FILE_1_FIRST_VER 0
+ # define IPRT_LIBPAM_FILE_1_END_VER 0
+@@ -681,7 +681,7 @@ static int rtCheckCredentials(const char *pszUser, con
+ if (pPw->pw_passwd && *pPw->pw_passwd)
+ # endif
+ {
+-# if defined(RT_OS_LINUX) || defined(RT_OS_OS2)
++# if defined(RT_OS_LINUX) || defined(RT_OS_OS2) || defined(RT_OS_FREEBSD)
+ # ifdef IPRT_WITH_DYNAMIC_CRYPT_R
+ size_t const cbCryptData = RT_MAX(sizeof(struct crypt_data) * 2, _256K);
+ # else
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_VMM_Config.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_VMM_Config.kmk
new file mode 100644
index 000000000000..cb294d7cd898
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_VMM_Config.kmk
@@ -0,0 +1,11 @@
+--- src/VBox/VMM/Config.kmk.orig 2025-08-13 19:52:06 UTC
++++ src/VBox/VMM/Config.kmk
+@@ -133,7 +133,7 @@ endif
+ VMM_COMMON_DEFS += VBOX_WITH_NATIVE_NEM VBOX_WITH_NEM_R0
+ endif
+ endif
+-if1of ($(KBUILD_TARGET), freebsd linux solaris) # Hosts that implements SUPR0HCPhysToVirt.
++if1of ($(KBUILD_TARGET), linux solaris) # Hosts that implements SUPR0HCPhysToVirt.
+ VMM_COMMON_DEFS += VBOX_WITH_LINEAR_HOST_PHYS_MEM
+ endif
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp
new file mode 100644
index 000000000000..b460847d13f0
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp
@@ -0,0 +1,59 @@
+--- src/VBox/VMM/VMMR3/PDMAsyncCompletionFileNormal.cpp.orig 2025-08-13 19:52:13 UTC
++++ src/VBox/VMM/VMMR3/PDMAsyncCompletionFileNormal.cpp
+@@ -37,6 +37,13 @@
+ #include <iprt/string.h>
+ #include <iprt/assert.h>
+ #include <VBox/log.h>
++/* TBR: we need a complicated crawl through the data structure to get the AIO system limits
++ to check when considering growing the number of active AIO requests.... */
++/* We need the PDMInternal *before* the UVM, or it isn't visible afterwards. (src/VBox/VMM/include/PDMInternal.h) */
++#include <PDMInternal.h>
++#include <VBox/vmm/uvm.h>
++#include <VBox/vmm/vm.h>
++/* TBR: end of extra includes. */
+
+ #include "PDMAsyncCompletionFileInternal.h"
+
+@@ -1119,8 +1126,40 @@ static int pdmacFileAioMgrNormalProcessTaskList(PPDMAC
+ */
+ pdmacFileAioMgrNormalBalanceLoad(pAioMgr);
+ #else
+- /* Grow the I/O manager */
+- pAioMgr->enmState = PDMACEPFILEMGRSTATE_GROWING;
++ /* TBR: Check the global AIO system limit before growing.
++ This is the complicateds crawl through the data structure mentioned
++ near the start of this file.
++ There HAS to be a better way and better time to get this limit! */
++ PPDMASYNCCOMPLETIONEPCLASS pEpClass = NULL;
++ PCPDMASYNCCOMPLETIONEPCLASSOPS pEndpointOps = NULL;
++ PDMASYNCCOMPLETIONEPCLASSTYPE enmClassType;
++ PPDMASYNCCOMPLETIONEPCLASSFILE pEpClassFile = NULL;
++ PVM pVM = NULL;
++ PUVM pUVM = NULL;
++ unsigned int aio_system_reqests_max = RTFILEAIO_UNLIMITED_REQS;
++ pEpClass = pEndpoint->Core.pEpClass;
++ AssertMsg((NULL != pEpClass),("ep->class is NULL"));
++ pEndpointOps = pEpClass->pEndpointOps;
++ AssertMsg((NULL != pEndpointOps),("ep->class->ops is NULL"));
++ enmClassType = pEndpointOps->enmClassType;
++ AssertMsg((PDMASYNCCOMPLETIONEPCLASSTYPE_FILE == enmClassType),
++ ("ep->class->ops->type != PDMASYNCCOMPLETIONEPCLASSTYPE_FILE"));
++ pVM = pEpClass->pVM;
++ AssertMsg((NULL != pVM),("ep->class->VM is NULL"));
++ pUVM = pVM->pUVM;
++ AssertMsg((NULL != pUVM),("ep->class->VM->UVM is NULL"));
++ pEpClassFile = (PPDMASYNCCOMPLETIONEPCLASSFILE) (pUVM->pdm.s.apAsyncCompletionEndpointClass[enmClassType]);
++ AssertMsg((NULL != pEpClassFile),("ep->class->VM->UVM->pdn[globals] is NULL"));
++ aio_system_reqests_max = pEpClassFile->cReqsOutstandingMax;
++#if 0
++ /* A one time check during development to verify getting the right number. */
++ AssertMsg((256 != aio_system_reqests_max),
++ ("aio_system_reqests_max != 256 (val=%u)",aio_system_reqests_max));
++#endif
++ if (RT_UNLIKELY( aio_system_reqests_max == RTFILEAIO_UNLIMITED_REQS
++ || (pAioMgr->cRequestsActiveMax+PDMACEPFILEMGR_REQS_STEP) <= aio_system_reqests_max))
++ /* Grow the I/O manager */
++ pAioMgr->enmState = PDMACEPFILEMGRSTATE_GROWING;
+ #endif
+ }
+ }
diff --git a/emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_Makefile.kmk
new file mode 100644
index 000000000000..95f5972ce7f8
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_Makefile.kmk
@@ -0,0 +1,11 @@
+--- src/libs/xpcom18a4/Makefile.kmk.orig 2025-08-13 19:56:45 UTC
++++ src/libs/xpcom18a4/Makefile.kmk
+@@ -601,6 +601,8 @@ VBoxXPCOM_LIBS = \
+ $(VBox-xpcom-proxy_1_TARGET) \
+ $(VBox-xpcom-nspr_1_TARGET) \
+ $(VBoxXPCOMGlue_s_1_TARGET)
++VBoxXPCOM_LIBS.freebsd = \
++ pthread
+ VBoxXPCOM_LIBS.linux = \
+ pthread dl
+
diff --git a/emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c b/emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c
new file mode 100644
index 000000000000..6bd41290d6ee
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c
@@ -0,0 +1,13 @@
+--- src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptsynch.c.orig 2025-08-13 19:56:47 UTC
++++ src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptsynch.c
+@@ -45,6 +45,10 @@
+ #include <string.h>
+ #include <pthread.h>
+ #include <sys/time.h>
++#ifdef FREEBSD
++#include <sys/param.h>
++#endif
++
+ #include <errno.h>
+
+ #include <iprt/asm.h>
diff --git a/emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h b/emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h
new file mode 100644
index 000000000000..50f117437106
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/patch-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h
@@ -0,0 +1,17 @@
+--- src/libs/xpcom18a4/xpcom/io/nsLocalFileUnix.h.orig 2025-08-13 19:56:51 UTC
++++ src/libs/xpcom18a4/xpcom/io/nsLocalFileUnix.h
+@@ -74,14 +74,6 @@
+ #define STATFS statfs
+ #endif
+
+-// so we can statfs on freebsd
+-#if defined(__FreeBSD__)
+- #define HAVE_SYS_STATFS_H
+- #define STATFS statfs
+- #include <sys/param.h>
+- #include <sys/mount.h>
+-#endif
+-
+ class NS_COM nsLocalFile : public nsILocalFile
+ {
+ public:
diff --git a/emulators/virtualbox-ose-72/files/pkg-message.in b/emulators/virtualbox-ose-72/files/pkg-message.in
new file mode 100644
index 000000000000..27c14e0a2e2a
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/pkg-message.in
@@ -0,0 +1,120 @@
+[
+{ type: install
+ message: <<EOM
+VirtualBox was installed.
+
+You need to load the vboxdrv kernel module via /boot/loader.conf:
+
+vboxdrv_load="YES"
+
+You also have to add all users to your vboxusers group in order to use vbox.
+
+% pw groupmod vboxusers -m jerry
+
+Reboot the machine to load the needed kernel modules.
+
+
+Bridging Support:
+=================
+
+For bridged networking please add the following line to your /etc/rc.conf:
+
+vboxnet_enable="YES"
+
+
+USB Support:
+============
+
+For USB support your user needs to be in the operator group and needs read
+and write permissions to the USB device.
+
+% pw groupmod operator -m jerry
+
+Add the following to /etc/devfs.rules (create if it doesn't exist):
+
+[system=10]
+add path 'usb/*' mode 0660 group operator
+
+To load these new rule add the following to /etc/rc.conf:
+
+devfs_system_ruleset="system"
+
+Then restart devfs to load the new rules:
+
+% /etc/rc.d/devfs restart
+
+
+Troubleshooting:
+================
+
+Running VirtualBox as non-root user may fail with a fatal error
+NS_ERROR_FACTORY_NOT_REGISTERED. In this case delete /tmp/.vbox-*-ipc file.
+
+If you experience "Network: write Failed: Cannot allocate memory" errors
+try to increase net.graph.maxdata in /boot/loader.conf
+
+If you are using AIO, then increase these limits (https://bugs.freebsd.org/168298):
+vfs.aio.max_buf_aio=8192
+vfs.aio.max_aio_queue_per_proc=65536
+vfs.aio.max_aio_per_proc=8192
+vfs.aio.max_aio_queue=65536
+To check if AIO is used use: kldstat -v | grep aio
+
+If you are experiencing VMs freezes with an error in VBox.log such as:
+"
+00:01:29.590192 AssertLogRel /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.44
+/src/VBox/VMM/VMMR3/PGMPhys.cpp(5148) int PGMR3PhysAllocateHandyPages(PVM): RT_SUCCESS(rc)
+00:01:29.590221 87/128: idPage=0x3d400 HCPhysGCPhys=000000027eaed000 rc=VERR_NO_MEMORY
+00:01:29.590247 Changing the VM state from 'RUNNING' to 'GURU_MEDITATION'
+00:01:29.590261 Console: Machine state changed to 'GuruMeditation'
+00:01:29.590695 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+00:01:29.590696 !!
+00:01:29.590697 !! VCPU0: Guru Meditation -8 (VERR_NO_MEMORY)
+"
+and see a lot of free RAM, then increase sysctl vm.max_user_wired
+(https://bugs.freebsd.org/252227).
+For dedicated VM servers, a good start is:
+("RAM in GB" - max(1, "RAM in GB" / 32)) * 1024*1024*1024 / PAGE_SIZE
+PAGE_SIZE on x86 is 4096.
+Examples with different RAM sizes in GB:
+ 16: ( 16-max(1, 16/32)*1024*1024*1024/4096 = 3932160 => 15GB
+ 32: ( 32-max(1, 32/32)*1024*1024*1024/4096 = 8126464 => 31GB
+ 48: ( 48-max(1, 48/32)*1024*1024*1024/4096 = 12189696 => 46.5GB
+ 64: ( 64-max(1, 64/32)*1024*1024*1024/4096 = 16252928 => 62GB
+128: (128-max(1,128/32)*1024*1024*1024/4096 = 32505856 => 124GB
+256: (256-max(1,256/32)*1024*1024*1024/4096 = 65011712 => 248GB
+
+When assigning IP addresses in host-only mode from ranges outside
+of VirtualBox's defaults, the respective ranges need to be listed
+in %%VBOX_ETC%%/networks.conf (https://bugs.freebsd.org/259399).
+
+Check the wiki page for known issues and troubleshooting:
+https://wiki.freebsd.org/VirtualBox
+
+Please report any problems to emulation@. Thanks!
+EOM
+}
+{ type: upgrade
+ maximum_version: 6.1.22
+ message: <<EOM
+The PULSEAUDIO option has been forcibly disabled since VirtualBox
+version 6.1.24 due to a bug in it preventing virtual machines
+configured to use it from starting.
+
+When upgrading from a previous version please reconfigure any virtual
+machines using the Pulseaudio host audio driver to use another
+supported one.
+EOM
+}
+{ type: upgrade
+ minimum_version: 6.1.26
+ maximum_version: 6.1.32_1
+ message: <<EOM
+To comply to hier(7) requirements, networks.conf's location changed
+to %%VBOX_ETC%%/networks.conf.
+
+In case /etc/vbox/networks.conf exists, it needs to be moved to
+%%VBOX_ETC%% and /etc/vbox should be deleted.
+EOM
+}
+]
diff --git a/emulators/virtualbox-ose-72/files/vboxheadless.in b/emulators/virtualbox-ose-72/files/vboxheadless.in
new file mode 100644
index 000000000000..5ddc5fc21d6c
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/vboxheadless.in
@@ -0,0 +1,140 @@
+#!/bin/sh
+
+# PROVIDE: vboxheadless
+# REQUIRE: LOGIN vboxnet
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf[.local] to enable vboxheadless
+#
+# vboxheadless_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable vboxheadless.
+# vboxheadless_machines (str): Space separated list of machines
+# vboxheadless_user (str): Default user account to run with.
+# (default: %%VBOXUSER%%)
+# vboxheadless_stop (str): Default stop cmd for VBoxManage controlvm.
+# (default: savestate)
+# vboxheadless_delay (int): Default startup/shutdown delay in seconds.
+# (default: 0)
+# vboxheadless_<machine>_name (str): Virtualbox machine name or UUID.
+# vboxheadless_<machine>_user (str): User account to run with.
+# vboxheadless_<machine>_flags (str): Additional flags for VBoxHeadless.
+# vboxheadless_<machine>_stop (str): Stop command for VBoxManage controlvm.
+# vboxheadless_<machine>_delay (int): Startup and shutdown delay in seconds.
+
+. /etc/rc.subr
+
+name="vboxheadless"
+rcvar=vboxheadless_enable
+rc_fast="YES"
+
+command="%%VBOXDIR%%/VBoxHeadless"
+pidbase="/var/run/${name}"
+
+start_cmd="${name}_start"
+stop_cmd="${name}_stop"
+status_cmd="${name}_status"
+
+vboxheadless_start()
+{
+ local machine mpidfile pid vmname vmuser vmflags vmdelay
+
+ echo "Starting Virtual Machines:"
+ for machine in ${vboxheadless_machines}; do
+ mpidfile="${pidbase}_${machine}.pid"
+ pid=$(check_pidfile $mpidfile $command)
+ eval vmname="\${vboxheadless_${machine}_name:-${machine}}"
+ eval vmuser="\${vboxheadless_${machine}_user:-${vboxheadless_user}}"
+ eval vmflags="\${vboxheadless_${machine}_flags:-}"
+ eval vmdelay="\${vboxheadless_${machine}_delay:-${vboxheadless_delay}}"
+
+ HOME=$(/usr/sbin/pw usershow -7 -n "${vmuser}" | /usr/bin/cut -d: -f6)
+
+ /usr/bin/printf "%25s " "${vmname}"
+
+ /usr/bin/su ${vmuser} -c "%%VBOXDIR%%/VBoxManage showvminfo '${vmname}' >/dev/null" 2>/dev/null
+
+ if [ $? != 0 ]; then
+ echo "Unknown machine"
+ continue
+ fi
+
+ if [ -n "${pid}" ]; then
+ echo "Already running? (pid=${pid})"
+ continue
+ fi
+
+ /bin/sleep ${vmdelay}
+ /usr/bin/install -o ${vmuser} -g %%VBOXGROUP%% -m 644 /dev/null ${mpidfile}
+ /usr/sbin/daemon -f -p ${mpidfile} -u ${vmuser} ${command} --startvm "${vmname}" ${vmflags}
+ echo "Started"
+ done
+}
+
+vboxheadless_stop()
+{
+ local machine mpidfile pid pids vmname vmuser vmstop vmdelay
+
+ echo "Saving states for Virtual Machines:"
+ for machine in ${vboxheadless_machines}; do
+ mpidfile="${pidbase}_${machine}.pid"
+ pid=$(check_pidfile $mpidfile $command)
+ eval vmname="\${vboxheadless_${machine}_name:-${machine}}"
+ eval vmuser="\${vboxheadless_${machine}_user:-${vboxheadless_user}}"
+ eval vmstop="\${vboxheadless_${machine}_stop:-${vboxheadless_stop}}"
+ eval vmdelay="\${vboxheadless_${machine}_delay:-${vboxheadless_delay}}"
+
+ /usr/bin/printf "%25s " "${vmname}"
+
+ if [ -n "${pid}" ]; then
+ pids="${pids} ${pid}"
+ /bin/sleep ${vmdelay}
+ /usr/bin/su ${vmuser} -c "%%VBOXDIR%%/VBoxManage controlvm '${vmname}' ${vmstop} >/dev/null &" 2>/dev/null
+ fi
+ done
+ if [ -n "${pids}" ]; then
+ wait_for_pids $pids >/dev/null
+ echo "Stopped"
+ else
+ echo "Not running?"
+ fi
+}
+
+vboxheadless_status()
+{
+ local machine mpidfile pid vmname vmuser
+
+ /usr/bin/printf "%25s %s\n" "Machine" "Status"
+ /usr/bin/printf "%25s %s\n" "-------------------------" "------------"
+
+ for machine in ${vboxheadless_machines}; do
+ mpidfile="${pidbase}_${machine}.pid"
+ pid=$(check_pidfile $mpidfile $command)
+ eval vmname="\${vboxheadless_${machine}_name:-${machine}}"
+ eval vmuser="\${vboxheadless_${machine}_user:-${vboxheadless_user}}"
+
+ /usr/bin/su ${vmuser} -c "%%VBOXDIR%%/VBoxManage showvminfo '${vmname}' >/dev/null" 2>/dev/null
+
+ if [ $? != 0 ]; then
+ /usr/bin/printf "%20s %s\n" "${vmname}" "Unknown Machine"
+ elif [ -n "${pid}" ]; then
+ /usr/bin/printf "%25s %s\n" "${vmname}" "Running"
+ else
+ /usr/bin/printf "%25s %s\n" "${vmname}" "Powered Off"
+ fi
+ done
+}
+
+load_rc_config $name
+
+: ${vboxheadless_enable="NO"}
+: ${vboxheadless_user="%%VBOXUSER%%"}
+: ${vboxheadless_stop="savestate"}
+: ${vboxheadless_delay="0"}
+
+cmd_arg="$1" ; shift
+
+if [ -n "$*" ]; then
+ vboxheadless_machines="$*"
+fi
+
+run_rc_command "${cmd_arg}"
diff --git a/emulators/virtualbox-ose-72/files/vboxinit.in b/emulators/virtualbox-ose-72/files/vboxinit.in
new file mode 100644
index 000000000000..9895da9e362e
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/vboxinit.in
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+# PROVIDE: vboxinit
+# REQUIRE: LOGIN vboxnet vboxwebsrv sshd
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf[.local] to enable vboxinit
+#
+# vboxinit_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable vboxinit.
+# stop and faststop are always enabled.
+# vboxinit_user (str): Default user account to run with.
+# (default: %%VBOXUSER%%)
+# vboxinit_home (str): Default home directory to run with.
+# (default: home of user ${vboxinit_user}
+# vboxinit_stop (str): Default stop cmd for VBoxManage controlvm.
+# (default: savestate)
+# vboxinit_start_delay (int): Default startup delay in seconds.
+# (default: 0)
+# vboxinit_stop_delay (int): Default shutdown delay in seconds.
+# (default: 0)
+#
+# Set the "Startup Mode" to "Automatic" for the virtual machine in
+# phpvirtualbox to automatically start the virtual machine during OS boot.
+#
+
+. /etc/rc.subr
+
+name="vboxinit"
+rcvar="${name}_enable"
+
+start_cmd="${name}_start"
+stop_cmd="${name}_stop"
+status_cmd="${name}_status"
+restart_cmd="${name}_restart"
+
+vboxinit_start()
+{
+ # Get a list of all machines with autorun enabled in phpvirtualbox
+ ${su_command} "${command} list vms | /usr/bin/tr -d '{}\"'" | /usr/bin/sort | while read VMNAME UUID; do
+ STARTUP=$(${su_command} "${command} getextradata ${UUID} 'pvbx/startupMode'" | /usr/bin/cut -d' ' -f2)
+ if [ "${STARTUP}" == "auto" ]; then
+ echo "${name}: starting machine ${VMNAME} ..."
+ ${su_command} "${command} startvm ${UUID} --type headless"
+ sleep "${vboxinit_start_delay}"
+ fi
+ done
+}
+
+vboxinit_stop()
+{
+ # Get all running machines
+ ${su_command} "${command} list runningvms | /usr/bin/tr -d '{}\"'" | /usr/bin/sort -r | while read VMNAME UUID; do
+ echo "${name}: stopping machine ${VMNAME} with action '${vboxinit_stop}' ..."
+ ${su_command} "${command} controlvm ${UUID} ${vboxinit_stop}"
+ sleep "${vboxinit_stop_delay}"
+ done
+}
+
+vboxinit_status()
+{
+ # List all running machines
+ ${su_command} "${command} list runningvms"
+}
+
+vboxinit_restart()
+{
+ vboxinit_stop
+ vboxinit_start
+}
+
+load_rc_config $name
+
+: ${vboxinit_enable="NO"}
+: ${vboxinit_user="%%VBOXUSER%%"}
+: ${vboxinit_home=$(/usr/sbin/pw usershow -7 -n "${vboxinit_user}" | /usr/bin/cut -d: -f6)}
+: ${vboxinit_stop="savestate"}
+: ${vboxinit_start_delay="1"}
+: ${vboxinit_stop_delay="0"}
+HOME=${vboxinit_home}
+USER=${vboxinit_user}
+export HOME USER
+
+command="%%VBOXDIR%%/VBoxManage"
+su_command="/usr/bin/su -m ${vboxinit_user} -c"
+
+if [ "x$1" = "xstop" ] || [ "x$1" = "xfaststop" ]; then
+ vboxinit_enable="YES"
+fi
+
+run_rc_command "$1"
diff --git a/emulators/virtualbox-ose-72/files/vboxwatchdog.in b/emulators/virtualbox-ose-72/files/vboxwatchdog.in
new file mode 100644
index 000000000000..c21bc03b3523
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/vboxwatchdog.in
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# PROVIDE: vboxwatchdog
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf[.local] to enable vboxwatchdog
+#
+# vboxwatchdog_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable vboxwatchdog.
+# vboxwatchdog_user (str): User account to run with.
+# vboxwatchdog_flags (str): Custom flags for VBoxWatchdog.
+
+. /etc/rc.subr
+
+name=vboxwatchdog
+rcvar=vboxwatchdog_enable
+
+command="%%VBOXDIR%%/VBoxBalloonCtrl"
+pidfile="/var/run/${name}.pid"
+
+start_cmd="${name}_start"
+
+vboxwatchdog_start()
+{
+ local pid
+
+ HOME=$(/usr/sbin/pw usershow -7 -n "${vboxwatchdog_user}" | /usr/bin/cut -d: -f6)
+ pid=$(check_pidfile $pidfile $command)
+
+ if [ -n "${pid}" ]; then
+ echo "${name} already running? (pid=${pid})."
+ return 1
+ fi
+
+ # prevent inheriting this setting to VBoxSVC
+ unset VBOX_RELEASE_LOG_DEST
+
+ echo -n "Starting ${name}"
+ /usr/bin/install -o ${vboxwatchdog_user} -g %%VBOXGROUP%% -m 644 /dev/null ${pidfile}
+ /usr/sbin/daemon -f -p ${pidfile} -u ${vboxwatchdog_user} ${command} ${vboxwatchdog_flags}
+ echo '.'
+}
+
+load_rc_config $name
+
+: ${vboxwatchdog_enable="NO"}
+: ${vboxwatchdog_user="%%VBOXUSER%%"}
+: ${vboxwatchdog_flags=""}
+
+run_rc_command "$1"
diff --git a/emulators/virtualbox-ose-72/files/vboxwebsrv.in b/emulators/virtualbox-ose-72/files/vboxwebsrv.in
new file mode 100644
index 000000000000..a7e1e38e3090
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/vboxwebsrv.in
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# PROVIDE: vboxwebsrv
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf[.local] to enable vboxwebsrv
+#
+# vboxwebsrv_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable vboxwebsrv.
+# vboxwebsrv_user (str): User account to run with.
+# vboxwebsrv_flags (str): Custom flags for vboxwebsrv.
+
+. /etc/rc.subr
+
+name=vboxwebsrv
+rcvar=vboxwebsrv_enable
+
+command="%%VBOXDIR%%/vboxwebsrv"
+pidfile="/var/run/${name}.pid"
+
+start_cmd="${name}_start"
+
+vboxwebsrv_start()
+{
+ local pid
+
+ HOME=$(/usr/sbin/pw usershow -7 -n "${vboxwebsrv_user}" | /usr/bin/cut -d: -f6)
+ pid=$(check_pidfile $pidfile $command)
+
+ if [ -n "${pid}" ]; then
+ echo "${name} already running? (pid=${pid})."
+ return 1
+ fi
+
+ echo -n "Starting ${name}"
+ /usr/bin/install -o ${vboxwebsrv_user} -g %%VBOXGROUP%% -m 644 /dev/null ${pidfile}
+ /usr/sbin/daemon -f -p ${pidfile} -u ${vboxwebsrv_user} ${command} ${vboxwebsrv_flags}
+ echo '.'
+}
+
+load_rc_config $name
+
+: ${vboxwebsrv_enable="NO"}
+: ${vboxwebsrv_user="%%VBOXWSUSER%%"}
+
+run_rc_command "$1"
diff --git a/emulators/virtualbox-ose-72/files/virtualbox.desktop b/emulators/virtualbox-ose-72/files/virtualbox.desktop
new file mode 100644
index 000000000000..b0d09e2128b7
--- /dev/null
+++ b/emulators/virtualbox-ose-72/files/virtualbox.desktop
@@ -0,0 +1,17 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Name=Oracle VM VirtualBox
+GenericName=Virtual Machine
+Type=Application
+Exec=VirtualBox
+TryExec=VirtualBox
+Icon=VBox
+Categories=Emulator;System;
+Comment=Run several virtual systems on a single host computer
+Comment[de]=Windows und andere Betriebssysteme unter FreeBSD ausführen
+Comment[it]=Esegui più macchine virtuali su un singolo computer
+Comment[ko]=가상 머신
+Comment[pl]=Uruchamianie wielu systemów wirtualnych na jednym komputerze gospodarza
+Comment[ru]=Запуск нескольких виртуальных машин на одном компьютере
+Comment[sv]=Kör flera virtuella system på en enda värddator
diff --git a/emulators/virtualbox-ose-72/pkg-descr b/emulators/virtualbox-ose-72/pkg-descr
new file mode 100644
index 000000000000..1ba975e84e68
--- /dev/null
+++ b/emulators/virtualbox-ose-72/pkg-descr
@@ -0,0 +1,8 @@
+Oracle VM VirtualBox is a hosted hypervisor for x86 virtualisation.
+Supported guests include BSD, Haiku, Linux, OS/2, ReactOS, Solaris and
+Windows.
+
+Guest Additions are available from: emulators/virtualbox-ose-additions
+
+For the Extension Pack: FreeBSD is not a supported host platform.
+Installation of the Pack will not extend the feature set.
diff --git a/emulators/virtualbox-ose-72/pkg-plist b/emulators/virtualbox-ose-72/pkg-plist
new file mode 100644
index 000000000000..d2dfcb82d4d5
--- /dev/null
+++ b/emulators/virtualbox-ose-72/pkg-plist
@@ -0,0 +1,452 @@
+bin/VBoxAutostart
+bin/VBoxBalloonCtrl
+bin/VBoxBugReport
+bin/VBoxHeadless
+bin/VBoxManage
+bin/VBoxVRDP
+%%QT%%bin/VirtualBox
+%%QT%%bin/VirtualBoxVM
+bin/vboxautostart
+bin/vboxballoonctrl
+bin/vboxbugreport
+bin/vboxheadless
+%%VBOXIMG%%bin/vboximg-mount
+bin/vboxmanage
+%%WEBSERVICE%%bin/vboxwebsrv
+%%QT%%bin/virtualbox
+%%QT%%bin/virtualboxvm
+include/virtualbox/VirtualBox_XPCOM.h
+include/virtualbox/ipcIClientObserver.h
+include/virtualbox/ipcIDConnectService.h
+include/virtualbox/ipcIMessageObserver.h
+include/virtualbox/ipcIService.h
+include/virtualbox/ipcd/ipcCID.h
+include/virtualbox/ipcd/ipcdclient.h
+include/virtualbox/nsIArray.h
+include/virtualbox/nsIAtom.h
+include/virtualbox/nsIAtomService.h
+include/virtualbox/nsIBinaryInputStream.h
+include/virtualbox/nsIBinaryOutputStream.h
+include/virtualbox/nsICategoryManager.h
+include/virtualbox/nsIClassInfo.h
+include/virtualbox/nsICollection.h
+include/virtualbox/nsIComponentLoader.h
+include/virtualbox/nsIComponentLoaderManager.h
+include/virtualbox/nsIComponentManager.h
+include/virtualbox/nsIComponentManagerObsolete.h
+include/virtualbox/nsIComponentRegistrar.h
+include/virtualbox/nsIDebug.h
+include/virtualbox/nsIDirectoryEnumerator.h
+include/virtualbox/nsIDirectoryService.h
+include/virtualbox/nsIEnumerator.h
+include/virtualbox/nsIErrorService.h
+include/virtualbox/nsIEventQueue.h
+include/virtualbox/nsIEventQueueService.h
+include/virtualbox/nsIEventTarget.h
+include/virtualbox/nsIException.h
+include/virtualbox/nsIExceptionService.h
+include/virtualbox/nsIFactory.h
+include/virtualbox/nsIFile.h
+include/virtualbox/nsIHashable.h
+include/virtualbox/nsIInputStream.h
+include/virtualbox/nsIInterfaceInfo.h
+include/virtualbox/nsIInterfaceInfoManager.h
+include/virtualbox/nsIInterfaceRequestor.h
+include/virtualbox/nsILocalFile.h
+include/virtualbox/nsILocalFileMac.h
+include/virtualbox/nsIModule.h
+include/virtualbox/nsINativeComponentLoader.h
+include/virtualbox/nsIObjectInputStream.h
+include/virtualbox/nsIObjectOutputStream.h
+include/virtualbox/nsIObserver.h
+include/virtualbox/nsIObserverService.h
+include/virtualbox/nsIOutputStream.h
+include/virtualbox/nsIProgrammingLanguage.h
+include/virtualbox/nsIProperties.h
+include/virtualbox/nsIProxyObjectManager.h
+include/virtualbox/nsIRunnable.h
+include/virtualbox/nsISerializable.h
+include/virtualbox/nsIServiceManager.h
+include/virtualbox/nsISimpleEnumerator.h
+include/virtualbox/nsIStringEnumerator.h
+include/virtualbox/nsISupports.h
+include/virtualbox/nsISupportsArray.h
+include/virtualbox/nsISupportsIterators.h
+include/virtualbox/nsISupportsPrimitives.h
+include/virtualbox/nsITraceRefcnt.h
+include/virtualbox/nsIVariant.h
+include/virtualbox/nsIWeakReference.h
+include/virtualbox/nsIXPTLoader.h
+include/virtualbox/nsprpub/nspr.h
+include/virtualbox/nsprpub/plarena.h
+include/virtualbox/nsprpub/plarenas.h
+include/virtualbox/nsprpub/plhash.h
+include/virtualbox/nsprpub/prbit.h
+include/virtualbox/nsprpub/prcpucfg.h
+include/virtualbox/nsprpub/prlong.h
+include/virtualbox/nsprpub/prmem.h
+include/virtualbox/nsprpub/prmon.h
+include/virtualbox/nsprpub/prtime.h
+include/virtualbox/nsprpub/prtypes.h
+include/virtualbox/nsrootidl.h
+include/virtualbox/string/nsAString.h
+include/virtualbox/string/nsAlgorithm.h
+include/virtualbox/string/nsCharTraits.h
+include/virtualbox/string/nsDependentString.h
+include/virtualbox/string/nsDependentSubstring.h
+include/virtualbox/string/nsEmbedString.h
+include/virtualbox/string/nsLiteralString.h
+include/virtualbox/string/nsObsoleteAString.h
+include/virtualbox/string/nsPrintfCString.h
+include/virtualbox/string/nsPromiseFlatString.h
+include/virtualbox/string/nsReadableUtils.h
+include/virtualbox/string/nsString.h
+include/virtualbox/string/nsStringAPI.h
+include/virtualbox/string/nsStringFwd.h
+include/virtualbox/string/nsStringIterator.h
+include/virtualbox/string/nsSubstring.h
+include/virtualbox/string/nsSubstringTuple.h
+include/virtualbox/string/nsTAString.h
+include/virtualbox/string/nsTDependentString.h
+include/virtualbox/string/nsTDependentSubstring.h
+include/virtualbox/string/nsTObsoleteAString.h
+include/virtualbox/string/nsTPromiseFlatString.h
+include/virtualbox/string/nsTString.h
+include/virtualbox/string/nsTSubstring.h
+include/virtualbox/string/nsTSubstringTuple.h
+include/virtualbox/string/nsUTF8Utils.h
+include/virtualbox/string/nsXPIDLString.h
+include/virtualbox/string/string-template-def-char.h
+include/virtualbox/string/string-template-def-unichar.h
+include/virtualbox/string/string-template-undef.h
+include/virtualbox/xpcom/nsAgg.h
+include/virtualbox/xpcom/nsAppDirectoryServiceDefs.h
+include/virtualbox/xpcom/nsArray.h
+include/virtualbox/xpcom/nsArrayEnumerator.h
+include/virtualbox/xpcom/nsAtomService.h
+include/virtualbox/xpcom/nsAutoLock.h
+include/virtualbox/xpcom/nsAutoPtr.h
+include/virtualbox/xpcom/nsBaseHashtable.h
+include/virtualbox/xpcom/nsCOMArray.h
+include/virtualbox/xpcom/nsCOMPtr.h
+include/virtualbox/xpcom/nsCRT.h
+include/virtualbox/xpcom/nsCategoryManagerUtils.h
+include/virtualbox/xpcom/nsClassHashtable.h
+include/virtualbox/xpcom/nsComponentManagerObsolete.h
+include/virtualbox/xpcom/nsComponentManagerUtils.h
+include/virtualbox/xpcom/nsDataHashtable.h
+include/virtualbox/xpcom/nsDebug.h
+include/virtualbox/xpcom/nsDebugImpl.h
+include/virtualbox/xpcom/nsDeque.h
+include/virtualbox/xpcom/nsDirectoryService.h
+include/virtualbox/xpcom/nsDirectoryServiceDefs.h
+include/virtualbox/xpcom/nsDirectoryServiceUtils.h
+include/virtualbox/xpcom/nsDoubleHashtable.h
+include/virtualbox/xpcom/nsEnumeratorUtils.h
+include/virtualbox/xpcom/nsError.h
+include/virtualbox/xpcom/nsEventQueueUtils.h
+include/virtualbox/xpcom/nsGenericFactory.h
+include/virtualbox/xpcom/nsHashKeys.h
+include/virtualbox/xpcom/nsHashSets.h
+include/virtualbox/xpcom/nsHashtable.h
+include/virtualbox/xpcom/nsID.h
+include/virtualbox/xpcom/nsIGenericFactory.h
+include/virtualbox/xpcom/nsIID.h
+include/virtualbox/xpcom/nsIInterfaceRequestorUtils.h
+include/virtualbox/xpcom/nsIServiceManagerObsolete.h
+include/virtualbox/xpcom/nsIServiceManagerUtils.h
+include/virtualbox/xpcom/nsISupportsBase.h
+include/virtualbox/xpcom/nsISupportsImpl.h
+include/virtualbox/xpcom/nsISupportsUtils.h
+include/virtualbox/xpcom/nsIWeakReferenceUtils.h
+include/virtualbox/xpcom/nsInt64.h
+include/virtualbox/xpcom/nsInterfaceHashtable.h
+include/virtualbox/xpcom/nsLocalFile.h
+include/virtualbox/xpcom/nsLocalFileUnix.h
+include/virtualbox/xpcom/nsMemory.h
+include/virtualbox/xpcom/nsModule.h
+include/virtualbox/xpcom/nsNativeCharsetUtils.h
+include/virtualbox/xpcom/nsNativeComponentLoader.h
+include/virtualbox/xpcom/nsObserverService.h
+include/virtualbox/xpcom/nsObsoleteModuleLoading.h
+include/virtualbox/xpcom/nsProxiedService.h
+include/virtualbox/xpcom/nsProxyEvent.h
+include/virtualbox/xpcom/nsProxyRelease.h
+include/virtualbox/xpcom/nsRefPtrHashtable.h
+include/virtualbox/xpcom/nsStaticAtom.h
+include/virtualbox/xpcom/nsStaticComponent.h
+include/virtualbox/xpcom/nsStringEnumerator.h
+include/virtualbox/xpcom/nsStringIO.h
+include/virtualbox/xpcom/nsSupportsArray.h
+include/virtualbox/xpcom/nsSupportsPrimitives.h
+include/virtualbox/xpcom/nsTHashtable.h
+include/virtualbox/xpcom/nsTraceRefcnt.h
+include/virtualbox/xpcom/nsTraceRefcntImpl.h
+include/virtualbox/xpcom/nsVariant.h
+include/virtualbox/xpcom/nsVoidArray.h
+include/virtualbox/xpcom/nsWeakPtr.h
+include/virtualbox/xpcom/nsWeakReference.h
+include/virtualbox/xpcom/nsXPCOM.h
+include/virtualbox/xpcom/nsXPCOMCID.h
+include/virtualbox/xpcom/nsXPCOMGlue.h
+include/virtualbox/xpcom/nscore.h
+include/virtualbox/xpcom/pldhash.h
+include/virtualbox/xpcom/plevent.h
+include/virtualbox/xpcom/xcDll.h
+include/virtualbox/xpcom/xpcom-config.h
+include/virtualbox/xpcom/xpt_arena.h
+include/virtualbox/xpcom/xpt_struct.h
+include/virtualbox/xpcom/xpt_xdr.h
+include/virtualbox/xpcom/xptcall.h
+include/virtualbox/xpcom/xptcstubsdecl.inc
+include/virtualbox/xpcom/xptcstubsdef.inc
+include/virtualbox/xpcom/xptinfo.h
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi-1-py%%PYTHON_VER%%.egg-info/PKG-INFO
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi-1-py%%PYTHON_VER%%.egg-info/SOURCES.txt
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi-1-py%%PYTHON_VER%%.egg-info/dependency_links.txt
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi-1-py%%PYTHON_VER%%.egg-info/requires.txt
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi-1-py%%PYTHON_VER%%.egg-info/top_level.txt
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi%%PYTHON_PYCDIR%%VirtualBox_constants%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi/__init__.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/__init__.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/components.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%components%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/nsError.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%nsError%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/primitives.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%primitives%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%vboxxpcom%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%xpcom_consts%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/xpt.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%xpt%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/client%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%enumerator%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/factory.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%factory%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/loader.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%loader%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/module.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%module%%PYTHON_PYCEXT%%
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/policy.py
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%policy%%PYTHON_PYCEXT%%
+%%QT%%lib/virtualbox/DbgPlugInDiggers.so
+lib/virtualbox/VBox.sh
+lib/virtualbox/VBoxAuth.so
+lib/virtualbox/VBoxAuthSimple.so
+lib/virtualbox/VBoxAutostart
+lib/virtualbox/VBoxBalloonCtrl
+lib/virtualbox/VBoxBugReport
+lib/virtualbox/VBoxDD.so
+lib/virtualbox/VBoxDD2.so
+lib/virtualbox/VBoxDDR0.r0
+lib/virtualbox/VBoxDDU.so
+%%QT%%lib/virtualbox/UICommon.so
+%%QT%%lib/virtualbox/VBoxDbg.so
+%%QT%%lib/virtualbox/VBoxDragAndDropSvc.so
+lib/virtualbox/VBoxEFI-amd64.fd
+lib/virtualbox/VBoxEFI-arm32.fd
+lib/virtualbox/VBoxEFI-arm64.fd
+lib/virtualbox/VBoxEFI-x86.fd
+lib/virtualbox/VBoxExtPackHelperApp
+lib/virtualbox/VBoxGuestControlSvc.so
+lib/virtualbox/VBoxGuestPropSvc.so
+@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VBoxHeadless
+lib/virtualbox/VBoxHeadless.so
+lib/virtualbox/VBoxHostChannel.so
+%%QT%%lib/virtualbox/VBoxKeyboard.so
+lib/virtualbox/VBoxManage
+@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VBoxNetAdpCtl
+@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VBoxNetDHCP
+lib/virtualbox/VBoxNetDHCP.so
+@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VBoxNetNAT
+lib/virtualbox/VBoxNetNAT.so
+%%PYTHON%%lib/virtualbox/VBoxPython3.so
+%%PYTHON%%lib/virtualbox/VBoxPython3m.so
+lib/virtualbox/VBoxRT.so
+lib/virtualbox/VBoxSVC
+%%X11%%lib/virtualbox/VBoxSVGA3D.so
+lib/virtualbox/VBoxSharedClipboard.so
+lib/virtualbox/VBoxSharedFolders.so
+lib/virtualbox/VBoxTraceLogDecoders.so
+lib/virtualbox/VBoxVMM.so
+lib/virtualbox/VBoxVMMArm.so
+lib/virtualbox/VBoxVMMPreload.so
+lib/virtualbox/VBoxXPCOM.so
+lib/virtualbox/VBoxXPCOMC.so
+lib/virtualbox/VBoxXPCOMIPCD.so
+lib/virtualbox/VMMR0.r0
+%%QT%%lib/virtualbox/VirtualBox
+%%QT%%@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VirtualBoxVM
+%%QT%%lib/virtualbox/VirtualBoxVM.so
+%%SDK%%lib/virtualbox/sdk
+%%VBOXIMG%%lib/virtualbox/vboximg-mount
+%%WEBSERVICE%%lib/virtualbox/vboxwebsrv
+%%WEBSERVICE%%lib/virtualbox/webtest
+%%VNC%%lib/virtualbox/ExtensionPacks/VNC/ExtPack-license.html
+%%VNC%%lib/virtualbox/ExtensionPacks/VNC/ExtPack-license.rtf
+%%VNC%%lib/virtualbox/ExtensionPacks/VNC/ExtPack-license.txt
+%%VNC%%lib/virtualbox/ExtensionPacks/VNC/ExtPack.xml
+%%VNC%%lib/virtualbox/ExtensionPacks/VNC/%%ARCH%%/VBoxVNC.so
+%%VNC%%lib/virtualbox/ExtensionPacks/VNC/%%ARCH%%/VBoxVNCMain.so
+%%GUESTADDITIONS%%lib/virtualbox/additions/VBoxGuestAdditions.iso
+%%GUESTADDITIONS%%lib/virtualbox/additions/VBoxGuestAdditions_%%GUEST_VER%%.iso
+lib/virtualbox/components/VBoxC.so
+lib/virtualbox/components/VBoxSVCM.so
+lib/virtualbox/components/VBoxXPCOMBase.xpt
+lib/virtualbox/components/VBoxXPCOMIPCC.so
+lib/virtualbox/components/VirtualBox_XPCOM.xpt
+%%QT%%share/applications/virtualbox.desktop
+%%DOCS%%%%DOCSDIR%%/UserManual.pdf
+%%QT%%share/pixmaps/VBox.png
+%%DATADIR%%/idl/VirtualBox_XPCOM.idl
+%%DATADIR%%/idl/ipcIClientObserver.idl
+%%DATADIR%%/idl/ipcIDConnectService.idl
+%%DATADIR%%/idl/ipcIMessageObserver.idl
+%%DATADIR%%/idl/ipcIService.idl
+%%DATADIR%%/idl/nsIArray.idl
+%%DATADIR%%/idl/nsIAtom.idl
+%%DATADIR%%/idl/nsIAtomService.idl
+%%DATADIR%%/idl/nsIBinaryInputStream.idl
+%%DATADIR%%/idl/nsIBinaryOutputStream.idl
+%%DATADIR%%/idl/nsICategoryManager.idl
+%%DATADIR%%/idl/nsIClassInfo.idl
+%%DATADIR%%/idl/nsICollection.idl
+%%DATADIR%%/idl/nsIComponentLoader.idl
+%%DATADIR%%/idl/nsIComponentLoaderManager.idl
+%%DATADIR%%/idl/nsIComponentManager.idl
+%%DATADIR%%/idl/nsIComponentManagerObsolete.idl
+%%DATADIR%%/idl/nsIComponentRegistrar.idl
+%%DATADIR%%/idl/nsIDebug.idl
+%%DATADIR%%/idl/nsIDirectoryEnumerator.idl
+%%DATADIR%%/idl/nsIDirectoryService.idl
+%%DATADIR%%/idl/nsIEnumerator.idl
+%%DATADIR%%/idl/nsIErrorService.idl
+%%DATADIR%%/idl/nsIEventQueue.idl
+%%DATADIR%%/idl/nsIEventQueueService.idl
+%%DATADIR%%/idl/nsIEventTarget.idl
+%%DATADIR%%/idl/nsIException.idl
+%%DATADIR%%/idl/nsIExceptionService.idl
+%%DATADIR%%/idl/nsIFactory.idl
+%%DATADIR%%/idl/nsIFile.idl
+%%DATADIR%%/idl/nsIHashable.idl
+%%DATADIR%%/idl/nsIInputStream.idl
+%%DATADIR%%/idl/nsIInterfaceInfo.idl
+%%DATADIR%%/idl/nsIInterfaceInfoManager.idl
+%%DATADIR%%/idl/nsIInterfaceRequestor.idl
+%%DATADIR%%/idl/nsILocalFile.idl
+%%DATADIR%%/idl/nsILocalFileMac.idl
+%%DATADIR%%/idl/nsIModule.idl
+%%DATADIR%%/idl/nsINativeComponentLoader.idl
+%%DATADIR%%/idl/nsIObjectInputStream.idl
+%%DATADIR%%/idl/nsIObjectOutputStream.idl
+%%DATADIR%%/idl/nsIObserver.idl
+%%DATADIR%%/idl/nsIObserverService.idl
+%%DATADIR%%/idl/nsIOutputStream.idl
+%%DATADIR%%/idl/nsIProgrammingLanguage.idl
+%%DATADIR%%/idl/nsIProperties.idl
+%%DATADIR%%/idl/nsIProxyObjectManager.idl
+%%DATADIR%%/idl/nsIRunnable.idl
+%%DATADIR%%/idl/nsISerializable.idl
+%%DATADIR%%/idl/nsIServiceManager.idl
+%%DATADIR%%/idl/nsISimpleEnumerator.idl
+%%DATADIR%%/idl/nsIStringEnumerator.idl
+%%DATADIR%%/idl/nsISupports.idl
+%%DATADIR%%/idl/nsISupportsArray.idl
+%%DATADIR%%/idl/nsISupportsIterators.idl
+%%DATADIR%%/idl/nsISupportsPrimitives.idl
+%%DATADIR%%/idl/nsITraceRefcnt.idl
+%%DATADIR%%/idl/nsIVariant.idl
+%%DATADIR%%/idl/nsIWeakReference.idl
+%%DATADIR%%/idl/nsIXPTLoader.idl
+%%DATADIR%%/idl/nsrootidl.idl
+%%NLS%%%%DATADIR%%/nls/VirtualBox_bg.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_ca.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_ca_VA.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_cs.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_da.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_de.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_el.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_en.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_es.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_eu.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_fa.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_fi.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_fr.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_gl.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_he.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_hr_HR.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_hu.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_id.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_it.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_ja.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_ka.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_km_KH.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_ko.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_lt.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_nl.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_pl.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_pt.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_pt_BR.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_ro.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_ru.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_sk.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_sl.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_sr.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_sv.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_th.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_tr.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_uk.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_zh_CN.qm
+%%NLS%%%%DATADIR%%/nls/VirtualBox_zh_TW.qm
+%%NLS%%%%DATADIR%%/nls/qt_bg.qm
+%%NLS%%%%DATADIR%%/nls/qt_ca.qm
+%%NLS%%%%DATADIR%%/nls/qt_ca_VA.qm
+%%NLS%%%%DATADIR%%/nls/qt_cs.qm
+%%NLS%%%%DATADIR%%/nls/qt_da.qm
+%%NLS%%%%DATADIR%%/nls/qt_de.qm
+%%NLS%%%%DATADIR%%/nls/qt_el.qm
+%%NLS%%%%DATADIR%%/nls/qt_en.qm
+%%NLS%%%%DATADIR%%/nls/qt_es.qm
+%%NLS%%%%DATADIR%%/nls/qt_eu.qm
+%%NLS%%%%DATADIR%%/nls/qt_fa.qm
+%%NLS%%%%DATADIR%%/nls/qt_fi.qm
+%%NLS%%%%DATADIR%%/nls/qt_fr.qm
+%%NLS%%%%DATADIR%%/nls/qt_gl.qm
+%%NLS%%%%DATADIR%%/nls/qt_he.qm
+%%NLS%%%%DATADIR%%/nls/qt_hr_HR.qm
+%%NLS%%%%DATADIR%%/nls/qt_hu.qm
+%%NLS%%%%DATADIR%%/nls/qt_id.qm
+%%NLS%%%%DATADIR%%/nls/qt_it.qm
+%%NLS%%%%DATADIR%%/nls/qt_ja.qm
+%%NLS%%%%DATADIR%%/nls/qt_ka.qm
+%%NLS%%%%DATADIR%%/nls/qt_km_KH.qm
+%%NLS%%%%DATADIR%%/nls/qt_ko.qm
+%%NLS%%%%DATADIR%%/nls/qt_lt.qm
+%%NLS%%%%DATADIR%%/nls/qt_nl.qm
+%%NLS%%%%DATADIR%%/nls/qt_pl.qm
+%%NLS%%%%DATADIR%%/nls/qt_pt.qm
+%%NLS%%%%DATADIR%%/nls/qt_pt_BR.qm
+%%NLS%%%%DATADIR%%/nls/qt_ro.qm
+%%NLS%%%%DATADIR%%/nls/qt_ru.qm
+%%NLS%%%%DATADIR%%/nls/qt_sk.qm
+%%NLS%%%%DATADIR%%/nls/qt_sl.qm
+%%NLS%%%%DATADIR%%/nls/qt_sr.qm
+%%NLS%%%%DATADIR%%/nls/qt_sv.qm
+%%NLS%%%%DATADIR%%/nls/qt_th.qm
+%%NLS%%%%DATADIR%%/nls/qt_tr.qm
+%%NLS%%%%DATADIR%%/nls/qt_uk.qm
+%%NLS%%%%DATADIR%%/nls/qt_zh_CN.qm
+%%NLS%%%%DATADIR%%/nls/qt_zh_TW.qm
+%%DATADIR%%/samples/Makefile
+%%DATADIR%%/samples/tstVBoxAPIXPCOM.cpp
+%%WEBSERVICE%%%%DATADIR%%/sdk/bindings/webservice/vboxweb.wsdl
+%%PYTHON%%%%DATADIR%%/sdk/bindings/xpcom/python/xpcom
diff --git a/emulators/virtualbox-ose-additions-legacy/Makefile b/emulators/virtualbox-ose-additions-legacy/Makefile
index 36da35e3c79c..e9067d5fd9b4 100644
--- a/emulators/virtualbox-ose-additions-legacy/Makefile
+++ b/emulators/virtualbox-ose-additions-legacy/Makefile
@@ -42,7 +42,9 @@ CONFLICTS_INSTALL= virtualbox-ose-additions \
virtualbox-ose-additions-70 \
virtualbox-ose-additions-nox11-70 \
virtualbox-ose-additions-71 \
- virtualbox-ose-additions-nox11-71
+ virtualbox-ose-additions-nox11-71 \
+ virtualbox-ose-additions-72 \
+ virtualbox-ose-additions-nox11-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}-legacy/files
EXTRACT_AFTER_ARGS= --exclude tools/*.x86 --exclude tools/*.amd64 --exclude Firmware
diff --git a/emulators/virtualbox-ose-additions/Makefile b/emulators/virtualbox-ose-additions/Makefile
index 58ad514e9a9b..2e5c8cc62bf2 100644
--- a/emulators/virtualbox-ose-additions/Makefile
+++ b/emulators/virtualbox-ose-additions/Makefile
@@ -42,7 +42,9 @@ CONFLICTS_INSTALL= virtualbox-ose-additions-legacy \
virtualbox-ose-additions-70 \
virtualbox-ose-additions-nox11-70 \
virtualbox-ose-additions-71 \
- virtualbox-ose-additions-nox11-71
+ virtualbox-ose-additions-nox11-71 \
+ virtualbox-ose-additions-72 \
+ virtualbox-ose-additions-nox11-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}/files
EXTRACT_AFTER_ARGS= --exclude tools/*.x86 --exclude tools/*.amd64 --exclude Firmware
diff --git a/emulators/virtualbox-ose-kmod-70/Makefile b/emulators/virtualbox-ose-kmod-70/Makefile
index aecfea40859f..88de93b5d54a 100644
--- a/emulators/virtualbox-ose-kmod-70/Makefile
+++ b/emulators/virtualbox-ose-kmod-70/Makefile
@@ -35,7 +35,8 @@ CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-kmod-legacy \
virtualbox-ose-kmod \
- virtualbox-ose-kmod-71
+ virtualbox-ose-kmod-71 \
+ virtualbox-ose-kmod-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}-70/files
PORTSCOUT= limit:^7\.0\.
diff --git a/emulators/virtualbox-ose-kmod-71/Makefile b/emulators/virtualbox-ose-kmod-71/Makefile
index 69f44271dd2d..75f20dc887fc 100644
--- a/emulators/virtualbox-ose-kmod-71/Makefile
+++ b/emulators/virtualbox-ose-kmod-71/Makefile
@@ -35,7 +35,8 @@ CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-kmod-legacy \
virtualbox-ose-kmod \
- virtualbox-ose-kmod-70
+ virtualbox-ose-kmod-70 \
+ virtualbox-ose-kmod-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}-71/files
PORTSCOUT= limit:^7\.1\.
diff --git a/emulators/virtualbox-ose-kmod-72/Makefile b/emulators/virtualbox-ose-kmod-72/Makefile
new file mode 100644
index 000000000000..0990aebfbc08
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-72/Makefile
@@ -0,0 +1,114 @@
+PORTNAME= virtualbox-ose
+DISTVERSION= 7.2.0
+CATEGORIES= emulators
+MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/
+PKGNAMESUFFIX= -kmod-72
+DISTNAME= VirtualBox-${DISTVERSION}
+
+MAINTAINER= vbox@FreeBSD.org
+COMMENT= VirtualBox kernel module for FreeBSD
+WWW= https://www.virtualbox.org/
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+ONLY_FOR_ARCHS= amd64
+
+BUILD_DEPENDS= kmk:devel/kBuild
+
+USES= cpe compiler:c++17-lang kmod tar:bzip2
+CPE_VENDOR= oracle
+CPE_PRODUCT= vm_virtualbox
+USE_RC_SUBR= vboxnet
+
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS+= --build-headless
+CONFIGURE_ARGS+= --disable-alsa \
+ --disable-dbus \
+ --disable-docs \
+ --disable-libvpx \
+ --disable-pulse \
+ --disable-python \
+ --disable-sdl-ttf \
+ --disable-xpcom
+CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
+
+CONFLICTS_INSTALL= virtualbox-ose-kmod-legacy \
+ virtualbox-ose-kmod \
+ virtualbox-ose-kmod-70
+
+PATCHDIR= ${.CURDIR}/../${PORTNAME}-72/files
+PORTSCOUT= limit:^7\.2\.
+SUB_FILES= pkg-message
+SUB_LIST= OPSYS=${OPSYS} OSREL=${OSREL}
+
+WRKSRC= ${WRKDIR}/VirtualBox-${DISTVERSION}
+
+OPTIONS_DEFINE= DEBUG INVARIANTS VIMAGE
+OPTIONS_DEFAULT= VIMAGE
+OPTIONS_SUB= yes
+DEBUG_DESC= Debug symbols, additional logs and assertions
+INVARIANTS_DESC= Use if kernel is compiled with INVARIANTS option
+VIMAGE_DESC= VIMAGE virtual networking support
+INVARIANTS_CFLAGS= -DINVARIANTS
+
+.include <bsd.port.options.mk>
+
+VBOX_BIN= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/src
+VBOX_KMODS= vboxdrv \
+ vboxnetadp \
+ vboxnetflt
+
+BUILD_WRKSRC= ${VBOX_BIN}
+
+KMK_BUILDTYPE= release
+KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys
+KMK_FLAGS= HostDrivers-scripts vboxdrv-src VBoxNetFlt-src VBoxNetAdp-src
+
+.if ${PORT_OPTIONS:MDEBUG}
+KMK_FLAGS+= BUILD_TYPE=debug
+KMK_BUILDTYPE= debug
+EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-Config.kmk \
+ ${PATCHDIR}/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile
+MAKE_ARGS+= DEBUG_FLAGS="-O1 -g"
+.endif
+
+.if ${ARCH} == i386
+KMK_ARCH= freebsd.x86
+.else
+KMK_ARCH= freebsd.${ARCH}
+.endif
+
+.include <bsd.port.pre.mk>
+
+SYMBOLSUFFIX= debug
+PLIST_SUB+= SYMBOLSUFFIX=${SYMBOLSUFFIX}
+
+post-patch:
+ @${ECHO_CMD} 'VBOX_WITH_VBOXDRV = 1' > ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_NETFLT = 1' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_NETADP = 1' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO_CMD} 'VBOX_WITH_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk
+.if ${PORT_OPTIONS:MVIMAGE}
+ @${ECHO_CMD} 'VBOX_WITH_NETFLT_VIMAGE = 1' >> ${WRKSRC}/LocalConfig.kmk
+.endif
+ @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g; s|which \$$\*|which \$$1|g' \
+ ${WRKSRC}/Config.kmk ${WRKSRC}/configure
+ @${REINPLACE_CMD} \
+ -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \
+ ${WRKSRC}/configure
+
+pre-build:
+ cd ${WRKSRC}/src/VBox/HostDrivers && ${SH} -c \
+ '. ${WRKSRC}/env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}'
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${KMODDIR}
+.for i in ${VBOX_KMODS}
+ ${INSTALL_KLD} ${VBOX_BIN}/${i}/${i}.ko ${STAGEDIR}${KMODDIR}
+.if ${PORT_OPTIONS:MDEBUG}
+ ${INSTALL_KLD} ${VBOX_BIN}/${i}/${i}.ko.${SYMBOLSUFFIX} ${STAGEDIR}${KMODDIR}
+.endif
+.endfor
+
+.include <bsd.port.post.mk>
diff --git a/emulators/virtualbox-ose-kmod-72/distinfo b/emulators/virtualbox-ose-kmod-72/distinfo
new file mode 100644
index 000000000000..c67534681918
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-72/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1755276527
+SHA256 (VirtualBox-7.2.0.tar.bz2) = 4f2804ff27848ea772aee6b637bb1e10ee74ec2da117c257413e2d2c4f670ba0
+SIZE (VirtualBox-7.2.0.tar.bz2) = 206755781
diff --git a/emulators/virtualbox-ose-kmod-72/files/pkg-message.in b/emulators/virtualbox-ose-kmod-72/files/pkg-message.in
new file mode 100644
index 000000000000..4e03cc0b5ec7
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-72/files/pkg-message.in
@@ -0,0 +1,10 @@
+[
+{ type: install
+ message: <<EOM
+The vboxdrv kernel module uses internal kernel APIs.
+
+To avoid crashes due to kernel incompatibility, this module will only
+load on %%OPSYS%% %%OSREL%% kernels.
+EOM
+}
+]
diff --git a/emulators/virtualbox-ose-kmod-72/files/vboxnet.in b/emulators/virtualbox-ose-kmod-72/files/vboxnet.in
new file mode 100644
index 000000000000..af3d18884273
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-72/files/vboxnet.in
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# PROVIDE: vboxnet
+# BEFORE: NETWORKING
+# REQUIRE: FILESYSTEMS
+# KEYWORD: nojail
+
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# vboxnet_enable (bool): Set to NO by default.
+# Set it to YES to load network related kernel modules on startup
+
+. /etc/rc.subr
+
+name="vboxnet"
+rcvar=vboxnet_enable
+start_cmd="vboxnet_start"
+stop_cmd="vboxnet_stop"
+
+vboxnet_modules="vboxdrv vboxnetflt:ng_vboxnetflt vboxnetadp"
+
+vboxnet_start()
+{
+ local _k _m
+
+ for _m in ${vboxnet_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
+
+ # initialize configured host-only interfaces
+ LD_LIBRARY_PATH=%%PREFIX%%/lib %%PREFIX%%/bin/VBoxManage list hostonlyifs >/dev/null
+}
+
+vboxnet_stop()
+{
+ local _k _m _r
+
+ _r=
+ for _m in ${vboxnet_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
+
+: ${vboxnet_enable="NO"}
+
+run_rc_command "$1"
diff --git a/emulators/virtualbox-ose-kmod-72/pkg-descr b/emulators/virtualbox-ose-kmod-72/pkg-descr
new file mode 100644
index 000000000000..d11d42a81c78
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-72/pkg-descr
@@ -0,0 +1,5 @@
+VirtualBox is a family of powerful x86 virtualization products for
+enterprise as well as home use. Not only is VirtualBox an extremely
+feature rich, high performance product for enterprise customers, it
+is also the only professional solution that is freely available as
+Open Source Software under the terms of the GNU General Public License.
diff --git a/emulators/virtualbox-ose-kmod-72/pkg-plist b/emulators/virtualbox-ose-kmod-72/pkg-plist
new file mode 100644
index 000000000000..b08a5706a028
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-72/pkg-plist
@@ -0,0 +1,6 @@
+/%%KMODDIR%%/vboxdrv.ko
+%%DEBUG%%/%%KMODDIR%%/vboxdrv.ko.%%SYMBOLSUFFIX%%
+/%%KMODDIR%%/vboxnetadp.ko
+%%DEBUG%%/%%KMODDIR%%/vboxnetadp.ko.%%SYMBOLSUFFIX%%
+/%%KMODDIR%%/vboxnetflt.ko
+%%DEBUG%%/%%KMODDIR%%/vboxnetflt.ko.%%SYMBOLSUFFIX%%
diff --git a/emulators/virtualbox-ose-kmod-legacy/Makefile b/emulators/virtualbox-ose-kmod-legacy/Makefile
index 15eb47c2a4a1..ba05f9a005aa 100644
--- a/emulators/virtualbox-ose-kmod-legacy/Makefile
+++ b/emulators/virtualbox-ose-kmod-legacy/Makefile
@@ -36,7 +36,8 @@ CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-kmod \
virtualbox-ose-kmod-70 \
- virtualbox-ose-kmod-71
+ virtualbox-ose-kmod-71 \
+ virtualbox-ose-kmod-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}-legacy/files
PORTSCOUT= limit:^5\.
diff --git a/emulators/virtualbox-ose-kmod/Makefile b/emulators/virtualbox-ose-kmod/Makefile
index dd7d18bbdde5..1b0835a4d70c 100644
--- a/emulators/virtualbox-ose-kmod/Makefile
+++ b/emulators/virtualbox-ose-kmod/Makefile
@@ -36,7 +36,8 @@ CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-kmod-legacy \
virtualbox-ose-kmod-70 \
- virtualbox-ose-kmod-71
+ virtualbox-ose-kmod-71 \
+ virtualbox-ose-kmod-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}/files
PORTSCOUT= limit:^6\.
diff --git a/emulators/virtualbox-ose-legacy/Makefile b/emulators/virtualbox-ose-legacy/Makefile
index 0c88e2ffe41b..77ed9000a262 100644
--- a/emulators/virtualbox-ose-legacy/Makefile
+++ b/emulators/virtualbox-ose-legacy/Makefile
@@ -44,7 +44,9 @@ CONFLICTS_INSTALL= virtualbox-ose \
virtualbox-ose-70 \
virtualbox-ose-nox11-70 \
virtualbox-ose-71 \
- virtualbox-ose-nox11-71
+ virtualbox-ose-nox11-71 \
+ virtualbox-ose-72 \
+ virtualbox-ose-nox11-72
PORTSCOUT= limit:^5\.
SUB_LIST= VBOXDIR=${VBOX_DIR} \
diff --git a/emulators/virtualbox-ose-nox11-72/Makefile b/emulators/virtualbox-ose-nox11-72/Makefile
new file mode 100644
index 000000000000..d415932ea096
--- /dev/null
+++ b/emulators/virtualbox-ose-nox11-72/Makefile
@@ -0,0 +1,11 @@
+PORTREVISION= 0
+PKGNAMESUFFIX= -nox11-72
+
+MASTERDIR= ${.CURDIR}/../virtualbox-ose-72
+
+OPTIONS_EXCLUDE= ALSA DBUS DEBUG GUESTADDITIONS DOCS NLS OGG PULSEAUDIO \
+ QT6 VORBIS VPX X11
+
+SLAVE_PORT= yes
+
+.include "${MASTERDIR}/Makefile"
diff --git a/emulators/virtualbox-ose/Makefile b/emulators/virtualbox-ose/Makefile
index 0dab90413e05..3bb9bd477162 100644
--- a/emulators/virtualbox-ose/Makefile
+++ b/emulators/virtualbox-ose/Makefile
@@ -42,7 +42,9 @@ CONFLICTS_INSTALL= virtualbox-ose-legacy \
virtualbox-ose-70 \
virtualbox-ose-nox11-70 \
virtualbox-ose-71 \
- virtualbox-ose-nox11-71
+ virtualbox-ose-nox11-71 \
+ virtualbox-ose-72 \
+ virtualbox-ose-nox11-72
PORTSCOUT= limit:^6\.
SUB_FILES= pkg-message
diff --git a/filesystems/Makefile b/filesystems/Makefile
index 79968dc0bdb3..4f7065513f9a 100644
--- a/filesystems/Makefile
+++ b/filesystems/Makefile
@@ -110,6 +110,7 @@
SUBDIR += s3backer
SUBDIR += s3fs
SUBDIR += sandboxfs
+ SUBDIR += sasquatch
SUBDIR += scan_ffs
SUBDIR += securefs
SUBDIR += simple-mtpfs
@@ -129,6 +130,7 @@
SUBDIR += xfsprogs
SUBDIR += xfuse
SUBDIR += zap
+ SUBDIR += zerofs
SUBDIR += zfs-periodic
SUBDIR += zfs-replicate
SUBDIR += zfs-snap-diff
diff --git a/filesystems/sasquatch/Makefile b/filesystems/sasquatch/Makefile
new file mode 100644
index 000000000000..71946e990520
--- /dev/null
+++ b/filesystems/sasquatch/Makefile
@@ -0,0 +1,35 @@
+PORTNAME= sasquatch
+DISTVERSION= 4.3
+CATEGORIES= filesystems sysutils
+
+MAINTAINER= tiago.gasiba@gmail.com
+COMMENT= SquashFS extractor with patches for firmware analysis
+WWW= https://gitlab.com/tgasiba/sasquatch/
+
+LICENSE= CPL GPLv2 LGPL21 PUBLIC
+LICENSE_COMB= multi
+LICENSE_NAME_CPL= Common Public License V. 1.0
+LICENSE_NAME_PUBLIC= Public Domain
+LICENSE_FILE_CPL= ${WRKSRC}/LZMA/lzmadaptive/CPL.html
+LICENSE_FILE_GPLv2= ${WRKSRC}/LICENSE
+LICENSE_FILE_LGPL21= ${WRKSRC}/LZMA/lzmadaptive/LGPL.txt
+LICENSE_FILE_PUBLIC= ${WRKSRC}/LZMA/lzma465/lzma.txt
+LICENSE_PERMS_CPL= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+LICENSE_PERMS_PUBLIC= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+
+LIB_DEPENDS= liblz4.so:archivers/liblz4 \
+ liblzo2.so:archivers/lzo2
+
+USES= compiler:c++11-lang
+USE_GITLAB= yes
+GL_ACCOUNT= tgasiba
+
+MAKE_ENV= CC="${CC}" \
+ CXX="${CXX}"
+
+PLIST_FILES= bin/${PORTNAME}
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin
+
+.include <bsd.port.mk>
diff --git a/filesystems/sasquatch/distinfo b/filesystems/sasquatch/distinfo
new file mode 100644
index 000000000000..fc694081ebee
--- /dev/null
+++ b/filesystems/sasquatch/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1755444495
+SHA256 (sasquatch-4.3.tar.bz2) = 3fa1f0f5be2d9be66e0f4f87f5690e4c770f87718c7861ae59943fe9eb0c585d
+SIZE (sasquatch-4.3.tar.bz2) = 271643
diff --git a/filesystems/sasquatch/pkg-descr b/filesystems/sasquatch/pkg-descr
new file mode 100644
index 000000000000..310014639119
--- /dev/null
+++ b/filesystems/sasquatch/pkg-descr
@@ -0,0 +1,16 @@
+The sasquatch project is a set of patches to the standard unsquashfs utility
+(part of squashfs-tools) that attempts to add support for as many hacked-up
+vendor-specific SquashFS implementations as possible.
+
+It can be used in conjunction with binwalk to extract firmware images where
+unsquashfs would fail, e.g.
+
+ If the vendor has done something simple like just muck a bit with the header
+ fields, sasquatch should sort it out.
+
+ If the vendor has made changes to the underlying LZMA compression options,
+ or to how these options are stored in the compressed data blocks, sasquatch
+ will attempt to automatically resolve such customizations via a brute-force
+ method.
+
+Original project under: https://github.com/devttys0/sasquatch
diff --git a/filesystems/zerofs/Makefile b/filesystems/zerofs/Makefile
new file mode 100644
index 000000000000..969f463a97c7
--- /dev/null
+++ b/filesystems/zerofs/Makefile
@@ -0,0 +1,25 @@
+PORTNAME= zerofs
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.10.5
+CATEGORIES= filesystems sysutils
+
+MAINTAINER= stephan@lichtenauer.co.za
+COMMENT= ZeroFS is 9P/NFS/NBD on top of S3
+WWW= https://github.com/Barre/ZeroFS
+
+LICENSE= AGPLv3
+LICENSE_FILE= ${WRKDIR}/ZeroFS-${DISTVERSION}/LICENSE
+
+USES= cargo gmake
+
+WRKSRC= ${WRKDIR}/ZeroFS-${DISTVERSION}/zerofs
+
+USE_GITHUB= yes
+GH_ACCOUNT= Barre
+GH_PROJECT= ZeroFS
+PLIST_FILES= bin/zerofs
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKDIR}/target/release/zerofs ${STAGEDIR}${PREFIX}/bin/zerofs
+
+.include <bsd.port.mk>
diff --git a/filesystems/zerofs/Makefile.crates b/filesystems/zerofs/Makefile.crates
new file mode 100644
index 000000000000..e8f45a1fce97
--- /dev/null
+++ b/filesystems/zerofs/Makefile.crates
@@ -0,0 +1,412 @@
+CARGO_CRATES= addr2line-0.24.2 \
+ adler2-2.0.1 \
+ aead-0.5.2 \
+ ahash-0.8.12 \
+ aho-corasick-1.1.3 \
+ aliasable-0.1.3 \
+ allocator-api2-0.2.21 \
+ android-tzdata-0.1.1 \
+ android_system_properties-0.1.5 \
+ anstream-0.6.20 \
+ anstyle-1.0.11 \
+ anstyle-parse-0.2.7 \
+ anstyle-query-1.1.4 \
+ anstyle-wincon-3.0.10 \
+ anyhow-1.0.99 \
+ arc-swap-1.7.1 \
+ argon2-0.5.3 \
+ array-util-1.0.2 \
+ arrayvec-0.7.6 \
+ async-channel-2.5.0 \
+ async-stream-0.3.6 \
+ async-stream-impl-0.3.6 \
+ async-task-4.7.1 \
+ async-trait-0.1.89 \
+ atomic-0.6.1 \
+ atomic-waker-1.1.2 \
+ auto_enums-0.8.7 \
+ autocfg-1.5.0 \
+ backtrace-0.3.75 \
+ base64-0.22.1 \
+ base64ct-1.8.0 \
+ bincode-1.3.3 \
+ bitflags-2.9.1 \
+ bitvec-1.0.1 \
+ blake2-0.10.6 \
+ block-buffer-0.10.4 \
+ bumpalo-3.19.0 \
+ bytemuck-1.23.2 \
+ byteorder-1.5.0 \
+ bytes-1.10.1 \
+ bytestream-0.4.1 \
+ cc-1.2.32 \
+ cfg-if-1.0.1 \
+ cfg_aliases-0.2.1 \
+ chacha20-0.9.1 \
+ chacha20poly1305-0.10.1 \
+ chrono-0.4.41 \
+ cipher-0.4.4 \
+ clap-4.5.45 \
+ clap_builder-4.5.44 \
+ clap_derive-4.5.45 \
+ clap_lex-0.7.5 \
+ cmsketch-0.2.2 \
+ colorchoice-1.0.4 \
+ comfy-table-7.1.4 \
+ concurrent-queue-2.5.0 \
+ core-foundation-0.10.1 \
+ core-foundation-sys-0.8.7 \
+ cpufeatures-0.2.17 \
+ crc32fast-1.5.0 \
+ crossbeam-channel-0.5.15 \
+ crossbeam-epoch-0.9.18 \
+ crossbeam-skiplist-0.1.3 \
+ crossbeam-utils-0.8.21 \
+ crossterm-0.28.1 \
+ crossterm_winapi-0.9.1 \
+ crypto-common-0.1.6 \
+ darling-0.14.4 \
+ darling-0.20.11 \
+ darling_core-0.14.4 \
+ darling_core-0.20.11 \
+ darling_macro-0.14.4 \
+ darling_macro-0.20.11 \
+ dashmap-6.1.0 \
+ deku-0.19.1 \
+ deku_derive-0.19.1 \
+ deranged-0.4.0 \
+ derive_utils-0.15.0 \
+ digest-0.10.7 \
+ displaydoc-0.2.5 \
+ dotenvy-0.15.7 \
+ downcast-rs-1.2.1 \
+ duration-str-0.11.3 \
+ either-1.15.0 \
+ endian-type-0.1.2 \
+ equivalent-1.0.2 \
+ errno-0.3.13 \
+ event-listener-5.4.1 \
+ event-listener-strategy-0.5.4 \
+ fail-parallel-0.5.1 \
+ figment-0.10.19 \
+ filetime-0.2.25 \
+ flatbuffers-25.2.10 \
+ flume-0.11.1 \
+ fnv-1.0.7 \
+ foldhash-0.1.5 \
+ form_urlencoded-1.2.1 \
+ foyer-0.17.4 \
+ foyer-0.18.0 \
+ foyer-common-0.17.4 \
+ foyer-common-0.18.0 \
+ foyer-intrusive-collections-0.10.0-dev \
+ foyer-memory-0.17.4 \
+ foyer-memory-0.18.0 \
+ foyer-storage-0.17.4 \
+ foyer-storage-0.18.0 \
+ fs4-0.13.1 \
+ funty-2.0.0 \
+ futures-0.3.31 \
+ futures-channel-0.3.31 \
+ futures-core-0.3.31 \
+ futures-executor-0.3.31 \
+ futures-io-0.3.31 \
+ futures-macro-0.3.31 \
+ futures-sink-0.3.31 \
+ futures-task-0.3.31 \
+ futures-util-0.3.31 \
+ generic-array-0.14.7 \
+ getrandom-0.2.16 \
+ getrandom-0.3.3 \
+ gimli-0.31.1 \
+ h2-0.4.12 \
+ hashbrown-0.13.2 \
+ hashbrown-0.14.5 \
+ hashbrown-0.15.5 \
+ heck-0.4.1 \
+ heck-0.5.0 \
+ hex-0.4.3 \
+ hkdf-0.12.4 \
+ hmac-0.12.1 \
+ http-1.3.1 \
+ http-body-1.0.1 \
+ http-body-util-0.1.3 \
+ httparse-1.10.1 \
+ humantime-2.2.0 \
+ hyper-1.6.0 \
+ hyper-rustls-0.27.7 \
+ hyper-util-0.1.16 \
+ iana-time-zone-0.1.63 \
+ iana-time-zone-haiku-0.1.2 \
+ icu_collections-2.0.0 \
+ icu_locale_core-2.0.0 \
+ icu_normalizer-2.0.0 \
+ icu_normalizer_data-2.0.0 \
+ icu_properties-2.0.1 \
+ icu_properties_data-2.0.1 \
+ icu_provider-2.0.0 \
+ ident_case-1.0.1 \
+ idna-1.0.3 \
+ idna_adapter-1.2.1 \
+ indexmap-2.10.0 \
+ inlinable_string-0.1.15 \
+ inout-0.1.4 \
+ io-uring-0.7.9 \
+ ipnet-2.11.0 \
+ iri-string-0.7.8 \
+ is_terminal_polyfill-1.70.1 \
+ itertools-0.14.0 \
+ itoa-1.0.15 \
+ jobserver-0.1.33 \
+ js-sys-0.3.77 \
+ lazy_static-1.5.0 \
+ libc-0.2.175 \
+ libmimalloc-sys-0.1.43 \
+ libredox-0.1.9 \
+ linux-raw-sys-0.4.15 \
+ linux-raw-sys-0.9.4 \
+ litemap-0.8.0 \
+ lock_api-0.4.13 \
+ log-0.4.27 \
+ lru-slab-0.1.2 \
+ lz4-1.28.1 \
+ lz4-sys-1.11.1+lz4-1.10.0 \
+ lz4_flex-0.11.5 \
+ madsim-0.2.33 \
+ madsim-macros-0.2.12 \
+ madsim-tokio-0.2.30 \
+ matchers-0.1.0 \
+ md-5-0.10.6 \
+ memchr-2.7.5 \
+ memoffset-0.9.1 \
+ mimalloc-0.1.47 \
+ miniz_oxide-0.8.9 \
+ mio-1.0.4 \
+ mixtrics-0.1.0 \
+ mixtrics-0.2.0 \
+ naive-timer-0.2.0 \
+ nanorand-0.7.0 \
+ nibble_vec-0.1.0 \
+ no_std_io2-0.9.0 \
+ nu-ansi-term-0.46.0 \
+ num-conv-0.1.0 \
+ num-derive-0.4.2 \
+ num-format-0.4.4 \
+ num-traits-0.2.19 \
+ object-0.36.7 \
+ object_store-0.12.3 \
+ once_cell-1.21.3 \
+ once_cell_polyfill-1.70.1 \
+ opaque-debug-0.3.1 \
+ openssl-probe-0.1.6 \
+ ordered_hash_map-0.4.0 \
+ ouroboros-0.18.5 \
+ ouroboros_macro-0.18.5 \
+ overload-0.1.1 \
+ panic-message-0.3.0 \
+ parking-2.2.1 \
+ parking_lot-0.12.4 \
+ parking_lot_core-0.9.11 \
+ password-hash-0.5.0 \
+ paste-1.0.15 \
+ pear-0.2.9 \
+ pear_codegen-0.2.9 \
+ percent-encoding-2.3.1 \
+ pin-project-1.1.10 \
+ pin-project-internal-1.1.10 \
+ pin-project-lite-0.2.16 \
+ pin-utils-0.1.0 \
+ pkg-config-0.3.32 \
+ poly1305-0.8.0 \
+ potential_utf-0.1.2 \
+ powerfmt-0.2.0 \
+ ppv-lite86-0.2.21 \
+ proc-macro-crate-3.3.0 \
+ proc-macro2-1.0.97 \
+ proc-macro2-diagnostics-0.10.1 \
+ quick-xml-0.38.1 \
+ quinn-0.11.8 \
+ quinn-proto-0.11.12 \
+ quinn-udp-0.5.13 \
+ quote-1.0.40 \
+ r-efi-5.3.0 \
+ radium-0.7.0 \
+ radix_trie-0.2.1 \
+ rand-0.8.5 \
+ rand-0.9.2 \
+ rand_chacha-0.3.1 \
+ rand_chacha-0.9.0 \
+ rand_core-0.6.4 \
+ rand_core-0.9.3 \
+ rand_xorshift-0.4.0 \
+ rand_xoshiro-0.6.0 \
+ rand_xoshiro-0.7.0 \
+ redox_syscall-0.5.17 \
+ regex-1.11.1 \
+ regex-automata-0.1.10 \
+ regex-automata-0.4.9 \
+ regex-syntax-0.6.29 \
+ regex-syntax-0.8.5 \
+ reqwest-0.12.23 \
+ ring-0.17.14 \
+ rust_decimal-1.37.2 \
+ rustc-demangle-0.1.26 \
+ rustc-hash-2.1.1 \
+ rustc_version-0.4.1 \
+ rustix-0.38.44 \
+ rustix-1.0.8 \
+ rustls-0.23.31 \
+ rustls-native-certs-0.8.1 \
+ rustls-pemfile-2.2.0 \
+ rustls-pki-types-1.12.0 \
+ rustls-webpki-0.103.4 \
+ rustversion-1.0.22 \
+ ryu-1.0.20 \
+ same-file-1.0.6 \
+ schannel-0.1.27 \
+ scopeguard-1.2.0 \
+ security-framework-3.3.0 \
+ security-framework-sys-2.14.0 \
+ semver-1.0.26 \
+ serde-1.0.219 \
+ serde_derive-1.0.219 \
+ serde_json-1.0.142 \
+ serde_spanned-0.6.9 \
+ serde_spanned-1.0.0 \
+ serde_urlencoded-0.7.1 \
+ serde_yaml-0.9.34+deprecated \
+ sha2-0.10.9 \
+ sharded-slab-0.1.7 \
+ shlex-1.3.0 \
+ signal-hook-registry-1.4.6 \
+ siphasher-1.0.1 \
+ slab-0.4.11 \
+ smallvec-1.15.1 \
+ socket2-0.5.10 \
+ socket2-0.6.0 \
+ spin-0.9.8 \
+ stable_deref_trait-1.2.0 \
+ static_assertions-1.1.0 \
+ strsim-0.10.0 \
+ strsim-0.11.1 \
+ subtle-2.6.1 \
+ syn-1.0.109 \
+ syn-2.0.105 \
+ sync_wrapper-1.0.2 \
+ synstructure-0.13.2 \
+ tap-1.0.1 \
+ thiserror-1.0.69 \
+ thiserror-2.0.14 \
+ thiserror-impl-1.0.69 \
+ thiserror-impl-2.0.14 \
+ thread_local-1.1.9 \
+ tikv-jemalloc-sys-0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7 \
+ tikv-jemallocator-0.6.0 \
+ time-0.3.41 \
+ time-core-0.1.4 \
+ tinystr-0.8.1 \
+ tinyvec-1.9.0 \
+ tinyvec_macros-0.1.1 \
+ tokio-1.47.1 \
+ tokio-macros-2.5.0 \
+ tokio-rustls-0.26.2 \
+ tokio-util-0.7.16 \
+ toml-0.8.23 \
+ toml-0.9.5 \
+ toml_datetime-0.6.11 \
+ toml_datetime-0.7.0 \
+ toml_edit-0.22.27 \
+ toml_parser-1.0.2 \
+ toml_write-0.1.2 \
+ toml_writer-1.0.2 \
+ tower-0.5.2 \
+ tower-http-0.6.6 \
+ tower-layer-0.3.3 \
+ tower-service-0.3.3 \
+ tracing-0.1.41 \
+ tracing-attributes-0.1.30 \
+ tracing-core-0.1.34 \
+ tracing-log-0.2.0 \
+ tracing-subscriber-0.3.19 \
+ try-lock-0.2.5 \
+ twox-hash-2.1.1 \
+ typenum-1.18.0 \
+ ulid-1.2.1 \
+ uncased-0.9.10 \
+ unicode-ident-1.0.18 \
+ unicode-segmentation-1.12.0 \
+ unicode-width-0.2.1 \
+ universal-hash-0.5.1 \
+ unsafe-libyaml-0.2.11 \
+ untrusted-0.9.0 \
+ url-2.5.4 \
+ utf8_iter-1.0.4 \
+ utf8parse-0.2.2 \
+ uuid-1.18.0 \
+ valuable-0.1.1 \
+ version_check-0.9.5 \
+ walkdir-2.5.0 \
+ want-0.3.1 \
+ wasi-0.11.1+wasi-snapshot-preview1 \
+ wasi-0.14.2+wasi-0.2.4 \
+ wasm-bindgen-0.2.100 \
+ wasm-bindgen-backend-0.2.100 \
+ wasm-bindgen-futures-0.4.50 \
+ wasm-bindgen-macro-0.2.100 \
+ wasm-bindgen-macro-support-0.2.100 \
+ wasm-bindgen-shared-0.2.100 \
+ wasm-streams-0.4.2 \
+ web-sys-0.3.77 \
+ web-time-1.1.0 \
+ winapi-0.3.9 \
+ winapi-i686-pc-windows-gnu-0.4.0 \
+ winapi-util-0.1.9 \
+ winapi-x86_64-pc-windows-gnu-0.4.0 \
+ windows-core-0.61.2 \
+ windows-implement-0.60.0 \
+ windows-interface-0.59.1 \
+ windows-link-0.1.3 \
+ windows-result-0.3.4 \
+ windows-strings-0.4.2 \
+ windows-sys-0.52.0 \
+ windows-sys-0.59.0 \
+ windows-sys-0.60.2 \
+ windows-targets-0.52.6 \
+ windows-targets-0.53.3 \
+ windows_aarch64_gnullvm-0.52.6 \
+ windows_aarch64_gnullvm-0.53.0 \
+ windows_aarch64_msvc-0.52.6 \
+ windows_aarch64_msvc-0.53.0 \
+ windows_i686_gnu-0.52.6 \
+ windows_i686_gnu-0.53.0 \
+ windows_i686_gnullvm-0.52.6 \
+ windows_i686_gnullvm-0.53.0 \
+ windows_i686_msvc-0.52.6 \
+ windows_i686_msvc-0.53.0 \
+ windows_x86_64_gnu-0.52.6 \
+ windows_x86_64_gnu-0.53.0 \
+ windows_x86_64_gnullvm-0.52.6 \
+ windows_x86_64_gnullvm-0.53.0 \
+ windows_x86_64_msvc-0.52.6 \
+ windows_x86_64_msvc-0.53.0 \
+ winnow-0.6.26 \
+ winnow-0.7.12 \
+ wit-bindgen-rt-0.39.0 \
+ writeable-0.6.1 \
+ wyz-0.5.1 \
+ yansi-1.0.1 \
+ yoke-0.8.0 \
+ yoke-derive-0.8.0 \
+ zerocopy-0.8.26 \
+ zerocopy-derive-0.8.26 \
+ zerofrom-0.1.6 \
+ zerofrom-derive-0.1.6 \
+ zerofs_nfsserve-0.11.0 \
+ zeroize-1.8.1 \
+ zerotrie-0.2.2 \
+ zerovec-0.11.4 \
+ zerovec-derive-0.11.1 \
+ zstd-0.13.3 \
+ zstd-safe-7.2.4 \
+ zstd-sys-2.0.15+zstd.1.5.7 \
+ slatedb@git+https://github.com/slatedb/slatedb.git?rev=6e138682013a192bc55e8a2b925ad65d0599a4ef\#6e138682013a192bc55e8a2b925ad65d0599a4ef
diff --git a/filesystems/zerofs/distinfo b/filesystems/zerofs/distinfo
new file mode 100644
index 000000000000..1cc890e8405a
--- /dev/null
+++ b/filesystems/zerofs/distinfo
@@ -0,0 +1,827 @@
+TIMESTAMP = 1756460664
+SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
+SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
+SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
+SIZE (rust/crates/adler2-2.0.1.crate) = 13366
+SHA256 (rust/crates/aead-0.5.2.crate) = d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0
+SIZE (rust/crates/aead-0.5.2.crate) = 15509
+SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75
+SIZE (rust/crates/ahash-0.8.12.crate) = 43413
+SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
+SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
+SHA256 (rust/crates/aliasable-0.1.3.crate) = 250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd
+SIZE (rust/crates/aliasable-0.1.3.crate) = 6169
+SHA256 (rust/crates/allocator-api2-0.2.21.crate) = 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923
+SIZE (rust/crates/allocator-api2-0.2.21.crate) = 63622
+SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0
+SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
+SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
+SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
+SHA256 (rust/crates/anstream-0.6.20.crate) = 3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192
+SIZE (rust/crates/anstream-0.6.20.crate) = 28797
+SHA256 (rust/crates/anstyle-1.0.11.crate) = 862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd
+SIZE (rust/crates/anstyle-1.0.11.crate) = 15880
+SHA256 (rust/crates/anstyle-parse-0.2.7.crate) = 4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2
+SIZE (rust/crates/anstyle-parse-0.2.7.crate) = 21707
+SHA256 (rust/crates/anstyle-query-1.1.4.crate) = 9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2
+SIZE (rust/crates/anstyle-query-1.1.4.crate) = 10192
+SHA256 (rust/crates/anstyle-wincon-3.0.10.crate) = 3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a
+SIZE (rust/crates/anstyle-wincon-3.0.10.crate) = 12558
+SHA256 (rust/crates/anyhow-1.0.99.crate) = b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100
+SIZE (rust/crates/anyhow-1.0.99.crate) = 53809
+SHA256 (rust/crates/arc-swap-1.7.1.crate) = 69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457
+SIZE (rust/crates/arc-swap-1.7.1.crate) = 68512
+SHA256 (rust/crates/argon2-0.5.3.crate) = 3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072
+SIZE (rust/crates/argon2-0.5.3.crate) = 28795
+SHA256 (rust/crates/array-util-1.0.2.crate) = 7e509844de8f09b90a2c3444684a2b6695f4071360e13d2fda0af9f749cc2ed6
+SIZE (rust/crates/array-util-1.0.2.crate) = 9022
+SHA256 (rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50
+SIZE (rust/crates/arrayvec-0.7.6.crate) = 31237
+SHA256 (rust/crates/async-channel-2.5.0.crate) = 924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2
+SIZE (rust/crates/async-channel-2.5.0.crate) = 18624
+SHA256 (rust/crates/async-stream-0.3.6.crate) = 0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476
+SIZE (rust/crates/async-stream-0.3.6.crate) = 13823
+SHA256 (rust/crates/async-stream-impl-0.3.6.crate) = c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d
+SIZE (rust/crates/async-stream-impl-0.3.6.crate) = 4312
+SHA256 (rust/crates/async-task-4.7.1.crate) = 8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de
+SIZE (rust/crates/async-task-4.7.1.crate) = 38077
+SHA256 (rust/crates/async-trait-0.1.89.crate) = 9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb
+SIZE (rust/crates/async-trait-0.1.89.crate) = 32171
+SHA256 (rust/crates/atomic-0.6.1.crate) = a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340
+SIZE (rust/crates/atomic-0.6.1.crate) = 15243
+SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0
+SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422
+SHA256 (rust/crates/auto_enums-0.8.7.crate) = 9c170965892137a3a9aeb000b4524aa3cc022a310e709d848b6e1cdce4ab4781
+SIZE (rust/crates/auto_enums-0.8.7.crate) = 58613
+SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8
+SIZE (rust/crates/autocfg-1.5.0.crate) = 18729
+SHA256 (rust/crates/backtrace-0.3.75.crate) = 6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002
+SIZE (rust/crates/backtrace-0.3.75.crate) = 92665
+SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
+SIZE (rust/crates/base64-0.22.1.crate) = 81597
+SHA256 (rust/crates/base64ct-1.8.0.crate) = 55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba
+SIZE (rust/crates/base64ct-1.8.0.crate) = 31211
+SHA256 (rust/crates/bincode-1.3.3.crate) = b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad
+SIZE (rust/crates/bincode-1.3.3.crate) = 28958
+SHA256 (rust/crates/bitflags-2.9.1.crate) = 1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967
+SIZE (rust/crates/bitflags-2.9.1.crate) = 47913
+SHA256 (rust/crates/bitvec-1.0.1.crate) = 1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c
+SIZE (rust/crates/bitvec-1.0.1.crate) = 224375
+SHA256 (rust/crates/blake2-0.10.6.crate) = 46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe
+SIZE (rust/crates/blake2-0.10.6.crate) = 47234
+SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
+SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538
+SHA256 (rust/crates/bumpalo-3.19.0.crate) = 46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43
+SIZE (rust/crates/bumpalo-3.19.0.crate) = 96414
+SHA256 (rust/crates/bytemuck-1.23.2.crate) = 3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677
+SIZE (rust/crates/bytemuck-1.23.2.crate) = 53021
+SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
+SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
+SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a
+SIZE (rust/crates/bytes-1.10.1.crate) = 76779
+SHA256 (rust/crates/bytestream-0.4.1.crate) = 04f720842a717d6afaf69fee2dc69b771edc165f12cc3eb1b0e8eeef53a86454
+SIZE (rust/crates/bytestream-0.4.1.crate) = 5012
+SHA256 (rust/crates/cc-1.2.32.crate) = 2352e5597e9c544d5e6d9c95190d5d27738ade584fa8db0a16e130e5c2b5296e
+SIZE (rust/crates/cc-1.2.32.crate) = 111531
+SHA256 (rust/crates/cfg-if-1.0.1.crate) = 9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268
+SIZE (rust/crates/cfg-if-1.0.1.crate) = 8683
+SHA256 (rust/crates/cfg_aliases-0.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724
+SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355
+SHA256 (rust/crates/chacha20-0.9.1.crate) = c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818
+SIZE (rust/crates/chacha20-0.9.1.crate) = 23424
+SHA256 (rust/crates/chacha20poly1305-0.10.1.crate) = 10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35
+SIZE (rust/crates/chacha20poly1305-0.10.1.crate) = 68485
+SHA256 (rust/crates/chrono-0.4.41.crate) = c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d
+SIZE (rust/crates/chrono-0.4.41.crate) = 234621
+SHA256 (rust/crates/cipher-0.4.4.crate) = 773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad
+SIZE (rust/crates/cipher-0.4.4.crate) = 19073
+SHA256 (rust/crates/clap-4.5.45.crate) = 1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318
+SIZE (rust/crates/clap-4.5.45.crate) = 58337
+SHA256 (rust/crates/clap_builder-4.5.44.crate) = b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8
+SIZE (rust/crates/clap_builder-4.5.44.crate) = 169799
+SHA256 (rust/crates/clap_derive-4.5.45.crate) = 14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6
+SIZE (rust/crates/clap_derive-4.5.45.crate) = 33545
+SHA256 (rust/crates/clap_lex-0.7.5.crate) = b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675
+SIZE (rust/crates/clap_lex-0.7.5.crate) = 13469
+SHA256 (rust/crates/cmsketch-0.2.2.crate) = 553c840ee51da812c6cd621f9f7e07dfb00a49f91283a8e6380c78cba4f61aba
+SIZE (rust/crates/cmsketch-0.2.2.crate) = 8487
+SHA256 (rust/crates/colorchoice-1.0.4.crate) = b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75
+SIZE (rust/crates/colorchoice-1.0.4.crate) = 8196
+SHA256 (rust/crates/comfy-table-7.1.4.crate) = 4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a
+SIZE (rust/crates/comfy-table-7.1.4.crate) = 77044
+SHA256 (rust/crates/concurrent-queue-2.5.0.crate) = 4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973
+SIZE (rust/crates/concurrent-queue-2.5.0.crate) = 22654
+SHA256 (rust/crates/core-foundation-0.10.1.crate) = b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6
+SIZE (rust/crates/core-foundation-0.10.1.crate) = 28886
+SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
+SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
+SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280
+SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466
+SHA256 (rust/crates/crc32fast-1.5.0.crate) = 9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511
+SIZE (rust/crates/crc32fast-1.5.0.crate) = 40723
+SHA256 (rust/crates/crossbeam-channel-0.5.15.crate) = 82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2
+SIZE (rust/crates/crossbeam-channel-0.5.15.crate) = 92716
+SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e
+SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875
+SHA256 (rust/crates/crossbeam-skiplist-0.1.3.crate) = df29de440c58ca2cc6e587ec3d22347551a32435fbde9d2bff64e78a9ffa151b
+SIZE (rust/crates/crossbeam-skiplist-0.1.3.crate) = 34930
+SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28
+SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
+SHA256 (rust/crates/crossterm-0.28.1.crate) = 829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6
+SIZE (rust/crates/crossterm-0.28.1.crate) = 132275
+SHA256 (rust/crates/crossterm_winapi-0.9.1.crate) = acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b
+SIZE (rust/crates/crossterm_winapi-0.9.1.crate) = 16027
+SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
+SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760
+SHA256 (rust/crates/darling-0.14.4.crate) = 7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850
+SIZE (rust/crates/darling-0.14.4.crate) = 25168
+SHA256 (rust/crates/darling-0.20.11.crate) = fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee
+SIZE (rust/crates/darling-0.20.11.crate) = 37614
+SHA256 (rust/crates/darling_core-0.14.4.crate) = 109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0
+SIZE (rust/crates/darling_core-0.14.4.crate) = 57485
+SHA256 (rust/crates/darling_core-0.20.11.crate) = 0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e
+SIZE (rust/crates/darling_core-0.20.11.crate) = 68006
+SHA256 (rust/crates/darling_macro-0.14.4.crate) = a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e
+SIZE (rust/crates/darling_macro-0.14.4.crate) = 1896
+SHA256 (rust/crates/darling_macro-0.20.11.crate) = fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead
+SIZE (rust/crates/darling_macro-0.20.11.crate) = 2532
+SHA256 (rust/crates/dashmap-6.1.0.crate) = 5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf
+SIZE (rust/crates/dashmap-6.1.0.crate) = 24828
+SHA256 (rust/crates/deku-0.19.1.crate) = f476a022dcfbb013d1365734a42e05b6aca967ebe0d3bb38170086abd9ea3324
+SIZE (rust/crates/deku-0.19.1.crate) = 88405
+SHA256 (rust/crates/deku_derive-0.19.1.crate) = bb216d425bdf810c165a8ae1649523033e88b5f795480ccec63926295541b084
+SIZE (rust/crates/deku_derive-0.19.1.crate) = 28972
+SHA256 (rust/crates/deranged-0.4.0.crate) = 9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e
+SIZE (rust/crates/deranged-0.4.0.crate) = 23235
+SHA256 (rust/crates/derive_utils-0.15.0.crate) = ccfae181bab5ab6c5478b2ccb69e4c68a02f8c3ec72f6616bfec9dbc599d2ee0
+SIZE (rust/crates/derive_utils-0.15.0.crate) = 16294
+SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292
+SIZE (rust/crates/digest-0.10.7.crate) = 19557
+SHA256 (rust/crates/displaydoc-0.2.5.crate) = 97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0
+SIZE (rust/crates/displaydoc-0.2.5.crate) = 24219
+SHA256 (rust/crates/dotenvy-0.15.7.crate) = 1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b
+SIZE (rust/crates/dotenvy-0.15.7.crate) = 20293
+SHA256 (rust/crates/downcast-rs-1.2.1.crate) = 75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2
+SIZE (rust/crates/downcast-rs-1.2.1.crate) = 11821
+SHA256 (rust/crates/duration-str-0.11.3.crate) = f88959de2d447fd3eddcf1909d1f19fe084e27a056a6904203dc5d8b9e771c1e
+SIZE (rust/crates/duration-str-0.11.3.crate) = 104394
+SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
+SIZE (rust/crates/either-1.15.0.crate) = 20114
+SHA256 (rust/crates/endian-type-0.1.2.crate) = c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d
+SIZE (rust/crates/endian-type-0.1.2.crate) = 2340
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/errno-0.3.13.crate) = 778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad
+SIZE (rust/crates/errno-0.3.13.crate) = 12449
+SHA256 (rust/crates/event-listener-5.4.1.crate) = e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab
+SIZE (rust/crates/event-listener-5.4.1.crate) = 43782
+SHA256 (rust/crates/event-listener-strategy-0.5.4.crate) = 8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93
+SIZE (rust/crates/event-listener-strategy-0.5.4.crate) = 16179
+SHA256 (rust/crates/fail-parallel-0.5.1.crate) = 5666e8ca4ec174d896fb742789c29b1bea9319dcfd623c41bececc0a60c4939d
+SIZE (rust/crates/fail-parallel-0.5.1.crate) = 17965
+SHA256 (rust/crates/figment-0.10.19.crate) = 8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3
+SIZE (rust/crates/figment-0.10.19.crate) = 70111
+SHA256 (rust/crates/filetime-0.2.25.crate) = 35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586
+SIZE (rust/crates/filetime-0.2.25.crate) = 14940
+SHA256 (rust/crates/flatbuffers-25.2.10.crate) = 1045398c1bfd89168b5fd3f1fc11f6e70b34f6f66300c87d44d3de849463abf1
+SIZE (rust/crates/flatbuffers-25.2.10.crate) = 27330
+SHA256 (rust/crates/flume-0.11.1.crate) = da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095
+SIZE (rust/crates/flume-0.11.1.crate) = 67947
+SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
+SIZE (rust/crates/fnv-1.0.7.crate) = 11266
+SHA256 (rust/crates/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2
+SIZE (rust/crates/foldhash-0.1.5.crate) = 21901
+SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456
+SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
+SHA256 (rust/crates/foyer-0.17.4.crate) = 0618db36554a0a5db538d7ff04427571b1f668d3e86a764aabe17985c02ea14c
+SIZE (rust/crates/foyer-0.17.4.crate) = 30568
+SHA256 (rust/crates/foyer-0.18.0.crate) = 0b4d8e96374206ff1b4265f2e2e6e1f80bc3048957b2a1e7fdeef929d68f318f
+SIZE (rust/crates/foyer-0.18.0.crate) = 32111
+SHA256 (rust/crates/foyer-common-0.17.4.crate) = dbf63fd16ba6227de0004472156048338ad7544280d1200c27e4b4a82ca6f075
+SIZE (rust/crates/foyer-common-0.17.4.crate) = 34793
+SHA256 (rust/crates/foyer-common-0.18.0.crate) = 911b8e3f23d5fe55b0b240f75af1d2fa5cb7261d3f9b38ef1c57bbc9f0449317
+SIZE (rust/crates/foyer-common-0.18.0.crate) = 34796
+SHA256 (rust/crates/foyer-intrusive-collections-0.10.0-dev.crate) = 6e4fee46bea69e0596130e3210e65d3424e0ac1e6df3bde6636304bdf1ca4a3b
+SIZE (rust/crates/foyer-intrusive-collections-0.10.0-dev.crate) = 56918
+SHA256 (rust/crates/foyer-memory-0.17.4.crate) = 3ae8a1c8e263f91cf3abca38bbf6b8f82f34b6cf20fa3a249c90ebfa795e5631
+SIZE (rust/crates/foyer-memory-0.17.4.crate) = 50477
+SHA256 (rust/crates/foyer-memory-0.18.0.crate) = 506883d5a8500dea1b1662f7180f3534bdcbfa718d3253db7179552ef83612fa
+SIZE (rust/crates/foyer-memory-0.18.0.crate) = 52331
+SHA256 (rust/crates/foyer-storage-0.17.4.crate) = d387ab178f8bcb03fe4981766c9f436007234d8ca73080e3ad2c370d8d75113b
+SIZE (rust/crates/foyer-storage-0.17.4.crate) = 88855
+SHA256 (rust/crates/foyer-storage-0.18.0.crate) = 1ba8403a54a2f2032fb647e49c442e5feeb33f3989f7024f1b178341a016f06d
+SIZE (rust/crates/foyer-storage-0.18.0.crate) = 88992
+SHA256 (rust/crates/fs4-0.13.1.crate) = 8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4
+SIZE (rust/crates/fs4-0.13.1.crate) = 28794
+SHA256 (rust/crates/funty-2.0.0.crate) = e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c
+SIZE (rust/crates/funty-2.0.0.crate) = 13160
+SHA256 (rust/crates/futures-0.3.31.crate) = 65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876
+SIZE (rust/crates/futures-0.3.31.crate) = 54953
+SHA256 (rust/crates/futures-channel-0.3.31.crate) = 2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10
+SIZE (rust/crates/futures-channel-0.3.31.crate) = 31971
+SHA256 (rust/crates/futures-core-0.3.31.crate) = 05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e
+SIZE (rust/crates/futures-core-0.3.31.crate) = 14318
+SHA256 (rust/crates/futures-executor-0.3.31.crate) = 1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f
+SIZE (rust/crates/futures-executor-0.3.31.crate) = 17965
+SHA256 (rust/crates/futures-io-0.3.31.crate) = 9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6
+SIZE (rust/crates/futures-io-0.3.31.crate) = 9047
+SHA256 (rust/crates/futures-macro-0.3.31.crate) = 162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650
+SIZE (rust/crates/futures-macro-0.3.31.crate) = 11341
+SHA256 (rust/crates/futures-sink-0.3.31.crate) = e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7
+SIZE (rust/crates/futures-sink-0.3.31.crate) = 7958
+SHA256 (rust/crates/futures-task-0.3.31.crate) = f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988
+SIZE (rust/crates/futures-task-0.3.31.crate) = 11217
+SHA256 (rust/crates/futures-util-0.3.31.crate) = 9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81
+SIZE (rust/crates/futures-util-0.3.31.crate) = 162124
+SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a
+SIZE (rust/crates/generic-array-0.14.7.crate) = 15950
+SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592
+SIZE (rust/crates/getrandom-0.2.16.crate) = 40163
+SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4
+SIZE (rust/crates/getrandom-0.3.3.crate) = 49493
+SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f
+SIZE (rust/crates/gimli-0.31.1.crate) = 279515
+SHA256 (rust/crates/h2-0.4.12.crate) = f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386
+SIZE (rust/crates/h2-0.4.12.crate) = 176264
+SHA256 (rust/crates/hashbrown-0.13.2.crate) = 43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e
+SIZE (rust/crates/hashbrown-0.13.2.crate) = 105265
+SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1
+SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498
+SHA256 (rust/crates/hashbrown-0.15.5.crate) = 9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1
+SIZE (rust/crates/hashbrown-0.15.5.crate) = 140908
+SHA256 (rust/crates/heck-0.4.1.crate) = 95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8
+SIZE (rust/crates/heck-0.4.1.crate) = 11567
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70
+SIZE (rust/crates/hex-0.4.3.crate) = 13299
+SHA256 (rust/crates/hkdf-0.12.4.crate) = 7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7
+SIZE (rust/crates/hkdf-0.12.4.crate) = 171163
+SHA256 (rust/crates/hmac-0.12.1.crate) = 6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e
+SIZE (rust/crates/hmac-0.12.1.crate) = 42657
+SHA256 (rust/crates/http-1.3.1.crate) = f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565
+SIZE (rust/crates/http-1.3.1.crate) = 106063
+SHA256 (rust/crates/http-body-1.0.1.crate) = 1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184
+SIZE (rust/crates/http-body-1.0.1.crate) = 6125
+SHA256 (rust/crates/http-body-util-0.1.3.crate) = b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a
+SIZE (rust/crates/http-body-util-0.1.3.crate) = 16975
+SHA256 (rust/crates/httparse-1.10.1.crate) = 6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87
+SIZE (rust/crates/httparse-1.10.1.crate) = 45190
+SHA256 (rust/crates/humantime-2.2.0.crate) = 9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f
+SIZE (rust/crates/humantime-2.2.0.crate) = 20646
+SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80
+SIZE (rust/crates/hyper-1.6.0.crate) = 153923
+SHA256 (rust/crates/hyper-rustls-0.27.7.crate) = e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58
+SIZE (rust/crates/hyper-rustls-0.27.7.crate) = 35435
+SHA256 (rust/crates/hyper-util-0.1.16.crate) = 8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e
+SIZE (rust/crates/hyper-util-0.1.16.crate) = 101184
+SHA256 (rust/crates/iana-time-zone-0.1.63.crate) = b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8
+SIZE (rust/crates/iana-time-zone-0.1.63.crate) = 32919
+SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f
+SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185
+SHA256 (rust/crates/icu_collections-2.0.0.crate) = 200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47
+SIZE (rust/crates/icu_collections-2.0.0.crate) = 83033
+SHA256 (rust/crates/icu_locale_core-2.0.0.crate) = 0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a
+SIZE (rust/crates/icu_locale_core-2.0.0.crate) = 74430
+SHA256 (rust/crates/icu_normalizer-2.0.0.crate) = 436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979
+SIZE (rust/crates/icu_normalizer-2.0.0.crate) = 61543
+SHA256 (rust/crates/icu_normalizer_data-2.0.0.crate) = 00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3
+SIZE (rust/crates/icu_normalizer_data-2.0.0.crate) = 68101
+SHA256 (rust/crates/icu_properties-2.0.1.crate) = 016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b
+SIZE (rust/crates/icu_properties-2.0.1.crate) = 58165
+SHA256 (rust/crates/icu_properties_data-2.0.1.crate) = 298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632
+SIZE (rust/crates/icu_properties_data-2.0.1.crate) = 159735
+SHA256 (rust/crates/icu_provider-2.0.0.crate) = 03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af
+SIZE (rust/crates/icu_provider-2.0.0.crate) = 50966
+SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39
+SIZE (rust/crates/ident_case-1.0.1.crate) = 3492
+SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e
+SIZE (rust/crates/idna-1.0.3.crate) = 142515
+SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344
+SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389
+SHA256 (rust/crates/indexmap-2.10.0.crate) = fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661
+SIZE (rust/crates/indexmap-2.10.0.crate) = 95836
+SHA256 (rust/crates/inlinable_string-0.1.15.crate) = c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb
+SIZE (rust/crates/inlinable_string-0.1.15.crate) = 19290
+SHA256 (rust/crates/inout-0.1.4.crate) = 879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01
+SIZE (rust/crates/inout-0.1.4.crate) = 11280
+SHA256 (rust/crates/io-uring-0.7.9.crate) = d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4
+SIZE (rust/crates/io-uring-0.7.9.crate) = 99792
+SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130
+SIZE (rust/crates/ipnet-2.11.0.crate) = 29718
+SHA256 (rust/crates/iri-string-0.7.8.crate) = dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2
+SIZE (rust/crates/iri-string-0.7.8.crate) = 141493
+SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf
+SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492
+SHA256 (rust/crates/itertools-0.14.0.crate) = 2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285
+SIZE (rust/crates/itertools-0.14.0.crate) = 152715
+SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c
+SIZE (rust/crates/itoa-1.0.15.crate) = 11231
+SHA256 (rust/crates/jobserver-0.1.33.crate) = 38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a
+SIZE (rust/crates/jobserver-0.1.33.crate) = 29136
+SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f
+SIZE (rust/crates/js-sys-0.3.77.crate) = 55538
+SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
+SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
+SHA256 (rust/crates/libc-0.2.175.crate) = 6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543
+SIZE (rust/crates/libc-0.2.175.crate) = 788728
+SHA256 (rust/crates/libmimalloc-sys-0.1.43.crate) = bf88cd67e9de251c1781dbe2f641a1a3ad66eaae831b8a2c38fbdc5ddae16d4d
+SIZE (rust/crates/libmimalloc-sys-0.1.43.crate) = 226498
+SHA256 (rust/crates/libredox-0.1.9.crate) = 391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3
+SIZE (rust/crates/libredox-0.1.9.crate) = 7281
+SHA256 (rust/crates/linux-raw-sys-0.4.15.crate) = d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab
+SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898
+SHA256 (rust/crates/linux-raw-sys-0.9.4.crate) = cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12
+SIZE (rust/crates/linux-raw-sys-0.9.4.crate) = 2311088
+SHA256 (rust/crates/litemap-0.8.0.crate) = 241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956
+SIZE (rust/crates/litemap-0.8.0.crate) = 34344
+SHA256 (rust/crates/lock_api-0.4.13.crate) = 96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765
+SIZE (rust/crates/lock_api-0.4.13.crate) = 28565
+SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94
+SIZE (rust/crates/log-0.4.27.crate) = 48120
+SHA256 (rust/crates/lru-slab-0.1.2.crate) = 112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154
+SIZE (rust/crates/lru-slab-0.1.2.crate) = 9090
+SHA256 (rust/crates/lz4-1.28.1.crate) = a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4
+SIZE (rust/crates/lz4-1.28.1.crate) = 13585
+SHA256 (rust/crates/lz4-sys-1.11.1+lz4-1.10.0.crate) = 6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6
+SIZE (rust/crates/lz4-sys-1.11.1+lz4-1.10.0.crate) = 391317
+SHA256 (rust/crates/lz4_flex-0.11.5.crate) = 08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a
+SIZE (rust/crates/lz4_flex-0.11.5.crate) = 41977
+SHA256 (rust/crates/madsim-0.2.33.crate) = 9e1407eb233e5fe25bfb216a51b860882df237540374b7486eb38d4ab0753ec1
+SIZE (rust/crates/madsim-0.2.33.crate) = 75675
+SHA256 (rust/crates/madsim-macros-0.2.12.crate) = f3d248e97b1a48826a12c3828d921e8548e714394bf17274dd0a93910dc946e1
+SIZE (rust/crates/madsim-macros-0.2.12.crate) = 5314
+SHA256 (rust/crates/madsim-tokio-0.2.30.crate) = 7d3eb2acc57c82d21d699119b859e2df70a91dbdb84734885a1e72be83bdecb5
+SIZE (rust/crates/madsim-tokio-0.2.30.crate) = 3606
+SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558
+SIZE (rust/crates/matchers-0.1.0.crate) = 6948
+SHA256 (rust/crates/md-5-0.10.6.crate) = d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf
+SIZE (rust/crates/md-5-0.10.6.crate) = 16161
+SHA256 (rust/crates/memchr-2.7.5.crate) = 32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0
+SIZE (rust/crates/memchr-2.7.5.crate) = 97603
+SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a
+SIZE (rust/crates/memoffset-0.9.1.crate) = 9032
+SHA256 (rust/crates/mimalloc-0.1.47.crate) = b1791cbe101e95af5764f06f20f6760521f7158f69dbf9d6baf941ee1bf6bc40
+SIZE (rust/crates/mimalloc-0.1.47.crate) = 4594
+SHA256 (rust/crates/miniz_oxide-0.8.9.crate) = 1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316
+SIZE (rust/crates/miniz_oxide-0.8.9.crate) = 67132
+SHA256 (rust/crates/mio-1.0.4.crate) = 78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c
+SIZE (rust/crates/mio-1.0.4.crate) = 104212
+SHA256 (rust/crates/mixtrics-0.1.0.crate) = 749ed12bab176c8a42c13a679dd2de12876d5ad4abe7525548e31ae001a9ebbf
+SIZE (rust/crates/mixtrics-0.1.0.crate) = 198420
+SHA256 (rust/crates/mixtrics-0.2.0.crate) = adbcddf5a90b959eea97ae505e0391f5c6dd411fbf546d43b9c59ad1c3bd4391
+SIZE (rust/crates/mixtrics-0.2.0.crate) = 198628
+SHA256 (rust/crates/naive-timer-0.2.0.crate) = 034a0ad7deebf0c2abcf2435950a6666c3c15ea9d8fad0c0f48efa8a7f843fed
+SIZE (rust/crates/naive-timer-0.2.0.crate) = 4155
+SHA256 (rust/crates/nanorand-0.7.0.crate) = 6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3
+SIZE (rust/crates/nanorand-0.7.0.crate) = 18437
+SHA256 (rust/crates/nibble_vec-0.1.0.crate) = 77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43
+SIZE (rust/crates/nibble_vec-0.1.0.crate) = 11796
+SHA256 (rust/crates/no_std_io2-0.9.0.crate) = 3c2b9acd47481ab557a89a5665891be79e43cce8a29ad77aa9419d7be5a7c06a
+SIZE (rust/crates/no_std_io2-0.9.0.crate) = 35884
+SHA256 (rust/crates/nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84
+SIZE (rust/crates/nu-ansi-term-0.46.0.crate) = 24311
+SHA256 (rust/crates/num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9
+SIZE (rust/crates/num-conv-0.1.0.crate) = 7444
+SHA256 (rust/crates/num-derive-0.4.2.crate) = ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202
+SIZE (rust/crates/num-derive-0.4.2.crate) = 14709
+SHA256 (rust/crates/num-format-0.4.4.crate) = a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3
+SIZE (rust/crates/num-format-0.4.4.crate) = 61509
+SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841
+SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
+SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87
+SIZE (rust/crates/object-0.36.7.crate) = 329938
+SHA256 (rust/crates/object_store-0.12.3.crate) = efc4f07659e11cd45a341cd24d71e683e3be65d9ff1f8150061678fe60437496
+SIZE (rust/crates/object_store-0.12.3.crate) = 271241
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/once_cell_polyfill-1.70.1.crate) = a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad
+SIZE (rust/crates/once_cell_polyfill-1.70.1.crate) = 7510
+SHA256 (rust/crates/opaque-debug-0.3.1.crate) = c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381
+SIZE (rust/crates/opaque-debug-0.3.1.crate) = 7066
+SHA256 (rust/crates/openssl-probe-0.1.6.crate) = d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e
+SIZE (rust/crates/openssl-probe-0.1.6.crate) = 8128
+SHA256 (rust/crates/ordered_hash_map-0.4.0.crate) = ab0e5f22bf6dd04abd854a8874247813a8fa2c8c1260eba6fbb150270ce7c176
+SIZE (rust/crates/ordered_hash_map-0.4.0.crate) = 17219
+SHA256 (rust/crates/ouroboros-0.18.5.crate) = 1e0f050db9c44b97a94723127e6be766ac5c340c48f2c4bb3ffa11713744be59
+SIZE (rust/crates/ouroboros-0.18.5.crate) = 11678
+SHA256 (rust/crates/ouroboros_macro-0.18.5.crate) = 3c7028bdd3d43083f6d8d4d5187680d0d3560d54df4cc9d752005268b41e64d0
+SIZE (rust/crates/ouroboros_macro-0.18.5.crate) = 22021
+SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39
+SIZE (rust/crates/overload-0.1.1.crate) = 24439
+SHA256 (rust/crates/panic-message-0.3.0.crate) = 384e52fd8fbd4cbe3c317e8216260c21a0f9134de108cea8a4dd4e7e152c472d
+SIZE (rust/crates/panic-message-0.3.0.crate) = 7274
+SHA256 (rust/crates/parking-2.2.1.crate) = f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba
+SIZE (rust/crates/parking-2.2.1.crate) = 10685
+SHA256 (rust/crates/parking_lot-0.12.4.crate) = 70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13
+SIZE (rust/crates/parking_lot-0.12.4.crate) = 46779
+SHA256 (rust/crates/parking_lot_core-0.9.11.crate) = bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5
+SIZE (rust/crates/parking_lot_core-0.9.11.crate) = 34773
+SHA256 (rust/crates/password-hash-0.5.0.crate) = 346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166
+SIZE (rust/crates/password-hash-0.5.0.crate) = 26884
+SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a
+SIZE (rust/crates/paste-1.0.15.crate) = 18374
+SHA256 (rust/crates/pear-0.2.9.crate) = bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467
+SIZE (rust/crates/pear-0.2.9.crate) = 19083
+SHA256 (rust/crates/pear_codegen-0.2.9.crate) = 4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147
+SIZE (rust/crates/pear_codegen-0.2.9.crate) = 7250
+SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
+SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
+SHA256 (rust/crates/pin-project-1.1.10.crate) = 677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a
+SIZE (rust/crates/pin-project-1.1.10.crate) = 56348
+SHA256 (rust/crates/pin-project-internal-1.1.10.crate) = 6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861
+SIZE (rust/crates/pin-project-internal-1.1.10.crate) = 29162
+SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b
+SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504
+SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
+SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
+SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c
+SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370
+SHA256 (rust/crates/poly1305-0.8.0.crate) = 8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf
+SIZE (rust/crates/poly1305-0.8.0.crate) = 32633
+SHA256 (rust/crates/potential_utf-0.1.2.crate) = e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585
+SIZE (rust/crates/potential_utf-0.1.2.crate) = 9613
+SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391
+SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165
+SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9
+SIZE (rust/crates/ppv-lite86-0.2.21.crate) = 22522
+SHA256 (rust/crates/proc-macro-crate-3.3.0.crate) = edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35
+SIZE (rust/crates/proc-macro-crate-3.3.0.crate) = 12432
+SHA256 (rust/crates/proc-macro2-1.0.97.crate) = d61789d7719defeb74ea5fe81f2fdfdbd28a803847077cecce2ff14e1472f6f1
+SIZE (rust/crates/proc-macro2-1.0.97.crate) = 52865
+SHA256 (rust/crates/proc-macro2-diagnostics-0.10.1.crate) = af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8
+SIZE (rust/crates/proc-macro2-diagnostics-0.10.1.crate) = 12219
+SHA256 (rust/crates/quick-xml-0.38.1.crate) = 9845d9dccf565065824e69f9f235fafba1587031eda353c1f1561cd6a6be78f4
+SIZE (rust/crates/quick-xml-0.38.1.crate) = 201181
+SHA256 (rust/crates/quinn-0.11.8.crate) = 626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8
+SIZE (rust/crates/quinn-0.11.8.crate) = 79949
+SHA256 (rust/crates/quinn-proto-0.11.12.crate) = 49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e
+SIZE (rust/crates/quinn-proto-0.11.12.crate) = 235821
+SHA256 (rust/crates/quinn-udp-0.5.13.crate) = fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970
+SIZE (rust/crates/quinn-udp-0.5.13.crate) = 32621
+SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d
+SIZE (rust/crates/quote-1.0.40.crate) = 31063
+SHA256 (rust/crates/r-efi-5.3.0.crate) = 69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f
+SIZE (rust/crates/r-efi-5.3.0.crate) = 64532
+SHA256 (rust/crates/radium-0.7.0.crate) = dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09
+SIZE (rust/crates/radium-0.7.0.crate) = 10906
+SHA256 (rust/crates/radix_trie-0.2.1.crate) = c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd
+SIZE (rust/crates/radix_trie-0.2.1.crate) = 251366
+SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
+SIZE (rust/crates/rand-0.8.5.crate) = 87113
+SHA256 (rust/crates/rand-0.9.2.crate) = 6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1
+SIZE (rust/crates/rand-0.9.2.crate) = 99930
+SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
+SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
+SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb
+SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258
+SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
+SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
+SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38
+SIZE (rust/crates/rand_core-0.9.3.crate) = 24543
+SHA256 (rust/crates/rand_xorshift-0.4.0.crate) = 513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a
+SIZE (rust/crates/rand_xorshift-0.4.0.crate) = 10262
+SHA256 (rust/crates/rand_xoshiro-0.6.0.crate) = 6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa
+SIZE (rust/crates/rand_xoshiro-0.6.0.crate) = 17125
+SHA256 (rust/crates/rand_xoshiro-0.7.0.crate) = f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41
+SIZE (rust/crates/rand_xoshiro-0.7.0.crate) = 18189
+SHA256 (rust/crates/redox_syscall-0.5.17.crate) = 5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77
+SIZE (rust/crates/redox_syscall-0.5.17.crate) = 30002
+SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191
+SIZE (rust/crates/regex-1.11.1.crate) = 254170
+SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132
+SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533
+SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908
+SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525
+SHA256 (rust/crates/regex-syntax-0.6.29.crate) = f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1
+SIZE (rust/crates/regex-syntax-0.6.29.crate) = 299752
+SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c
+SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541
+SHA256 (rust/crates/reqwest-0.12.23.crate) = d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb
+SIZE (rust/crates/reqwest-0.12.23.crate) = 161307
+SHA256 (rust/crates/ring-0.17.14.crate) = a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7
+SIZE (rust/crates/ring-0.17.14.crate) = 1502610
+SHA256 (rust/crates/rust_decimal-1.37.2.crate) = b203a6425500a03e0919c42d3c47caca51e79f1132046626d2c8871c5092035d
+SIZE (rust/crates/rust_decimal-1.37.2.crate) = 152312
+SHA256 (rust/crates/rustc-demangle-0.1.26.crate) = 56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace
+SIZE (rust/crates/rustc-demangle-0.1.26.crate) = 30340
+SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d
+SIZE (rust/crates/rustc-hash-2.1.1.crate) = 14154
+SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92
+SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245
+SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154
+SIZE (rust/crates/rustix-0.38.44.crate) = 379347
+SHA256 (rust/crates/rustix-1.0.8.crate) = 11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8
+SIZE (rust/crates/rustix-1.0.8.crate) = 416688
+SHA256 (rust/crates/rustls-0.23.31.crate) = c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc
+SIZE (rust/crates/rustls-0.23.31.crate) = 371259
+SHA256 (rust/crates/rustls-native-certs-0.8.1.crate) = 7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3
+SIZE (rust/crates/rustls-native-certs-0.8.1.crate) = 31129
+SHA256 (rust/crates/rustls-pemfile-2.2.0.crate) = dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50
+SIZE (rust/crates/rustls-pemfile-2.2.0.crate) = 25849
+SHA256 (rust/crates/rustls-pki-types-1.12.0.crate) = 229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79
+SIZE (rust/crates/rustls-pki-types-1.12.0.crate) = 64740
+SHA256 (rust/crates/rustls-webpki-0.103.4.crate) = 0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc
+SIZE (rust/crates/rustls-webpki-0.103.4.crate) = 84241
+SHA256 (rust/crates/rustversion-1.0.22.crate) = b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d
+SIZE (rust/crates/rustversion-1.0.22.crate) = 21096
+SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
+SIZE (rust/crates/ryu-1.0.20.crate) = 48738
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/schannel-0.1.27.crate) = 1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d
+SIZE (rust/crates/schannel-0.1.27.crate) = 42772
+SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
+SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
+SHA256 (rust/crates/security-framework-3.3.0.crate) = 80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c
+SIZE (rust/crates/security-framework-3.3.0.crate) = 86425
+SHA256 (rust/crates/security-framework-sys-2.14.0.crate) = 49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32
+SIZE (rust/crates/security-framework-sys-2.14.0.crate) = 20537
+SHA256 (rust/crates/semver-1.0.26.crate) = 56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0
+SIZE (rust/crates/semver-1.0.26.crate) = 31303
+SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6
+SIZE (rust/crates/serde-1.0.219.crate) = 78983
+SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00
+SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798
+SHA256 (rust/crates/serde_json-1.0.142.crate) = 030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7
+SIZE (rust/crates/serde_json-1.0.142.crate) = 155363
+SHA256 (rust/crates/serde_spanned-0.6.9.crate) = bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3
+SIZE (rust/crates/serde_spanned-0.6.9.crate) = 10210
+SHA256 (rust/crates/serde_spanned-1.0.0.crate) = 40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83
+SIZE (rust/crates/serde_spanned-1.0.0.crate) = 10956
+SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd
+SIZE (rust/crates/serde_urlencoded-0.7.1.crate) = 12822
+SHA256 (rust/crates/serde_yaml-0.9.34+deprecated.crate) = 6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47
+SIZE (rust/crates/serde_yaml-0.9.34+deprecated.crate) = 65290
+SHA256 (rust/crates/sha2-0.10.9.crate) = a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283
+SIZE (rust/crates/sha2-0.10.9.crate) = 29271
+SHA256 (rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6
+SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227
+SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
+SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/signal-hook-registry-1.4.6.crate) = b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b
+SIZE (rust/crates/signal-hook-registry-1.4.6.crate) = 19277
+SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d
+SIZE (rust/crates/siphasher-1.0.1.crate) = 10351
+SHA256 (rust/crates/slab-0.4.11.crate) = 7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589
+SIZE (rust/crates/slab-0.4.11.crate) = 18549
+SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03
+SIZE (rust/crates/smallvec-1.15.1.crate) = 38116
+SHA256 (rust/crates/socket2-0.5.10.crate) = e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678
+SIZE (rust/crates/socket2-0.5.10.crate) = 58169
+SHA256 (rust/crates/socket2-0.6.0.crate) = 233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807
+SIZE (rust/crates/socket2-0.6.0.crate) = 57974
+SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67
+SIZE (rust/crates/spin-0.9.8.crate) = 38958
+SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3
+SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054
+SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
+SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480
+SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
+SIZE (rust/crates/strsim-0.10.0.crate) = 11355
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292
+SIZE (rust/crates/subtle-2.6.1.crate) = 14562
+SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
+SIZE (rust/crates/syn-1.0.109.crate) = 237611
+SHA256 (rust/crates/syn-2.0.105.crate) = 7bc3fcb250e53458e712715cf74285c1f889686520d79294a9ef3bd7aa1fc619
+SIZE (rust/crates/syn-2.0.105.crate) = 299882
+SHA256 (rust/crates/sync_wrapper-1.0.2.crate) = 0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263
+SIZE (rust/crates/sync_wrapper-1.0.2.crate) = 6958
+SHA256 (rust/crates/synstructure-0.13.2.crate) = 728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2
+SIZE (rust/crates/synstructure-0.13.2.crate) = 18950
+SHA256 (rust/crates/tap-1.0.1.crate) = 55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369
+SIZE (rust/crates/tap-1.0.1.crate) = 11316
+SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
+SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
+SHA256 (rust/crates/thiserror-2.0.14.crate) = 0b0949c3a6c842cbde3f1686d6eea5a010516deb7085f79db747562d4102f41e
+SIZE (rust/crates/thiserror-2.0.14.crate) = 29021
+SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
+SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
+SHA256 (rust/crates/thiserror-impl-2.0.14.crate) = cc5b44b4ab9c2fdd0e0512e6bece8388e214c0749f5862b114cc5b7a25daf227
+SIZE (rust/crates/thiserror-impl-2.0.14.crate) = 21219
+SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185
+SIZE (rust/crates/thread_local-1.1.9.crate) = 19315
+SHA256 (rust/crates/tikv-jemalloc-sys-0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7.crate) = cd3c60906412afa9c2b5b5a48ca6a5abe5736aec9eb48ad05037a677e52e4e2d
+SIZE (rust/crates/tikv-jemalloc-sys-0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7.crate) = 897133
+SHA256 (rust/crates/tikv-jemallocator-0.6.0.crate) = 4cec5ff18518d81584f477e9bfdf957f5bb0979b0bac3af4ca30b5b3ae2d2865
+SIZE (rust/crates/tikv-jemallocator-0.6.0.crate) = 13700
+SHA256 (rust/crates/time-0.3.41.crate) = 8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40
+SIZE (rust/crates/time-0.3.41.crate) = 138369
+SHA256 (rust/crates/time-core-0.1.4.crate) = c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c
+SIZE (rust/crates/time-core-0.1.4.crate) = 8422
+SHA256 (rust/crates/tinystr-0.8.1.crate) = 5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b
+SIZE (rust/crates/tinystr-0.8.1.crate) = 23333
+SHA256 (rust/crates/tinyvec-1.9.0.crate) = 09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71
+SIZE (rust/crates/tinyvec-1.9.0.crate) = 54137
+SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
+SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
+SHA256 (rust/crates/tokio-1.47.1.crate) = 89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038
+SIZE (rust/crates/tokio-1.47.1.crate) = 829790
+SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8
+SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617
+SHA256 (rust/crates/tokio-rustls-0.26.2.crate) = 8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b
+SIZE (rust/crates/tokio-rustls-0.26.2.crate) = 31655
+SHA256 (rust/crates/tokio-util-0.7.16.crate) = 14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5
+SIZE (rust/crates/tokio-util-0.7.16.crate) = 127775
+SHA256 (rust/crates/toml-0.8.23.crate) = dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362
+SIZE (rust/crates/toml-0.8.23.crate) = 36050
+SHA256 (rust/crates/toml-0.9.5.crate) = 75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8
+SIZE (rust/crates/toml-0.9.5.crate) = 56833
+SHA256 (rust/crates/toml_datetime-0.6.11.crate) = 22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c
+SIZE (rust/crates/toml_datetime-0.6.11.crate) = 16125
+SHA256 (rust/crates/toml_datetime-0.7.0.crate) = bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3
+SIZE (rust/crates/toml_datetime-0.7.0.crate) = 18108
+SHA256 (rust/crates/toml_edit-0.22.27.crate) = 41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a
+SIZE (rust/crates/toml_edit-0.22.27.crate) = 78602
+SHA256 (rust/crates/toml_parser-1.0.2.crate) = b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10
+SIZE (rust/crates/toml_parser-1.0.2.crate) = 35241
+SHA256 (rust/crates/toml_write-0.1.2.crate) = 5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801
+SIZE (rust/crates/toml_write-0.1.2.crate) = 15660
+SHA256 (rust/crates/toml_writer-1.0.2.crate) = fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64
+SIZE (rust/crates/toml_writer-1.0.2.crate) = 16988
+SHA256 (rust/crates/tower-0.5.2.crate) = d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9
+SIZE (rust/crates/tower-0.5.2.crate) = 109417
+SHA256 (rust/crates/tower-http-0.6.6.crate) = adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2
+SIZE (rust/crates/tower-http-0.6.6.crate) = 133515
+SHA256 (rust/crates/tower-layer-0.3.3.crate) = 121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e
+SIZE (rust/crates/tower-layer-0.3.3.crate) = 6180
+SHA256 (rust/crates/tower-service-0.3.3.crate) = 8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3
+SIZE (rust/crates/tower-service-0.3.3.crate) = 6950
+SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0
+SIZE (rust/crates/tracing-0.1.41.crate) = 82448
+SHA256 (rust/crates/tracing-attributes-0.1.30.crate) = 81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903
+SIZE (rust/crates/tracing-attributes-0.1.30.crate) = 39142
+SHA256 (rust/crates/tracing-core-0.1.34.crate) = b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678
+SIZE (rust/crates/tracing-core-0.1.34.crate) = 63760
+SHA256 (rust/crates/tracing-log-0.2.0.crate) = ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3
+SIZE (rust/crates/tracing-log-0.2.0.crate) = 17561
+SHA256 (rust/crates/tracing-subscriber-0.3.19.crate) = e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008
+SIZE (rust/crates/tracing-subscriber-0.3.19.crate) = 198345
+SHA256 (rust/crates/try-lock-0.2.5.crate) = e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b
+SIZE (rust/crates/try-lock-0.2.5.crate) = 4314
+SHA256 (rust/crates/twox-hash-2.1.1.crate) = 8b907da542cbced5261bd3256de1b3a1bf340a3d37f93425a07362a1d687de56
+SIZE (rust/crates/twox-hash-2.1.1.crate) = 35627
+SHA256 (rust/crates/typenum-1.18.0.crate) = 1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f
+SIZE (rust/crates/typenum-1.18.0.crate) = 74871
+SHA256 (rust/crates/ulid-1.2.1.crate) = 470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe
+SIZE (rust/crates/ulid-1.2.1.crate) = 17727
+SHA256 (rust/crates/uncased-0.9.10.crate) = e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697
+SIZE (rust/crates/uncased-0.9.10.crate) = 10872
+SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512
+SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743
+SHA256 (rust/crates/unicode-segmentation-1.12.0.crate) = f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493
+SIZE (rust/crates/unicode-segmentation-1.12.0.crate) = 106323
+SHA256 (rust/crates/unicode-width-0.2.1.crate) = 4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c
+SIZE (rust/crates/unicode-width-0.2.1.crate) = 279344
+SHA256 (rust/crates/universal-hash-0.5.1.crate) = fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea
+SIZE (rust/crates/universal-hash-0.5.1.crate) = 9146
+SHA256 (rust/crates/unsafe-libyaml-0.2.11.crate) = 673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861
+SIZE (rust/crates/unsafe-libyaml-0.2.11.crate) = 62101
+SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1
+SIZE (rust/crates/untrusted-0.9.0.crate) = 14447
+SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60
+SIZE (rust/crates/url-2.5.4.crate) = 81097
+SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be
+SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437
+SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
+SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
+SHA256 (rust/crates/uuid-1.18.0.crate) = f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be
+SIZE (rust/crates/uuid-1.18.0.crate) = 59782
+SHA256 (rust/crates/valuable-0.1.1.crate) = ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65
+SIZE (rust/crates/valuable-0.1.1.crate) = 28679
+SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
+SIZE (rust/crates/version_check-0.9.5.crate) = 15554
+SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b
+SIZE (rust/crates/walkdir-2.5.0.crate) = 23951
+SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e
+SIZE (rust/crates/want-0.3.1.crate) = 6398
+SHA256 (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b
+SIZE (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477
+SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3
+SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921
+SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5
+SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6
+SIZE (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 32111
+SHA256 (rust/crates/wasm-bindgen-futures-0.4.50.crate) = 555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61
+SIZE (rust/crates/wasm-bindgen-futures-0.4.50.crate) = 16181
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407
+SIZE (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 9663
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 26243
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d
+SIZE (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 8570
+SHA256 (rust/crates/wasm-streams-0.4.2.crate) = 15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65
+SIZE (rust/crates/wasm-streams-0.4.2.crate) = 36773
+SHA256 (rust/crates/web-sys-0.3.77.crate) = 33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2
+SIZE (rust/crates/web-sys-0.3.77.crate) = 638246
+SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb
+SIZE (rust/crates/web-time-1.1.0.crate) = 18026
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-util-0.1.9.crate) = cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb
+SIZE (rust/crates/winapi-util-0.1.9.crate) = 12464
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (rust/crates/windows-core-0.61.2.crate) = c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3
+SIZE (rust/crates/windows-core-0.61.2.crate) = 36771
+SHA256 (rust/crates/windows-implement-0.60.0.crate) = a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836
+SIZE (rust/crates/windows-implement-0.60.0.crate) = 15073
+SHA256 (rust/crates/windows-interface-0.59.1.crate) = bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8
+SIZE (rust/crates/windows-interface-0.59.1.crate) = 11735
+SHA256 (rust/crates/windows-link-0.1.3.crate) = 5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a
+SIZE (rust/crates/windows-link-0.1.3.crate) = 6154
+SHA256 (rust/crates/windows-result-0.3.4.crate) = 56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6
+SIZE (rust/crates/windows-result-0.3.4.crate) = 13418
+SHA256 (rust/crates/windows-strings-0.4.2.crate) = 56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57
+SIZE (rust/crates/windows-strings-0.4.2.crate) = 13983
+SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
+SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
+SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b
+SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
+SHA256 (rust/crates/windows-sys-0.60.2.crate) = f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb
+SIZE (rust/crates/windows-sys-0.60.2.crate) = 2518479
+SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
+SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
+SHA256 (rust/crates/windows-targets-0.53.3.crate) = d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91
+SIZE (rust/crates/windows-targets-0.53.3.crate) = 7099
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764
+SIZE (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 782443
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
+SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
+SHA256 (rust/crates/windows_aarch64_msvc-0.53.0.crate) = c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c
+SIZE (rust/crates/windows_aarch64_msvc-0.53.0.crate) = 834446
+SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
+SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnu-0.53.0.crate) = c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3
+SIZE (rust/crates/windows_i686_gnu-0.53.0.crate) = 936973
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
+SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
+SHA256 (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11
+SIZE (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 854056
+SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
+SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
+SHA256 (rust/crates/windows_i686_msvc-0.53.0.crate) = 581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d
+SIZE (rust/crates/windows_i686_msvc-0.53.0.crate) = 903450
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
+SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
+SHA256 (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba
+SIZE (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 902585
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57
+SIZE (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 782434
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
+SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
+SHA256 (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486
+SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400
+SHA256 (rust/crates/winnow-0.6.26.crate) = 1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28
+SIZE (rust/crates/winnow-0.6.26.crate) = 167349
+SHA256 (rust/crates/winnow-0.7.12.crate) = f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95
+SIZE (rust/crates/winnow-0.7.12.crate) = 174403
+SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1
+SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241
+SHA256 (rust/crates/writeable-0.6.1.crate) = ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb
+SIZE (rust/crates/writeable-0.6.1.crate) = 24068
+SHA256 (rust/crates/wyz-0.5.1.crate) = 05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed
+SIZE (rust/crates/wyz-0.5.1.crate) = 18790
+SHA256 (rust/crates/yansi-1.0.1.crate) = cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049
+SIZE (rust/crates/yansi-1.0.1.crate) = 75497
+SHA256 (rust/crates/yoke-0.8.0.crate) = 5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc
+SIZE (rust/crates/yoke-0.8.0.crate) = 28726
+SHA256 (rust/crates/yoke-derive-0.8.0.crate) = 38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6
+SIZE (rust/crates/yoke-derive-0.8.0.crate) = 7521
+SHA256 (rust/crates/zerocopy-0.8.26.crate) = 1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f
+SIZE (rust/crates/zerocopy-0.8.26.crate) = 249223
+SHA256 (rust/crates/zerocopy-derive-0.8.26.crate) = 9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181
+SIZE (rust/crates/zerocopy-derive-0.8.26.crate) = 88080
+SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5
+SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669
+SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502
+SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305
+SHA256 (rust/crates/zerofs_nfsserve-0.11.0.crate) = e071aa984407c81992148c07437f53f99db211bbf295438821d02f8f15ed5ebe
+SIZE (rust/crates/zerofs_nfsserve-0.11.0.crate) = 43939
+SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde
+SIZE (rust/crates/zeroize-1.8.1.crate) = 20029
+SHA256 (rust/crates/zerotrie-0.2.2.crate) = 36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595
+SIZE (rust/crates/zerotrie-0.2.2.crate) = 74423
+SHA256 (rust/crates/zerovec-0.11.4.crate) = e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b
+SIZE (rust/crates/zerovec-0.11.4.crate) = 125080
+SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f
+SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294
+SHA256 (rust/crates/zstd-0.13.3.crate) = e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a
+SIZE (rust/crates/zstd-0.13.3.crate) = 30514
+SHA256 (rust/crates/zstd-safe-7.2.4.crate) = 8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d
+SIZE (rust/crates/zstd-safe-7.2.4.crate) = 29350
+SHA256 (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237
+SIZE (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = 774847
+SHA256 (slatedb-slatedb-6e138682013a192bc55e8a2b925ad65d0599a4ef_GH0.tar.gz) = 376c659aae7d59beefcc87b56e8037e5c3c1aaa57b31d5ac0d7c1ae62f2d7c02
+SIZE (slatedb-slatedb-6e138682013a192bc55e8a2b925ad65d0599a4ef_GH0.tar.gz) = 842012
+SHA256 (Barre-ZeroFS-v0.10.5_GH0.tar.gz) = d4f94f0e732793f2c7adfd181d6cca0f70833a5e6debc245e9c96743f85777ee
+SIZE (Barre-ZeroFS-v0.10.5_GH0.tar.gz) = 453664
diff --git a/filesystems/zerofs/pkg-descr b/filesystems/zerofs/pkg-descr
new file mode 100644
index 000000000000..3a51ab762a6e
--- /dev/null
+++ b/filesystems/zerofs/pkg-descr
@@ -0,0 +1,4 @@
+ZeroFS makes S3 storage feel like a real filesystem. Built on SlateDB, it
+provides file-level access via NFS and 9P and block-level access via NBD. Fast
+enough to compile code on, with clients already built into your OS. No FUSE
+drivers, no kernel modules, just mount and go.
diff --git a/games/pysolfc/Makefile b/games/pysolfc/Makefile
index b95f3964dfc7..f4770000507e 100644
--- a/games/pysolfc/Makefile
+++ b/games/pysolfc/Makefile
@@ -1,5 +1,5 @@
PORTNAME= pysolfc
-DISTVERSION= 3.4.0
+DISTVERSION= 3.4.1
CATEGORIES= games python
MASTER_SITES= SF/${PORTNAME}/PySolFC/${PYSOLFCDIR} \
SF/${PORTNAME}/PySolFC-Cardsets/minimal/:cardsets \
diff --git a/games/pysolfc/distinfo b/games/pysolfc/distinfo
index f34f1b9f08d2..6d4d722e4b46 100644
--- a/games/pysolfc/distinfo
+++ b/games/pysolfc/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1749974967
-SHA256 (pysolfc/PySolFC-3.4.0.tar.xz) = 677a79c29c228cd70ffc028615f2c05971e29638ca37cfa4c17a31b2ba477a59
-SIZE (pysolfc/PySolFC-3.4.0.tar.xz) = 32914516
+TIMESTAMP = 1756454122
+SHA256 (pysolfc/PySolFC-3.4.1.tar.xz) = 3b9bfb91f8f75b7cb9cc836424606975c5a0868c7b50c6917e51367a7c82e6cb
+SIZE (pysolfc/PySolFC-3.4.1.tar.xz) = 32915536
SHA256 (pysolfc/PySolFC-Cardsets--Minimal-3.1.0.tar.xz) = f894b667936382cf721105a08b6cc41b8b87aac8386117868f749f32f8e67a9d
SIZE (pysolfc/PySolFC-Cardsets--Minimal-3.1.0.tar.xz) = 25083116
SHA256 (pysolfc/pysol-music-4.50.tar.xz) = 3cfade86db88c1d97589c50441808ee082e68256be788012503818c42728783d
diff --git a/graphics/colmap/Makefile b/graphics/colmap/Makefile
index bf5d67418a56..eb5f3a155473 100644
--- a/graphics/colmap/Makefile
+++ b/graphics/colmap/Makefile
@@ -1,5 +1,5 @@
PORTNAME= colmap
-DISTVERSION= 3.12.4
+DISTVERSION= 3.12.5
CATEGORIES= graphics
MAINTAINER= fuz@FreeBSD.org
diff --git a/graphics/colmap/distinfo b/graphics/colmap/distinfo
index 5b5eeb3ba7a4..08882ff634f1 100644
--- a/graphics/colmap/distinfo
+++ b/graphics/colmap/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1754391753
-SHA256 (colmap-colmap-3.12.4_GH0.tar.gz) = 320cb5a411cd0aa713adc05e208ec34067638e776260efd8098271342d408997
-SIZE (colmap-colmap-3.12.4_GH0.tar.gz) = 3580471
+TIMESTAMP = 1756392724
+SHA256 (colmap-colmap-3.12.5_GH0.tar.gz) = 93dfb220cce24d988506bbb1d27d4278eacfd4e372df61d380559d414c1bd9e4
+SIZE (colmap-colmap-3.12.5_GH0.tar.gz) = 3584697
diff --git a/graphics/colmap/files/patch-cmake_FindDependencies.cmake b/graphics/colmap/files/patch-cmake_FindDependencies.cmake
deleted file mode 100644
index cdb62cbe1cf7..000000000000
--- a/graphics/colmap/files/patch-cmake_FindDependencies.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
---- cmake/FindDependencies.cmake.orig 2025-07-31 15:20:30 UTC
-+++ cmake/FindDependencies.cmake
-@@ -21,8 +21,7 @@ find_package(Boost ${COLMAP_FIND_TYPE} COMPONENTS
-
- find_package(Boost ${COLMAP_FIND_TYPE} COMPONENTS
- graph
-- program_options
-- system)
-+ program_options)
-
- find_package(Eigen3 ${COLMAP_FIND_TYPE})
-
-@@ -247,4 +246,4 @@ if(OPENGL_ENABLED OR CUDA_ENABLED)
- list(APPEND COLMAP_COMPILE_DEFINITIONS COLMAP_GPU_ENABLED)
- message(STATUS "Enabling GPU support (OpenGL: ${OPENGL_ENABLED}, CUDA: ${CUDA_ENABLED})")
- set(GPU_ENABLED ON)
--endif()
-\ No newline at end of file
-+endif()
diff --git a/graphics/drawio/Makefile b/graphics/drawio/Makefile
index 16ef6e1a6436..0ee5000d4f5b 100644
--- a/graphics/drawio/Makefile
+++ b/graphics/drawio/Makefile
@@ -1,6 +1,6 @@
PORTNAME= drawio
PORTVERSION= 28.0.6
-PORTREVISION= 3
+PORTREVISION= 4
DISTVERSIONPREFIX= x86_64-
CATEGORIES= graphics
MASTER_SITES= https://github.com/jgraph/drawio-desktop/releases/download/v${PORTVERSION}/
diff --git a/graphics/gmic-qt/Makefile b/graphics/gmic-qt/Makefile
index 3a9336a73ee9..7666ee5b307b 100644
--- a/graphics/gmic-qt/Makefile
+++ b/graphics/gmic-qt/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gmic-qt
DISTVERSIONPREFIX= v.
-DISTVERSION= 3.6.0
+DISTVERSION= 3.6.1
PORTEPOCH= 1
CATEGORIES= graphics kde
MASTER_SITES= https://github.com/GreycLab/gmic/releases/download/${DISTVERSIONFULL}/ \
diff --git a/graphics/gmic-qt/distinfo b/graphics/gmic-qt/distinfo
index b03b72628cd1..0d3e0f6c9226 100644
--- a/graphics/gmic-qt/distinfo
+++ b/graphics/gmic-qt/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1756183076
-SHA256 (KDE/gmic-qt/gmic_3.6.0.tar.gz) = 64c32e1a58e9d7de3f84220183bab06423bd9823afacee9a9c7b23768b8edc33
-SIZE (KDE/gmic-qt/gmic_3.6.0.tar.gz) = 19486087
+TIMESTAMP = 1756404089
+SHA256 (KDE/gmic-qt/gmic_3.6.1.tar.gz) = 4cf36b7af48013651e40e2c17be646b748cffdd400a90562588a35af731f6c9e
+SIZE (KDE/gmic-qt/gmic_3.6.1.tar.gz) = 19486111
diff --git a/graphics/mupdf/Makefile b/graphics/mupdf/Makefile
index 4dfeb91496f5..348a7b7e7b1d 100644
--- a/graphics/mupdf/Makefile
+++ b/graphics/mupdf/Makefile
@@ -1,5 +1,5 @@
PORTNAME= mupdf
-DISTVERSION= 1.26.5
+DISTVERSION= 1.26.7
DISTVERSIONSUFFIX= -source
PORTEPOCH= 1
CATEGORIES= graphics
diff --git a/graphics/mupdf/distinfo b/graphics/mupdf/distinfo
index e3da45cbc77e..6de8172eb793 100644
--- a/graphics/mupdf/distinfo
+++ b/graphics/mupdf/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755063764
-SHA256 (mupdf-1.26.5-source.tar.gz) = a52daf7b2f41c5dc94d4691cd1e7cae25fc488556e614d8c3c4491d327473c40
-SIZE (mupdf-1.26.5-source.tar.gz) = 64529860
+TIMESTAMP = 1756458715
+SHA256 (mupdf-1.26.7-source.tar.gz) = 52014fcecac48ae3ead947eb90572ff7da9acf9550711675872944e8ef8c4966
+SIZE (mupdf-1.26.7-source.tar.gz) = 64529748
diff --git a/graphics/zathura-pdf-mupdf/Makefile b/graphics/zathura-pdf-mupdf/Makefile
index d939ae161b42..946c464b660d 100644
--- a/graphics/zathura-pdf-mupdf/Makefile
+++ b/graphics/zathura-pdf-mupdf/Makefile
@@ -1,6 +1,6 @@
PORTNAME= zathura-pdf-mupdf
DISTVERSION= 0.4.4
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= graphics
MASTER_SITES= https://pwmt.org/projects/zathura-pdf-mupdf/download/
diff --git a/graphics/zathura/Makefile b/graphics/zathura/Makefile
index 619f39bd68a4..058ced747a95 100644
--- a/graphics/zathura/Makefile
+++ b/graphics/zathura/Makefile
@@ -1,5 +1,5 @@
PORTNAME= zathura
-DISTVERSION= 0.5.11
+DISTVERSION= 0.5.12
CATEGORIES= graphics print
MASTER_SITES= https://pwmt.org/projects/zathura/download/
@@ -13,7 +13,8 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libgirara-gtk3.so:x11-toolkits/girara \
libjson-glib-1.0.so:devel/json-glib
-USES= compiler:c17 gettext gnome meson ninja pkgconfig sqlite tar:xz
+USES= compiler:c17 gettext-runtime gettext-tools gnome meson ninja \
+ pkgconfig sqlite tar:xz
USE_GNOME= glib20 gtk30
MESON_ARGS= -Dlandlock=disabled \
-Dseccomp=disabled \
@@ -26,15 +27,15 @@ OPTIONS_SUB= yes
SYNCTEX_DESC= Direct and reverse synchronisation support with SyncTeX
MANPAGES_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytz>0:devel/py-pytz@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}sphinx>=1.2.2,1:textproc/py-sphinx@${PY_FLAVOR}
-MANPAGES_USES= python
+ ${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx@${PY_FLAVOR}
+MANPAGES_USES= python:build
MANPAGES_MESON_ENABLED= manpages
-SYNCTEX_BUILD_DEPENDS= tex-synctex>=1.19.0:devel/tex-synctex
+SYNCTEX_BUILD_DEPENDS= tex-synctex>0:devel/tex-synctex
SYNCTEX_RUN_DEPENDS= ${SYNCTEX_BUILD_DEPENDS}
SYNCTEX_MESON_ENABLED= synctex
-post-patch:
+post-patch-MANPAGES-on:
@${REINPLACE_CMD} -e 's|^/etc|${PREFIX}/etc|' ${WRKSRC}/doc/man/zathurarc.5.rst
.include <bsd.port.mk>
diff --git a/graphics/zathura/distinfo b/graphics/zathura/distinfo
index 212920c6447d..cad74c287206 100644
--- a/graphics/zathura/distinfo
+++ b/graphics/zathura/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1734525804
-SHA256 (zathura-0.5.11.tar.xz) = 54458a9998af0fb8faef2e934a81127bbe4b790c86dcd2c8b8f32365f3d1b53c
-SIZE (zathura-0.5.11.tar.xz) = 167820
+TIMESTAMP = 1751616442
+SHA256 (zathura-0.5.12.tar.xz) = e84870fbf96b766b8224a3f3a6ce7ccfa36efa3b6919cc8a2fbf765ea4dfe476
+SIZE (zathura-0.5.12.tar.xz) = 176368
diff --git a/graphics/zathura/pkg-plist b/graphics/zathura/pkg-plist
index 71d20bc03aad..73742d7712cf 100644
--- a/graphics/zathura/pkg-plist
+++ b/graphics/zathura/pkg-plist
@@ -30,7 +30,6 @@ share/locale/es_CL/LC_MESSAGES/zathura.mo
share/locale/et/LC_MESSAGES/zathura.mo
share/locale/fr/LC_MESSAGES/zathura.mo
share/locale/he/LC_MESSAGES/zathura.mo
-share/locale/hr/LC_MESSAGES/zathura.mo
share/locale/id_ID/LC_MESSAGES/zathura.mo
share/locale/it/LC_MESSAGES/zathura.mo
share/locale/lt/LC_MESSAGES/zathura.mo
diff --git a/irc/py-sopel/Makefile b/irc/py-sopel/Makefile
index 4b4e1ba06602..8e33cfd7f015 100644
--- a/irc/py-sopel/Makefile
+++ b/irc/py-sopel/Makefile
@@ -1,5 +1,5 @@
PORTNAME= sopel
-DISTVERSION= 8.0.3
+DISTVERSION= 8.0.4
CATEGORIES= irc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/irc/py-sopel/distinfo b/irc/py-sopel/distinfo
index 3d8440494a6a..0d15ee158f3b 100644
--- a/irc/py-sopel/distinfo
+++ b/irc/py-sopel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1754007890
-SHA256 (sopel-8.0.3.tar.gz) = 961a0481f61aa9a65fadf560c874b097f6a582a8e7bc073fa6754fc0af187427
-SIZE (sopel-8.0.3.tar.gz) = 250478
+TIMESTAMP = 1756499040
+SHA256 (sopel-8.0.4.tar.gz) = d7a403cec642aae00f1f714fc818f179719cbd276360b6454d73740129de44e5
+SIZE (sopel-8.0.4.tar.gz) = 250580
diff --git a/lang/php83/Makefile b/lang/php83/Makefile
index 20683e75d589..8a0a2b2b83b1 100644
--- a/lang/php83/Makefile
+++ b/lang/php83/Makefile
@@ -1,5 +1,5 @@
PORTNAME= php83
-DISTVERSION= 8.3.24
+DISTVERSION= 8.3.25
PORTREVISION?= 0
CATEGORIES?= lang devel www
MASTER_SITES= PHP/distributions
diff --git a/lang/php83/distinfo b/lang/php83/distinfo
index 1e928bc0b6ff..67f5d75f64b6 100644
--- a/lang/php83/distinfo
+++ b/lang/php83/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1754027368
-SHA256 (php-8.3.24.tar.xz) = 388ee5fd111097e97bae439bff46aec4ea27f816d3f0c2cb5490a41410d44251
-SIZE (php-8.3.24.tar.xz) = 12579100
+TIMESTAMP = 1756287189
+SHA256 (php-8.3.25.tar.xz) = 187b61bb795015adacf53f8c55b44414a63777ec19a776b75fb88614506c0d37
+SIZE (php-8.3.25.tar.xz) = 12583528
diff --git a/lang/php84/Makefile b/lang/php84/Makefile
index 49fcd849e156..14e291ccfccf 100644
--- a/lang/php84/Makefile
+++ b/lang/php84/Makefile
@@ -1,5 +1,5 @@
PORTNAME= php84
-DISTVERSION= 8.4.11
+DISTVERSION= 8.4.12
PORTREVISION?= 0
CATEGORIES?= lang devel www
MASTER_SITES= PHP/distributions
diff --git a/lang/php84/distinfo b/lang/php84/distinfo
index 9e794c05e415..ab3b1734f714 100644
--- a/lang/php84/distinfo
+++ b/lang/php84/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1754027315
-SHA256 (php-8.4.11.tar.xz) = 04cd331380a8683a5c2503938eb51764d48d507c53ad4208d2c82e0eed779a00
-SIZE (php-8.4.11.tar.xz) = 13632328
+TIMESTAMP = 1756287141
+SHA256 (php-8.4.12.tar.xz) = c1b7978cbb5054eed6c749bde4444afc16a3f2268101fb70a7d5d9b1083b12ad
+SIZE (php-8.4.12.tar.xz) = 13636100
diff --git a/lang/php85/Makefile b/lang/php85/Makefile
index 4cd024aca5ea..3243c851d01d 100644
--- a/lang/php85/Makefile
+++ b/lang/php85/Makefile
@@ -1,8 +1,9 @@
PORTNAME= php85
-DISTVERSION= 8.5.0beta1
+DISTVERSION= 8.5.0beta2
PORTREVISION?= 0
CATEGORIES?= lang devel www
-MASTER_SITES= https://downloads.php.net/~edorian/
+MASTER_SITES= https://downloads.php.net/~edorian/ \
+ https://downloads.php.net/~daniels/
DISTNAME= php-${DISTVERSION}
MAINTAINER= bofh@FreeBSD.org
diff --git a/lang/php85/distinfo b/lang/php85/distinfo
index 4c473c0e48cd..d2d1566c9672 100644
--- a/lang/php85/distinfo
+++ b/lang/php85/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755580765
-SHA256 (php-8.5.0beta1.tar.gz) = d28f6de0744fa733db898ddcdeaa784a5e87ec1b4b4822e83529d9a76229ea61
-SIZE (php-8.5.0beta1.tar.gz) = 23797736
+TIMESTAMP = 1756465955
+SHA256 (php-8.5.0beta2.tar.gz) = 237833015ab63d5441fb781bc9848ae9bac4a7c3bdb1b6157139c41c1ea98b44
+SIZE (php-8.5.0beta2.tar.gz) = 24019611
diff --git a/lang/php85/pkg-plist b/lang/php85/pkg-plist
index 15aebd735077..9b085c0d576a 100644
--- a/lang/php85/pkg-plist
+++ b/lang/php85/pkg-plist
@@ -335,7 +335,6 @@ include/php/ext/lexbor/ns/ns.h
include/php/ext/lexbor/ns/res.h
include/php/ext/lexbor/punycode/base.h
include/php/ext/lexbor/punycode/punycode.h
-include/php/ext/lexbor/selectors/selectors.h
include/php/ext/lexbor/tag/base.h
include/php/ext/lexbor/tag/res.h
include/php/ext/lexbor/tag/tag.h
@@ -475,10 +474,10 @@ include/php/ext/standard/url.h
include/php/ext/standard/url_scanner_ex.h
include/php/ext/standard/user_filters_arginfo.h
include/php/ext/standard/winver.h
-include/php/ext/uri/php_lexbor.h
include/php/ext/uri/php_uri.h
include/php/ext/uri/php_uri_common.h
-include/php/ext/uri/php_uriparser.h
+include/php/ext/uri/uri_parser_rfc3986.h
+include/php/ext/uri/uri_parser_whatwg.h
@touch include/php/ext/php_config.h
@rmempty include/php/ext/php_config.h
include/php/main/SAPI.h
diff --git a/lang/s7/Makefile.master b/lang/s7/Makefile.master
index 528bb554cb8b..8a4023492e50 100644
--- a/lang/s7/Makefile.master
+++ b/lang/s7/Makefile.master
@@ -1,7 +1,7 @@
PORTNAME= s7
CATEGORIES= lang lisp
# S7_MAJOR_VERSION / S7_MINOR_VERSION / S7_DATE from s7.h
-PORTVERSION= 11.4.20250505
+PORTVERSION= 11.5.20250902
MAINTAINER?= fuz@FreeBSD.org
WWW= https://ccrma.stanford.edu/software/snd/snd/s7.html
@@ -12,7 +12,7 @@ USES= localbase:ldflags
USE_GITLAB= yes
GL_SITE= https://cm-gitlab.stanford.edu
GL_ACCOUNT= bil
-GL_TAGNAME= f9a99df1cb1470b7daa19daf7148e76363f7bceb
+GL_TAGNAME= d839d9edb74cb898fa366cbb76596a3d04185fc8
CFLAGS+= -DS7_LOAD_PATH=\"${DATADIR}\" \
-DHAVE_COMPLEX_NUMBERS \
diff --git a/lang/s7/distinfo b/lang/s7/distinfo
index f47e005d8ac9..65eed96d86ab 100644
--- a/lang/s7/distinfo
+++ b/lang/s7/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1746427498
-SHA256 (bil-s7-f9a99df1cb1470b7daa19daf7148e76363f7bceb_GL0.tar.gz) = 3833f0226fdeda4691189ee38702aec52ed98d67253a002c21fb671c109e2400
-SIZE (bil-s7-f9a99df1cb1470b7daa19daf7148e76363f7bceb_GL0.tar.gz) = 2818205
+TIMESTAMP = 1756478740
+SHA256 (bil-s7-d839d9edb74cb898fa366cbb76596a3d04185fc8_GL0.tar.gz) = 1881d5a8275d70a9ba3b0e191e52f8b12473573e8d003a61359d7a5e6465f7b9
+SIZE (bil-s7-d839d9edb74cb898fa366cbb76596a3d04185fc8_GL0.tar.gz) = 2845766
diff --git a/mail/mew-devel/Makefile b/mail/mew-devel/Makefile
index e9775fe817f1..303e25494b43 100644
--- a/mail/mew-devel/Makefile
+++ b/mail/mew-devel/Makefile
@@ -1,8 +1,7 @@
PORTNAME= mew
DISTVERSIONPREFIX= v
-DISTVERSION= 6.10
-PORTREVISION= 1
-DISTVERSIONSUFFIX=
+DISTVERSION= 6.10-18
+DISTVERSIONSUFFIX= -g377b685
CATEGORIES= mail elisp
PKGNAMESUFFIX= -devel${EMACS_PKGNAMESUFFIX}
diff --git a/mail/mew-devel/distinfo b/mail/mew-devel/distinfo
index 3395ef946412..b0844f43a2ad 100644
--- a/mail/mew-devel/distinfo
+++ b/mail/mew-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1751976896
-SHA256 (kazu-yamamoto-Mew-v6.10_GH0.tar.gz) = 39a273dcf6caad0659151b87710a961471f666e020d799d9a61421b6e83013ca
-SIZE (kazu-yamamoto-Mew-v6.10_GH0.tar.gz) = 1021646
+TIMESTAMP = 1756491998
+SHA256 (kazu-yamamoto-Mew-v6.10-18-g377b685_GH0.tar.gz) = 860657f3469c02fabe7a5fe00d4023e3f6a32c2ddd1589327ef45711e68f8ebc
+SIZE (kazu-yamamoto-Mew-v6.10-18-g377b685_GH0.tar.gz) = 1022715
diff --git a/mail/thunderbird-esr/Makefile b/mail/thunderbird-esr/Makefile
index e1861526b3be..c67eb3daaee1 100644
--- a/mail/thunderbird-esr/Makefile
+++ b/mail/thunderbird-esr/Makefile
@@ -1,9 +1,8 @@
PORTNAME= thunderbird
-DISTVERSION= 140.2.0
-PORTREVISION= 2
+DISTVERSION= 140.2.1
CATEGORIES= mail news net-im wayland
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \
- MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build3/source
+ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build1/source
PKGNAMESUFFIX= -esr
DISTFILES= ${DISTNAME}esr.source${EXTRACT_SUFX}
diff --git a/mail/thunderbird-esr/distinfo b/mail/thunderbird-esr/distinfo
index 10435b0abff5..43de00caa4bb 100644
--- a/mail/thunderbird-esr/distinfo
+++ b/mail/thunderbird-esr/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755633707
-SHA256 (thunderbird-140.2.0esr.source.tar.xz) = 4a71b613941184cfbc696daba075bb3592ef8a7c0c5c35bf2244be1d67ea4443
-SIZE (thunderbird-140.2.0esr.source.tar.xz) = 750140948
+TIMESTAMP = 1756417394
+SHA256 (thunderbird-140.2.1esr.source.tar.xz) = c9e4b98f72db3e9084dc7abe5f0ccf09bfc3e2f327706371dba4c2ee0a14c29b
+SIZE (thunderbird-140.2.1esr.source.tar.xz) = 766037104
diff --git a/mail/thunderbird/Makefile b/mail/thunderbird/Makefile
index 7bcb709d62dc..207db5b60cb4 100644
--- a/mail/thunderbird/Makefile
+++ b/mail/thunderbird/Makefile
@@ -1,5 +1,6 @@
PORTNAME= thunderbird
DISTVERSION= 142.0
+PORTREVISION= 1
CATEGORIES= mail news net-im wayland
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}${DISTVERSIONSUFFIX}/source \
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}${DISTVERSIONSUFFIX}-candidates/build1/source
diff --git a/math/maxima/Makefile b/math/maxima/Makefile
index 8e95b719ceb6..b99a5ef93316 100644
--- a/math/maxima/Makefile
+++ b/math/maxima/Makefile
@@ -3,7 +3,7 @@ DISTVERSION= 5.48.1
CATEGORIES= math lisp tk
MASTER_SITES= SF/maxima/Maxima-source/${PORTVERSION}-source
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= tiago.gasiba@gmail.com
COMMENT= Symbolic mathematics program
WWW= http://maxima.sourceforge.net/
diff --git a/misc/exercism/Makefile b/misc/exercism/Makefile
index bcd3ca63d1d4..655abd238de4 100644
--- a/misc/exercism/Makefile
+++ b/misc/exercism/Makefile
@@ -1,6 +1,6 @@
PORTNAME= exercism
DISTVERSIONPREFIX= v
-DISTVERSION= 3.5.6
+DISTVERSION= 3.5.7
CATEGORIES= misc
MAINTAINER= bofh@FreeBSD.org
diff --git a/misc/exercism/distinfo b/misc/exercism/distinfo
index 8fb4b9e41b0a..3f364d514528 100644
--- a/misc/exercism/distinfo
+++ b/misc/exercism/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1756370090
-SHA256 (exercism-cli-v3.5.6_GH0.tar.gz) = f79ad5cfaca794ef21439f5b3b9c196074febc55605624cc4cc4c973c10c589d
-SIZE (exercism-cli-v3.5.6_GH0.tar.gz) = 81030
+TIMESTAMP = 1756465787
+SHA256 (exercism-cli-v3.5.7_GH0.tar.gz) = dc8f06d9390a8ff11b24b251644287453e73f0f71eb4277f8fb53dca1825140a
+SIZE (exercism-cli-v3.5.7_GH0.tar.gz) = 81109
SHA256 (blang-semver-v3.5.1_GH0.tar.gz) = 3d9da53f4c2d3169bfa9b25f2f36f301a37556a47259c870881524c643c69c57
SIZE (blang-semver-v3.5.1_GH0.tar.gz) = 14831
SHA256 (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e
diff --git a/multimedia/av1an/Makefile b/multimedia/av1an/Makefile
index 39922cc2183d..6203a2b00cf7 100644
--- a/multimedia/av1an/Makefile
+++ b/multimedia/av1an/Makefile
@@ -3,7 +3,7 @@ DISTVERSION= 0.4.4
PORTREVISION= 5
CATEGORIES= multimedia
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Command-line encoding framework with per scene quality
WWW= https://github.com/master-of-zen/Av1an
diff --git a/multimedia/wf-recorder/files/patch-fix-ffmpeg8 b/multimedia/wf-recorder/files/patch-fix-ffmpeg8
new file mode 100644
index 000000000000..68bf8d5643ce
--- /dev/null
+++ b/multimedia/wf-recorder/files/patch-fix-ffmpeg8
@@ -0,0 +1,27 @@
+From 560bb92d3ddaeb31d7af77d22d01b0050b45bebe Mon Sep 17 00:00:00 2001
+From: Scott Moreau <oreaus@gmail.com>
+Date: Tue, 8 Oct 2024 12:56:55 -0600
+Subject: [PATCH] frame-writer: Track ffmpeg changes (#279)
+
+* frame-writer: Track ffmpeg changes
+
+The frame_rate variable has been made private API.
+
+* frame-writer: Remove comment
+---
+ src/frame-writer.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git src/frame-writer.cpp src/frame-writer.cpp
+index 2a5ba17..b8abe51 100644
+--- src/frame-writer.cpp
++++ src/frame-writer.cpp
+@@ -371,7 +371,7 @@ void FrameWriter::init_video_filters(const AVCodec *codec)
+ this->videoCodecCtx->height = filter_output->h;
+ this->videoCodecCtx->pix_fmt = (AVPixelFormat)filter_output->format;
+ this->videoCodecCtx->time_base = filter_output->time_base;
+- this->videoCodecCtx->framerate = filter_output->frame_rate; // can be 1/0 if unknown
++ this->videoCodecCtx->framerate = AVRational{1,0};
+ this->videoCodecCtx->sample_aspect_ratio = filter_output->sample_aspect_ratio;
+
+ this->hw_frame_context = av_buffersink_get_hw_frames_ctx(
diff --git a/multimedia/wl-screenrec/Makefile b/multimedia/wl-screenrec/Makefile
index 9bd743db8223..4b74e9294d3e 100644
--- a/multimedia/wl-screenrec/Makefile
+++ b/multimedia/wl-screenrec/Makefile
@@ -4,7 +4,7 @@ DISTVERSION= 0.1.5
PORTREVISION= 9
CATEGORIES= multimedia wayland
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= High performance wlroots screen recording, featuring hardware encoding
WWW= https://github.com/russelltg/wl-screenrec
diff --git a/net-im/nextcloud-talk/Makefile b/net-im/nextcloud-talk/Makefile
index 34aaa398285a..330bcccf069b 100644
--- a/net-im/nextcloud-talk/Makefile
+++ b/net-im/nextcloud-talk/Makefile
@@ -1,5 +1,5 @@
PORTNAME= talk
-PORTVERSION= 21.1.3
+PORTVERSION= 21.1.4
DISTVERSIONPREFIX= v
CATEGORIES= net-im www
DISTNAME= spreed-${DISTVERSIONPREFIX}${DISTVERSION}
diff --git a/net-im/nextcloud-talk/distinfo b/net-im/nextcloud-talk/distinfo
index 764b6c0a2cc2..b6d357813db6 100644
--- a/net-im/nextcloud-talk/distinfo
+++ b/net-im/nextcloud-talk/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1754498018
-SHA256 (nextcloud/spreed-v21.1.3.tar.gz) = 5b2acbae22f422a898c6a71dcb310f1b4d2dfb0e9a375b5861ca2fb4bc9f88be
-SIZE (nextcloud/spreed-v21.1.3.tar.gz) = 50915546
+TIMESTAMP = 1756412384
+SHA256 (nextcloud/spreed-v21.1.4.tar.gz) = 73575a942db6c54348b0b370f50859530be194dca93271fd52fca69665ba645c
+SIZE (nextcloud/spreed-v21.1.4.tar.gz) = 51032774
diff --git a/net-im/signal-desktop/Makefile b/net-im/signal-desktop/Makefile
index caac64ac8aa1..0dfbfa538865 100644
--- a/net-im/signal-desktop/Makefile
+++ b/net-im/signal-desktop/Makefile
@@ -1,6 +1,7 @@
PORTNAME= signal-desktop
DISTVERSIONPREFIX= v
DISTVERSION= 7.66.0
+PORTREVISION= 1
CATEGORIES= net-im
MASTER_SITES= LOCAL/mikael/signal-desktop/:npm \
https://registry.npmjs.org/@esbuild/freebsd-arm64/-/:esbuildarm64 \
diff --git a/net-mgmt/collectd5/Makefile b/net-mgmt/collectd5/Makefile
index f320ce0ce321..fe1fd7c915de 100644
--- a/net-mgmt/collectd5/Makefile
+++ b/net-mgmt/collectd5/Makefile
@@ -1,6 +1,6 @@
PORTNAME= collectd
-PORTVERSION= 5.12.0
-PORTREVISION= 22
+DISTVERSION= 5.12.0
+PORTREVISION= 23
CATEGORIES= net-mgmt
MASTER_SITES= https://storage.googleapis.com/collectd-tarballs/
PKGNAMESUFFIX= 5
@@ -12,24 +12,47 @@ WWW= https://www.collectd.org/
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
-LIB_DEPENDS= libpfctl.so:net/libpfctl
-LDFLAGS+= -lpfctl
+USES= autoreconf cpe gmake libtool localbase:ldflags pkgconfig \
+ shebangfix tar:bzip2
+USE_LDCONFIG= yes
+USE_RC_SUBR= collectd collectdmon
-USES= autoreconf cpe gmake libtool localbase:ldflags pkgconfig shebangfix tar:bzip2
+SHEBANG_FILES= contrib/collection.cgi
GNU_CONFIGURE= yes
-GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
+# NOTE: Plugins without dependencies are defined further down.
+CONFIGURE_ARGS= --disable-all-plugins \
+ --disable-amqp \
+ --disable-ceph \
+ --disable-cgroups \
+ --disable-fhcount \
+ --disable-static \
+ --disable-turbostat \
+ --enable-disk \
+ --localstatedir=/var \
+ --without-libaquaero5 \
+ --without-libganglia \
+ --without-libiptc \
+ --without-libldap \
+ --without-libmnl \
+ --without-libnetapp \
+ --without-libowcapi \
+ --without-libsensors \
+ --without-mic \
+ --without-oracle
+
+INSTALL_TARGET= install-strip
OPTIONS_DEFINE= CGI GCRYPT JAVA LOGGING LOGSTASH VIRT
+OPTIONS_DEFAULT= GCRYPT LOGGING PING PF
OPTIONS_GROUP= INPUT OUTPUT
-OPTIONS_GROUP_OUTPUT= INFLUXDB KAFKA MONGODB NOTIFYDESKTOP NOTIFYEMAIL PROMETHEUS \
- RIEMANN RRDTOOL TSDB
-OPTIONS_GROUP_INPUT= CHRONY CURL CURL_JSON CURL_XML DBI IPMI JSON \
- MEMCACHEC MODBUS MQTT MYSQL NUTUPS OLSRD ONEWIRE OPENLDAP \
- PERL PGSQL PINBA PING PYTHON RABBITMQ REDIS SIGROK \
- SLURM SNMP STATSD TOKYOTYRANT VARNISH XML ZOOKEEPER
-
-OPTIONS_DEFAULT= GCRYPT LOGGING PING
+OPTIONS_GROUP_INPUT= CHRONY CURL CURL_JSON CURL_XML DBI IPMI JSON MEMCACHEC \
+ MODBUS MQTT MYSQL NUTUPS OLSRD ONEWIRE OPENLDAP PERL \
+ PF PGSQL PINBA PING PYTHON RABBITMQ REDIS SIGROK SLURM \
+ SNMP STATSD TOKYOTYRANT VARNISH XML ZOOKEEPER
+OPTIONS_GROUP_OUTPUT= INFLUXDB KAFKA MONGODB NOTIFYDESKTOP NOTIFYEMAIL \
+ PROMETHEUS RIEMANN RRDTOOL TSDB
+OPTIONS_SUB= yes
CGI_DESC= Install collection.cgi (requires rrdtool)
CHRONY_DESC= Enable chronyd plugin
@@ -56,6 +79,7 @@ OLSRD_DESC= Enable olsrd plugin
ONEWIRE_DESC= Eanble onewire plugin (via owfs)
OPENLDAP_DESC= Enable OpenLDAP plugin
PERL_DESC= Enable libperl plugin and binding
+PF_DESC= Enable PF stats plugin
PGSQL_DESC= Enable postgresql-based plugins
PINBA_DESC= Enable pinba plugin (via protobuf-c)
PING_DESC= Enable ping plugin
@@ -66,51 +90,21 @@ REDIS_DESC= Enable redis-based plugins
RIEMANN_DESC= Enable write_riemann plugin (via riemann-c-client)
RRDTOOL_DESC= Enable rrdtool plugin (also rrdcached plugin)
SIGROK_DESC= Enable sigrok plugin (BROKEN)
-SLURM_DESC= Enable slurm plugin
+SLURM_DESC= Enable slurm plugin (BROKEN)
SNMP_DESC= Enable SNMP plugin
STATSD_DESC= Enable statsd plugin
TOKYOTYRANT_DESC= Enable tokyotyrant plugin
TSDB_DESC= Enable write_tsdb plugin
VARNISH_DESC= Enable varnish 7.x cache statistics
-VIRT_DESC= Enable libvirt plugin (requires XML)
+VIRT_DESC= Enable libvirt plugin (requires XML) (possible BROKEN)
XML_DESC= Enable XML plugins
ZOOKEEPER_DESC= Enable zookeeper plugin
-OPTIONS_SUB= yes
-
-USE_RC_SUBR= collectd collectdmon
-
-USE_LDCONFIG= yes
-
-CPPFLAGS+= -I${LOCALBASE}/include
-LIBS+= -L${LOCALBASE}/lib
-
-# NOTE: Plugins without dependencies are defined further down.
-CONFIGURE_ARGS= --disable-all-plugins \
- --disable-amqp \
- --disable-ceph \
- --disable-cgroups \
- --disable-fhcount \
- --disable-static \
- --disable-turbostat \
- --enable-disk \
- --localstatedir=/var \
- --without-libaquaero5 \
- --without-libganglia \
- --without-libiptc \
- --without-libldap \
- --without-libmnl \
- --without-libnetapp \
- --without-libowcapi \
- --without-libsensors \
- --without-mic \
- --without-oracle
-
-CGI_USES= perl5
+CGI_IMPLIES= RRDTOOL
CGI_RUN_DEPENDS= p5-CGI>=0:www/p5-CGI \
p5-HTML-Parser>=0:www/p5-HTML-Parser \
p5-URI>=0:net/p5-URI
-CGI_IMPLIES= RRDTOOL
+CGI_USES= perl5
CHRONY_CONFIGURE_ENABLE= chrony
@@ -124,10 +118,6 @@ CURL_JSON_CONFIGURE_ENABLE= curl_json
CURL_XML_IMPLIES= CURL XML
CURL_XML_CONFIGURE_ENABLE= ascent bind curl_xml
-JAVA_USES= java
-JAVA_CONFIGURE_ENABLE= java
-JAVA_CONFIGURE_WITH= java=${LOCALBASE}
-
DBI_LIB_DEPENDS= libdbi.so:databases/libdbi
DBI_CONFIGURE_ENABLE= dbi
DBI_CFLAGS= -Wno-deprecated-declarations
@@ -141,6 +131,10 @@ INFLUXDB_CONFIGURE_ENABLE= write_influxdb_udp
IPMI_LIB_DEPENDS= libOpenIPMI.so:sysutils/openipmi
IPMI_CONFIGURE_ENABLE= ipmi
+JAVA_USES= java
+JAVA_CONFIGURE_ENABLE= java
+JAVA_CONFIGURE_WITH= java=${LOCALBASE}
+
JSON_LIB_DEPENDS= libyajl.so:devel/yajl
JSON_CONFIGURE_WITH= libyajl=${LOCALBASE}
@@ -149,8 +143,8 @@ KAFKA_CONFIGURE_ENABLE= write_kafka
LOGGING_CONFIGURE_ENABLE= debug
-LOGSTASH_CONFIGURE_ENABLE= log_logstash
LOGSTASH_IMPLIES= JSON
+LOGSTASH_CONFIGURE_ENABLE= log_logstash
MEMCACHEC_LIB_DEPENDS= libmemcached.so:databases/libmemcached
MEMCACHEC_CONFIGURE_ENABLE= memcachec
@@ -160,8 +154,8 @@ MODBUS_LIB_DEPENDS= libmodbus.so:comms/libmodbus
MODBUS_CONFIGURE_ENABLE= modbus
MODBUS_CONFIGURE_WITH= libmodbus=use_pkgconfig
-MONGODB_LIB_DEPENDS+= libmongoc-1.0.so:devel/mongo-c-driver \
- libbson-1.0.so:devel/libbson
+MONGODB_LIB_DEPENDS= libbson-1.0.so:devel/libbson \
+ libmongoc-1.0.so:devel/mongo-c-driver
MONGODB_CONFIGURE_ENABLE= write_mongodb
MONGODB_CONFIGURE_WITH= libmongoc
@@ -169,14 +163,15 @@ MQTT_LIB_DEPENDS= libmosquitto.so:net/mosquitto
MQTT_CONFIGURE_ENABLE= mqtt
MQTT_CONFIGURE_WITH= libmosquitto=${LOCALBASE}
+MYSQL_LIB_DEPENDS= libunwind.so:devel/libunwind
MYSQL_USES= mysql ssl
MYSQL_CONFIGURE_ENABLE= mysql
MYSQL_CONFIGURE_WITH= libmysql=${LOCALBASE}
NOTIFYDESKTOP_LIB_DEPENDS= libnotify.so:devel/libnotify
-NOTIFYDESKTOP_CONFIGURE_ENABLE= notify_desktop
-NOTIFYDESKTOP_USE= GNOME=gdkpixbuf
NOTIFYDESKTOP_USES= gettext-runtime gnome
+NOTIFYDESKTOP_USE= GNOME=gdkpixbuf
+NOTIFYDESKTOP_CONFIGURE_ENABLE= notify_desktop
NOTIFYEMAIL_LIB_DEPENDS= libesmtp.so:mail/libesmtp
NOTIFYEMAIL_CONFIGURE_ENABLE= notify_email
@@ -200,6 +195,10 @@ PERL_USES= perl5
PERL_CONFIGURE_ENABLE= perl
PERL_CONFIGURE_WITH= libperl=${LOCALBASE} perl-bindings
+PF_LIB_DEPENDS= libpfctl.so:net/libpfctl
+PF_CONFIGURE_ENABLE= pf
+PF_LDFLAGS= -lpfctl
+
PGSQL_USES= pgsql
PGSQL_CONFIGURE_ENABLE= postgresql
PGSQL_CONFIGURE_WITH= libpq=${LOCALBASE}
@@ -211,12 +210,12 @@ PING_LIB_DEPENDS= liboping.so:net/liboping
PING_CONFIGURE_ENABLE= ping
PING_CONFIGURE_WITH= liboping=${LOCALBASE}
-PROMETHEUS_LIB_DEPENDS+= libmicrohttpd.so:www/libmicrohttpd \
+PROMETHEUS_LIB_DEPENDS= libmicrohttpd.so:www/libmicrohttpd \
libprotobuf-c.so:devel/protobuf-c \
libprotoc.so:devel/protobuf
PROMETHEUS_CONFIGURE_ENABLE= write_prometheus
-PYTHON_USES= python
+PYTHON_USES= gettext-runtime python
PYTHON_CONFIGURE_ENABLE= python
PYTHON_CONFIGURE_ENV= PYTHON_CONFIG=${PYTHON_CMD}-config
@@ -235,17 +234,17 @@ RRDTOOL_LIB_DEPENDS= librrd.so:databases/rrdtool
RRDTOOL_CONFIGURE_ENABLE= rrdcached rrdtool
RRDTOOL_CONFIGURE_WITH= librrd=${LOCALBASE}
-SIGROK_USE= GNOME=glib20
-SIGROK_CFLAGS= `pkg-config --cflags libsigrok`
+SIGROK_BROKEN= working only with sigrok < 0.4
SIGROK_LIB_DEPENDS= libsigrok.so:devel/libsigrok
-SIGROK_CONFIGURE_ENABLE= sigrok
SIGROK_USES= gettext-runtime
-SIGROK_BROKEN= working only with sigrok < 0.4
+SIGROK_USE= GNOME=glib20
+SIGROK_CONFIGURE_ENABLE= sigrok
+SIGROK_CFLAGS= `pkg-config --cflags libsigrok`
-SLURM_BROKEN= Does not compile with slurm-wlm >= 21.x
-SLURM_LIB_DEPENDS= libslurm.so:sysutils/slurm-wlm
-SLURM_CONFIGURE_ENABLE= slurm
-SLURM_CONFIGURE_WITH= libslurm=${LOCALBASE}
+SLURM_BROKEN= Does not compile with slurm-wlm >= 21.x
+SLURM_LIB_DEPENDS= libslurm.so:sysutils/slurm-wlm
+SLURM_CONFIGURE_ENABLE= slurm
+SLURM_CONFIGURE_WITH= libslurm=${LOCALBASE}
SNMP_LIB_DEPENDS= libnetsnmp.so:net-mgmt/net-snmp
SNMP_CONFIGURE_ENABLE= snmp
@@ -255,6 +254,7 @@ STATSD_CONFIGURE_ENABLE= statsd
TOKYOTYRANT_LIB_DEPENDS= libtokyocabinet.so:databases/tokyocabinet \
libtokyotyrant.so:databases/tokyotyrant
+TOKYOTYRANT_USES= lua
TOKYOTYRANT_CONFIGURE_ENABLE= tokyotyrant
TOKYOTYRANT_CONFIGURE_WITH= libtokyotyrant=${LOCALBASE}
@@ -268,10 +268,11 @@ VIRT_LIB_DEPENDS= libgcrypt.so:security/libgcrypt \
libgpg-error.so:security/libgpg-error \
libvirt.so:devel/libvirt
VIRT_CONFIGURE_ENABLE= virt
+VIRT_CFLAGS= -Wno-incompatible-function-pointer-types -DATTRIBUTE_UNUSED=
-XML_CFLAGS= `pkg-config --cflags libxml-2.0`
XML_LIB_DEPENDS= libxml2.so:textproc/libxml2
XML_CONFIGURE_WITH= libxml2
+XML_CFLAGS= `pkg-config --cflags libxml-2.0`
ZOOKEEPER_LIB_DEPENDS= libzookeeper_mt.so:devel/libzookeeper
ZOOKEEPER_CONFIGURE_ENABLE= zookeeper
@@ -303,7 +304,6 @@ CONFIGURE_ARGS+= --enable-aggregation \
--enable-network \
--enable-ntpd \
--enable-openvpn \
- --enable-pf \
--enable-powerdns \
--enable-processes \
--enable-statsd \
@@ -328,8 +328,6 @@ CONFIGURE_ARGS+= --enable-aggregation \
--enable-write_graphite \
--enable-write_log \
--enable-zfs_arc
-INSTALL_TARGET= install-strip
-SHEBANG_FILES= contrib/collection.cgi
post-patch:
@${REINPLACE_CMD} \
diff --git a/net-mgmt/collectd5/pkg-plist b/net-mgmt/collectd5/pkg-plist
index 82711b36ef62..d451f1015e01 100644
--- a/net-mgmt/collectd5/pkg-plist
+++ b/net-mgmt/collectd5/pkg-plist
@@ -66,7 +66,7 @@ lib/collectd/ntpd.so
%%OPENLDAP%%lib/collectd/openldap.so
lib/collectd/openvpn.so
%%PERL%%lib/collectd/perl.so
-lib/collectd/pf.so
+%%PF%%lib/collectd/pf.so
%%PINBA%%lib/collectd/pinba.so
%%PING%%lib/collectd/ping.so
%%PGSQL%%lib/collectd/postgresql.so
diff --git a/net-mgmt/netdata/pkg-plist b/net-mgmt/netdata/pkg-plist
index 50c65f5bfefd..8619498d2a60 100644
--- a/net-mgmt/netdata/pkg-plist
+++ b/net-mgmt/netdata/pkg-plist
@@ -566,7 +566,7 @@ sbin/systemd-cat-native
%%DASHBOARD%%%%DATADIR%%/web/v3/1083.bfcffcae47e37eafd532.chunk.js.LICENSE.txt
%%DASHBOARD%%%%DATADIR%%/web/v3/1083.d61abf3771ce679d59cf.css
%%DASHBOARD%%%%DATADIR%%/web/v3/1220.308e2174e62c44e06938.chunk.js
-%%DASHBOARD%%%%DATADIR%%/web/v3/127.b38f17ae8eb1%%PYTHON_SUFFIX%%d3aa9.chunk.js
+%%DASHBOARD%%%%DATADIR%%/web/v3/127.b38f17ae8eb1311d3aa9.chunk.js
%%DASHBOARD%%%%DATADIR%%/web/v3/1526.ea56050e11a00e20d98f.chunk.js
%%DASHBOARD%%%%DATADIR%%/web/v3/1608.b6e817e2bb513f0f92f7.chunk.js
%%DASHBOARD%%%%DATADIR%%/web/v3/1658.bbd335679cb24cf069ef.chunk.js
diff --git a/net-mgmt/tcpreplay/Makefile b/net-mgmt/tcpreplay/Makefile
index bfe73313f623..375e86229fd9 100644
--- a/net-mgmt/tcpreplay/Makefile
+++ b/net-mgmt/tcpreplay/Makefile
@@ -1,5 +1,5 @@
PORTNAME= tcpreplay
-DISTVERSION= 4.5.1
+DISTVERSION= 4.5.2
CATEGORIES= net-mgmt
MASTER_SITES= https://github.com/appneta/${PORTNAME}/releases/download/v${DISTVERSION}/
@@ -23,10 +23,15 @@ CONFIGURE_ARGS= --disable-libopts-install \
TEST_TARGET= test
-OPTIONS_DEFINE= LIBPCAP_PORTS
-LIBPCAP_PORTS_DESC= Build with net/libpcap instead of from the base OS
-# needs .so version (see: 262976)
+OPTIONS_DEFINE= LIBPCAP_PORTS
+LIBPCAP_PORTS_DESC= Build with net/libpcap instead of from the base OS
+
+# needs .so version (libpcap.so:net/libpcap uses libpcap from the base system)
LIBPCAP_PORTS_LIB_DEPENDS= libpcap.so.1:net/libpcap
LIBPCAP_PORTS_CONFIGURE_OFF= --with-libpcap=/usr/lib
+post-patch:
+ @${REINPLACE_CMD} -e '/make test/s|make|${MAKE_CMD}|' \
+ ${WRKSRC}/Makefile.in
+
.include <bsd.port.mk>
diff --git a/net-mgmt/tcpreplay/distinfo b/net-mgmt/tcpreplay/distinfo
index fc9e9a47463a..7675ec8b79ba 100644
--- a/net-mgmt/tcpreplay/distinfo
+++ b/net-mgmt/tcpreplay/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1721131125
-SHA256 (tcpreplay-4.5.1.tar.xz) = 5126613f783062b43f514b05ad981376050a8fee35b03c8de4445ddeefd95049
-SIZE (tcpreplay-4.5.1.tar.xz) = 809628
+TIMESTAMP = 1756274419
+SHA256 (tcpreplay-4.5.2.tar.xz) = 2df15bc6d49f96a77617d137049f998193bbae95c1a31b04ca02856a24cbf384
+SIZE (tcpreplay-4.5.2.tar.xz) = 818824
diff --git a/net-mgmt/tcpreplay/files/patch-Makefile.in b/net-mgmt/tcpreplay/files/patch-Makefile.in
deleted file mode 100644
index 9d6e23e9e94a..000000000000
--- a/net-mgmt/tcpreplay/files/patch-Makefile.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- Makefile.in.orig 2024-07-12 17:15:27 UTC
-+++ Makefile.in
-@@ -900,7 +900,7 @@ test:
-
- test:
- echo Making test in $(TEST_DIR)
-- cd $(TEST_DIR) && make test
-+ cd $(TEST_DIR) && gmake test
-
- dlt_names:
- cat @SAVEFILE_C@ | $(top_builddir)/scripts/dlt2name.pl src/dlt_names.h
diff --git a/net-mgmt/tcpreplay/files/patch-lib_queue.h b/net-mgmt/tcpreplay/files/patch-lib_queue.h
new file mode 100644
index 000000000000..8159c28745ae
--- /dev/null
+++ b/net-mgmt/tcpreplay/files/patch-lib_queue.h
@@ -0,0 +1,18 @@
+--- lib/queue.h.orig 2025-08-27 06:21:35 UTC
++++ lib/queue.h
+@@ -36,7 +36,8 @@
+ * @(#)queue.h 8.5 (Berkeley) 8/20/94
+ */
+
+-#pragma once
++#ifndef _SYS_QUEUE_H_
++#define _SYS_QUEUE_H_
+
+ /*
+ * This file defines five types of data structures: singly-linked lists,
+@@ -506,3 +507,5 @@ struct { \
+ else \
+ (elm2)->field.cqe_prev->field.cqe_next = (elm2); \
+ } while (0)
++
++#endif /* !_SYS_QUEUE_H_ */
diff --git a/net-mgmt/tcpreplay/files/patch-src_fragroute_mod.c b/net-mgmt/tcpreplay/files/patch-src_fragroute_mod.c
deleted file mode 100644
index d4eb02fa98b1..000000000000
--- a/net-mgmt/tcpreplay/files/patch-src_fragroute_mod.c
+++ /dev/null
@@ -1,15 +0,0 @@
---- src/fragroute/mod.c.orig 2023-12-31 18:39:02 UTC
-+++ src/fragroute/mod.c
-@@ -8,11 +8,11 @@
- */
-
- #include "mod.h"
-+#include "lib/queue.h"
- #include "defines.h"
- #include "config.h"
- #include "common.h"
- #include "argv.h"
--#include "lib/queue.h"
- #include <ctype.h>
- #include <stdio.h>
- #include <stdlib.h>
diff --git a/net-mgmt/tcpreplay/files/patch-src_fragroute_pkt.h b/net-mgmt/tcpreplay/files/patch-src_fragroute_pkt.h
deleted file mode 100644
index ec36392985f8..000000000000
--- a/net-mgmt/tcpreplay/files/patch-src_fragroute_pkt.h
+++ /dev/null
@@ -1,13 +0,0 @@
---- src/fragroute/pkt.h.orig 2023-12-31 18:39:02 UTC
-+++ src/fragroute/pkt.h
-@@ -8,9 +8,9 @@
-
- #pragma once
-
-+#include "lib/queue.h"
- #include "defines.h"
- #include "config.h"
--#include "lib/queue.h"
- #include <sys/time.h>
-
- #ifdef HAVE_LIBDNET
diff --git a/net/asterisk18/Makefile b/net/asterisk18/Makefile
index 1bb8ddb06a09..1d6db6817053 100644
--- a/net/asterisk18/Makefile
+++ b/net/asterisk18/Makefile
@@ -1,5 +1,5 @@
PORTNAME= asterisk
-PORTVERSION= 18.26.3
+PORTVERSION= 18.26.4
CATEGORIES= net
MASTER_SITES= https://downloads.asterisk.org/pub/telephony/%SUBDIR%/:DEFAULT,g729
MASTER_SITE_SUBDIR= asterisk/ \
@@ -216,7 +216,7 @@ ASTERISK_MOH_G729_SOUNDS= asterisk-moh-opsound-g729-2.03.tar.gz
ASTERISK_USER?= asterisk
ASTERISK_GROUP?= asterisk
-PJSIP_VERSION= 2.14.1
+PJSIP_VERSION= 2.15.1
.include <bsd.port.options.mk>
diff --git a/net/asterisk18/distinfo b/net/asterisk18/distinfo
index 6b4b8c9a6217..84c16f4e397f 100644
--- a/net/asterisk18/distinfo
+++ b/net/asterisk18/distinfo
@@ -1,11 +1,11 @@
-TIMESTAMP = 1754049542
-SHA256 (asterisk/asterisk-18.26.3.tar.gz) = 0df8be2f57779019895628363a11f74ea356068cca983462ec0feb72528fc8e9
-SIZE (asterisk/asterisk-18.26.3.tar.gz) = 28568360
+TIMESTAMP = 1756460172
+SHA256 (asterisk/asterisk-18.26.4.tar.gz) = a17f511bfa092c8fa9eccd3a5ecf5f728ccdcf2b1a04d2c06e7177d96c3c9ee1
+SIZE (asterisk/asterisk-18.26.4.tar.gz) = 28570896
SHA256 (asterisk/asterisk-core-sounds-en-g729-1.6.1.tar.gz) = 306ec9f38de9859e3f750ecff1385187945021919ea936c02e890134a04bae33
SIZE (asterisk/asterisk-core-sounds-en-g729-1.6.1.tar.gz) = 1557751
SHA256 (asterisk/asterisk-moh-opsound-g729-2.03.tar.gz) = 0147ca9a97f0c550227aacb7793499057c4d2c64e021c95f93722f27d5549585
SIZE (asterisk/asterisk-moh-opsound-g729-2.03.tar.gz) = 1103000
SHA256 (asterisk/traud-asterisk-opus-83e1b458c77e0e287adeca494eeb79edb077b0ff_GH0.tar.gz) = 572a3c956371ed62b44a4bcd973db10eb4c84f3040cf7156e3acfad3b6bf3ded
SIZE (asterisk/traud-asterisk-opus-83e1b458c77e0e287adeca494eeb79edb077b0ff_GH0.tar.gz) = 24044
-SHA256 (asterisk/pjsip-pjproject-2.14.1_GH0.tar.gz) = 6140f7a97e318caa89c17e8d5468599671c6eed12d64a7c160dac879ba004c68
-SIZE (asterisk/pjsip-pjproject-2.14.1_GH0.tar.gz) = 10322231
+SHA256 (asterisk/pjsip-pjproject-2.15.1_GH0.tar.gz) = 8f3bd99caf003f96ed8038b8a36031eb9d8cd9eaea1eaff7e01c2eef6bd55706
+SIZE (asterisk/pjsip-pjproject-2.15.1_GH0.tar.gz) = 10425868
diff --git a/net/gitlab-agent/distinfo b/net/gitlab-agent/distinfo
index 6beff0872658..aea0647c6a30 100644
--- a/net/gitlab-agent/distinfo
+++ b/net/gitlab-agent/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1755673971
-SHA256 (go/net_gitlab-agent/gitlab-agent-v18.3.0/v18.3.0.mod) = 2ec01cce9df32ed086dd50ebf5d7d120d6edffe83b9ea78dbfba19d1e92d77d2
-SIZE (go/net_gitlab-agent/gitlab-agent-v18.3.0/v18.3.0.mod) = 10172
-SHA256 (go/net_gitlab-agent/gitlab-agent-v18.3.0/v18.3.0.zip) = 5cc156ef5215212c5e6c2fd0c6205d839d806343e74cdb748ee0fb8366092224
-SIZE (go/net_gitlab-agent/gitlab-agent-v18.3.0/v18.3.0.zip) = 1790280
+TIMESTAMP = 1756438001
+SHA256 (go/net_gitlab-agent/gitlab-agent-v18.3.1/v18.3.1.mod) = 2ec01cce9df32ed086dd50ebf5d7d120d6edffe83b9ea78dbfba19d1e92d77d2
+SIZE (go/net_gitlab-agent/gitlab-agent-v18.3.1/v18.3.1.mod) = 10172
+SHA256 (go/net_gitlab-agent/gitlab-agent-v18.3.1/v18.3.1.zip) = d10e44c56f6d9745cfba2c71af76fae4811423ec1020b057dd8a0fcb9ee6abf5
+SIZE (go/net_gitlab-agent/gitlab-agent-v18.3.1/v18.3.1.zip) = 1790288
diff --git a/net/kea/Makefile b/net/kea/Makefile
index efb6cbfc698f..a937964fc4ab 100644
--- a/net/kea/Makefile
+++ b/net/kea/Makefile
@@ -1,6 +1,5 @@
PORTNAME= kea
-DISTVERSION= 3.0.0
-PORTREVISION= 5
+DISTVERSION= 3.0.1
CATEGORIES= net
MASTER_SITES= ISC/kea/${DISTVERSION}
diff --git a/net/kea/distinfo b/net/kea/distinfo
index 34919567d383..51c5c2bafda0 100644
--- a/net/kea/distinfo
+++ b/net/kea/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1750867283
-SHA256 (kea-3.0.0.tar.xz) = bf963d1e10951d8c570c6042afccf27c709d45e03813bd2639d7bb1cfc4fee76
-SIZE (kea-3.0.0.tar.xz) = 6631612
+TIMESTAMP = 1756327795
+SHA256 (kea-3.0.1.tar.xz) = ec84fec4bb7f6b9d15a82e755a571e9348eb4d6fbc62bb3f6f1296cd7a24c566
+SIZE (kea-3.0.1.tar.xz) = 6632284
diff --git a/net/kea/files/patch-meson.build b/net/kea/files/patch-meson.build
index 58f40526b835..f444e3bcdafe 100644
--- a/net/kea/files/patch-meson.build
+++ b/net/kea/files/patch-meson.build
@@ -1,6 +1,6 @@
---- meson.build.orig 2025-06-20 09:28:47.000000000 -0700
-+++ meson.build 2025-07-10 10:25:47.651315000 -0700
-@@ -59,7 +59,7 @@
+--- meson.build.orig 2025-06-20 16:28:47 UTC
++++ meson.build
+@@ -59,7 +59,7 @@ if PREFIX == '/usr/local'
# Meson is annoying with its opinionated alteration of certain paths based on whether prefix is default or not.
# So we revert what it does.
if PREFIX == '/usr/local'
@@ -9,7 +9,7 @@
endif
DATABASE_SCRIPTS_DIR = TOP_BUILD_DIR / 'src/share/database/scripts'
-@@ -69,17 +69,17 @@
+@@ -69,17 +69,17 @@ KEA_LFC_INSTALLED = PREFIX / SBINDIR / 'kea-lfc'
KEA_ADMIN_INSTALLED = PREFIX / SBINDIR / 'kea-admin'
KEA_LFC_BUILT = TOP_BUILD_DIR / 'src/bin/lfc/kea-lfc'
KEA_LFC_INSTALLED = PREFIX / SBINDIR / 'kea-lfc'
@@ -31,7 +31,7 @@
SHAREDSTATEDIR_INSTALLED = PREFIX / SHAREDSTATEDIR
SYSCONFDIR_INSTALLED = PREFIX / SYSCONFDIR
TEST_CA_DIR = TOP_SOURCE_DIR / 'src/lib/asiolink/testutils/ca'
-@@ -88,9 +88,9 @@
+@@ -88,9 +88,9 @@ if PREFIX == '/usr/local'
# So we revert what it does.
if PREFIX == '/usr/local'
SYSCONFDIR_INSTALLED = '/usr/local/etc'
@@ -44,7 +44,7 @@
endif
#### Build Options
-@@ -1108,9 +1108,9 @@
+@@ -1108,9 +1108,9 @@ if PREFIX == '/usr/local'
# In case prefix is default, install to hardcoded path.
if PREFIX == '/usr/local'
install_emptydir('/usr/local/lib/kea')
diff --git a/net/kea/files/patch-src_bin_shell_kea-shell.in b/net/kea/files/patch-src_bin_shell_kea-shell.in
deleted file mode 100644
index caa0eea9db98..000000000000
--- a/net/kea/files/patch-src_bin_shell_kea-shell.in
+++ /dev/null
@@ -1,8 +0,0 @@
---- src/bin/shell/kea-shell.in.orig 2025-06-20 09:28:47.000000000 -0700
-+++ src/bin/shell/kea-shell.in 2025-08-13 09:47:11.947513000 -0700
-@@ -1,4 +1,4 @@
--#!@PYTHON@
-+#!/usr/bin/env /usr/local/bin/python3
-
- # Copyright (C) 2017-2025 Internet Systems Consortium, Inc. ("ISC")
- #
diff --git a/net/kea/pkg-plist b/net/kea/pkg-plist
index 357a8bdab3b1..08c26c31820c 100644
--- a/net/kea/pkg-plist
+++ b/net/kea/pkg-plist
@@ -472,8 +472,8 @@ lib/libkea-asiodns.so
lib/libkea-asiodns.so.62
lib/libkea-asiodns.so.62.0.0
lib/libkea-asiolink.so
-lib/libkea-asiolink.so.87
-lib/libkea-asiolink.so.87.0.0
+lib/libkea-asiolink.so.88
+lib/libkea-asiolink.so.88.0.0
lib/libkea-cc.so
lib/libkea-cc.so.82
lib/libkea-cc.so.82.0.0
@@ -484,8 +484,8 @@ lib/libkea-config.so
lib/libkea-config.so.83
lib/libkea-config.so.83.0.0
lib/libkea-cryptolink.so
-lib/libkea-cryptolink.so.63
-lib/libkea-cryptolink.so.63.0.0
+lib/libkea-cryptolink.so.64
+lib/libkea-cryptolink.so.64.0.0
lib/libkea-d2srv.so
lib/libkea-d2srv.so.63
lib/libkea-d2srv.so.63.0.0
@@ -499,8 +499,8 @@ lib/libkea-dhcp_ddns.so
lib/libkea-dhcp_ddns.so.68
lib/libkea-dhcp_ddns.so.68.0.0
lib/libkea-dhcpsrv.so
-lib/libkea-dhcpsrv.so.129
-lib/libkea-dhcpsrv.so.129.0.0
+lib/libkea-dhcpsrv.so.130
+lib/libkea-dhcpsrv.so.130.0.0
lib/libkea-dns.so
lib/libkea-dns.so.71
lib/libkea-dns.so.71.0.0
@@ -511,8 +511,8 @@ lib/libkea-exceptions.so
lib/libkea-exceptions.so.45
lib/libkea-exceptions.so.45.0.0
lib/libkea-hooks.so
-lib/libkea-hooks.so.118
-lib/libkea-hooks.so.118.0.0
+lib/libkea-hooks.so.119
+lib/libkea-hooks.so.119.0.0
lib/libkea-http.so
lib/libkea-http.so.87
lib/libkea-http.so.87.0.0
diff --git a/net/rubygem-gitlab-kas-grpc/distinfo b/net/rubygem-gitlab-kas-grpc/distinfo
index 6e9d5e738b2a..60540f0318be 100644
--- a/net/rubygem-gitlab-kas-grpc/distinfo
+++ b/net/rubygem-gitlab-kas-grpc/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755674007
-SHA256 (rubygem/gitlab-kas-grpc-18.3.0.gem) = 3dd60ca782066ff5b70d8e6405701f42b77fccb27e015d7a9ff159f84feb218f
-SIZE (rubygem/gitlab-kas-grpc-18.3.0.gem) = 10752
+TIMESTAMP = 1756438025
+SHA256 (rubygem/gitlab-kas-grpc-18.3.1.gem) = d8d1e3dc55a7f383184c76c5878adf49604b06411b95031128ac357a2a2b3e51
+SIZE (rubygem/gitlab-kas-grpc-18.3.1.gem) = 10752
diff --git a/ports-mgmt/Makefile b/ports-mgmt/Makefile
index cf436293cf0f..1803545359c4 100644
--- a/ports-mgmt/Makefile
+++ b/ports-mgmt/Makefile
@@ -82,5 +82,6 @@
SUBDIR += submodules2tuple
SUBDIR += synth
SUBDIR += wanted-ports
+ SUBDIR += zig2tuple
.include <bsd.port.subdir.mk>
diff --git a/ports-mgmt/zig2tuple/Makefile b/ports-mgmt/zig2tuple/Makefile
new file mode 100644
index 000000000000..409d788e9355
--- /dev/null
+++ b/ports-mgmt/zig2tuple/Makefile
@@ -0,0 +1,20 @@
+PORTNAME= zig2tuple
+DISTVERSION= g20250703
+CATEGORIES= ports-mgmt
+
+MAINTAINER= kenrap@kennethraplee.com
+COMMENT= Generate ZIG_TUPLE knob for Zig ports
+WWW= https://github.com/kenrap/zig2tuple
+
+LICENSE= BSD2CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= zig
+
+USE_GITHUB= yes
+GH_ACCOUNT= kenrap
+GH_TAGNAME= cead685e8f565c60f611b88eb51fd529a76752cf
+
+PLIST_FILES= bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/ports-mgmt/zig2tuple/distinfo b/ports-mgmt/zig2tuple/distinfo
new file mode 100644
index 000000000000..f72a20df04f4
--- /dev/null
+++ b/ports-mgmt/zig2tuple/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1751726671
+SHA256 (zig/kenrap-zig2tuple-g20250703-cead685e8f565c60f611b88eb51fd529a76752cf_GH0.tar.gz) = 000d6ee991f7eaa28cafd78973933ef98cbf0feecb5f1005ad662ffd1a13fce4
+SIZE (zig/kenrap-zig2tuple-g20250703-cead685e8f565c60f611b88eb51fd529a76752cf_GH0.tar.gz) = 3062
diff --git a/ports-mgmt/zig2tuple/pkg-descr b/ports-mgmt/zig2tuple/pkg-descr
new file mode 100644
index 000000000000..6e86a4926a36
--- /dev/null
+++ b/ports-mgmt/zig2tuple/pkg-descr
@@ -0,0 +1,3 @@
+zig2tuple is a FreeBSD ports utility that converts Zig Object Notation
+dependency entries (build.zig.zon files) to the ZIG_TUPLE knob that is later
+consumed the USES=zig machinery.
diff --git a/print/sioyek/Makefile b/print/sioyek/Makefile
index 55b04a09bf8c..93e269d9a1a5 100644
--- a/print/sioyek/Makefile
+++ b/print/sioyek/Makefile
@@ -1,7 +1,7 @@
PORTNAME= sioyek
DISTVERSIONPREFIX= v
DISTVERSION= 2.0.0.20250513
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= print
MAINTAINER= fuz@FreeBSD.org
diff --git a/science/openmodelica/Makefile b/science/openmodelica/Makefile
index dafafc57c8da..fd76e7f0a190 100644
--- a/science/openmodelica/Makefile
+++ b/science/openmodelica/Makefile
@@ -1,7 +1,6 @@
PORTNAME= openmodelica
DISTVERSIONPREFIX= v
-DISTVERSION= 1.25.1
-PORTREVISION= 1
+DISTVERSION= 1.25.2
CATEGORIES= science cad java
DIST_SUBDIR= ${PORTNAME}-${PORTVERSION}
@@ -54,15 +53,15 @@ GH_PROJECT= OpenModelica
SHEBANG_GLOB= *.sh *.in *.ac
GH_TUPLE= \
- OpenModelica:OMOptim:f1036f43db18c5015da259771004cfb80e08a110:OpenModelica_OMOptim/OMOptim \
- OpenModelica:OMSimulator:46fa40f:OpenModelica_OMSimulator/OMSimulator \
+ OpenModelica:OMOptim:d53288b:OpenModelica_OMOptim/OMOptim \
+ OpenModelica:OMSimulator:e3a3aeb:OpenModelica_OMSimulator/OMSimulator \
OpenModelica:OMSimulator-3rdParty:5c10de1648d1134a577d9284b58580a72383d89f:OpenModelica_OMSimulator_3rdParty/OMSimulator/3rdParty \
OpenModelica:OMCompiler-3rdParty:520663f:OpenModelica_OMCompiler_3rdParty/OMCompiler/3rdParty \
OpenModelica:OMSens:093ad11:OpenModelica_OMSens/OMSens \
OpenModelica:OMSens_Qt:bab329a:OpenModelica_OMSens_Qt/OMSens_Qt \
OpenModelica:OpenModelica-common:08a01802db5ba5edb540383c46718b89ff229ef2:OpenModelica_OpenModelica_common/OMOptim/common \
OpenModelica:OpenModelica-common:08a01802db5ba5edb540383c46718b89ff229ef2:OpenModelica_OpenModelica_common/OMSens_Qt/common
-GH_TUPLE+= OpenModelica:OMBootstrapping:91938f0acbdc6e9ba91114376e3640ca6147b579:bootstrapping/OMCompiler/Compiler/boot/bomc # downloaded by cmake
+GH_TUPLE+= OpenModelica:OMBootstrapping:04d16f7461e5401321f0f72613daf466ae2f76be:bootstrapping/OMCompiler/Compiler/boot/bomc # downloaded by cmake
# this should change make program everywhere, but it doesn't,
# hence the patches in OMCompiler/Compiler/runtime/CMakeLists.txt, OMEdit/OMEditLIB/Simulation/SimulationOutputWidget.cpp
diff --git a/science/openmodelica/distinfo b/science/openmodelica/distinfo
index 66b481d27d53..56ac7fddde4b 100644
--- a/science/openmodelica/distinfo
+++ b/science/openmodelica/distinfo
@@ -1,19 +1,19 @@
-TIMESTAMP = 1750120788
-SHA256 (openmodelica-1.25.1/OpenModelica-OpenModelica-v1.25.1_GH0.tar.gz) = f7d819fd7b838bad5ddbbd9ee585e49053464db68c0b9a406b2f9fea400ac2e5
-SIZE (openmodelica-1.25.1/OpenModelica-OpenModelica-v1.25.1_GH0.tar.gz) = 148275827
-SHA256 (openmodelica-1.25.1/OpenModelica-OMOptim-f1036f43db18c5015da259771004cfb80e08a110_GH0.tar.gz) = 11189c8ab3fb9d22ed805271ef53b9698b0d41007a1708d7a77ef074a5b20447
-SIZE (openmodelica-1.25.1/OpenModelica-OMOptim-f1036f43db18c5015da259771004cfb80e08a110_GH0.tar.gz) = 4022842
-SHA256 (openmodelica-1.25.1/OpenModelica-OMSimulator-46fa40f_GH0.tar.gz) = eb5fbb88b2cf6a3556c43ee4c0b446fb26a70be06ddfb4031e50636dc1af1048
-SIZE (openmodelica-1.25.1/OpenModelica-OMSimulator-46fa40f_GH0.tar.gz) = 92370094
-SHA256 (openmodelica-1.25.1/OpenModelica-OMSimulator-3rdParty-5c10de1648d1134a577d9284b58580a72383d89f_GH0.tar.gz) = ea57e90ea76eca2657e8ddaa6c87301a16661200b3e8a00347a12bfdbb5f973d
-SIZE (openmodelica-1.25.1/OpenModelica-OMSimulator-3rdParty-5c10de1648d1134a577d9284b58580a72383d89f_GH0.tar.gz) = 7637943
-SHA256 (openmodelica-1.25.1/OpenModelica-OMCompiler-3rdParty-520663f_GH0.tar.gz) = 37c82357fc1e862eb13d79cf1ff2d143f263502472db9bb2c350c0c551022954
-SIZE (openmodelica-1.25.1/OpenModelica-OMCompiler-3rdParty-520663f_GH0.tar.gz) = 50256095
-SHA256 (openmodelica-1.25.1/OpenModelica-OMSens-093ad11_GH0.tar.gz) = 335512c08f94902bb07e75278cea791370a551336272f7bebef8c707ef5e5e2b
-SIZE (openmodelica-1.25.1/OpenModelica-OMSens-093ad11_GH0.tar.gz) = 8871049
-SHA256 (openmodelica-1.25.1/OpenModelica-OMSens_Qt-bab329a_GH0.tar.gz) = 2f2dcba4defd7f13e9fd5e0c26bb4951b9f1fcc7da64960a6ad1cee32a628efa
-SIZE (openmodelica-1.25.1/OpenModelica-OMSens_Qt-bab329a_GH0.tar.gz) = 211270
-SHA256 (openmodelica-1.25.1/OpenModelica-OpenModelica-common-08a01802db5ba5edb540383c46718b89ff229ef2_GH0.tar.gz) = fdb5bb442da0375373ef221cf26195114bf149511c1c2be051caad6301c21c9a
-SIZE (openmodelica-1.25.1/OpenModelica-OpenModelica-common-08a01802db5ba5edb540383c46718b89ff229ef2_GH0.tar.gz) = 36148
-SHA256 (openmodelica-1.25.1/OpenModelica-OMBootstrapping-91938f0acbdc6e9ba91114376e3640ca6147b579_GH0.tar.gz) = 1a0327dabedd09dab3aa872af194b6d4e79bacc45659ea3154076e7f1f54b2cc
-SIZE (openmodelica-1.25.1/OpenModelica-OMBootstrapping-91938f0acbdc6e9ba91114376e3640ca6147b579_GH0.tar.gz) = 3328929
+TIMESTAMP = 1756357301
+SHA256 (openmodelica-1.25.2/OpenModelica-OpenModelica-v1.25.2_GH0.tar.gz) = a56f60074842f8b10c05d8ad323e89937b38ecbea0c9f062858f57d5ab8dbf7c
+SIZE (openmodelica-1.25.2/OpenModelica-OpenModelica-v1.25.2_GH0.tar.gz) = 148277183
+SHA256 (openmodelica-1.25.2/OpenModelica-OMOptim-d53288b_GH0.tar.gz) = d5012951f43e90dce03d7866d221278ee11ddfbdac4db20fe43d93adbc3748e7
+SIZE (openmodelica-1.25.2/OpenModelica-OMOptim-d53288b_GH0.tar.gz) = 4024177
+SHA256 (openmodelica-1.25.2/OpenModelica-OMSimulator-e3a3aeb_GH0.tar.gz) = 6192d933c258950fb0171f5d0ddac0353632d17ee99f6974ba53dd654f547e49
+SIZE (openmodelica-1.25.2/OpenModelica-OMSimulator-e3a3aeb_GH0.tar.gz) = 95557541
+SHA256 (openmodelica-1.25.2/OpenModelica-OMSimulator-3rdParty-5c10de1648d1134a577d9284b58580a72383d89f_GH0.tar.gz) = ea57e90ea76eca2657e8ddaa6c87301a16661200b3e8a00347a12bfdbb5f973d
+SIZE (openmodelica-1.25.2/OpenModelica-OMSimulator-3rdParty-5c10de1648d1134a577d9284b58580a72383d89f_GH0.tar.gz) = 7637943
+SHA256 (openmodelica-1.25.2/OpenModelica-OMCompiler-3rdParty-520663f_GH0.tar.gz) = 37c82357fc1e862eb13d79cf1ff2d143f263502472db9bb2c350c0c551022954
+SIZE (openmodelica-1.25.2/OpenModelica-OMCompiler-3rdParty-520663f_GH0.tar.gz) = 50256095
+SHA256 (openmodelica-1.25.2/OpenModelica-OMSens-093ad11_GH0.tar.gz) = 335512c08f94902bb07e75278cea791370a551336272f7bebef8c707ef5e5e2b
+SIZE (openmodelica-1.25.2/OpenModelica-OMSens-093ad11_GH0.tar.gz) = 8871049
+SHA256 (openmodelica-1.25.2/OpenModelica-OMSens_Qt-bab329a_GH0.tar.gz) = 2f2dcba4defd7f13e9fd5e0c26bb4951b9f1fcc7da64960a6ad1cee32a628efa
+SIZE (openmodelica-1.25.2/OpenModelica-OMSens_Qt-bab329a_GH0.tar.gz) = 211270
+SHA256 (openmodelica-1.25.2/OpenModelica-OpenModelica-common-08a01802db5ba5edb540383c46718b89ff229ef2_GH0.tar.gz) = fdb5bb442da0375373ef221cf26195114bf149511c1c2be051caad6301c21c9a
+SIZE (openmodelica-1.25.2/OpenModelica-OpenModelica-common-08a01802db5ba5edb540383c46718b89ff229ef2_GH0.tar.gz) = 36148
+SHA256 (openmodelica-1.25.2/OpenModelica-OMBootstrapping-04d16f7461e5401321f0f72613daf466ae2f76be_GH0.tar.gz) = 9ac6d28be6a331dfb61a57b033f2bcf984448cd63bc1a4cd140d60c2f5c64a79
+SIZE (openmodelica-1.25.2/OpenModelica-OMBootstrapping-04d16f7461e5401321f0f72613daf466ae2f76be_GH0.tar.gz) = 3346859
diff --git a/science/openmodelica/pkg-plist b/science/openmodelica/pkg-plist
index 2f3a85526399..9c08ba4f8e0a 100644
--- a/science/openmodelica/pkg-plist
+++ b/science/openmodelica/pkg-plist
@@ -778,12 +778,15 @@ share/OMSimulator/schema/fmi3/fmi3Type.xsd
share/OMSimulator/schema/fmi3/fmi3Unit.xsd
share/OMSimulator/schema/fmi3/fmi3Variable.xsd
share/OMSimulator/schema/fmi3/fmi3VariableDependency.xsd
+share/OMSimulator/schema/ssp/SSPTraceabilityCommon.xsd
+share/OMSimulator/schema/ssp/SimulationResourceMetaData.xsd
share/OMSimulator/schema/ssp/SystemStructureCommon.xsd
share/OMSimulator/schema/ssp/SystemStructureDescription.xsd
share/OMSimulator/schema/ssp/SystemStructureDescription11.xsd
share/OMSimulator/schema/ssp/SystemStructureParameterMapping.xsd
share/OMSimulator/schema/ssp/SystemStructureParameterValues.xsd
share/OMSimulator/schema/ssp/SystemStructureSignalDictionary.xsd
+share/OMSimulator/schema/ssp/xlink.xsd
share/OMSimulator/scripts/OMSimulatorServer.py
share/cmake/ZeroMQ/ZeroMQConfig.cmake
share/cmake/ZeroMQ/ZeroMQConfigVersion.cmake
diff --git a/security/hashcat/Makefile b/security/hashcat/Makefile
index 6a32d8830b52..be113eb03c5f 100644
--- a/security/hashcat/Makefile
+++ b/security/hashcat/Makefile
@@ -1,7 +1,6 @@
PORTNAME= hashcat
-PORTVERSION= 6.2.6
+PORTVERSION= 7.1.2
DISTVERSIONPREFIX= v
-PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= security
@@ -12,12 +11,15 @@ WWW= https://hashcat.net/hashcat/
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/docs/license.txt
-NOT_FOR_ARCHS= powerpc powerpc64 powerpcspe
-NOT_FOR_ARCHS_REASON= fails to compile: compiling for big-endian architecture not supported
+NOT_FOR_ARCHS= powerpc powerpc64 powerpcspe i386
+NOT_FOR_ARCHS_REASON= highly optimized for specific CPUs
-BUILD_DEPENDS= minizip:archivers/minizip
+BUILD_DEPENDS= minizip:archivers/minizip \
+ rustc:lang/${RUST_DEFAULT}
+LIB_DEPENDS= libiconv.so:converters/libiconv
-USES= compiler:c11 gmake iconv localbase python shebangfix
+USES= cargo compiler:c++11-lang gmake iconv localbase \
+ python:3.12+,build shebangfix
USE_GITHUB= yes
GH_ACCOUNT= KhronosGroup:opencl Cyan4973:xxhash
@@ -28,14 +30,18 @@ PYTHON_NO_DEPENDS= yes
SHEBANG_FILES= extra/tab_completion/install tools/*.py
-MAKE_ARGS+= SHARED=1 \
- CC="${CC}" \
- LFLAGS_NATIVE="${LDFLAGS} -lpthread -lm" \
- CFLAGS_NATIVE="${CFLAGS} -Iinclude -IOpenCL -Ideps/LZMA-SDK/C \
- -Ideps/git/OpenCL-Headers"
-ALL_TARGET= default
+CARGO_CARGOLOCK= ${WRKSRC}/Rust/generic_hash/Cargo.lock
+CARGO_CARGOTOML= ${WRKSRC}/Rust/generic_hash/Cargo.toml
+CARGO_INSTALL= no
+
+MAKE_ARGS= SHARED=1
+
+ALL_TARGET= default
+MAKE_ARGS+= CFLAGS_PYTHON=-I${LOCALBASE}/include/${PYTHON_VERSION}
CFLAGS_aarch64+= -march=armv8-a+crc+crypto
+BINARY_ALIAS= python3-config ${PYTHON_VERSION}-config
+
PLIST_SUB= PORTVERSION=${PORTVERSION}
OPTIONS_DEFINE= BRAIN DOCS
@@ -44,9 +50,4 @@ BRAIN_DESC= Build Hashcat Brain
BRAIN_MAKE_ARGS_OFF= ENABLE_BRAIN=0
BRAIN_CFLAGS= -DWITH_BRAIN -Ideps/git/xxHash
-pre-install:
- ${STRIP_CMD} ${WRKSRC}/libhashcat.so.${PORTVERSION}
- ${STRIP_CMD} ${WRKSRC}/modules/*.so
- ${STRIP_CMD} ${WRKSRC}/hashcat
-
.include <bsd.port.mk>
diff --git a/security/hashcat/Makefile.crates b/security/hashcat/Makefile.crates
new file mode 100644
index 000000000000..3d950138cddc
--- /dev/null
+++ b/security/hashcat/Makefile.crates
@@ -0,0 +1,44 @@
+CARGO_CRATES= aho-corasick-1.1.3 \
+ bindgen-0.72.0 \
+ bitflags-2.9.3 \
+ block-buffer-0.10.4 \
+ cexpr-0.6.0 \
+ cfg-if-1.0.3 \
+ clang-sys-1.8.1 \
+ cpufeatures-0.2.17 \
+ crypto-common-0.1.6 \
+ digest-0.10.7 \
+ either-1.15.0 \
+ generic-array-0.14.7 \
+ glob-0.3.3 \
+ hex-0.4.3 \
+ itertools-0.13.0 \
+ libc-0.2.175 \
+ libloading-0.8.8 \
+ log-0.4.27 \
+ memchr-2.7.5 \
+ minimal-lexical-0.2.1 \
+ nom-7.1.3 \
+ prettyplease-0.2.37 \
+ proc-macro2-1.0.101 \
+ quote-1.0.40 \
+ regex-1.11.2 \
+ regex-automata-0.4.10 \
+ regex-syntax-0.8.6 \
+ rustc-hash-2.1.1 \
+ sha2-0.10.9 \
+ shlex-1.3.0 \
+ syn-2.0.106 \
+ typenum-1.18.0 \
+ unicode-ident-1.0.18 \
+ version_check-0.9.5 \
+ windows-link-0.1.3 \
+ windows-targets-0.53.3 \
+ windows_aarch64_gnullvm-0.53.0 \
+ windows_aarch64_msvc-0.53.0 \
+ windows_i686_gnu-0.53.0 \
+ windows_i686_gnullvm-0.53.0 \
+ windows_i686_msvc-0.53.0 \
+ windows_x86_64_gnu-0.53.0 \
+ windows_x86_64_gnullvm-0.53.0 \
+ windows_x86_64_msvc-0.53.0
diff --git a/security/hashcat/distinfo b/security/hashcat/distinfo
index 91475d03128c..37633b489199 100644
--- a/security/hashcat/distinfo
+++ b/security/hashcat/distinfo
@@ -1,6 +1,94 @@
-TIMESTAMP = 1662143219
-SHA256 (hashcat-hashcat-v6.2.6_GH0.tar.gz) = b25e1077bcf34908cc8f18c1a69a2ec98b047b2cbcf0f51144dcf3ba1e0b7b2a
-SIZE (hashcat-hashcat-v6.2.6_GH0.tar.gz) = 14234640
+TIMESTAMP = 1756203030
+SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
+SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
+SHA256 (rust/crates/bindgen-0.72.0.crate) = 4f72209734318d0b619a5e0f5129918b848c416e122a3c4ce054e03cb87b726f
+SIZE (rust/crates/bindgen-0.72.0.crate) = 246019
+SHA256 (rust/crates/bitflags-2.9.3.crate) = 34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d
+SIZE (rust/crates/bitflags-2.9.3.crate) = 47777
+SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
+SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538
+SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766
+SIZE (rust/crates/cexpr-0.6.0.crate) = 17966
+SHA256 (rust/crates/cfg-if-1.0.3.crate) = 2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9
+SIZE (rust/crates/cfg-if-1.0.3.crate) = 8719
+SHA256 (rust/crates/clang-sys-1.8.1.crate) = 0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4
+SIZE (rust/crates/clang-sys-1.8.1.crate) = 44009
+SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280
+SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466
+SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
+SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760
+SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292
+SIZE (rust/crates/digest-0.10.7.crate) = 19557
+SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
+SIZE (rust/crates/either-1.15.0.crate) = 20114
+SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a
+SIZE (rust/crates/generic-array-0.14.7.crate) = 15950
+SHA256 (rust/crates/glob-0.3.3.crate) = 0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280
+SIZE (rust/crates/glob-0.3.3.crate) = 22861
+SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70
+SIZE (rust/crates/hex-0.4.3.crate) = 13299
+SHA256 (rust/crates/itertools-0.13.0.crate) = 413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186
+SIZE (rust/crates/itertools-0.13.0.crate) = 146261
+SHA256 (rust/crates/libc-0.2.175.crate) = 6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543
+SIZE (rust/crates/libc-0.2.175.crate) = 788728
+SHA256 (rust/crates/libloading-0.8.8.crate) = 07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667
+SIZE (rust/crates/libloading-0.8.8.crate) = 31345
+SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94
+SIZE (rust/crates/log-0.4.27.crate) = 48120
+SHA256 (rust/crates/memchr-2.7.5.crate) = 32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0
+SIZE (rust/crates/memchr-2.7.5.crate) = 97603
+SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
+SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
+SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
+SIZE (rust/crates/nom-7.1.3.crate) = 117570
+SHA256 (rust/crates/prettyplease-0.2.37.crate) = 479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b
+SIZE (rust/crates/prettyplease-0.2.37.crate) = 72033
+SHA256 (rust/crates/proc-macro2-1.0.101.crate) = 89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de
+SIZE (rust/crates/proc-macro2-1.0.101.crate) = 53886
+SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d
+SIZE (rust/crates/quote-1.0.40.crate) = 31063
+SHA256 (rust/crates/regex-1.11.2.crate) = 23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912
+SIZE (rust/crates/regex-1.11.2.crate) = 166265
+SHA256 (rust/crates/regex-automata-0.4.10.crate) = 6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6
+SIZE (rust/crates/regex-automata-0.4.10.crate) = 622754
+SHA256 (rust/crates/regex-syntax-0.8.6.crate) = caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001
+SIZE (rust/crates/regex-syntax-0.8.6.crate) = 358808
+SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d
+SIZE (rust/crates/rustc-hash-2.1.1.crate) = 14154
+SHA256 (rust/crates/sha2-0.10.9.crate) = a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283
+SIZE (rust/crates/sha2-0.10.9.crate) = 29271
+SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
+SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/syn-2.0.106.crate) = ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6
+SIZE (rust/crates/syn-2.0.106.crate) = 301514
+SHA256 (rust/crates/typenum-1.18.0.crate) = 1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f
+SIZE (rust/crates/typenum-1.18.0.crate) = 74871
+SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512
+SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743
+SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
+SIZE (rust/crates/version_check-0.9.5.crate) = 15554
+SHA256 (rust/crates/windows-link-0.1.3.crate) = 5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a
+SIZE (rust/crates/windows-link-0.1.3.crate) = 6154
+SHA256 (rust/crates/windows-targets-0.53.3.crate) = d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91
+SIZE (rust/crates/windows-targets-0.53.3.crate) = 7099
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764
+SIZE (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 782443
+SHA256 (rust/crates/windows_aarch64_msvc-0.53.0.crate) = c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c
+SIZE (rust/crates/windows_aarch64_msvc-0.53.0.crate) = 834446
+SHA256 (rust/crates/windows_i686_gnu-0.53.0.crate) = c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3
+SIZE (rust/crates/windows_i686_gnu-0.53.0.crate) = 936973
+SHA256 (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11
+SIZE (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 854056
+SHA256 (rust/crates/windows_i686_msvc-0.53.0.crate) = 581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d
+SIZE (rust/crates/windows_i686_msvc-0.53.0.crate) = 903450
+SHA256 (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba
+SIZE (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 902585
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57
+SIZE (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 782434
+SHA256 (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486
+SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400
+SHA256 (hashcat-hashcat-v7.1.2_GH0.tar.gz) = 9546a6326d747530b44fcc079babad40304a87f32d3c9080016d58b39cfc8b96
+SIZE (hashcat-hashcat-v7.1.2_GH0.tar.gz) = 19125734
SHA256 (KhronosGroup-OpenCL-Headers-1d3dc4e_GH0.tar.gz) = 21ddb21f6643e5c76aec7a78c9c2aaac6f5e4c82cd4603b437c899026c833977
SIZE (KhronosGroup-OpenCL-Headers-1d3dc4e_GH0.tar.gz) = 59767
SHA256 (Cyan4973-xxHash-c0e86bc_GH0.tar.gz) = 7dc0343140d92f19d5b436591bdb8313b6cb2c686bccb7ff5caafcbc136fe468
diff --git a/security/hashcat/files/patch-deps_LZMA-SDK_C_7zTypes.h b/security/hashcat/files/patch-deps_LZMA-SDK_C_7zTypes.h
deleted file mode 100644
index b2ac34f0e546..000000000000
--- a/security/hashcat/files/patch-deps_LZMA-SDK_C_7zTypes.h
+++ /dev/null
@@ -1,13 +0,0 @@
---- deps/LZMA-SDK/C/7zTypes.h.orig 2021-11-21 15:39:01 UTC
-+++ deps/LZMA-SDK/C/7zTypes.h
-@@ -196,8 +196,8 @@ typedef void *LPVOID;
- // typedef void VOID;
- // typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
- // gcc / clang on Unix : sizeof(long==sizeof(void*) in 32 or 64 bits)
--typedef long INT_PTR;
--typedef unsigned long UINT_PTR;
-+// typedef long INT_PTR;
-+// typedef unsigned long UINT_PTR;
- typedef long LONG_PTR;
- typedef unsigned long DWORD_PTR;
-
diff --git a/security/hashcat/files/patch-deps_LZMA-SDK_C_CpuArch.c b/security/hashcat/files/patch-deps_LZMA-SDK_C_CpuArch.c
deleted file mode 100644
index a788aaec3e8b..000000000000
--- a/security/hashcat/files/patch-deps_LZMA-SDK_C_CpuArch.c
+++ /dev/null
@@ -1,34 +0,0 @@
---- deps/LZMA-SDK/C/CpuArch.c.orig 2022-03-25 08:13:08 UTC
-+++ deps/LZMA-SDK/C/CpuArch.c
-@@ -384,6 +384,23 @@ BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYP
-
- #include <sys/auxv.h>
-
-+#if defined(__FreeBSD__)
-+static UInt64 get_hwcap() {
-+ unsigned long hwcap;
-+ if(elf_aux_info(AT_HWCAP, &hwcap, sizeof(unsigned long)) != 0) {
-+ return(0);
-+ }
-+ return hwcap;
-+}
-+
-+BoolInt CPU_IsSupported_CRC32(void) { return get_hwcap() & HWCAP_CRC32; }
-+BoolInt CPU_IsSupported_NEON(void) { return 1; }
-+BoolInt CPU_IsSupported_SHA1(void){ return get_hwcap() & HWCAP_SHA1; }
-+BoolInt CPU_IsSupported_SHA2(void) { return get_hwcap() & HWCAP_SHA2; }
-+BoolInt CPU_IsSupported_AES(void) { return get_hwcap() & HWCAP_AES; }
-+
-+#else // __FreeBSD__
-+
- #define USE_HWCAP
-
- #ifdef USE_HWCAP
-@@ -410,6 +427,7 @@ MY_HWCAP_CHECK_FUNC (SHA1)
- MY_HWCAP_CHECK_FUNC (SHA2)
- MY_HWCAP_CHECK_FUNC (AES)
-
-+#endif // FreeBSD
- #endif // __APPLE__
- #endif // _WIN32
-
diff --git a/security/hashcat/files/patch-include_sort__r.h b/security/hashcat/files/patch-include_sort__r.h
deleted file mode 100644
index 3e1d0e0d9d33..000000000000
--- a/security/hashcat/files/patch-include_sort__r.h
+++ /dev/null
@@ -1,33 +0,0 @@
---- include/sort_r.h.orig 2022-09-02 14:58:13 UTC
-+++ include/sort_r.h
-@@ -25,10 +25,10 @@ Slightly modified to work with hashcat to no falsly de
- */
-
- #if (defined __APPLE__ || defined __MACH__ || defined __DARWIN__ || \
-- defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__)
-+ (defined __FreeBSD__ && !defined(qsort_r)) || defined __DragonFly__ || defined __NetBSD__)
- # define _SORT_R_BSD
- # define _SORT_R_INLINE inline
--#elif (defined __linux__) || defined (__CYGWIN__)
-+#elif (defined __linux__) || defined (__CYGWIN__) || (defined (__FreeBSD__) && defined(qsort_r))
- # define _SORT_R_LINUX
- # define _SORT_R_INLINE inline
- #elif (defined _WIN32 || defined _WIN64 || defined __WINDOWS__)
-@@ -167,7 +167,7 @@ static _SORT_R_INLINE void sort_r_simple(void *base, s
- #if defined _SORT_R_LINUX
-
- typedef int(* __compar_d_fn_t)(const void *, const void *, void *);
-- extern void qsort_r(void *base, size_t nel, size_t width,
-+ extern void (qsort_r)(void *base, size_t nel, size_t width,
- __compar_d_fn_t __compar, void *arg)
- __attribute__((nonnull (1, 4)));
-
-@@ -186,7 +186,7 @@ static _SORT_R_INLINE void sort_r_simple(void *base, s
- /* no qsort_r in glibc before 2.8, need to use nested qsort */
- sort_r_simple(base, nel, width, compar, arg);
-
-- #elif defined __GLIBC__
-+ #elif defined __GLIBC__ || (defined(__FreeBSD__) && defined(qsort_r))
-
- qsort_r(base, nel, width, compar, arg);
-
diff --git a/security/hashcat/files/patch-src_Makefile b/security/hashcat/files/patch-src_Makefile
index 6b66a129610e..e728d5dc6d15 100644
--- a/security/hashcat/files/patch-src_Makefile
+++ b/security/hashcat/files/patch-src_Makefile
@@ -1,7 +1,19 @@
---- src/Makefile.orig 2022-09-02 14:58:13 UTC
+--- src/Makefile.orig 2025-08-23 08:43:56 UTC
+++ src/Makefile
-@@ -82,7 +82,9 @@ CXX := c++
- ifneq (,$(filter $(UNAME),FreeBSD NetBSD))
+@@ -75,8 +75,9 @@ RM := rm
+ FIND := find
+ INSTALL := install
+ RM := rm
+-SED := sed
+-SED_IN_PLACE := -i
++CXXLIB := -lc++
++SED := /usr/bin/sed
++SED_IN_PLACE := -i ""
+
+ ifeq ($(UNAME),Darwin)
+ CC := clang
+@@ -95,7 +96,9 @@ CXX := c++
+ ifneq (,$(filter $(UNAME),FreeBSD NetBSD DragonFly))
CC := cc
CXX := c++
-SED := gsed
@@ -10,17 +22,8 @@
+SED_IN_PLACE := -i ""
endif
- ##
-@@ -213,7 +215,7 @@ ifneq ($(CC),clang)
- ifeq ($(ENABLE_UNRAR),1)
- ifeq ($(USE_SYSTEM_UNRAR),0)
- ifneq ($(CC),clang)
--CFLAGS_UNRAR += -Wno-class-memaccess
-+#CFLAGS_UNRAR += -Wno-class-memaccess
- CFLAGS_UNRAR += -Wno-misleading-indentation
- endif
- CFLAGS_UNRAR += -Wno-missing-braces
-@@ -608,6 +610,11 @@ uninstall:
+ ifneq (,$(filter $(UNAME),OpenBSD))
+@@ -702,6 +705,11 @@ uninstall:
## native compiled hashcat library and frontend
##
@@ -32,7 +35,7 @@
obj/%.NATIVE.o: src/%.c
$(CC) -c $(CCFLAGS) $(CFLAGS_NATIVE) $< -o $@ -fpic
-@@ -651,10 +658,10 @@ $(HASHCAT_FRONTEND): src/main.c $(HASHCAT_LIBRARY)
+@@ -752,10 +760,10 @@ $(HASHCAT_FRONTEND): src/main.c $(HASHCAT_LIBRARY)
ifeq ($(SHARED),1)
$(HASHCAT_FRONTEND): src/main.c $(HASHCAT_LIBRARY)
diff --git a/security/hashcat/files/patch-src_terminal.c b/security/hashcat/files/patch-src_terminal.c
deleted file mode 100644
index cf2d5cded207..000000000000
--- a/security/hashcat/files/patch-src_terminal.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/terminal.c.orig 2022-09-02 14:58:13 UTC
-+++ src/terminal.c
-@@ -490,7 +490,7 @@ int tty_fix ()
- }
- #endif
-
--#if defined (__APPLE__) || defined (__FreeBSD__)
-+#if defined (__APPLE__)
- static struct termios savemodes;
- static int havemodes = 0;
-
diff --git a/security/hashcat/pkg-plist b/security/hashcat/pkg-plist
index a8adf7f88253..ca2514147a46 100644
--- a/security/hashcat/pkg-plist
+++ b/security/hashcat/pkg-plist
@@ -1,4 +1,28 @@
+bin/aescrypt2hashcat.pl
+bin/apfs2hashcat.py
+bin/bisq2hashcat.py
+bin/bitlocker2hashcat.py
+bin/bitwarden2hashcat.py
+bin/cachedata2hashcat.py
+bin/cryptoloop2hashcat.py
+bin/exodus2hashcat.py
+bin/gitea2hashcat.py
bin/hashcat
+bin/keybag2hashcat.py
+bin/kremlin2hashcat.py
+bin/lastpass2hashcat.py
+bin/luks2hashcat.py
+bin/metamask2hashcat.py
+bin/mozilla2hashcat.py
+bin/radmin3_to_hashcat.pl
+bin/securenotes2hashcat.pl
+bin/shiro1-to-hashcat.py
+bin/sqlcipher2hashcat.pl
+bin/truecrypt2hashcat.py
+bin/veeamvbk2hashcat.py
+bin/veracrypt2hashcat.py
+bin/virtualbox2hashcat.py
+bin/vmwarevmx2hashcat.py
include/hashcat/affinity.h
include/hashcat/autotune.h
include/hashcat/backend.h
@@ -6,11 +30,13 @@ include/hashcat/benchmark.h
include/hashcat/bitmap.h
include/hashcat/bitops.h
include/hashcat/brain.h
+include/hashcat/bridges.h
include/hashcat/combinator.h
include/hashcat/common.h
include/hashcat/convert.h
include/hashcat/cpt.h
include/hashcat/cpu_crc32.h
+include/hashcat/cpu_features.h
include/hashcat/debugfile.h
include/hashcat/dictstat.h
include/hashcat/dispatch.h
@@ -43,6 +69,7 @@ include/hashcat/ext_nvml.h
include/hashcat/ext_nvrtc.h
include/hashcat/ext_sysfs_amdgpu.h
include/hashcat/ext_sysfs_cpu.h
+include/hashcat/ext_sysfs_intelgpu.h
include/hashcat/filehandling.h
include/hashcat/folder.h
include/hashcat/hashcat.h
@@ -182,6 +209,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%PORTDOCS%%%%DOCSDIR%%/charsets/standard/Portuguese/pt_ISO-8859-1.hcchr
%%PORTDOCS%%%%DOCSDIR%%/charsets/standard/Portuguese/pt_ISO-8859-15.hcchr
%%PORTDOCS%%%%DOCSDIR%%/charsets/standard/Portuguese/pt_cp1252.hcchr
+%%PORTDOCS%%%%DOCSDIR%%/charsets/standard/Romanian/ro_ISO-8859-2.hcchr
%%PORTDOCS%%%%DOCSDIR%%/charsets/standard/Russian/ru_ISO-8859-5.hcchr
%%PORTDOCS%%%%DOCSDIR%%/charsets/standard/Russian/ru_KOI8-R.hcchr
%%PORTDOCS%%%%DOCSDIR%%/charsets/standard/Russian/ru_cp1251.hcchr
@@ -194,22 +222,36 @@ lib/libhashcat.so.%%PORTVERSION%%
%%PORTDOCS%%%%DOCSDIR%%/docs/changes.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/contact.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/credits.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/device_status_code.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/exit_status_code.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/hashcat-assimilation-bridge-development.md
+%%PORTDOCS%%%%DOCSDIR%%/docs/hashcat-assimilation-bridge.md
%%PORTDOCS%%%%DOCSDIR%%/docs/hashcat-brain.md
+%%PORTDOCS%%%%DOCSDIR%%/docs/hashcat-example-hashes.md
+%%PORTDOCS%%%%DOCSDIR%%/docs/hashcat-help.md
%%PORTDOCS%%%%DOCSDIR%%/docs/hashcat-plugin-development-guide.md
+%%PORTDOCS%%%%DOCSDIR%%/docs/hashcat-python-plugin-development-guide.md
+%%PORTDOCS%%%%DOCSDIR%%/docs/hashcat-python-plugin-quickstart.md
+%%PORTDOCS%%%%DOCSDIR%%/docs/hashcat-python-plugin-requirements.md
+%%PORTDOCS%%%%DOCSDIR%%/docs/hashcat-rust-plugin-requirements.md
%%PORTDOCS%%%%DOCSDIR%%/docs/keyboard-layout-mapping.md
%%PORTDOCS%%%%DOCSDIR%%/docs/license.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/license_libs/LZMA_SDK_LICENSE.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/license_libs/MINIZ_LICENSE.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/license_libs/OPENCL_HEADERS_LICENSE.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/license_libs/SSE2NEON_LICENSE.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/license_libs/UNRAR_LICENSE.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/license_libs/XXHASH_LICENSE.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/license_libs/ZLIB_LICENSE.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/limits.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/performance.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/readme.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/releases_notes_v7.0.0.md
+%%PORTDOCS%%%%DOCSDIR%%/docs/releases_notes_v7.0.0.pdf
+%%PORTDOCS%%%%DOCSDIR%%/docs/releases_notes_v7.1.0.md
+%%PORTDOCS%%%%DOCSDIR%%/docs/releases_notes_v7.1.0.pdf
%%PORTDOCS%%%%DOCSDIR%%/docs/rules.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/slow-candidates-mode.md
-%%PORTDOCS%%%%DOCSDIR%%/docs/status_codes.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/team.txt
%%PORTDOCS%%%%DOCSDIR%%/docs/user_manuals.txt
%%PORTDOCS%%%%DOCSDIR%%/example.dict
@@ -224,6 +266,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%PORTDOCS%%%%DOCSDIR%%/extra/tab_completion/install
%%PORTDOCS%%%%DOCSDIR%%/layouts/ch_de.hckmap
%%PORTDOCS%%%%DOCSDIR%%/layouts/ch_fr.hckmap
+%%PORTDOCS%%%%DOCSDIR%%/layouts/da.hckmap
%%PORTDOCS%%%%DOCSDIR%%/layouts/de.hckmap
%%PORTDOCS%%%%DOCSDIR%%/layouts/it.hckmap
%%PORTDOCS%%%%DOCSDIR%%/layouts/ru.hckmap
@@ -249,7 +292,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%PORTDOCS%%%%DOCSDIR%%/rules/T0XlC_3_rule.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/T0XlC_insert_HTML_entities_0_Z.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/T0XlCv2.rule
-%%PORTDOCS%%%%DOCSDIR%%/rules/best64.rule
+%%PORTDOCS%%%%DOCSDIR%%/rules/best66.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/combinator.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/d3ad0ne.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/dive.rule
@@ -327,38 +370,32 @@ lib/libhashcat.so.%%PORTVERSION%%
%%PORTDOCS%%%%DOCSDIR%%/rules/oscommerce.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/rockyou-30000.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/specific.rule
+%%PORTDOCS%%%%DOCSDIR%%/rules/stacking58.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/toggles1.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/toggles2.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/toggles3.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/toggles4.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/toggles5.rule
+%%PORTDOCS%%%%DOCSDIR%%/rules/top10_2025.rule
%%PORTDOCS%%%%DOCSDIR%%/rules/unix-ninja-leetspeak.rule
-%%PORTDOCS%%%%DOCSDIR%%/tools/aescrypt2hashcat.pl
-%%PORTDOCS%%%%DOCSDIR%%/tools/bitwarden2hashcat.py
-%%PORTDOCS%%%%DOCSDIR%%/tools/cryptoloop2hashcat.py
-%%PORTDOCS%%%%DOCSDIR%%/tools/exodus2hashcat.py
-%%PORTDOCS%%%%DOCSDIR%%/tools/luks2hashcat.py
-%%PORTDOCS%%%%DOCSDIR%%/tools/metamask2hashcat.py
-%%PORTDOCS%%%%DOCSDIR%%/tools/mozilla2hashcat.py
-%%PORTDOCS%%%%DOCSDIR%%/tools/radmin3_to_hashcat.pl
-%%PORTDOCS%%%%DOCSDIR%%/tools/securenotes2hashcat.pl
-%%PORTDOCS%%%%DOCSDIR%%/tools/sqlcipher2hashcat.pl
-%%PORTDOCS%%%%DOCSDIR%%/tools/truecrypt2hashcat.py
-%%PORTDOCS%%%%DOCSDIR%%/tools/veracrypt2hashcat.py
-%%PORTDOCS%%%%DOCSDIR%%/tools/virtualbox2hashcat.py
-%%PORTDOCS%%%%DOCSDIR%%/tools/vmwarevmx2hashcat.py
%%DATADIR%%/OpenCL/amp_a0.cl
%%DATADIR%%/OpenCL/amp_a1.cl
%%DATADIR%%/OpenCL/amp_a3.cl
%%DATADIR%%/OpenCL/inc_amp.h
%%DATADIR%%/OpenCL/inc_bignum_operations.cl
%%DATADIR%%/OpenCL/inc_bignum_operations.h
+%%DATADIR%%/OpenCL/inc_checksum_crc.cl
+%%DATADIR%%/OpenCL/inc_checksum_crc.h
%%DATADIR%%/OpenCL/inc_cipher_aes-gcm.cl
%%DATADIR%%/OpenCL/inc_cipher_aes-gcm.h
%%DATADIR%%/OpenCL/inc_cipher_aes.cl
%%DATADIR%%/OpenCL/inc_cipher_aes.h
+%%DATADIR%%/OpenCL/inc_cipher_blowfish.cl
+%%DATADIR%%/OpenCL/inc_cipher_blowfish.h
%%DATADIR%%/OpenCL/inc_cipher_camellia.cl
%%DATADIR%%/OpenCL/inc_cipher_camellia.h
+%%DATADIR%%/OpenCL/inc_cipher_cast.cl
+%%DATADIR%%/OpenCL/inc_cipher_cast.h
%%DATADIR%%/OpenCL/inc_cipher_des.cl
%%DATADIR%%/OpenCL/inc_cipher_des.h
%%DATADIR%%/OpenCL/inc_cipher_kuznyechik.cl
@@ -375,6 +412,8 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/inc_comp_multi.h
%%DATADIR%%/OpenCL/inc_comp_multi_bs.cl
%%DATADIR%%/OpenCL/inc_comp_multi_bs.h
+%%DATADIR%%/OpenCL/inc_comp_multi_iba.cl
+%%DATADIR%%/OpenCL/inc_comp_multi_iba.h
%%DATADIR%%/OpenCL/inc_comp_single.cl
%%DATADIR%%/OpenCL/inc_comp_single.h
%%DATADIR%%/OpenCL/inc_comp_single_bs.cl
@@ -383,16 +422,28 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/inc_diskcryptor_xts.h
%%DATADIR%%/OpenCL/inc_ecc_secp256k1.cl
%%DATADIR%%/OpenCL/inc_ecc_secp256k1.h
+%%DATADIR%%/OpenCL/inc_hash_argon2.cl
+%%DATADIR%%/OpenCL/inc_hash_argon2.h
%%DATADIR%%/OpenCL/inc_hash_base58.cl
%%DATADIR%%/OpenCL/inc_hash_base58.h
%%DATADIR%%/OpenCL/inc_hash_blake2b.cl
%%DATADIR%%/OpenCL/inc_hash_blake2b.h
+%%DATADIR%%/OpenCL/inc_hash_blake2s.cl
+%%DATADIR%%/OpenCL/inc_hash_blake2s.h
+%%DATADIR%%/OpenCL/inc_hash_gost94.cl
+%%DATADIR%%/OpenCL/inc_hash_gost94.h
%%DATADIR%%/OpenCL/inc_hash_md4.cl
%%DATADIR%%/OpenCL/inc_hash_md4.h
%%DATADIR%%/OpenCL/inc_hash_md5.cl
%%DATADIR%%/OpenCL/inc_hash_md5.h
+%%DATADIR%%/OpenCL/inc_hash_md6.cl
+%%DATADIR%%/OpenCL/inc_hash_md6.h
%%DATADIR%%/OpenCL/inc_hash_ripemd160.cl
%%DATADIR%%/OpenCL/inc_hash_ripemd160.h
+%%DATADIR%%/OpenCL/inc_hash_ripemd320.cl
+%%DATADIR%%/OpenCL/inc_hash_ripemd320.h
+%%DATADIR%%/OpenCL/inc_hash_scrypt.cl
+%%DATADIR%%/OpenCL/inc_hash_scrypt.h
%%DATADIR%%/OpenCL/inc_hash_sha1.cl
%%DATADIR%%/OpenCL/inc_hash_sha1.h
%%DATADIR%%/OpenCL/inc_hash_sha224.cl
@@ -403,6 +454,8 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/inc_hash_sha384.h
%%DATADIR%%/OpenCL/inc_hash_sha512.cl
%%DATADIR%%/OpenCL/inc_hash_sha512.h
+%%DATADIR%%/OpenCL/inc_hash_sm3.cl
+%%DATADIR%%/OpenCL/inc_hash_sm3.h
%%DATADIR%%/OpenCL/inc_hash_streebog256.cl
%%DATADIR%%/OpenCL/inc_hash_streebog256.h
%%DATADIR%%/OpenCL/inc_hash_streebog512.cl
@@ -427,6 +480,8 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/inc_radmin3_constants.h
%%DATADIR%%/OpenCL/inc_rp.cl
%%DATADIR%%/OpenCL/inc_rp.h
+%%DATADIR%%/OpenCL/inc_rp_common.cl
+%%DATADIR%%/OpenCL/inc_rp_common.h
%%DATADIR%%/OpenCL/inc_rp_optimized.cl
%%DATADIR%%/OpenCL/inc_rp_optimized.h
%%DATADIR%%/OpenCL/inc_scalar.cl
@@ -598,6 +653,12 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m01300_a1-pure.cl
%%DATADIR%%/OpenCL/m01300_a3-optimized.cl
%%DATADIR%%/OpenCL/m01300_a3-pure.cl
+%%DATADIR%%/OpenCL/m01310_a0-pure.cl
+%%DATADIR%%/OpenCL/m01310_a1-pure.cl
+%%DATADIR%%/OpenCL/m01310_a3-pure.cl
+%%DATADIR%%/OpenCL/m01320_a0-pure.cl
+%%DATADIR%%/OpenCL/m01320_a1-pure.cl
+%%DATADIR%%/OpenCL/m01320_a3-pure.cl
%%DATADIR%%/OpenCL/m01400_a0-optimized.cl
%%DATADIR%%/OpenCL/m01400_a0-pure.cl
%%DATADIR%%/OpenCL/m01400_a1-optimized.cl
@@ -722,6 +783,12 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m02610_a1-pure.cl
%%DATADIR%%/OpenCL/m02610_a3-optimized.cl
%%DATADIR%%/OpenCL/m02610_a3-pure.cl
+%%DATADIR%%/OpenCL/m02630_a0-optimized.cl
+%%DATADIR%%/OpenCL/m02630_a0-pure.cl
+%%DATADIR%%/OpenCL/m02630_a1-optimized.cl
+%%DATADIR%%/OpenCL/m02630_a1-pure.cl
+%%DATADIR%%/OpenCL/m02630_a3-optimized.cl
+%%DATADIR%%/OpenCL/m02630_a3-pure.cl
%%DATADIR%%/OpenCL/m02710_a0-optimized.cl
%%DATADIR%%/OpenCL/m02710_a1-optimized.cl
%%DATADIR%%/OpenCL/m02710_a3-optimized.cl
@@ -744,12 +811,21 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m03500_a1-pure.cl
%%DATADIR%%/OpenCL/m03500_a3-optimized.cl
%%DATADIR%%/OpenCL/m03500_a3-pure.cl
+%%DATADIR%%/OpenCL/m03610_a0-optimized.cl
+%%DATADIR%%/OpenCL/m03610_a0-pure.cl
+%%DATADIR%%/OpenCL/m03610_a1-optimized.cl
+%%DATADIR%%/OpenCL/m03610_a1-pure.cl
+%%DATADIR%%/OpenCL/m03610_a3-optimized.cl
+%%DATADIR%%/OpenCL/m03610_a3-pure.cl
%%DATADIR%%/OpenCL/m03710_a0-optimized.cl
%%DATADIR%%/OpenCL/m03710_a0-pure.cl
%%DATADIR%%/OpenCL/m03710_a1-optimized.cl
%%DATADIR%%/OpenCL/m03710_a1-pure.cl
%%DATADIR%%/OpenCL/m03710_a3-optimized.cl
%%DATADIR%%/OpenCL/m03710_a3-pure.cl
+%%DATADIR%%/OpenCL/m03730_a0-pure.cl
+%%DATADIR%%/OpenCL/m03730_a1-pure.cl
+%%DATADIR%%/OpenCL/m03730_a3-pure.cl
%%DATADIR%%/OpenCL/m03800_a0-optimized.cl
%%DATADIR%%/OpenCL/m03800_a0-pure.cl
%%DATADIR%%/OpenCL/m03800_a1-optimized.cl
@@ -792,6 +868,18 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m04410_a1-pure.cl
%%DATADIR%%/OpenCL/m04410_a3-optimized.cl
%%DATADIR%%/OpenCL/m04410_a3-pure.cl
+%%DATADIR%%/OpenCL/m04420_a0-optimized.cl
+%%DATADIR%%/OpenCL/m04420_a0-pure.cl
+%%DATADIR%%/OpenCL/m04420_a1-optimized.cl
+%%DATADIR%%/OpenCL/m04420_a1-pure.cl
+%%DATADIR%%/OpenCL/m04420_a3-optimized.cl
+%%DATADIR%%/OpenCL/m04420_a3-pure.cl
+%%DATADIR%%/OpenCL/m04430_a0-optimized.cl
+%%DATADIR%%/OpenCL/m04430_a0-pure.cl
+%%DATADIR%%/OpenCL/m04430_a1-optimized.cl
+%%DATADIR%%/OpenCL/m04430_a1-pure.cl
+%%DATADIR%%/OpenCL/m04430_a3-optimized.cl
+%%DATADIR%%/OpenCL/m04430_a3-pure.cl
%%DATADIR%%/OpenCL/m04500_a0-optimized.cl
%%DATADIR%%/OpenCL/m04500_a0-pure.cl
%%DATADIR%%/OpenCL/m04500_a1-optimized.cl
@@ -871,6 +959,9 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m05600_a1-pure.cl
%%DATADIR%%/OpenCL/m05600_a3-optimized.cl
%%DATADIR%%/OpenCL/m05600_a3-pure.cl
+%%DATADIR%%/OpenCL/m05720_a0-pure.cl
+%%DATADIR%%/OpenCL/m05720_a1-pure.cl
+%%DATADIR%%/OpenCL/m05720_a3-pure.cl
%%DATADIR%%/OpenCL/m05800-optimized.cl
%%DATADIR%%/OpenCL/m05800-pure.cl
%%DATADIR%%/OpenCL/m06000_a0-optimized.cl
@@ -879,6 +970,12 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m06000_a1-pure.cl
%%DATADIR%%/OpenCL/m06000_a3-optimized.cl
%%DATADIR%%/OpenCL/m06000_a3-pure.cl
+%%DATADIR%%/OpenCL/m06050_a0-pure.cl
+%%DATADIR%%/OpenCL/m06050_a1-pure.cl
+%%DATADIR%%/OpenCL/m06050_a3-pure.cl
+%%DATADIR%%/OpenCL/m06060_a0-pure.cl
+%%DATADIR%%/OpenCL/m06060_a1-pure.cl
+%%DATADIR%%/OpenCL/m06060_a3-pure.cl
%%DATADIR%%/OpenCL/m06100_a0-optimized.cl
%%DATADIR%%/OpenCL/m06100_a0-pure.cl
%%DATADIR%%/OpenCL/m06100_a1-optimized.cl
@@ -917,6 +1014,12 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m07300_a1-pure.cl
%%DATADIR%%/OpenCL/m07300_a3-optimized.cl
%%DATADIR%%/OpenCL/m07300_a3-pure.cl
+%%DATADIR%%/OpenCL/m07350_a0-optimized.cl
+%%DATADIR%%/OpenCL/m07350_a0-pure.cl
+%%DATADIR%%/OpenCL/m07350_a1-optimized.cl
+%%DATADIR%%/OpenCL/m07350_a1-pure.cl
+%%DATADIR%%/OpenCL/m07350_a3-optimized.cl
+%%DATADIR%%/OpenCL/m07350_a3-pure.cl
%%DATADIR%%/OpenCL/m07400-optimized.cl
%%DATADIR%%/OpenCL/m07400-pure.cl
%%DATADIR%%/OpenCL/m07500_a0-optimized.cl
@@ -1014,6 +1117,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m10420_a1-optimized.cl
%%DATADIR%%/OpenCL/m10420_a3-optimized.cl
%%DATADIR%%/OpenCL/m10500-pure.cl
+%%DATADIR%%/OpenCL/m10510-pure.cl
%%DATADIR%%/OpenCL/m10700-optimized.cl
%%DATADIR%%/OpenCL/m10700-pure.cl
%%DATADIR%%/OpenCL/m10800_a0-optimized.cl
@@ -1076,8 +1180,11 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m11400_a1-pure.cl
%%DATADIR%%/OpenCL/m11400_a3-pure.cl
%%DATADIR%%/OpenCL/m11500_a0-optimized.cl
+%%DATADIR%%/OpenCL/m11500_a0-pure.cl
%%DATADIR%%/OpenCL/m11500_a1-optimized.cl
+%%DATADIR%%/OpenCL/m11500_a1-pure.cl
%%DATADIR%%/OpenCL/m11500_a3-optimized.cl
+%%DATADIR%%/OpenCL/m11500_a3-pure.cl
%%DATADIR%%/OpenCL/m11600-optimized.cl
%%DATADIR%%/OpenCL/m11600-pure.cl
%%DATADIR%%/OpenCL/m11700_a0-optimized.cl
@@ -1106,6 +1213,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m11860_a3-pure.cl
%%DATADIR%%/OpenCL/m11900-pure.cl
%%DATADIR%%/OpenCL/m12000-pure.cl
+%%DATADIR%%/OpenCL/m12150-pure.cl
%%DATADIR%%/OpenCL/m12200-pure.cl
%%DATADIR%%/OpenCL/m12300-pure.cl
%%DATADIR%%/OpenCL/m12400-pure.cl
@@ -1175,6 +1283,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m14100_a0-pure.cl
%%DATADIR%%/OpenCL/m14100_a1-pure.cl
%%DATADIR%%/OpenCL/m14100_a3-pure.cl
+%%DATADIR%%/OpenCL/m14200-pure.cl
%%DATADIR%%/OpenCL/m14400_a0-optimized.cl
%%DATADIR%%/OpenCL/m14400_a0-pure.cl
%%DATADIR%%/OpenCL/m14400_a1-optimized.cl
@@ -1301,6 +1410,9 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m16801-pure.cl
%%DATADIR%%/OpenCL/m16900-pure.cl
%%DATADIR%%/OpenCL/m17010-pure.cl
+%%DATADIR%%/OpenCL/m17020-pure.cl
+%%DATADIR%%/OpenCL/m17030-pure.cl
+%%DATADIR%%/OpenCL/m17040-pure.cl
%%DATADIR%%/OpenCL/m17200_a0-pure.cl
%%DATADIR%%/OpenCL/m17200_a1-pure.cl
%%DATADIR%%/OpenCL/m17200_a3-pure.cl
@@ -1392,9 +1504,18 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m20710_a1-pure.cl
%%DATADIR%%/OpenCL/m20710_a3-optimized.cl
%%DATADIR%%/OpenCL/m20710_a3-pure.cl
+%%DATADIR%%/OpenCL/m20712_a0-optimized.cl
+%%DATADIR%%/OpenCL/m20712_a0-pure.cl
+%%DATADIR%%/OpenCL/m20712_a1-optimized.cl
+%%DATADIR%%/OpenCL/m20712_a1-pure.cl
+%%DATADIR%%/OpenCL/m20712_a3-optimized.cl
+%%DATADIR%%/OpenCL/m20712_a3-pure.cl
%%DATADIR%%/OpenCL/m20720_a0-pure.cl
%%DATADIR%%/OpenCL/m20720_a1-pure.cl
%%DATADIR%%/OpenCL/m20720_a3-pure.cl
+%%DATADIR%%/OpenCL/m20730_a0-pure.cl
+%%DATADIR%%/OpenCL/m20730_a1-pure.cl
+%%DATADIR%%/OpenCL/m20730_a3-pure.cl
%%DATADIR%%/OpenCL/m20800_a0-optimized.cl
%%DATADIR%%/OpenCL/m20800_a0-pure.cl
%%DATADIR%%/OpenCL/m20800_a1-optimized.cl
@@ -1428,6 +1549,9 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m21300_a0-pure.cl
%%DATADIR%%/OpenCL/m21300_a1-pure.cl
%%DATADIR%%/OpenCL/m21300_a3-pure.cl
+%%DATADIR%%/OpenCL/m21310_a0-pure.cl
+%%DATADIR%%/OpenCL/m21310_a1-pure.cl
+%%DATADIR%%/OpenCL/m21310_a3-pure.cl
%%DATADIR%%/OpenCL/m21400_a0-optimized.cl
%%DATADIR%%/OpenCL/m21400_a0-pure.cl
%%DATADIR%%/OpenCL/m21400_a1-optimized.cl
@@ -1441,6 +1565,9 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m21600-pure.cl
%%DATADIR%%/OpenCL/m21700-pure.cl
%%DATADIR%%/OpenCL/m21800-pure.cl
+%%DATADIR%%/OpenCL/m21900_a0-pure.cl
+%%DATADIR%%/OpenCL/m21900_a1-pure.cl
+%%DATADIR%%/OpenCL/m21900_a3-pure.cl
%%DATADIR%%/OpenCL/m22000-pure.cl
%%DATADIR%%/OpenCL/m22001-pure.cl
%%DATADIR%%/OpenCL/m22100-pure.cl
@@ -1465,6 +1592,9 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m22500_a3-pure.cl
%%DATADIR%%/OpenCL/m22600-pure.cl
%%DATADIR%%/OpenCL/m22700-pure.cl
+%%DATADIR%%/OpenCL/m22800_a0-pure.cl
+%%DATADIR%%/OpenCL/m22800_a1-pure.cl
+%%DATADIR%%/OpenCL/m22800_a3-pure.cl
%%DATADIR%%/OpenCL/m22911_a0-pure.cl
%%DATADIR%%/OpenCL/m22911_a1-pure.cl
%%DATADIR%%/OpenCL/m22911_a3-pure.cl
@@ -1509,6 +1639,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m23800-optimized.cl
%%DATADIR%%/OpenCL/m23800-pure.cl
%%DATADIR%%/OpenCL/m23900-pure.cl
+%%DATADIR%%/OpenCL/m24000-pure.cl
%%DATADIR%%/OpenCL/m24100-pure.cl
%%DATADIR%%/OpenCL/m24200-pure.cl
%%DATADIR%%/OpenCL/m24300_a0-optimized.cl
@@ -1538,6 +1669,9 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m24900_a0-optimized.cl
%%DATADIR%%/OpenCL/m24900_a1-optimized.cl
%%DATADIR%%/OpenCL/m24900_a3-optimized.cl
+%%DATADIR%%/OpenCL/m24901_a0-optimized.cl
+%%DATADIR%%/OpenCL/m24901_a1-optimized.cl
+%%DATADIR%%/OpenCL/m24901_a3-optimized.cl
%%DATADIR%%/OpenCL/m25000-pure.cl
%%DATADIR%%/OpenCL/m25100-pure.cl
%%DATADIR%%/OpenCL/m25200-pure.cl
@@ -1571,6 +1705,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m26403_a3-optimized.cl
%%DATADIR%%/OpenCL/m26500-pure.cl
%%DATADIR%%/OpenCL/m26600-pure.cl
+%%DATADIR%%/OpenCL/m26610-pure.cl
%%DATADIR%%/OpenCL/m26700-pure.cl
%%DATADIR%%/OpenCL/m26800-pure.cl
%%DATADIR%%/OpenCL/m26900-pure.cl
@@ -1591,11 +1726,17 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m27800_a1-optimized.cl
%%DATADIR%%/OpenCL/m27800_a3-optimized.cl
%%DATADIR%%/OpenCL/m27900_a0-optimized.cl
+%%DATADIR%%/OpenCL/m27900_a0-pure.cl
%%DATADIR%%/OpenCL/m27900_a1-optimized.cl
+%%DATADIR%%/OpenCL/m27900_a1-pure.cl
%%DATADIR%%/OpenCL/m27900_a3-optimized.cl
+%%DATADIR%%/OpenCL/m27900_a3-pure.cl
%%DATADIR%%/OpenCL/m28000_a0-optimized.cl
+%%DATADIR%%/OpenCL/m28000_a0-pure.cl
%%DATADIR%%/OpenCL/m28000_a1-optimized.cl
+%%DATADIR%%/OpenCL/m28000_a1-pure.cl
%%DATADIR%%/OpenCL/m28000_a3-optimized.cl
+%%DATADIR%%/OpenCL/m28000_a3-pure.cl
%%DATADIR%%/OpenCL/m28100-pure.cl
%%DATADIR%%/OpenCL/m28200-pure.cl
%%DATADIR%%/OpenCL/m28300_a0-pure.cl
@@ -1634,11 +1775,213 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/OpenCL/m29200_a3-pure.cl
%%DATADIR%%/OpenCL/m29600-pure.cl
%%DATADIR%%/OpenCL/m29700-pure.cl
+%%DATADIR%%/OpenCL/m29910-pure.cl
+%%DATADIR%%/OpenCL/m29920-pure.cl
+%%DATADIR%%/OpenCL/m29930-pure.cl
+%%DATADIR%%/OpenCL/m29940-pure.cl
+%%DATADIR%%/OpenCL/m30420_a0-optimized.cl
+%%DATADIR%%/OpenCL/m30420_a0-pure.cl
+%%DATADIR%%/OpenCL/m30420_a1-optimized.cl
+%%DATADIR%%/OpenCL/m30420_a1-pure.cl
+%%DATADIR%%/OpenCL/m30420_a3-optimized.cl
+%%DATADIR%%/OpenCL/m30420_a3-pure.cl
+%%DATADIR%%/OpenCL/m30500_a0-optimized.cl
+%%DATADIR%%/OpenCL/m30500_a0-pure.cl
+%%DATADIR%%/OpenCL/m30500_a1-optimized.cl
+%%DATADIR%%/OpenCL/m30500_a1-pure.cl
+%%DATADIR%%/OpenCL/m30500_a3-optimized.cl
+%%DATADIR%%/OpenCL/m30500_a3-pure.cl
+%%DATADIR%%/OpenCL/m30600-pure.cl
+%%DATADIR%%/OpenCL/m30601-pure.cl
+%%DATADIR%%/OpenCL/m30700_a0-optimized.cl
+%%DATADIR%%/OpenCL/m30700_a0-pure.cl
+%%DATADIR%%/OpenCL/m30700_a1-optimized.cl
+%%DATADIR%%/OpenCL/m30700_a1-pure.cl
+%%DATADIR%%/OpenCL/m30700_a3-optimized.cl
+%%DATADIR%%/OpenCL/m30700_a3-pure.cl
+%%DATADIR%%/OpenCL/m30901_a0-pure.cl
+%%DATADIR%%/OpenCL/m30901_a1-pure.cl
+%%DATADIR%%/OpenCL/m30901_a3-pure.cl
+%%DATADIR%%/OpenCL/m30902_a0-pure.cl
+%%DATADIR%%/OpenCL/m30902_a1-pure.cl
+%%DATADIR%%/OpenCL/m30902_a3-pure.cl
+%%DATADIR%%/OpenCL/m30905_a0-pure.cl
+%%DATADIR%%/OpenCL/m30905_a1-pure.cl
+%%DATADIR%%/OpenCL/m30905_a3-pure.cl
+%%DATADIR%%/OpenCL/m30906_a0-pure.cl
+%%DATADIR%%/OpenCL/m30906_a1-pure.cl
+%%DATADIR%%/OpenCL/m30906_a3-pure.cl
+%%DATADIR%%/OpenCL/m31000_a0-optimized.cl
+%%DATADIR%%/OpenCL/m31000_a0-pure.cl
+%%DATADIR%%/OpenCL/m31000_a1-optimized.cl
+%%DATADIR%%/OpenCL/m31000_a1-pure.cl
+%%DATADIR%%/OpenCL/m31000_a3-optimized.cl
+%%DATADIR%%/OpenCL/m31000_a3-pure.cl
+%%DATADIR%%/OpenCL/m31100_a0-optimized.cl
+%%DATADIR%%/OpenCL/m31100_a0-pure.cl
+%%DATADIR%%/OpenCL/m31100_a1-optimized.cl
+%%DATADIR%%/OpenCL/m31100_a1-pure.cl
+%%DATADIR%%/OpenCL/m31100_a3-optimized.cl
+%%DATADIR%%/OpenCL/m31100_a3-pure.cl
+%%DATADIR%%/OpenCL/m31200-pure.cl
+%%DATADIR%%/OpenCL/m31300_a0-optimized.cl
+%%DATADIR%%/OpenCL/m31300_a0-pure.cl
+%%DATADIR%%/OpenCL/m31300_a1-optimized.cl
+%%DATADIR%%/OpenCL/m31300_a1-pure.cl
+%%DATADIR%%/OpenCL/m31300_a3-optimized.cl
+%%DATADIR%%/OpenCL/m31300_a3-pure.cl
+%%DATADIR%%/OpenCL/m31400_a0-optimized.cl
+%%DATADIR%%/OpenCL/m31400_a0-pure.cl
+%%DATADIR%%/OpenCL/m31400_a1-optimized.cl
+%%DATADIR%%/OpenCL/m31400_a1-pure.cl
+%%DATADIR%%/OpenCL/m31400_a3-optimized.cl
+%%DATADIR%%/OpenCL/m31400_a3-pure.cl
+%%DATADIR%%/OpenCL/m31500-pure.cl
+%%DATADIR%%/OpenCL/m31600-pure.cl
+%%DATADIR%%/OpenCL/m31700_a0-pure.cl
+%%DATADIR%%/OpenCL/m31700_a1-pure.cl
+%%DATADIR%%/OpenCL/m31700_a3-pure.cl
+%%DATADIR%%/OpenCL/m31800-pure.cl
+%%DATADIR%%/OpenCL/m31900-pure.cl
+%%DATADIR%%/OpenCL/m32000-pure.cl
+%%DATADIR%%/OpenCL/m32010-pure.cl
+%%DATADIR%%/OpenCL/m32020-pure.cl
+%%DATADIR%%/OpenCL/m32030-pure.cl
+%%DATADIR%%/OpenCL/m32040-pure.cl
+%%DATADIR%%/OpenCL/m32100-pure.cl
+%%DATADIR%%/OpenCL/m32200-pure.cl
+%%DATADIR%%/OpenCL/m32300_a0-optimized.cl
+%%DATADIR%%/OpenCL/m32300_a0-pure.cl
+%%DATADIR%%/OpenCL/m32300_a1-optimized.cl
+%%DATADIR%%/OpenCL/m32300_a1-pure.cl
+%%DATADIR%%/OpenCL/m32300_a3-optimized.cl
+%%DATADIR%%/OpenCL/m32300_a3-pure.cl
+%%DATADIR%%/OpenCL/m32410_a0-pure.cl
+%%DATADIR%%/OpenCL/m32410_a1-pure.cl
+%%DATADIR%%/OpenCL/m32410_a3-pure.cl
+%%DATADIR%%/OpenCL/m32420_a0-pure.cl
+%%DATADIR%%/OpenCL/m32420_a1-pure.cl
+%%DATADIR%%/OpenCL/m32420_a3-pure.cl
+%%DATADIR%%/OpenCL/m32500-pure.cl
+%%DATADIR%%/OpenCL/m32600_a0-pure.cl
+%%DATADIR%%/OpenCL/m32600_a1-pure.cl
+%%DATADIR%%/OpenCL/m32600_a3-pure.cl
+%%DATADIR%%/OpenCL/m32700-pure.cl
+%%DATADIR%%/OpenCL/m32800_a0-optimized.cl
+%%DATADIR%%/OpenCL/m32800_a0-pure.cl
+%%DATADIR%%/OpenCL/m32800_a1-optimized.cl
+%%DATADIR%%/OpenCL/m32800_a1-pure.cl
+%%DATADIR%%/OpenCL/m32800_a3-optimized.cl
+%%DATADIR%%/OpenCL/m32800_a3-pure.cl
+%%DATADIR%%/OpenCL/m32900-pure.cl
+%%DATADIR%%/OpenCL/m33000_a0-pure.cl
+%%DATADIR%%/OpenCL/m33000_a1-pure.cl
+%%DATADIR%%/OpenCL/m33000_a3-pure.cl
+%%DATADIR%%/OpenCL/m33100_a0-pure.cl
+%%DATADIR%%/OpenCL/m33100_a1-pure.cl
+%%DATADIR%%/OpenCL/m33100_a3-pure.cl
+%%DATADIR%%/OpenCL/m33300_a0-pure.cl
+%%DATADIR%%/OpenCL/m33300_a1-pure.cl
+%%DATADIR%%/OpenCL/m33300_a3-pure.cl
+%%DATADIR%%/OpenCL/m33400-pure.cl
+%%DATADIR%%/OpenCL/m33500_a0-optimized.cl
+%%DATADIR%%/OpenCL/m33500_a1-optimized.cl
+%%DATADIR%%/OpenCL/m33500_a3-optimized.cl
+%%DATADIR%%/OpenCL/m33501_a0-optimized.cl
+%%DATADIR%%/OpenCL/m33501_a1-optimized.cl
+%%DATADIR%%/OpenCL/m33501_a3-optimized.cl
+%%DATADIR%%/OpenCL/m33502_a0-optimized.cl
+%%DATADIR%%/OpenCL/m33502_a1-optimized.cl
+%%DATADIR%%/OpenCL/m33502_a3-optimized.cl
+%%DATADIR%%/OpenCL/m33600_a0-optimized.cl
+%%DATADIR%%/OpenCL/m33600_a0-pure.cl
+%%DATADIR%%/OpenCL/m33600_a1-optimized.cl
+%%DATADIR%%/OpenCL/m33600_a1-pure.cl
+%%DATADIR%%/OpenCL/m33600_a3-optimized.cl
+%%DATADIR%%/OpenCL/m33600_a3-pure.cl
+%%DATADIR%%/OpenCL/m33650_a0-pure.cl
+%%DATADIR%%/OpenCL/m33650_a1-pure.cl
+%%DATADIR%%/OpenCL/m33650_a3-pure.cl
+%%DATADIR%%/OpenCL/m33660_a0-pure.cl
+%%DATADIR%%/OpenCL/m33660_a1-pure.cl
+%%DATADIR%%/OpenCL/m33660_a3-pure.cl
+%%DATADIR%%/OpenCL/m33700-pure.cl
+%%DATADIR%%/OpenCL/m33800-pure.cl
+%%DATADIR%%/OpenCL/m34000-pure.cl
+%%DATADIR%%/OpenCL/m34100-pure.cl
+%%DATADIR%%/OpenCL/m34200_a0-optimized.cl
+%%DATADIR%%/OpenCL/m34200_a0-pure.cl
+%%DATADIR%%/OpenCL/m34200_a1-optimized.cl
+%%DATADIR%%/OpenCL/m34200_a1-pure.cl
+%%DATADIR%%/OpenCL/m34200_a3-optimized.cl
+%%DATADIR%%/OpenCL/m34200_a3-pure.cl
+%%DATADIR%%/OpenCL/m34201_a0-optimized.cl
+%%DATADIR%%/OpenCL/m34201_a0-pure.cl
+%%DATADIR%%/OpenCL/m34201_a1-optimized.cl
+%%DATADIR%%/OpenCL/m34201_a1-pure.cl
+%%DATADIR%%/OpenCL/m34201_a3-optimized.cl
+%%DATADIR%%/OpenCL/m34201_a3-pure.cl
+%%DATADIR%%/OpenCL/m34211_a0-optimized.cl
+%%DATADIR%%/OpenCL/m34211_a0-pure.cl
+%%DATADIR%%/OpenCL/m34211_a1-optimized.cl
+%%DATADIR%%/OpenCL/m34211_a1-pure.cl
+%%DATADIR%%/OpenCL/m34211_a3-optimized.cl
+%%DATADIR%%/OpenCL/m34211_a3-pure.cl
+%%DATADIR%%/OpenCL/m34300-pure.cl
+%%DATADIR%%/OpenCL/m34400_a0-pure.cl
+%%DATADIR%%/OpenCL/m34400_a1-pure.cl
+%%DATADIR%%/OpenCL/m34400_a3-pure.cl
+%%DATADIR%%/OpenCL/m34500_a0-pure.cl
+%%DATADIR%%/OpenCL/m34500_a1-pure.cl
+%%DATADIR%%/OpenCL/m34500_a3-pure.cl
+%%DATADIR%%/OpenCL/m34600_a0-optimized.cl
+%%DATADIR%%/OpenCL/m34600_a1-optimized.cl
+%%DATADIR%%/OpenCL/m34600_a3-optimized.cl
+%%DATADIR%%/OpenCL/m34700_a0-pure.cl
+%%DATADIR%%/OpenCL/m34700_a1-pure.cl
+%%DATADIR%%/OpenCL/m34700_a3-pure.cl
+%%DATADIR%%/OpenCL/m34800_a0-optimized.cl
+%%DATADIR%%/OpenCL/m34800_a0-pure.cl
+%%DATADIR%%/OpenCL/m34800_a1-optimized.cl
+%%DATADIR%%/OpenCL/m34800_a1-pure.cl
+%%DATADIR%%/OpenCL/m34800_a3-optimized.cl
+%%DATADIR%%/OpenCL/m34800_a3-pure.cl
+%%DATADIR%%/OpenCL/m34810_a0-optimized.cl
+%%DATADIR%%/OpenCL/m34810_a0-pure.cl
+%%DATADIR%%/OpenCL/m34810_a1-optimized.cl
+%%DATADIR%%/OpenCL/m34810_a1-pure.cl
+%%DATADIR%%/OpenCL/m34810_a3-optimized.cl
+%%DATADIR%%/OpenCL/m34810_a3-pure.cl
+%%DATADIR%%/OpenCL/m34820_a0-optimized.cl
+%%DATADIR%%/OpenCL/m34820_a0-pure.cl
+%%DATADIR%%/OpenCL/m34820_a1-optimized.cl
+%%DATADIR%%/OpenCL/m34820_a1-pure.cl
+%%DATADIR%%/OpenCL/m34820_a3-optimized.cl
+%%DATADIR%%/OpenCL/m34820_a3-pure.cl
+%%DATADIR%%/OpenCL/m35000-pure.cl
+%%DATADIR%%/OpenCL/m35100-optimized.cl
+%%DATADIR%%/OpenCL/m35200_a0-optimized.cl
+%%DATADIR%%/OpenCL/m35200_a0-pure.cl
+%%DATADIR%%/OpenCL/m35200_a1-optimized.cl
+%%DATADIR%%/OpenCL/m35200_a1-pure.cl
+%%DATADIR%%/OpenCL/m35200_a3-optimized.cl
+%%DATADIR%%/OpenCL/m35200_a3-pure.cl
+%%DATADIR%%/OpenCL/m70000-pure.cl
+%%DATADIR%%/OpenCL/m70100-pure.cl
+%%DATADIR%%/OpenCL/m72000-pure.cl
+%%DATADIR%%/OpenCL/m73000-pure.cl
%%DATADIR%%/OpenCL/markov_be.cl
%%DATADIR%%/OpenCL/markov_le.cl
%%DATADIR%%/OpenCL/shared.cl
+%%DATADIR%%/bridges/.gitkeep
+%%DATADIR%%/bridges/bridge_argon2id_reference.so
+%%DATADIR%%/bridges/bridge_python_generic_hash_mp.so
+%%DATADIR%%/bridges/bridge_python_generic_hash_sp.so
+%%DATADIR%%/bridges/bridge_rust_generic_hash.so
+%%DATADIR%%/bridges/bridge_scrypt_jane.so
+%%DATADIR%%/bridges/bridge_scrypt_yescrypt.so
%%DATADIR%%/hashcat.hcstat2
-%%DATADIR%%/modules/.lock
+%%DATADIR%%/modules/.gitkeep
%%DATADIR%%/modules/module_00000.so
%%DATADIR%%/modules/module_00010.so
%%DATADIR%%/modules/module_00011.so
@@ -1684,6 +2027,8 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_01000.so
%%DATADIR%%/modules/module_01100.so
%%DATADIR%%/modules/module_01300.so
+%%DATADIR%%/modules/module_01310.so
+%%DATADIR%%/modules/module_01320.so
%%DATADIR%%/modules/module_01400.so
%%DATADIR%%/modules/module_01410.so
%%DATADIR%%/modules/module_01411.so
@@ -1718,14 +2063,17 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_02600.so
%%DATADIR%%/modules/module_02611.so
%%DATADIR%%/modules/module_02612.so
+%%DATADIR%%/modules/module_02630.so
%%DATADIR%%/modules/module_02711.so
%%DATADIR%%/modules/module_02811.so
%%DATADIR%%/modules/module_03000.so
%%DATADIR%%/modules/module_03100.so
%%DATADIR%%/modules/module_03200.so
%%DATADIR%%/modules/module_03500.so
+%%DATADIR%%/modules/module_03610.so
%%DATADIR%%/modules/module_03710.so
%%DATADIR%%/modules/module_03711.so
+%%DATADIR%%/modules/module_03730.so
%%DATADIR%%/modules/module_03800.so
%%DATADIR%%/modules/module_03910.so
%%DATADIR%%/modules/module_04010.so
@@ -1733,6 +2081,8 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_04300.so
%%DATADIR%%/modules/module_04400.so
%%DATADIR%%/modules/module_04410.so
+%%DATADIR%%/modules/module_04420.so
+%%DATADIR%%/modules/module_04430.so
%%DATADIR%%/modules/module_04500.so
%%DATADIR%%/modules/module_04510.so
%%DATADIR%%/modules/module_04520.so
@@ -1751,8 +2101,11 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_05500.so
%%DATADIR%%/modules/module_05600.so
%%DATADIR%%/modules/module_05700.so
+%%DATADIR%%/modules/module_05720.so
%%DATADIR%%/modules/module_05800.so
%%DATADIR%%/modules/module_06000.so
+%%DATADIR%%/modules/module_06050.so
+%%DATADIR%%/modules/module_06060.so
%%DATADIR%%/modules/module_06100.so
%%DATADIR%%/modules/module_06211.so
%%DATADIR%%/modules/module_06212.so
@@ -1777,6 +2130,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_07100.so
%%DATADIR%%/modules/module_07200.so
%%DATADIR%%/modules/module_07300.so
+%%DATADIR%%/modules/module_07350.so
%%DATADIR%%/modules/module_07400.so
%%DATADIR%%/modules/module_07401.so
%%DATADIR%%/modules/module_07500.so
@@ -1791,6 +2145,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_08300.so
%%DATADIR%%/modules/module_08400.so
%%DATADIR%%/modules/module_08500.so
+%%DATADIR%%/modules/module_08501.so
%%DATADIR%%/modules/module_08600.so
%%DATADIR%%/modules/module_08700.so
%%DATADIR%%/modules/module_08800.so
@@ -1817,6 +2172,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_10410.so
%%DATADIR%%/modules/module_10420.so
%%DATADIR%%/modules/module_10500.so
+%%DATADIR%%/modules/module_10510.so
%%DATADIR%%/modules/module_10600.so
%%DATADIR%%/modules/module_10700.so
%%DATADIR%%/modules/module_10800.so
@@ -1844,6 +2200,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_12000.so
%%DATADIR%%/modules/module_12001.so
%%DATADIR%%/modules/module_12100.so
+%%DATADIR%%/modules/module_12150.so
%%DATADIR%%/modules/module_12200.so
%%DATADIR%%/modules/module_12300.so
%%DATADIR%%/modules/module_12400.so
@@ -1887,6 +2244,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_13900.so
%%DATADIR%%/modules/module_14000.so
%%DATADIR%%/modules/module_14100.so
+%%DATADIR%%/modules/module_14200.so
%%DATADIR%%/modules/module_14400.so
%%DATADIR%%/modules/module_14500.so
%%DATADIR%%/modules/module_14600.so
@@ -1910,12 +2268,16 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_16300.so
%%DATADIR%%/modules/module_16400.so
%%DATADIR%%/modules/module_16500.so
+%%DATADIR%%/modules/module_16501.so
%%DATADIR%%/modules/module_16600.so
%%DATADIR%%/modules/module_16700.so
%%DATADIR%%/modules/module_16800.so
%%DATADIR%%/modules/module_16801.so
%%DATADIR%%/modules/module_16900.so
%%DATADIR%%/modules/module_17010.so
+%%DATADIR%%/modules/module_17020.so
+%%DATADIR%%/modules/module_17030.so
+%%DATADIR%%/modules/module_17040.so
%%DATADIR%%/modules/module_17200.so
%%DATADIR%%/modules/module_17210.so
%%DATADIR%%/modules/module_17220.so
@@ -1941,6 +2303,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_19000.so
%%DATADIR%%/modules/module_19100.so
%%DATADIR%%/modules/module_19200.so
+%%DATADIR%%/modules/module_19210.so
%%DATADIR%%/modules/module_19300.so
%%DATADIR%%/modules/module_19500.so
%%DATADIR%%/modules/module_19600.so
@@ -1958,13 +2321,16 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_20600.so
%%DATADIR%%/modules/module_20710.so
%%DATADIR%%/modules/module_20711.so
+%%DATADIR%%/modules/module_20712.so
%%DATADIR%%/modules/module_20720.so
+%%DATADIR%%/modules/module_20730.so
%%DATADIR%%/modules/module_20800.so
%%DATADIR%%/modules/module_20900.so
%%DATADIR%%/modules/module_21000.so
%%DATADIR%%/modules/module_21100.so
%%DATADIR%%/modules/module_21200.so
%%DATADIR%%/modules/module_21300.so
+%%DATADIR%%/modules/module_21310.so
%%DATADIR%%/modules/module_21400.so
%%DATADIR%%/modules/module_21420.so
%%DATADIR%%/modules/module_21500.so
@@ -1972,6 +2338,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_21600.so
%%DATADIR%%/modules/module_21700.so
%%DATADIR%%/modules/module_21800.so
+%%DATADIR%%/modules/module_21900.so
%%DATADIR%%/modules/module_22000.so
%%DATADIR%%/modules/module_22001.so
%%DATADIR%%/modules/module_22100.so
@@ -1982,6 +2349,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_22500.so
%%DATADIR%%/modules/module_22600.so
%%DATADIR%%/modules/module_22700.so
+%%DATADIR%%/modules/module_22800.so
%%DATADIR%%/modules/module_22911.so
%%DATADIR%%/modules/module_22921.so
%%DATADIR%%/modules/module_22931.so
@@ -1999,6 +2367,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_23700.so
%%DATADIR%%/modules/module_23800.so
%%DATADIR%%/modules/module_23900.so
+%%DATADIR%%/modules/module_24000.so
%%DATADIR%%/modules/module_24100.so
%%DATADIR%%/modules/module_24200.so
%%DATADIR%%/modules/module_24300.so
@@ -2009,6 +2378,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_24700.so
%%DATADIR%%/modules/module_24800.so
%%DATADIR%%/modules/module_24900.so
+%%DATADIR%%/modules/module_24901.so
%%DATADIR%%/modules/module_25000.so
%%DATADIR%%/modules/module_25100.so
%%DATADIR%%/modules/module_25200.so
@@ -2028,6 +2398,7 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_26403.so
%%DATADIR%%/modules/module_26500.so
%%DATADIR%%/modules/module_26600.so
+%%DATADIR%%/modules/module_26610.so
%%DATADIR%%/modules/module_26700.so
%%DATADIR%%/modules/module_26800.so
%%DATADIR%%/modules/module_26900.so
@@ -2109,8 +2480,89 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/modules/module_29543.so
%%DATADIR%%/modules/module_29600.so
%%DATADIR%%/modules/module_29700.so
+%%DATADIR%%/modules/module_29800.so
+%%DATADIR%%/modules/module_29910.so
+%%DATADIR%%/modules/module_29920.so
+%%DATADIR%%/modules/module_29930.so
+%%DATADIR%%/modules/module_29940.so
%%DATADIR%%/modules/module_30000.so
%%DATADIR%%/modules/module_30120.so
+%%DATADIR%%/modules/module_30420.so
+%%DATADIR%%/modules/module_30500.so
+%%DATADIR%%/modules/module_30600.so
+%%DATADIR%%/modules/module_30601.so
+%%DATADIR%%/modules/module_30700.so
+%%DATADIR%%/modules/module_30901.so
+%%DATADIR%%/modules/module_30902.so
+%%DATADIR%%/modules/module_30903.so
+%%DATADIR%%/modules/module_30904.so
+%%DATADIR%%/modules/module_30905.so
+%%DATADIR%%/modules/module_30906.so
+%%DATADIR%%/modules/module_31000.so
+%%DATADIR%%/modules/module_31100.so
+%%DATADIR%%/modules/module_31200.so
+%%DATADIR%%/modules/module_31300.so
+%%DATADIR%%/modules/module_31400.so
+%%DATADIR%%/modules/module_31500.so
+%%DATADIR%%/modules/module_31600.so
+%%DATADIR%%/modules/module_31700.so
+%%DATADIR%%/modules/module_31800.so
+%%DATADIR%%/modules/module_31900.so
+%%DATADIR%%/modules/module_32000.so
+%%DATADIR%%/modules/module_32010.so
+%%DATADIR%%/modules/module_32020.so
+%%DATADIR%%/modules/module_32030.so
+%%DATADIR%%/modules/module_32031.so
+%%DATADIR%%/modules/module_32040.so
+%%DATADIR%%/modules/module_32041.so
+%%DATADIR%%/modules/module_32050.so
+%%DATADIR%%/modules/module_32060.so
+%%DATADIR%%/modules/module_32070.so
+%%DATADIR%%/modules/module_32100.so
+%%DATADIR%%/modules/module_32200.so
+%%DATADIR%%/modules/module_32300.so
+%%DATADIR%%/modules/module_32410.so
+%%DATADIR%%/modules/module_32420.so
+%%DATADIR%%/modules/module_32500.so
+%%DATADIR%%/modules/module_32600.so
+%%DATADIR%%/modules/module_32700.so
+%%DATADIR%%/modules/module_32800.so
+%%DATADIR%%/modules/module_32900.so
+%%DATADIR%%/modules/module_33000.so
+%%DATADIR%%/modules/module_33100.so
+%%DATADIR%%/modules/module_33300.so
+%%DATADIR%%/modules/module_33400.so
+%%DATADIR%%/modules/module_33500.so
+%%DATADIR%%/modules/module_33501.so
+%%DATADIR%%/modules/module_33502.so
+%%DATADIR%%/modules/module_33600.so
+%%DATADIR%%/modules/module_33650.so
+%%DATADIR%%/modules/module_33660.so
+%%DATADIR%%/modules/module_33700.so
+%%DATADIR%%/modules/module_33800.so
+%%DATADIR%%/modules/module_33900.so
+%%DATADIR%%/modules/module_34000.so
+%%DATADIR%%/modules/module_34100.so
+%%DATADIR%%/modules/module_34200.so
+%%DATADIR%%/modules/module_34201.so
+%%DATADIR%%/modules/module_34211.so
+%%DATADIR%%/modules/module_34300.so
+%%DATADIR%%/modules/module_34400.so
+%%DATADIR%%/modules/module_34500.so
+%%DATADIR%%/modules/module_34600.so
+%%DATADIR%%/modules/module_34700.so
+%%DATADIR%%/modules/module_34800.so
+%%DATADIR%%/modules/module_34810.so
+%%DATADIR%%/modules/module_34820.so
+%%DATADIR%%/modules/module_35000.so
+%%DATADIR%%/modules/module_35100.so
+%%DATADIR%%/modules/module_35200.so
+%%DATADIR%%/modules/module_70000.so
+%%DATADIR%%/modules/module_70100.so
+%%DATADIR%%/modules/module_70200.so
+%%DATADIR%%/modules/module_72000.so
+%%DATADIR%%/modules/module_73000.so
+%%DATADIR%%/modules/module_74000.so
%%DATADIR%%/modules/module_99999.so
%%DATADIR%%/tunings/Alias.hctune
%%DATADIR%%/tunings/Device_GeForce_GTX_TITAN.hctune
@@ -2118,8 +2570,10 @@ lib/libhashcat.so.%%PORTVERSION%%
%%DATADIR%%/tunings/Module_09300.hctune
%%DATADIR%%/tunings/Module_15700.hctune
%%DATADIR%%/tunings/Module_22700.hctune
+%%DATADIR%%/tunings/Module_24000.hctune
%%DATADIR%%/tunings/Module_27700.hctune
%%DATADIR%%/tunings/Module_28200.hctune
+%%DATADIR%%/tunings/Module_29800.hctune
%%DATADIR%%/tunings/Modules_bcrypt.hctune
%%DATADIR%%/tunings/Modules_default.hctune
%%DATADIR%%/tunings/README.md
diff --git a/security/vuxml/vuln/2025.xml b/security/vuxml/vuln/2025.xml
index 2009194bf407..d587a9dae0e9 100644
--- a/security/vuxml/vuln/2025.xml
+++ b/security/vuxml/vuln/2025.xml
@@ -1,3 +1,71 @@
+ <vuln vid="d7b7e505-8486-11f0-9d03-2cf05da270f3">
+ <topic>Gitlab -- vulnerabilities</topic>
+ <affects>
+ <package>
+ <name>gitlab-ce</name>
+ <name>gitlab-ee</name>
+ <range><ge>18.3.0</ge><lt>18.3.1</lt></range>
+ <range><ge>18.2.0</ge><lt>18.2.5</lt></range>
+ <range><ge>8.15.0</ge><lt>18.1.5</lt></range>
+ </package>
+ </affects>
+ <description>
+ <body xmlns="http://www.w3.org/1999/xhtml">
+ <p>Gitlab reports:</p>
+ <blockquote cite="https://about.gitlab.com/releases/2025/08/27/patch-release-gitlab-18-3-1-released/">
+ <p>Allocation of Resources Without Limits issue in import function impacts GitLab CE/EE</p>
+ <p>Missing authentication issue in GraphQL endpoint impacts GitLab CE/EE</p>
+ <p>Allocation of Resources Without Limits issue in GraphQL impacts GitLab CE/EE</p>
+ <p>Code injection issue in GitLab repositories impacts GitLab CE/EE</p>
+ </blockquote>
+ </body>
+ </description>
+ <references>
+ <cvename>CVE-2025-3601</cvename>
+ <cvename>CVE-2025-2246</cvename>
+ <cvename>CVE-2025-4225</cvename>
+ <cvename>CVE-2025-5101</cvename>
+ <url>https://about.gitlab.com/releases/2025/08/27/patch-release-gitlab-18-3-1-released/</url>
+ </references>
+ <dates>
+ <discovery>2025-08-27</discovery>
+ <entry>2025-08-29</entry>
+ </dates>
+ </vuln>
+
+ <vuln vid="f727fe60-8389-11f0-8438-001b217e4ee5">
+ <topic>ISC KEA -- kea-dhcp4 aborts if client sends a broadcast request with particular options</topic>
+ <affects>
+ <package>
+ <name>kea</name>
+ <range><ge>3.0.0</ge><lt>3.0.1</lt></range>
+ </package>
+ <package>
+ <name>kea-devel</name>
+ <range><ge>3.1.0</ge><lt>3.1.1</lt></range>
+ <range><ge>2.7.1</ge><le>2.7.9</le></range>
+ </package>
+ </affects>
+ <description>
+ <body xmlns="http://www.w3.org/1999/xhtml">
+ <p>Internet Systems Consortium, Inc. reports:</p>
+ <blockquote cite="https://kb.isc.org/docs/">
+ <p>We corrected an issue in `kea-dhcp4` that caused
+ the server to abort if a client sent a broadcast request with particular
+ options, and Kea failed to find an appropriate subnet for that client.
+ This addresses CVE-2025-40779 [#4055, #4048].</p>
+ </blockquote>
+ </body>
+ </description>
+ <references>
+ <cvename>CVE-2025-40779</cvename>
+ </references>
+ <dates>
+ <discovery>2025-08-27</discovery>
+ <entry>2025-08-27</entry>
+ </dates>
+ </vuln>
+
<vuln vid="2a11aa1e-83c7-11f0-b6e5-4ccc6adda413">
<topic>qt6-base -- DoS in QColorTransferGenericFunction</topic>
<affects>
diff --git a/sysutils/Makefile b/sysutils/Makefile
index ce10c9dcb0df..6d3010facc14 100755
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -763,6 +763,7 @@
SUBDIR += netevent
SUBDIR += nfcutils
SUBDIR += ngbuddy
+ SUBDIR += nitro
SUBDIR += nitrogen
SUBDIR += nix
SUBDIR += nmdaemon
diff --git a/sysutils/backrest/Makefile b/sysutils/backrest/Makefile
index 1131474364d9..a32d4618d3ed 100644
--- a/sysutils/backrest/Makefile
+++ b/sysutils/backrest/Makefile
@@ -1,6 +1,6 @@
PORTNAME= backrest
DISTVERSIONPREFIX= v
-DISTVERSION= 1.9.1
+DISTVERSION= 1.9.2
CATEGORIES= sysutils
MASTER_SITES= LOCAL/dtxdf/${PORTNAME}/
DISTFILES= ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}.frontend${EXTRACT_SUFX}
diff --git a/sysutils/backrest/distinfo b/sysutils/backrest/distinfo
index 014848e583e4..a36034c35da4 100644
--- a/sysutils/backrest/distinfo
+++ b/sysutils/backrest/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1754687606
-SHA256 (go/sysutils_backrest/backrest-v1.9.1/backrest-v1.9.1.frontend.tar.gz) = a98f2a5118a8ae21195810a74d2dd75edfbe2a42b9640a9d5ed0ecee763fe217
-SIZE (go/sysutils_backrest/backrest-v1.9.1/backrest-v1.9.1.frontend.tar.gz) = 3921109
-SHA256 (go/sysutils_backrest/backrest-v1.9.1/v1.9.1.mod) = d54134afa60728e72c45328001a861c4b8c5252da6b8bb15c4719de6857479cc
-SIZE (go/sysutils_backrest/backrest-v1.9.1/v1.9.1.mod) = 3643
-SHA256 (go/sysutils_backrest/backrest-v1.9.1/v1.9.1.zip) = d4f21ba819d16e122acfcd3eb321845d85a69972263040f00936c29abcf3d274
-SIZE (go/sysutils_backrest/backrest-v1.9.1/v1.9.1.zip) = 814669
+TIMESTAMP = 1756425760
+SHA256 (go/sysutils_backrest/backrest-v1.9.2/backrest-v1.9.2.frontend.tar.gz) = 4ba2eb8bd3e4e72b29d8d46449fcac8320cfdc721f997974df48fedaf8af4024
+SIZE (go/sysutils_backrest/backrest-v1.9.2/backrest-v1.9.2.frontend.tar.gz) = 3923028
+SHA256 (go/sysutils_backrest/backrest-v1.9.2/v1.9.2.mod) = d54134afa60728e72c45328001a861c4b8c5252da6b8bb15c4719de6857479cc
+SIZE (go/sysutils_backrest/backrest-v1.9.2/v1.9.2.mod) = 3643
+SHA256 (go/sysutils_backrest/backrest-v1.9.2/v1.9.2.zip) = e16fc7dc2f0f352f101f9d2cddd299752322113ad1f8b5debddf4b6066c31eda
+SIZE (go/sysutils_backrest/backrest-v1.9.2/v1.9.2.zip) = 819691
diff --git a/sysutils/fastfetch/Makefile b/sysutils/fastfetch/Makefile
index bbcce2b6af9d..279a75e1172d 100644
--- a/sysutils/fastfetch/Makefile
+++ b/sysutils/fastfetch/Makefile
@@ -1,5 +1,5 @@
PORTNAME= fastfetch
-DISTVERSION= 2.50.2
+DISTVERSION= 2.51.1
CATEGORIES= sysutils
MAINTAINER= pkubaj@FreeBSD.org
diff --git a/sysutils/fastfetch/distinfo b/sysutils/fastfetch/distinfo
index e3b4e9a33c95..aabf7d109053 100644
--- a/sysutils/fastfetch/distinfo
+++ b/sysutils/fastfetch/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755391486
-SHA256 (fastfetch-cli-fastfetch-2.50.2_GH0.tar.gz) = e59f2a2bdd5834ef40adb9fb6680820c268ff60ca0534469c5ea4b86775c83db
-SIZE (fastfetch-cli-fastfetch-2.50.2_GH0.tar.gz) = 1349521
+TIMESTAMP = 1756467729
+SHA256 (fastfetch-cli-fastfetch-2.51.1_GH0.tar.gz) = 38755082ff0f7123616b98de5f032de76d0cc5837b5204cf5c88ee6c52a77bf6
+SIZE (fastfetch-cli-fastfetch-2.51.1_GH0.tar.gz) = 1361743
diff --git a/sysutils/kassiber/Makefile b/sysutils/kassiber/Makefile
index fb88788fcf60..9e968019d444 100644
--- a/sysutils/kassiber/Makefile
+++ b/sysutils/kassiber/Makefile
@@ -1,12 +1,13 @@
PORTNAME= kassiber
DISTVERSIONPREFIX= v
-DISTVERSION= 0.0.2
+DISTVERSION= 0.0.3
CATEGORIES= sysutils
MAINTAINER= fuz@FreeBSD.org
COMMENT= Smuggle programs into jails
LICENSE= BSD2CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
USES= uidfix
USE_GITHUB= yes
diff --git a/sysutils/kassiber/distinfo b/sysutils/kassiber/distinfo
index 666ac10c2681..71b9a41d888f 100644
--- a/sysutils/kassiber/distinfo
+++ b/sysutils/kassiber/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1752687787
-SHA256 (crest-kassiber-v0.0.2_GH0.tar.gz) = f8b990c797f9f7360187da0210ba1eadc0856f30e4c9ecb622861e57c2512735
-SIZE (crest-kassiber-v0.0.2_GH0.tar.gz) = 9799
+TIMESTAMP = 1756249184
+SHA256 (crest-kassiber-v0.0.3_GH0.tar.gz) = 89aa3237b3787270b2d4d32d731c1503b10ca4f56d9ad073979c21f240dbbeff
+SIZE (crest-kassiber-v0.0.3_GH0.tar.gz) = 10644
diff --git a/sysutils/kassiber/files/patch-main.c b/sysutils/kassiber/files/patch-main.c
deleted file mode 100644
index 3a6e598e28ff..000000000000
--- a/sysutils/kassiber/files/patch-main.c
+++ /dev/null
@@ -1,14 +0,0 @@
---- main.c.orig 2025-07-30 19:54:07 UTC
-+++ main.c
-@@ -302,7 +302,11 @@ openat_retry(const int dfd, const char *const path, in
- if (fd >= 0 || errno != EINTR) {
- return fd;
- } else {
-+#ifdef __powerpc__
-+ return openat_retry(dfd, path, flags, mode);
-+#else
- __attribute__((musttail)) return openat_retry(dfd, path, flags, mode);
-+#endif
- }
- }
-
diff --git a/sysutils/limine/Makefile b/sysutils/limine/Makefile
index c50b871addaf..a529c8522663 100644
--- a/sysutils/limine/Makefile
+++ b/sysutils/limine/Makefile
@@ -1,5 +1,5 @@
PORTNAME= limine
-DISTVERSION= 9.6.0
+DISTVERSION= 9.6.1
CATEGORIES= sysutils
MASTER_SITES= https://github.com/${PORTNAME}-bootloader/${PORTNAME}/releases/download/v${DISTVERSION}/
diff --git a/sysutils/limine/distinfo b/sysutils/limine/distinfo
index a0212647d3a5..e519cfad1ebf 100644
--- a/sysutils/limine/distinfo
+++ b/sysutils/limine/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1754718382
-SHA256 (limine-9.6.0.tar.gz) = 715f9b2d507cc06553e2127e5a45da41034bcd66a86663176b5a993da1990271
-SIZE (limine-9.6.0.tar.gz) = 572260
+TIMESTAMP = 1756427095
+SHA256 (limine-9.6.1.tar.gz) = fc601e671d9286d0be568a8d3bf481f07e242cb81d2c073f440195c45e8899b7
+SIZE (limine-9.6.1.tar.gz) = 580752
diff --git a/sysutils/nitro/Makefile b/sysutils/nitro/Makefile
new file mode 100644
index 000000000000..23f5ff369347
--- /dev/null
+++ b/sysutils/nitro/Makefile
@@ -0,0 +1,19 @@
+PORTNAME= nitro
+PORTVERSION= 0.2
+CATEGORIES= sysutils
+MASTER_SITES= https://git.vuxu.org/nitro/snapshot/
+
+MAINTAINER= jsmith@resonatingmedia.com
+COMMENT= Minimal init implementation and process supervisor
+WWW= https://git.vuxu.org/nitro/about/
+
+LICENSE= ISCL
+LICENSE_FILE= ${WRKDIR}/${PORTNAME}-${PORTVERSION}/LICENSE
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/nitro ${STAGEDIR}${PREFIX}/bin/nitro
+ ${INSTALL_PROGRAM} ${WRKSRC}/nitroctl ${STAGEDIR}${PREFIX}/bin/nitroctl
+ ${INSTALL_MAN} ${WRKSRC}/nitro.8 ${STAGEDIR}${PREFIX}/share/man/man8/
+ ${INSTALL_MAN} ${WRKSRC}/nitroctl.1 ${STAGEDIR}${PREFIX}/share/man/man1/
+
+.include <bsd.port.mk>
diff --git a/sysutils/nitro/distinfo b/sysutils/nitro/distinfo
new file mode 100644
index 000000000000..70f6a840134c
--- /dev/null
+++ b/sysutils/nitro/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1756212916
+SHA256 (nitro-0.2.tar.gz) = 9086861971ff95fcd53eaac9acea3ea8d90fdef7b8a8026fecfb63e2c209a87e
+SIZE (nitro-0.2.tar.gz) = 19137
diff --git a/sysutils/nitro/pkg-descr b/sysutils/nitro/pkg-descr
new file mode 100644
index 000000000000..d6695ea61e35
--- /dev/null
+++ b/sysutils/nitro/pkg-descr
@@ -0,0 +1,6 @@
+Nitro is a tiny process supervisor that also can be used as PID 1 on
+Unix-like systems.
+
+It can run as an unprivileged supervision daemon on POSIX systems.
+Nitro is configured by a directory of scripts, defaulting to /etc/nitro
+or the first command line argument.
diff --git a/sysutils/nitro/pkg-plist b/sysutils/nitro/pkg-plist
new file mode 100644
index 000000000000..35ec49e38f32
--- /dev/null
+++ b/sysutils/nitro/pkg-plist
@@ -0,0 +1,4 @@
+bin/nitro
+bin/nitroctl
+share/man/man8/nitro.8.gz
+share/man/man1/nitroctl.1.gz
diff --git a/sysutils/py-healthchecks/Makefile b/sysutils/py-healthchecks/Makefile
index 04f881daa09c..dc1371790a93 100644
--- a/sysutils/py-healthchecks/Makefile
+++ b/sysutils/py-healthchecks/Makefile
@@ -1,6 +1,6 @@
PORTNAME= healthchecks
DISTVERSIONPREFIX= v
-DISTVERSION= 3.10
+DISTVERSION= 3.11
CATEGORIES= sysutils python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/sysutils/py-healthchecks/distinfo b/sysutils/py-healthchecks/distinfo
index ab854ba59b73..14a3b585457c 100644
--- a/sysutils/py-healthchecks/distinfo
+++ b/sysutils/py-healthchecks/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1749595062
-SHA256 (healthchecks-healthchecks-v3.10_GH0.tar.gz) = 81fcc6577771ba966e45e35976f084419e1637b3f595e42d91556054a7a1b6d6
-SIZE (healthchecks-healthchecks-v3.10_GH0.tar.gz) = 4868195
+TIMESTAMP = 1756493028
+SHA256 (healthchecks-healthchecks-v3.11_GH0.tar.gz) = bd0249067128d2b1be0a9d528c9bb536573ec51f4de98105c50369c49b3e840e
+SIZE (healthchecks-healthchecks-v3.11_GH0.tar.gz) = 5153184
diff --git a/sysutils/py-healthchecks/files/patch-hc_lib_webauthn.py b/sysutils/py-healthchecks/files/patch-hc_lib_webauthn.py
deleted file mode 100644
index 24494bdf19db..000000000000
--- a/sysutils/py-healthchecks/files/patch-hc_lib_webauthn.py
+++ /dev/null
@@ -1,11 +0,0 @@
---- hc/lib/webauthn.py.orig 2025-06-11 05:51:38 UTC
-+++ hc/lib/webauthn.py
-@@ -14,8 +14,6 @@ from fido2.webauthn import (
- UserVerificationRequirement,
- )
-
--fido2.features.webauthn_json_mapping.enabled = True
--
-
- class CreateHelper:
- def __init__(self, rp_id: str, credentials: Iterable[bytes]):
diff --git a/sysutils/py-healthchecks/pkg-plist b/sysutils/py-healthchecks/pkg-plist
index 8cf35605944b..f6a6f063afa9 100644
--- a/sysutils/py-healthchecks/pkg-plist
+++ b/sysutils/py-healthchecks/pkg-plist
@@ -491,6 +491,7 @@ bin/hcks
%%HOMEDIR%%/hc/api/tests/__init__.py
%%HOMEDIR%%/hc/api/tests/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/api/tests/__pycache__/test_admin%%PYTHON_TAG%%.opt-1.pyc
+%%HOMEDIR%%/hc/api/tests/__pycache__/test_auth%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/api/tests/__pycache__/test_badge%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/api/tests/__pycache__/test_bounces%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/api/tests/__pycache__/test_channel_model%%PYTHON_TAG%%.opt-1.pyc
@@ -515,6 +516,7 @@ bin/hcks
%%HOMEDIR%%/hc/api/tests/__pycache__/test_notify_discord%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/api/tests/__pycache__/test_notify_email%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/api/tests/__pycache__/test_notify_github%%PYTHON_TAG%%.opt-1.pyc
+%%HOMEDIR%%/hc/api/tests/__pycache__/test_notify_googlechat%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/api/tests/__pycache__/test_notify_gotify%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/api/tests/__pycache__/test_notify_group%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/api/tests/__pycache__/test_notify_matrix%%PYTHON_TAG%%.opt-1.pyc
@@ -551,6 +553,7 @@ bin/hcks
%%HOMEDIR%%/hc/api/tests/__pycache__/test_tokenbucket%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/api/tests/__pycache__/test_update_check%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/api/tests/test_admin.py
+%%HOMEDIR%%/hc/api/tests/test_auth.py
%%HOMEDIR%%/hc/api/tests/test_badge.py
%%HOMEDIR%%/hc/api/tests/test_bounces.py
%%HOMEDIR%%/hc/api/tests/test_channel_model.py
@@ -575,6 +578,7 @@ bin/hcks
%%HOMEDIR%%/hc/api/tests/test_notify_discord.py
%%HOMEDIR%%/hc/api/tests/test_notify_email.py
%%HOMEDIR%%/hc/api/tests/test_notify_github.py
+%%HOMEDIR%%/hc/api/tests/test_notify_googlechat.py
%%HOMEDIR%%/hc/api/tests/test_notify_gotify.py
%%HOMEDIR%%/hc/api/tests/test_notify_group.py
%%HOMEDIR%%/hc/api/tests/test_notify_matrix.py
@@ -663,6 +667,7 @@ bin/hcks
%%HOMEDIR%%/hc/front/tests/__pycache__/test_add_github%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/front/tests/__pycache__/test_add_github_save%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/front/tests/__pycache__/test_add_github_select%%PYTHON_TAG%%.opt-1.pyc
+%%HOMEDIR%%/hc/front/tests/__pycache__/test_add_googlechat%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/front/tests/__pycache__/test_add_gotify%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/front/tests/__pycache__/test_add_group%%PYTHON_TAG%%.opt-1.pyc
%%HOMEDIR%%/hc/front/tests/__pycache__/test_add_matrix%%PYTHON_TAG%%.opt-1.pyc
@@ -755,6 +760,7 @@ bin/hcks
%%HOMEDIR%%/hc/front/tests/test_add_github.py
%%HOMEDIR%%/hc/front/tests/test_add_github_save.py
%%HOMEDIR%%/hc/front/tests/test_add_github_select.py
+%%HOMEDIR%%/hc/front/tests/test_add_googlechat.py
%%HOMEDIR%%/hc/front/tests/test_add_gotify.py
%%HOMEDIR%%/hc/front/tests/test_add_group.py
%%HOMEDIR%%/hc/front/tests/test_add_matrix.py
@@ -989,16 +995,20 @@ bin/hcks
%%HOMEDIR%%/static-collected/CACHE/css/output.4118f003b752.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.48b942e160d8.css
%%HOMEDIR%%/static-collected/CACHE/css/output.48b942e160d8.css.gz
+%%HOMEDIR%%/static-collected/CACHE/css/output.4f48555496c9.css
+%%HOMEDIR%%/static-collected/CACHE/css/output.4f48555496c9.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.537f18b6ba12.css
%%HOMEDIR%%/static-collected/CACHE/css/output.537f18b6ba12.css.gz
-%%HOMEDIR%%/static-collected/CACHE/css/output.591dec56fbd3.css
-%%HOMEDIR%%/static-collected/CACHE/css/output.591dec56fbd3.css.gz
+%%HOMEDIR%%/static-collected/CACHE/css/output.5b5be2f67d28.css
+%%HOMEDIR%%/static-collected/CACHE/css/output.5b5be2f67d28.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.5b9a3186b65a.css
%%HOMEDIR%%/static-collected/CACHE/css/output.5b9a3186b65a.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.61b1757619db.css
%%HOMEDIR%%/static-collected/CACHE/css/output.61b1757619db.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.651292eaad87.css
%%HOMEDIR%%/static-collected/CACHE/css/output.651292eaad87.css.gz
+%%HOMEDIR%%/static-collected/CACHE/css/output.67ce9cb7a3a5.css
+%%HOMEDIR%%/static-collected/CACHE/css/output.67ce9cb7a3a5.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.7349cc459c54.css
%%HOMEDIR%%/static-collected/CACHE/css/output.7349cc459c54.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.79bc4ba389df.css
@@ -1021,8 +1031,6 @@ bin/hcks
%%HOMEDIR%%/static-collected/CACHE/css/output.a28ec659c3ea.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.a2931392e224.css
%%HOMEDIR%%/static-collected/CACHE/css/output.a2931392e224.css.gz
-%%HOMEDIR%%/static-collected/CACHE/css/output.afdd0d9e2c60.css
-%%HOMEDIR%%/static-collected/CACHE/css/output.afdd0d9e2c60.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.b5314e6471ce.css
%%HOMEDIR%%/static-collected/CACHE/css/output.b5314e6471ce.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.ba3a60f23b9a.css
@@ -1041,8 +1049,6 @@ bin/hcks
%%HOMEDIR%%/static-collected/CACHE/css/output.e3f0c67e857e.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.eebd23618fe6.css
%%HOMEDIR%%/static-collected/CACHE/css/output.eebd23618fe6.css.gz
-%%HOMEDIR%%/static-collected/CACHE/css/output.f6cc102e1861.css
-%%HOMEDIR%%/static-collected/CACHE/css/output.f6cc102e1861.css.gz
%%HOMEDIR%%/static-collected/CACHE/css/output.fdf9c458f5a6.css
%%HOMEDIR%%/static-collected/CACHE/css/output.fdf9c458f5a6.css.gz
%%HOMEDIR%%/static-collected/CACHE/js/output.02b19c497817.js
@@ -1055,14 +1061,14 @@ bin/hcks
%%HOMEDIR%%/static-collected/CACHE/js/output.097d8334f506.js.gz
%%HOMEDIR%%/static-collected/CACHE/js/output.0e0937a580b2.js
%%HOMEDIR%%/static-collected/CACHE/js/output.0e0937a580b2.js.gz
+%%HOMEDIR%%/static-collected/CACHE/js/output.113a1ef56da7.js
+%%HOMEDIR%%/static-collected/CACHE/js/output.113a1ef56da7.js.gz
%%HOMEDIR%%/static-collected/CACHE/js/output.18f4718d4ce3.js
%%HOMEDIR%%/static-collected/CACHE/js/output.18f4718d4ce3.js.gz
%%HOMEDIR%%/static-collected/CACHE/js/output.26c3b45ec11c.js
%%HOMEDIR%%/static-collected/CACHE/js/output.26c3b45ec11c.js.gz
%%HOMEDIR%%/static-collected/CACHE/js/output.29ce58ce5705.js
%%HOMEDIR%%/static-collected/CACHE/js/output.29ce58ce5705.js.gz
-%%HOMEDIR%%/static-collected/CACHE/js/output.30713209972b.js
-%%HOMEDIR%%/static-collected/CACHE/js/output.30713209972b.js.gz
%%HOMEDIR%%/static-collected/CACHE/js/output.407d637b1928.js
%%HOMEDIR%%/static-collected/CACHE/js/output.407d637b1928.js.gz
%%HOMEDIR%%/static-collected/CACHE/js/output.430be6dfa998.js
@@ -1083,8 +1089,6 @@ bin/hcks
%%HOMEDIR%%/static-collected/CACHE/js/output.7505ee85b4a8.js.gz
%%HOMEDIR%%/static-collected/CACHE/js/output.866b0bf6a99c.js
%%HOMEDIR%%/static-collected/CACHE/js/output.866b0bf6a99c.js.gz
-%%HOMEDIR%%/static-collected/CACHE/js/output.8745e5647b67.js
-%%HOMEDIR%%/static-collected/CACHE/js/output.8745e5647b67.js.gz
%%HOMEDIR%%/static-collected/CACHE/js/output.903693c65e2f.js
%%HOMEDIR%%/static-collected/CACHE/js/output.903693c65e2f.js.gz
%%HOMEDIR%%/static-collected/CACHE/js/output.90b827a4394a.js
@@ -1127,6 +1131,8 @@ bin/hcks
%%HOMEDIR%%/static-collected/CACHE/js/output.eff9e36f847f.js.gz
%%HOMEDIR%%/static-collected/CACHE/js/output.f95b393f8094.js
%%HOMEDIR%%/static-collected/CACHE/js/output.f95b393f8094.js.gz
+%%HOMEDIR%%/static-collected/CACHE/js/output.fad6571c4af0.js
+%%HOMEDIR%%/static-collected/CACHE/js/output.fad6571c4af0.js.gz
%%HOMEDIR%%/static-collected/CACHE/manifest.json
%%HOMEDIR%%/static-collected/admin/css/autocomplete.css
%%HOMEDIR%%/static-collected/admin/css/base.css
@@ -1314,10 +1320,15 @@ bin/hcks
%%HOMEDIR%%/static-collected/img/docs/badges.png
%%HOMEDIR%%/static-collected/img/docs/checks_durations.png
%%HOMEDIR%%/static-collected/img/docs/checks_integrations.png
+%%HOMEDIR%%/static-collected/img/docs/checks_integrations.webm
+%%HOMEDIR%%/static-collected/img/docs/checks_uuid_slug_selector.png
%%HOMEDIR%%/static-collected/img/docs/create_copy.png
%%HOMEDIR%%/static-collected/img/docs/ddwrt.png
%%HOMEDIR%%/static-collected/img/docs/details_durations.png
%%HOMEDIR%%/static-collected/img/docs/details_integrations.png
+%%HOMEDIR%%/static-collected/img/docs/details_integrations.webm
+%%HOMEDIR%%/static-collected/img/docs/details_uuid_slug_selector.png
+%%HOMEDIR%%/static-collected/img/docs/duplicate_slugs.png
%%HOMEDIR%%/static-collected/img/docs/edit_cron_schedule.png
%%HOMEDIR%%/static-collected/img/docs/edit_name.png
%%HOMEDIR%%/static-collected/img/docs/edit_oncalendar_schedule.png
@@ -1328,8 +1339,9 @@ bin/hcks
%%HOMEDIR%%/static-collected/img/docs/filtering_rules.png
%%HOMEDIR%%/static-collected/img/docs/monthly_report.png
%%HOMEDIR%%/static-collected/img/docs/ping_details.png
+%%HOMEDIR%%/static-collected/img/docs/project_settings_ping_key.png
%%HOMEDIR%%/static-collected/img/docs/projects.png
-%%HOMEDIR%%/static-collected/img/docs/prometheus_endpoint.png
+%%HOMEDIR%%/static-collected/img/docs/prometheus_api_keys.png
%%HOMEDIR%%/static-collected/img/docs/routeros1.png
%%HOMEDIR%%/static-collected/img/docs/routeros2.png
%%HOMEDIR%%/static-collected/img/docs/run_ids.png
@@ -1348,6 +1360,7 @@ bin/hcks
%%HOMEDIR%%/static-collected/img/integrations/email.png
%%HOMEDIR%%/static-collected/img/integrations/github-white.png
%%HOMEDIR%%/static-collected/img/integrations/github.png
+%%HOMEDIR%%/static-collected/img/integrations/googlechat.png
%%HOMEDIR%%/static-collected/img/integrations/gotify.png
%%HOMEDIR%%/static-collected/img/integrations/group.png
%%HOMEDIR%%/static-collected/img/integrations/linenotify.png
@@ -1365,6 +1378,10 @@ bin/hcks
%%HOMEDIR%%/static-collected/img/integrations/prometheus.png
%%HOMEDIR%%/static-collected/img/integrations/pushbullet.png
%%HOMEDIR%%/static-collected/img/integrations/rocketchat.png
+%%HOMEDIR%%/static-collected/img/integrations/setup_googlechat_1.png
+%%HOMEDIR%%/static-collected/img/integrations/setup_googlechat_2.png
+%%HOMEDIR%%/static-collected/img/integrations/setup_googlechat_3.png
+%%HOMEDIR%%/static-collected/img/integrations/setup_googlechat_4.png
%%HOMEDIR%%/static-collected/img/integrations/setup_gotify_1.png
%%HOMEDIR%%/static-collected/img/integrations/setup_gotify_2.png
%%HOMEDIR%%/static-collected/img/integrations/setup_matrix_1.png
@@ -1543,10 +1560,15 @@ bin/hcks
%%HOMEDIR%%/static/img/docs/badges.png
%%HOMEDIR%%/static/img/docs/checks_durations.png
%%HOMEDIR%%/static/img/docs/checks_integrations.png
+%%HOMEDIR%%/static/img/docs/checks_integrations.webm
+%%HOMEDIR%%/static/img/docs/checks_uuid_slug_selector.png
%%HOMEDIR%%/static/img/docs/create_copy.png
%%HOMEDIR%%/static/img/docs/ddwrt.png
%%HOMEDIR%%/static/img/docs/details_durations.png
%%HOMEDIR%%/static/img/docs/details_integrations.png
+%%HOMEDIR%%/static/img/docs/details_integrations.webm
+%%HOMEDIR%%/static/img/docs/details_uuid_slug_selector.png
+%%HOMEDIR%%/static/img/docs/duplicate_slugs.png
%%HOMEDIR%%/static/img/docs/edit_cron_schedule.png
%%HOMEDIR%%/static/img/docs/edit_name.png
%%HOMEDIR%%/static/img/docs/edit_oncalendar_schedule.png
@@ -1557,8 +1579,9 @@ bin/hcks
%%HOMEDIR%%/static/img/docs/filtering_rules.png
%%HOMEDIR%%/static/img/docs/monthly_report.png
%%HOMEDIR%%/static/img/docs/ping_details.png
+%%HOMEDIR%%/static/img/docs/project_settings_ping_key.png
%%HOMEDIR%%/static/img/docs/projects.png
-%%HOMEDIR%%/static/img/docs/prometheus_endpoint.png
+%%HOMEDIR%%/static/img/docs/prometheus_api_keys.png
%%HOMEDIR%%/static/img/docs/routeros1.png
%%HOMEDIR%%/static/img/docs/routeros2.png
%%HOMEDIR%%/static/img/docs/run_ids.png
@@ -1577,6 +1600,7 @@ bin/hcks
%%HOMEDIR%%/static/img/integrations/email.png
%%HOMEDIR%%/static/img/integrations/github-white.png
%%HOMEDIR%%/static/img/integrations/github.png
+%%HOMEDIR%%/static/img/integrations/googlechat.png
%%HOMEDIR%%/static/img/integrations/gotify.png
%%HOMEDIR%%/static/img/integrations/group.png
%%HOMEDIR%%/static/img/integrations/linenotify.png
@@ -1594,6 +1618,10 @@ bin/hcks
%%HOMEDIR%%/static/img/integrations/prometheus.png
%%HOMEDIR%%/static/img/integrations/pushbullet.png
%%HOMEDIR%%/static/img/integrations/rocketchat.png
+%%HOMEDIR%%/static/img/integrations/setup_googlechat_1.png
+%%HOMEDIR%%/static/img/integrations/setup_googlechat_2.png
+%%HOMEDIR%%/static/img/integrations/setup_googlechat_3.png
+%%HOMEDIR%%/static/img/integrations/setup_googlechat_4.png
%%HOMEDIR%%/static/img/integrations/setup_gotify_1.png
%%HOMEDIR%%/static/img/integrations/setup_gotify_2.png
%%HOMEDIR%%/static/img/integrations/setup_matrix_1.png
@@ -1813,6 +1841,8 @@ bin/hcks
%%HOMEDIR%%/templates/docs/self_hosted_docker.md
%%HOMEDIR%%/templates/docs/signaling_failures.html-fragment
%%HOMEDIR%%/templates/docs/signaling_failures.md
+%%HOMEDIR%%/templates/docs/slug_urls.html-fragment
+%%HOMEDIR%%/templates/docs/slug_urls.md
%%HOMEDIR%%/templates/emails/alert-body-html.html
%%HOMEDIR%%/templates/emails/alert-body-text.html
%%HOMEDIR%%/templates/emails/alert-subject.html
@@ -1931,6 +1961,7 @@ bin/hcks
%%HOMEDIR%%/templates/integrations/add_discord.html
%%HOMEDIR%%/templates/integrations/add_github.html
%%HOMEDIR%%/templates/integrations/add_github_form.html
+%%HOMEDIR%%/templates/integrations/add_googlechat.html
%%HOMEDIR%%/templates/integrations/add_gotify.html
%%HOMEDIR%%/templates/integrations/add_matrix.html
%%HOMEDIR%%/templates/integrations/add_mattermost.html
diff --git a/textproc/Makefile b/textproc/Makefile
index 9f9508f45f72..8844023e0091 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -1228,6 +1228,7 @@
SUBDIR += pdfresurrect
SUBDIR += pdfsandwich
SUBDIR += pdftohtml
+ SUBDIR += pdjson
SUBDIR += pear-File_Fortune
SUBDIR += pear-File_MARC
SUBDIR += pear-Horde_CssMinify
diff --git a/textproc/feluda/Makefile b/textproc/feluda/Makefile
index 040221e33799..aeb0da5aeddf 100644
--- a/textproc/feluda/Makefile
+++ b/textproc/feluda/Makefile
@@ -1,5 +1,6 @@
PORTNAME= feluda
-DISTVERSION= 1.9.7
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.9.8 # Cargo.lock patched: `make patch cargo-crates`
CATEGORIES= textproc
MAINTAINER= nxjoseph@protonmail.com
@@ -16,6 +17,10 @@ USES= cargo localbase ssl
USE_GITHUB= yes
GH_ACCOUNT= anistark
+# OPENSSL_NO_VENDOR needs openssl-src present so I'm using Cargo.lock and Cargo.toml patches:
+# first to not fetch openssl-src tarball and later to remove git2 ossl vendored feature.
+CARGO_ENV= OPENSSL_NO_VENDOR=1
+
PLIST_FILES= bin/${PORTNAME}
.include <bsd.port.mk>
diff --git a/textproc/feluda/Makefile.crates b/textproc/feluda/Makefile.crates
index 899b301d1e96..7c0069c4fbe7 100644
--- a/textproc/feluda/Makefile.crates
+++ b/textproc/feluda/Makefile.crates
@@ -39,7 +39,6 @@ CARGO_CRATES= addr2line-0.24.2 \
colorchoice-1.0.4 \
colored-3.0.0 \
compact_str-0.8.1 \
- core-foundation-0.9.4 \
core-foundation-sys-0.8.7 \
crossbeam-deque-0.8.6 \
crossbeam-epoch-0.9.18 \
@@ -68,8 +67,6 @@ CARGO_CRATES= addr2line-0.24.2 \
figment-0.10.19 \
fnv-1.0.7 \
foldhash-0.1.5 \
- foreign-types-0.3.2 \
- foreign-types-shared-0.1.1 \
form_urlencoded-1.2.1 \
fragile-2.0.1 \
futf-0.1.5 \
@@ -97,7 +94,6 @@ CARGO_CRATES= addr2line-0.24.2 \
httparse-1.10.1 \
hyper-1.6.0 \
hyper-rustls-0.27.7 \
- hyper-tls-0.6.0 \
hyper-util-0.1.16 \
iana-time-zone-0.1.63 \
iana-time-zone-haiku-0.1.2 \
@@ -148,15 +144,12 @@ CARGO_CRATES= addr2line-0.24.2 \
mio-1.0.4 \
mockall-0.13.1 \
mockall_derive-0.13.1 \
- native-tls-0.2.14 \
new_debug_unreachable-1.0.6 \
nu-ansi-term-0.46.0 \
num-traits-0.2.19 \
object-0.36.7 \
once_cell-1.21.3 \
once_cell_polyfill-1.70.1 \
- openssl-0.10.73 \
- openssl-macros-0.1.1 \
openssl-probe-0.1.6 \
openssl-sys-0.9.109 \
option-ext-0.2.0 \
@@ -217,11 +210,8 @@ CARGO_CRATES= addr2line-0.24.2 \
rustversion-1.0.21 \
ryu-1.0.20 \
same-file-1.0.6 \
- schannel-0.1.27 \
scopeguard-1.2.0 \
scraper-0.23.1 \
- security-framework-2.11.1 \
- security-framework-sys-2.14.0 \
selectors-0.26.0 \
semver-1.0.26 \
serde-1.0.219 \
@@ -239,7 +229,7 @@ CARGO_CRATES= addr2line-0.24.2 \
signal-hook-mio-0.2.4 \
signal-hook-registry-1.4.5 \
siphasher-1.0.1 \
- slab-0.4.10 \
+ slab-0.4.11 \
smallvec-1.15.1 \
socket2-0.5.10 \
socket2-0.6.0 \
@@ -271,7 +261,6 @@ CARGO_CRATES= addr2line-0.24.2 \
tinyvec-1.9.0 \
tinyvec_macros-0.1.1 \
tokio-1.46.1 \
- tokio-native-tls-0.3.1 \
tokio-rustls-0.26.2 \
tokio-util-0.7.15 \
toml-0.8.23 \
diff --git a/textproc/feluda/distinfo b/textproc/feluda/distinfo
index ee4d2779b7e2..5bae23fbb929 100644
--- a/textproc/feluda/distinfo
+++ b/textproc/feluda/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1753857000
+TIMESTAMP = 1756194071
SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
@@ -81,8 +81,6 @@ SHA256 (rust/crates/colored-3.0.0.crate) = fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffd
SIZE (rust/crates/colored-3.0.0.crate) = 34497
SHA256 (rust/crates/compact_str-0.8.1.crate) = 3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32
SIZE (rust/crates/compact_str-0.8.1.crate) = 71371
-SHA256 (rust/crates/core-foundation-0.9.4.crate) = 91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f
-SIZE (rust/crates/core-foundation-0.9.4.crate) = 27743
SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51
@@ -139,10 +137,6 @@ SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da2
SIZE (rust/crates/fnv-1.0.7.crate) = 11266
SHA256 (rust/crates/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2
SIZE (rust/crates/foldhash-0.1.5.crate) = 21901
-SHA256 (rust/crates/foreign-types-0.3.2.crate) = f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1
-SIZE (rust/crates/foreign-types-0.3.2.crate) = 7504
-SHA256 (rust/crates/foreign-types-shared-0.1.1.crate) = 00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b
-SIZE (rust/crates/foreign-types-shared-0.1.1.crate) = 5672
SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456
SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
SHA256 (rust/crates/fragile-2.0.1.crate) = 28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619
@@ -197,8 +191,6 @@ SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71
SIZE (rust/crates/hyper-1.6.0.crate) = 153923
SHA256 (rust/crates/hyper-rustls-0.27.7.crate) = e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58
SIZE (rust/crates/hyper-rustls-0.27.7.crate) = 35435
-SHA256 (rust/crates/hyper-tls-0.6.0.crate) = 70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0
-SIZE (rust/crates/hyper-tls-0.6.0.crate) = 15052
SHA256 (rust/crates/hyper-util-0.1.16.crate) = 8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e
SIZE (rust/crates/hyper-util-0.1.16.crate) = 101184
SHA256 (rust/crates/iana-time-zone-0.1.63.crate) = b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8
@@ -299,8 +291,6 @@ SHA256 (rust/crates/mockall-0.13.1.crate) = 39a6bfcc6c8c7eed5ee98b9c3e33adc72605
SIZE (rust/crates/mockall-0.13.1.crate) = 22825
SHA256 (rust/crates/mockall_derive-0.13.1.crate) = 25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898
SIZE (rust/crates/mockall_derive-0.13.1.crate) = 47822
-SHA256 (rust/crates/native-tls-0.2.14.crate) = 87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e
-SIZE (rust/crates/native-tls-0.2.14.crate) = 29385
SHA256 (rust/crates/new_debug_unreachable-1.0.6.crate) = 650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086
SIZE (rust/crates/new_debug_unreachable-1.0.6.crate) = 2582
SHA256 (rust/crates/nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84
@@ -313,10 +303,6 @@ SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a71648
SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
SHA256 (rust/crates/once_cell_polyfill-1.70.1.crate) = a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad
SIZE (rust/crates/once_cell_polyfill-1.70.1.crate) = 7510
-SHA256 (rust/crates/openssl-0.10.73.crate) = 8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8
-SIZE (rust/crates/openssl-0.10.73.crate) = 283994
-SHA256 (rust/crates/openssl-macros-0.1.1.crate) = a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c
-SIZE (rust/crates/openssl-macros-0.1.1.crate) = 5601
SHA256 (rust/crates/openssl-probe-0.1.6.crate) = d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e
SIZE (rust/crates/openssl-probe-0.1.6.crate) = 8128
SHA256 (rust/crates/openssl-sys-0.9.109.crate) = 90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571
@@ -437,16 +423,10 @@ SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc
SIZE (rust/crates/ryu-1.0.20.crate) = 48738
SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
SIZE (rust/crates/same-file-1.0.6.crate) = 10183
-SHA256 (rust/crates/schannel-0.1.27.crate) = 1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d
-SIZE (rust/crates/schannel-0.1.27.crate) = 42772
SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
SHA256 (rust/crates/scraper-0.23.1.crate) = 527e65d9d888567588db4c12da1087598d0f6f8b346cc2c5abc91f05fc2dffe2
SIZE (rust/crates/scraper-0.23.1.crate) = 24157
-SHA256 (rust/crates/security-framework-2.11.1.crate) = 897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02
-SIZE (rust/crates/security-framework-2.11.1.crate) = 80188
-SHA256 (rust/crates/security-framework-sys-2.14.0.crate) = 49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32
-SIZE (rust/crates/security-framework-sys-2.14.0.crate) = 20537
SHA256 (rust/crates/selectors-0.26.0.crate) = fd568a4c9bb598e291a08244a5c1f5a8a6650bee243b5b0f8dbb3d9cc1d87fe8
SIZE (rust/crates/selectors-0.26.0.crate) = 64329
SHA256 (rust/crates/semver-1.0.26.crate) = 56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0
@@ -481,8 +461,8 @@ SHA256 (rust/crates/signal-hook-registry-1.4.5.crate) = 9203b8055f63a2a00e2f593b
SIZE (rust/crates/signal-hook-registry-1.4.5.crate) = 19004
SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d
SIZE (rust/crates/siphasher-1.0.1.crate) = 10351
-SHA256 (rust/crates/slab-0.4.10.crate) = 04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d
-SIZE (rust/crates/slab-0.4.10.crate) = 17810
+SHA256 (rust/crates/slab-0.4.11.crate) = 7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589
+SIZE (rust/crates/slab-0.4.11.crate) = 18549
SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03
SIZE (rust/crates/smallvec-1.15.1.crate) = 38116
SHA256 (rust/crates/socket2-0.5.10.crate) = e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678
@@ -545,8 +525,6 @@ SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b
SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
SHA256 (rust/crates/tokio-1.46.1.crate) = 0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17
SIZE (rust/crates/tokio-1.46.1.crate) = 823632
-SHA256 (rust/crates/tokio-native-tls-0.3.1.crate) = bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2
-SIZE (rust/crates/tokio-native-tls-0.3.1.crate) = 20676
SHA256 (rust/crates/tokio-rustls-0.26.2.crate) = 8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b
SIZE (rust/crates/tokio-rustls-0.26.2.crate) = 31655
SHA256 (rust/crates/tokio-util-0.7.15.crate) = 66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df
@@ -731,5 +709,5 @@ SHA256 (rust/crates/zerovec-0.11.2.crate) = 4a05eb080e015ba39cc9e23bbe5e7fb04d5f
SIZE (rust/crates/zerovec-0.11.2.crate) = 124500
SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f
SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294
-SHA256 (anistark-feluda-1.9.7_GH0.tar.gz) = 31afcdd2a822ebd74bca98fc9d0f3b63e3b36ffd6a7497040dac37a00e55aefc
-SIZE (anistark-feluda-1.9.7_GH0.tar.gz) = 97271
+SHA256 (anistark-feluda-v1.9.8_GH0.tar.gz) = cb512ea32a3973b17a86e5c4c88bf5ba70f8e6cddda6a697172522e87b691070
+SIZE (anistark-feluda-v1.9.8_GH0.tar.gz) = 98501
diff --git a/textproc/feluda/files/patch-Cargo.lock b/textproc/feluda/files/patch-Cargo.lock
new file mode 100644
index 000000000000..27c7d76034c4
--- /dev/null
+++ b/textproc/feluda/files/patch-Cargo.lock
@@ -0,0 +1,26 @@
+--- Cargo.lock.orig 2025-08-21 11:42:16 UTC
++++ Cargo.lock
+@@ -1504,15 +1504,6 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00
+ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
+
+ [[package]]
+-name = "openssl-src"
+-version = "300.5.2+3.5.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4"
+-dependencies = [
+- "cc",
+-]
+-
+-[[package]]
+ name = "openssl-sys"
+ version = "0.9.109"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1520,7 +1511,6 @@ dependencies = [
+ dependencies = [
+ "cc",
+ "libc",
+- "openssl-src",
+ "pkg-config",
+ "vcpkg",
+ ]
diff --git a/textproc/feluda/files/patch-Cargo.toml b/textproc/feluda/files/patch-Cargo.toml
new file mode 100644
index 000000000000..44c9c773285b
--- /dev/null
+++ b/textproc/feluda/files/patch-Cargo.toml
@@ -0,0 +1,11 @@
+--- Cargo.toml.orig 2025-08-21 11:42:16 UTC
++++ Cargo.toml
+@@ -43,7 +43,7 @@ chrono = { version = "0.4", features = ["serde"] }
+ tracing = { version = "0.1.40", features = ["attributes"] }
+ tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
+ chrono = { version = "0.4", features = ["serde"] }
+-git2 = { version = "0.20.2", features = ["vendored-libgit2", "vendored-openssl"] }
++git2 = { version = "0.20.2", features = ["vendored-libgit2"] }
+ tempfile = "3.20.0"
+ dirs = "6.0.0"
+
diff --git a/textproc/go-yq/Makefile b/textproc/go-yq/Makefile
index 19294523b0d8..3d7940d4e52f 100644
--- a/textproc/go-yq/Makefile
+++ b/textproc/go-yq/Makefile
@@ -1,7 +1,6 @@
PORTNAME= go-yq
DISTVERSIONPREFIX= v
-DISTVERSION= 4.45.4
-PORTREVISION= 2
+DISTVERSION= 4.47.1
CATEGORIES= textproc
MAINTAINER= timp87@gmail.com
@@ -11,7 +10,7 @@ WWW= https://github.com/mikefarah/yq
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= go:1.24,modules
+USES= go:modules
GO_MODULE= github.com/mikefarah/yq/v4
GO_TARGET= .:yq
diff --git a/textproc/go-yq/distinfo b/textproc/go-yq/distinfo
index f6a19e4e8f38..c2f56ba45655 100644
--- a/textproc/go-yq/distinfo
+++ b/textproc/go-yq/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1750777412
-SHA256 (go/textproc_go-yq/go-yq-v4.45.4/v4.45.4.mod) = 3828ced67e69ab15e357b5d5d065a4d1b5b4fede629b646c0699b6820c564ffa
-SIZE (go/textproc_go-yq/go-yq-v4.45.4/v4.45.4.mod) = 982
-SHA256 (go/textproc_go-yq/go-yq-v4.45.4/v4.45.4.zip) = dc3ddd7f4ad66e98d26e5deb8826c95fd4d22f1e11989cd3690ddd93780d3fca
-SIZE (go/textproc_go-yq/go-yq-v4.45.4/v4.45.4.zip) = 456199
+TIMESTAMP = 1756457073
+SHA256 (go/textproc_go-yq/go-yq-v4.47.1/v4.47.1.mod) = f89a8564b46efdf0ff77835df9392f1fef423bc6b904dd1f79d385fb54b0376d
+SIZE (go/textproc_go-yq/go-yq-v4.47.1/v4.47.1.mod) = 1015
+SHA256 (go/textproc_go-yq/go-yq-v4.47.1/v4.47.1.zip) = e0c57fe2e4965301ef42159e0149f1e814eb5c0cdd4982b68e0a962ff6865498
+SIZE (go/textproc_go-yq/go-yq-v4.47.1/v4.47.1.zip) = 484080
diff --git a/textproc/html2xhtml/Makefile b/textproc/html2xhtml/Makefile
index 21a72fd24638..0961bc88cea4 100644
--- a/textproc/html2xhtml/Makefile
+++ b/textproc/html2xhtml/Makefile
@@ -1,5 +1,5 @@
PORTNAME= html2xhtml
-PORTVERSION= 1.4
+DISTVERSION= 1.4
CATEGORIES= textproc
MASTER_SITES= http://www.it.uc3m.es/jaf/html2xhtml/downloads/
@@ -8,10 +8,10 @@ COMMENT= Convert HTML to XHTML
WWW= https://www.it.uc3m.es/jaf/html2xhtml
LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
-GNU_CONFIGURE= yes
-GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
USES= iconv
+GNU_CONFIGURE= yes
CONFLICTS_INSTALL= p5-HTML-HTML5-Parser p5-XML-Driver-HTML # bin/html2xhtml
diff --git a/textproc/obsidian/Makefile b/textproc/obsidian/Makefile
index 4de716b9b8d7..cf9c1c5d8164 100644
--- a/textproc/obsidian/Makefile
+++ b/textproc/obsidian/Makefile
@@ -8,6 +8,7 @@
PORTNAME= obsidian
PORTVERSION= 1.9.10
+PORTREVISION= 1
CATEGORIES= textproc
# Icon is taken from the Nix build recipe
# https://github.com/NixOS/nixpkgs/blob/de5448dab588ad41aef40f8c7c0c230981656698/pkgs/applications/misc/obsidian/default.nix#L31-L34
diff --git a/textproc/pdjson/Makefile b/textproc/pdjson/Makefile
new file mode 100644
index 000000000000..087c1e6d1a8d
--- /dev/null
+++ b/textproc/pdjson/Makefile
@@ -0,0 +1,27 @@
+PORTNAME= pdjson
+DISTVERSION= g20250825
+CATEGORIES= textproc
+
+MAINTAINER= nsonack@herrhotzenplotz.de
+COMMENT= Public Domain JSON Parser Library for C
+
+LICENSE= UNLICENSE
+LICENSE_FILE= ${WRKSRC}/UNLICENSE
+
+USE_GITHUB= yes
+GH_ACCOUNT= skeeto
+GH_TAGNAME= 78fe04b820dc8817f540bdd87fb22887e0ef3981
+USE_LDCONFIG= yes
+
+TEST_TARGET= check
+
+SUB_FILES= pdjson.pc
+SUB_LIST= DISTVERSION=${DISTVERSION}
+
+do-install:
+ ${INSTALL_LIB} ${WRKSRC}/libpdjson.so ${STAGEDIR}${LOCALBASE}/lib/libpdjson.so.0
+ ${RLN} ${STAGEDIR}${LOCALBASE}/lib/libpdjson.so.0 ${STAGEDIR}${LOCALBASE}/lib/libpdjson.so
+ ${INSTALL} ${WRKSRC}/pdjson.h ${STAGEDIR}${LOCALBASE}/include
+ ${INSTALL_DATA} ${WRKDIR}/pdjson.pc ${STAGEDIR}${LOCALBASE}/libdata/pkgconfig
+
+.include <bsd.port.mk>
diff --git a/textproc/pdjson/distinfo b/textproc/pdjson/distinfo
new file mode 100644
index 000000000000..b457f5012f19
--- /dev/null
+++ b/textproc/pdjson/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1756138081
+SHA256 (skeeto-pdjson-g20250825-78fe04b820dc8817f540bdd87fb22887e0ef3981_GH0.tar.gz) = e6bf6a90e65736faa5cfa6641a1f3278b577504d63f7fd2bf6b1454d94fa223c
+SIZE (skeeto-pdjson-g20250825-78fe04b820dc8817f540bdd87fb22887e0ef3981_GH0.tar.gz) = 11698
diff --git a/textproc/pdjson/files/patch-Makefile b/textproc/pdjson/files/patch-Makefile
new file mode 100644
index 000000000000..bfe7b015e15f
--- /dev/null
+++ b/textproc/pdjson/files/patch-Makefile
@@ -0,0 +1,21 @@
+--- Makefile.orig 2024-02-22 11:12:52 UTC
++++ Makefile
+@@ -1,8 +1,8 @@
+ .POSIX:
+-CC = cc
+-CFLAGS = -std=c99 -pedantic -Wall -Wextra -Wno-missing-field-initializers
++CC ?= cc
++CFLAGS += -std=c99 -pedantic -Wall -Wextra -Wno-missing-field-initializers -fPIC
+
+-all: tests/pretty tests/stream tests/tests
++all: libpdjson.so tests/pretty tests/stream tests/tests
+
+ tests/pretty: tests/pretty.o pdjson.o
+ $(CC) $(LDFLAGS) -o $@ tests/pretty.o pdjson.o $(LDLIBS)
+@@ -28,3 +28,6 @@ clean:
+
+ .c.o:
+ $(CC) -c $(CFLAGS) -o $@ $<
++
++libpdjson.so: pdjson.o
++ $(CC) -shared -Wl,-soname=libpdjson.so.0 -o libpdjson.so pdjson.o
diff --git a/textproc/pdjson/files/pdjson.pc.in b/textproc/pdjson/files/pdjson.pc.in
new file mode 100644
index 000000000000..5feb5f556ec3
--- /dev/null
+++ b/textproc/pdjson/files/pdjson.pc.in
@@ -0,0 +1,11 @@
+prefix=%%PREFIX%%
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: pdjson
+Version: %%DISTVERSION%%
+Description: Public Domain JSON parser
+URL: https://github.com/skeeto/pdjson
+Libs: -L${libdir} -lpdjson
+Cflags: -I${includedir}
+
diff --git a/textproc/pdjson/pkg-descr b/textproc/pdjson/pkg-descr
new file mode 100644
index 000000000000..9443bb133061
--- /dev/null
+++ b/textproc/pdjson/pkg-descr
@@ -0,0 +1,5 @@
+A public domain JSON parser focused on correctness, ANSI C99
+compliance, full Unicode (UTF-8) support, minimal memory footprint,
+and a simple API. As a streaming API, arbitrary large JSON could
+be processed with a small amount of memory (the size of the largest
+string in the JSON).
diff --git a/textproc/pdjson/pkg-plist b/textproc/pdjson/pkg-plist
new file mode 100644
index 000000000000..98c00cb58daa
--- /dev/null
+++ b/textproc/pdjson/pkg-plist
@@ -0,0 +1,4 @@
+include/pdjson.h
+lib/libpdjson.so
+lib/libpdjson.so.0
+libdata/pkgconfig/pdjson.pc
diff --git a/textproc/py-ntc-templates/Makefile b/textproc/py-ntc-templates/Makefile
index bd7a262dcf05..92590d63ce14 100644
--- a/textproc/py-ntc-templates/Makefile
+++ b/textproc/py-ntc-templates/Makefile
@@ -1,6 +1,6 @@
PORTNAME= ntc-templates
DISTVERSIONPREFIX= v
-DISTVERSION= 7.9.0
+DISTVERSION= 8.0.0
CATEGORIES= textproc net-mgmt python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +12,7 @@ LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=1.0.0:devel/py-poetry-core@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}textfsm>=1.1.0<2.0.0:textproc/py-textfsm@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}textfsm>=1.1.0:textproc/py-textfsm@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}invoke>0:devel/py-invoke@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}ruamel.yaml>0:devel/py-ruamel.yaml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}toml>0:textproc/py-toml@${PY_FLAVOR} \
diff --git a/textproc/py-ntc-templates/distinfo b/textproc/py-ntc-templates/distinfo
index 4ad17d3d12a2..584e5730545e 100644
--- a/textproc/py-ntc-templates/distinfo
+++ b/textproc/py-ntc-templates/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747893176
-SHA256 (networktocode-ntc-templates-v7.9.0_GH0.tar.gz) = 855237d5a554e53b9158320733e6b33e228c768b3993bd6683ee2813808d4c12
-SIZE (networktocode-ntc-templates-v7.9.0_GH0.tar.gz) = 1607690
+TIMESTAMP = 1756398279
+SHA256 (networktocode-ntc-templates-v8.0.0_GH0.tar.gz) = 0c3c2a9a5aaccbcc77b50038401d523bf54871c949f59ade21f922c057c13873
+SIZE (networktocode-ntc-templates-v8.0.0_GH0.tar.gz) = 1634105
diff --git a/textproc/py-textfsm/Makefile b/textproc/py-textfsm/Makefile
index 5706a623f89c..afd91ce4791b 100644
--- a/textproc/py-textfsm/Makefile
+++ b/textproc/py-textfsm/Makefile
@@ -1,6 +1,5 @@
PORTNAME= textfsm
-DISTVERSION= 1.1.3
-PORTREVISION= 2
+DISTVERSION= 2.1.0
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,13 +11,13 @@ WWW= https://github.com/google/textfsm
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/COPYING
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}future>0:devel/py-future@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
-TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR}
+BUILD_DEPENDS= ${PY_SETUPTOOLS} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils pytest
+USE_PYTHON= autoplist concurrent pep517 pytest
+
+TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
NO_ARCH= yes
diff --git a/textproc/py-textfsm/distinfo b/textproc/py-textfsm/distinfo
index 08362d09108e..d23dd1819785 100644
--- a/textproc/py-textfsm/distinfo
+++ b/textproc/py-textfsm/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1686207535
-SHA256 (textfsm-1.1.3.tar.gz) = 577ef278a9237f5341ae9b682947cefa4a2c1b24dbe486f94f2c95addc6504b5
-SIZE (textfsm-1.1.3.tar.gz) = 55454
+TIMESTAMP = 1756398504
+SHA256 (textfsm-2.1.0.tar.gz) = 45c18ff2b7c90163dfdff7e20d3f482514cc7aac26bc2547744e79dfa761e458
+SIZE (textfsm-2.1.0.tar.gz) = 55486
diff --git a/textproc/py-textfsm/files/patch-setup.py b/textproc/py-textfsm/files/patch-setup.py
index e7a7c499d537..7b632bca1b43 100644
--- a/textproc/py-textfsm/files/patch-setup.py
+++ b/textproc/py-textfsm/files/patch-setup.py
@@ -1,13 +1,12 @@
Remove "testdata" directory from installation. It is only required for the
testsuite.
---- setup.py.orig 2019-11-26 11:17:07 UTC
+--- setup.py.orig 2025-03-21 04:48:22 UTC
+++ setup.py
-@@ -52,7 +52,6 @@ setup(name='textfsm',
- ]
- },
- include_package_data=True,
-- package_data={'textfsm': ['../testdata/*']},
- install_requires=['six', 'future'],
- setup_requires=['pytest-runner'],
- tests_require=['pytest'])
+@@ -50,6 +50,4 @@ setup(
+ ],
+ packages=['textfsm'],
+ entry_points={'console_scripts': ['textfsm=textfsm.parser:main']},
+- include_package_data=True,
+- package_data={'textfsm': ['../testdata/*']},
+ )
diff --git a/www/Makefile b/www/Makefile
index 4edc1757d653..dc404b1ecbdd 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -1456,6 +1456,7 @@
SUBDIR += phpvirtualbox
SUBDIR += phpvirtualbox-70
SUBDIR += phpvirtualbox-71
+ SUBDIR += phpvirtualbox-72
SUBDIR += phpvirtualbox-legacy
SUBDIR += piwigo
SUBDIR += plasma6-plasma-browser-integration
diff --git a/www/apache24/Makefile b/www/apache24/Makefile
index d356e4acadd4..ab878e5db287 100644
--- a/www/apache24/Makefile
+++ b/www/apache24/Makefile
@@ -1,5 +1,6 @@
PORTNAME= apache24
PORTVERSION= 2.4.65
+PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= APACHE_HTTPD
DISTNAME= httpd-${PORTVERSION}
diff --git a/www/apache24/files/apache24.in b/www/apache24/files/apache24.in
index 0b9c4bd55ba6..d9ced6f55d73 100644
--- a/www/apache24/files/apache24.in
+++ b/www/apache24/files/apache24.in
@@ -43,6 +43,8 @@ pidfile="${_pidprefix}.pid"
required_files=%%PREFIX%%/etc/apache24/httpd.conf
envvars="%%PREFIX%%/sbin/envvars"
+: ${apache24_svcj_options:="net_basic"}
+
[ -z "$apache24_enable" ] && apache24_enable="NO"
[ -z "$apache24limits_enable" ] && apache24limits_enable="NO"
[ -z "$apache24limits_args" ] && apache24limits_args="-e -C daemon"
@@ -83,6 +85,7 @@ if [ -n "$2" ]; then
eval command="\${apache24_${profile}_command:-${command}}"
eval pidfile="\${apache24_${profile}_pidfile:-${pidfile}}"
eval apache24_envvars="\${apache24_${profile}_envvars:-${envvars}}"
+ eval apache24_svcj_options="\${apache24_${profile}_svcj_options:-${apache24_svcj_options}}"
apache24_flags="-f ${apache24_configfile} -c \"PidFile ${pidfile}\" ${apache24_flags}"
else
echo "$0: extra argument ignored"
diff --git a/www/chromium/files/patch-net_dns_BUILD.gn b/www/chromium/files/patch-net_dns_BUILD.gn
index 2a4999bdc858..fc4d80d959a0 100644
--- a/www/chromium/files/patch-net_dns_BUILD.gn
+++ b/www/chromium/files/patch-net_dns_BUILD.gn
@@ -1,4 +1,4 @@
---- net/dns/BUILD.gn.orig 2025-08-07 06:57:29 UTC
+--- net/dns/BUILD.gn.orig 2025-08-11 22:26:04 UTC
+++ net/dns/BUILD.gn
@@ -140,7 +140,7 @@ source_set("dns") {
"dns_config_service_android.cc",
@@ -9,7 +9,17 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -181,6 +181,7 @@ source_set("dns") {
+@@ -174,6 +174,9 @@ source_set("dns") {
+ }
+
+ deps = [ "//net:net_deps" ]
++ if (is_bsd) {
++ deps += [ "//services/screen_ai/buildflags" ]
++ }
+
+ public_deps = [
+ ":dns_client",
+@@ -181,6 +184,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
@@ -17,7 +27,7 @@
]
if (enable_mdns) {
-@@ -454,9 +455,9 @@ source_set("tests") {
+@@ -454,9 +458,9 @@ source_set("tests") {
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile
index 0c4835a0173f..058a23506eac 100644
--- a/www/firefox-esr/Makefile
+++ b/www/firefox-esr/Makefile
@@ -1,5 +1,6 @@
PORTNAME= firefox
DISTVERSION= 140.2.0
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= www wayland
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index 5e5194da21f1..4d31a1d81930 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -1,5 +1,6 @@
PORTNAME= firefox
DISTVERSION= 142.0.1
+PORTREVISION= 1
PORTEPOCH= 2
CATEGORIES= www wayland
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}${DISTVERSIONSUFFIX}/source \
diff --git a/www/gitlab-pages/distinfo b/www/gitlab-pages/distinfo
index d4dfc511e729..fb028fd75b38 100644
--- a/www/gitlab-pages/distinfo
+++ b/www/gitlab-pages/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1755673986
-SHA256 (go/www_gitlab-pages/gitlab-pages-v18.3.0/go.mod) = f009bb2f145a5e8bfa40069b413d54c6212f0062253d9de94dc93e61b93b2a96
-SIZE (go/www_gitlab-pages/gitlab-pages-v18.3.0/go.mod) = 3436
-SHA256 (go/www_gitlab-pages/gitlab-pages-v18.3.0/gitlab-pages-v18.3.0.tar.bz2) = 942d1da9e47fe468267cb15004464dfd0138e0dd5eb8252943ebe115fc8226d4
-SIZE (go/www_gitlab-pages/gitlab-pages-v18.3.0/gitlab-pages-v18.3.0.tar.bz2) = 236413
+TIMESTAMP = 1756438003
+SHA256 (go/www_gitlab-pages/gitlab-pages-v18.3.1/go.mod) = f009bb2f145a5e8bfa40069b413d54c6212f0062253d9de94dc93e61b93b2a96
+SIZE (go/www_gitlab-pages/gitlab-pages-v18.3.1/go.mod) = 3436
+SHA256 (go/www_gitlab-pages/gitlab-pages-v18.3.1/gitlab-pages-v18.3.1.tar.bz2) = 16db6acfeb658cdd160c774035a0911ff804096c1306169105da3b754f6015f9
+SIZE (go/www_gitlab-pages/gitlab-pages-v18.3.1/gitlab-pages-v18.3.1.tar.bz2) = 237006
diff --git a/www/gitlab-workhorse/distinfo b/www/gitlab-workhorse/distinfo
index ffe9a794c4c9..e069c82b0d2e 100644
--- a/www/gitlab-workhorse/distinfo
+++ b/www/gitlab-workhorse/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1755674006
-SHA256 (go/www_gitlab-workhorse/gitlab-foss-v18.3.0/go.mod) = 9c034c905470aa1c1f54b96d744fd80cbc9c199fc84990e580297186080818b9
-SIZE (go/www_gitlab-workhorse/gitlab-foss-v18.3.0/go.mod) = 9331
-SHA256 (go/www_gitlab-workhorse/gitlab-foss-v18.3.0/gitlab-foss-v18.3.0.tar.bz2) = 6e41dcfac151ec18d8b6896823499a73fc45e026d3804798fdb73b5c5c51c332
-SIZE (go/www_gitlab-workhorse/gitlab-foss-v18.3.0/gitlab-foss-v18.3.0.tar.bz2) = 122196697
+TIMESTAMP = 1756438024
+SHA256 (go/www_gitlab-workhorse/gitlab-foss-v18.3.1/go.mod) = 9c034c905470aa1c1f54b96d744fd80cbc9c199fc84990e580297186080818b9
+SIZE (go/www_gitlab-workhorse/gitlab-foss-v18.3.1/go.mod) = 9331
+SHA256 (go/www_gitlab-workhorse/gitlab-foss-v18.3.1/gitlab-foss-v18.3.1.tar.bz2) = 6e6a71560915da21f52a35f8592824a5fa48054b2d113250b7183b04657157b9
+SIZE (go/www_gitlab-workhorse/gitlab-foss-v18.3.1/gitlab-foss-v18.3.1.tar.bz2) = 122193686
diff --git a/www/gitlab/Makefile.common b/www/gitlab/Makefile.common
index b5a9461467e0..8ecbae27d4a3 100644
--- a/www/gitlab/Makefile.common
+++ b/www/gitlab/Makefile.common
@@ -1,4 +1,4 @@
-GITLAB_VERSION= 18.3.0
+GITLAB_VERSION= 18.3.1
GITLAB_PORTREVISION= 0
# Git version gitaly should use (from gitlab mirror)
diff --git a/www/gitlab/distinfo b/www/gitlab/distinfo
index 591cf63d11d6..513bc2f6b7b5 100644
--- a/www/gitlab/distinfo
+++ b/www/gitlab/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1755673899
-SHA256 (gitlab-foss-v18.3.0.tar.bz2) = 6e41dcfac151ec18d8b6896823499a73fc45e026d3804798fdb73b5c5c51c332
-SIZE (gitlab-foss-v18.3.0.tar.bz2) = 122196697
-TIMESTAMP = 1755673938
-SHA256 (gitlab-v18.3.0-ee.tar.bz2) = 03f1e46a1afdbbb3ef7a3ce514afd0d267c20df52e8be9a7be8a7f51c4dd497f
-SIZE (gitlab-v18.3.0-ee.tar.bz2) = 138127084
+TIMESTAMP = 1756437955
+SHA256 (gitlab-foss-v18.3.1.tar.bz2) = 6e6a71560915da21f52a35f8592824a5fa48054b2d113250b7183b04657157b9
+SIZE (gitlab-foss-v18.3.1.tar.bz2) = 122193686
+TIMESTAMP = 1756437995
+SHA256 (gitlab-v18.3.1-ee.tar.bz2) = 32da4c6475a11bf425b7f63e2cadc94b4b8b5478d13176623a6b6f3df861c1b3
+SIZE (gitlab-v18.3.1-ee.tar.bz2) = 138138304
diff --git a/www/homepage/Makefile b/www/homepage/Makefile
index f30773c8cf73..7df2dfd50009 100644
--- a/www/homepage/Makefile
+++ b/www/homepage/Makefile
@@ -1,5 +1,5 @@
PORTNAME= homepage
-DISTVERSION= 1.4.5
+DISTVERSION= 1.4.6
CATEGORIES= www
MASTER_SITES= LOCAL/dtxdf/${PORTNAME}/
DISTFILES= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX}
diff --git a/www/homepage/distinfo b/www/homepage/distinfo
index 2be5eba52bb7..9723ff1f283e 100644
--- a/www/homepage/distinfo
+++ b/www/homepage/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755284700
-SHA256 (homepage-1.4.5.tar.gz) = 7e3af21014d5ed18db0f7270b02173622cf71ae3d95e71354cb4d9058fb9459b
-SIZE (homepage-1.4.5.tar.gz) = 12763514
+TIMESTAMP = 1756433341
+SHA256 (homepage-1.4.6.tar.gz) = 8e12e8990b1a3d7208e46888ed9af64faf135dd645be0f619a8312e4016eb3c9
+SIZE (homepage-1.4.6.tar.gz) = 12755151
diff --git a/www/homepage/pkg-plist b/www/homepage/pkg-plist
index f0c4df661cb5..8bd5b83f4a6c 100644
--- a/www/homepage/pkg-plist
+++ b/www/homepage/pkg-plist
@@ -366,7 +366,6 @@ etc/homepage.env
%%HOMEDIR%%/.next/static/chunks/5860.a10d0361279e6f9a.js
%%HOMEDIR%%/.next/static/chunks/5944.4bff334081a2eb22.js
%%HOMEDIR%%/.next/static/chunks/6002.f6ac6a7504802f1e.js
-%%HOMEDIR%%/.next/static/chunks/611.acdfd27946411a66.js
%%HOMEDIR%%/.next/static/chunks/6182.e82eb4ec3e4fa068.js
%%HOMEDIR%%/.next/static/chunks/6187.d0e3c9e2a14feb51.js
%%HOMEDIR%%/.next/static/chunks/6218.b4f08a33f469d76a.js
@@ -5170,8 +5169,9 @@ etc/homepage.env
%%HOMEDIR%%/src/widgets/whatsupdocker/component.jsx
%%HOMEDIR%%/src/widgets/xteve/component.jsx
%%HOMEDIR%%/src/widgets/zabbix/component.jsx
-%%WWWDIR%%/.next/static/C96yU3PHL1RBxfvfUwXg7/_buildManifest.js
-%%WWWDIR%%/.next/static/C96yU3PHL1RBxfvfUwXg7/_ssgManifest.js
-%%WWWDIR%%/.next/static/chunks/3121.062fa4a7824bc243.js
-%%WWWDIR%%/.next/static/chunks/9346.79cfeec7ac0908a1.js
-%%WWWDIR%%/.next/static/chunks/webpack-db160e9b591c440c.js
+%%HOMEDIR%%/.next/static/-dFR4Fpx7vGAuCNFyOPRb/_buildManifest.js
+%%HOMEDIR%%/.next/static/-dFR4Fpx7vGAuCNFyOPRb/_ssgManifest.js
+%%HOMEDIR%%/.next/static/chunks/3121.062fa4a7824bc243.js
+%%HOMEDIR%%/.next/static/chunks/9346.c6d566c362c5e060.js
+%%HOMEDIR%%/.next/static/chunks/611.47bd2aede4f96794.js
+%%HOMEDIR%%/.next/static/chunks/webpack-d2d287706f398086.js
diff --git a/www/iridium/files/patch-content_browser_BUILD.gn b/www/iridium/files/patch-content_browser_BUILD.gn
index e8240806ac8c..477ca0ded3bb 100644
--- a/www/iridium/files/patch-content_browser_BUILD.gn
+++ b/www/iridium/files/patch-content_browser_BUILD.gn
@@ -1,6 +1,14 @@
---- content/browser/BUILD.gn.orig 2025-06-19 07:37:57 UTC
+--- content/browser/BUILD.gn.orig 2025-06-18 12:17:42 UTC
+++ content/browser/BUILD.gn
-@@ -2571,6 +2571,14 @@ source_set("browser") {
+@@ -125,6 +125,7 @@ source_set("browser") {
+ "//components/optimization_guide/core:features",
+ "//components/optimization_guide/public/mojom",
+ "//components/os_crypt/sync",
++ "//components/paint_preview/buildflags:buildflags",
+ "//components/payments/content/icon",
+ "//components/payments/mojom",
+ "//components/performance_manager/scenario_api",
+@@ -2571,6 +2572,14 @@ source_set("browser") {
]
}
@@ -15,7 +23,7 @@
if (is_linux || is_chromeos) {
sources -=
[ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ]
-@@ -2616,6 +2624,15 @@ source_set("browser") {
+@@ -2616,6 +2625,15 @@ source_set("browser") {
if (allow_oop_video_decoder) {
sources += [ "media/oop_video_decoder_factory.cc" ]
deps += [ "//media/mojo/mojom" ]
diff --git a/www/iridium/files/patch-net_BUILD.gn b/www/iridium/files/patch-net_BUILD.gn
index cd6138a37fae..d30dac474cef 100644
--- a/www/iridium/files/patch-net_BUILD.gn
+++ b/www/iridium/files/patch-net_BUILD.gn
@@ -1,4 +1,4 @@
---- net/BUILD.gn.orig 2025-06-19 07:37:57 UTC
+--- net/BUILD.gn.orig 2025-06-18 12:17:42 UTC
+++ net/BUILD.gn
@@ -126,7 +126,7 @@ net_configs = [
"//build/config/compiler:wexit_time_destructors",
@@ -9,7 +9,15 @@
net_configs += [ "//build/config/linux:libresolv" ]
}
-@@ -1334,6 +1334,19 @@ component("net") {
+@@ -1138,6 +1138,7 @@ component("net") {
+ ":net_deps",
+ "//components/miracle_parameter/common",
+ "//components/network_time/time_tracker",
++ "//content/public/common:buildflags",
+ "//net/http:transport_security_state_generated_files",
+ "//third_party/simdutf:simdutf",
+ ]
+@@ -1334,6 +1335,19 @@ component("net") {
]
}
@@ -29,7 +37,7 @@
if (is_mac) {
sources += [
"base/network_notification_thread_mac.cc",
-@@ -1497,7 +1510,7 @@ component("net") {
+@@ -1497,7 +1511,7 @@ component("net") {
}
# Use getifaddrs() on POSIX platforms, except Linux.
@@ -38,7 +46,7 @@
sources += [
"base/network_interfaces_getifaddrs.cc",
"base/network_interfaces_getifaddrs.h",
-@@ -2207,7 +2220,7 @@ static_library("test_support") {
+@@ -2207,7 +2221,7 @@ static_library("test_support") {
]
}
@@ -47,7 +55,7 @@
sources += [
"base/address_tracker_linux_test_util.cc",
"base/address_tracker_linux_test_util.h",
-@@ -3030,14 +3043,14 @@ target(_test_target_type, "net_unittests") {
+@@ -3030,14 +3044,14 @@ target(_test_target_type, "net_unittests") {
]
}
@@ -64,7 +72,7 @@
sources += [
"base/address_tracker_linux_unittest.cc",
"base/network_interfaces_linux_unittest.cc",
-@@ -3135,6 +3148,10 @@ target(_test_target_type, "net_unittests") {
+@@ -3135,6 +3149,10 @@ target(_test_target_type, "net_unittests") {
]
}
@@ -75,7 +83,7 @@
if (enable_websockets) {
sources += [
"server/http_connection_unittest.cc",
-@@ -3200,7 +3217,7 @@ target(_test_target_type, "net_unittests") {
+@@ -3200,7 +3218,7 @@ target(_test_target_type, "net_unittests") {
]
}
@@ -84,7 +92,7 @@
sources += [ "tools/quic/quic_simple_server_test.cc" ]
}
-@@ -3339,7 +3356,7 @@ target(_test_target_type, "net_unittests") {
+@@ -3339,7 +3357,7 @@ target(_test_target_type, "net_unittests") {
}
# Use getifaddrs() on POSIX platforms, except Linux.
diff --git a/www/librewolf/Makefile b/www/librewolf/Makefile
index 6be8c1e5818f..7c8195691bfd 100644
--- a/www/librewolf/Makefile
+++ b/www/librewolf/Makefile
@@ -1,5 +1,6 @@
PORTNAME= librewolf
DISTVERSION= 142.0
+PORTREVISION= 1
LWPATCH= -1
DISTVERSIONSUFFIX= ${LWPATCH}.source
CATEGORIES= www wayland
diff --git a/www/nextcloud-contacts/Makefile b/www/nextcloud-contacts/Makefile
index d5d38b600079..f40ba1d3f697 100644
--- a/www/nextcloud-contacts/Makefile
+++ b/www/nextcloud-contacts/Makefile
@@ -1,5 +1,5 @@
PORTNAME= contacts
-PORTVERSION= 7.2.5
+PORTVERSION= 7.2.6
DISTVERSIONPREFIX= v
CATEGORIES= www
diff --git a/www/nextcloud-contacts/distinfo b/www/nextcloud-contacts/distinfo
index 9cfd5fda3d9f..b0c74cb0dbf3 100644
--- a/www/nextcloud-contacts/distinfo
+++ b/www/nextcloud-contacts/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755624542
-SHA256 (nextcloud/contacts-v7.2.5.tar.gz) = 03c7457cf79ee137b5cdb2da25fa21bb2c6731b6b2b267c36b78627099ea7e43
-SIZE (nextcloud/contacts-v7.2.5.tar.gz) = 4487588
+TIMESTAMP = 1756412333
+SHA256 (nextcloud/contacts-v7.2.6.tar.gz) = 20cb06e3f90dca3dbea1c1edb049d0ff5cbe2a18255894e0d2ce56b2283f5f6a
+SIZE (nextcloud/contacts-v7.2.6.tar.gz) = 4496148
diff --git a/www/nginx-devel/Makefile b/www/nginx-devel/Makefile
index bdc0d6d52163..ac2452c94c6f 100644
--- a/www/nginx-devel/Makefile
+++ b/www/nginx-devel/Makefile
@@ -1,7 +1,7 @@
PORTNAME?= nginx
PORTVERSION= ${NGINX_VERSION}
.include "version.mk"
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
MASTER_SITES= https://nginx.org/download/ \
LOCAL/osa
diff --git a/www/nginx-devel/files/extra-patch-ngx_nats.c b/www/nginx-devel/files/extra-patch-ngx_nats.c
new file mode 100644
index 000000000000..76c3f2be7864
--- /dev/null
+++ b/www/nginx-devel/files/extra-patch-ngx_nats.c
@@ -0,0 +1,20 @@
+--- ../nginx-nats-6f7adf1/src/ngx_nats.c.orig 2025-07-25 14:52:57.670444000 -0400
++++ ../nginx-nats-6f7adf1/src/ngx_nats.c 2025-07-25 14:53:04.538387000 -0400
+@@ -55,7 +55,7 @@
+ * we can use for uniqueness and to reach the router in testing.
+ */
+
+-#if (NGX_LINUX) || (NGX_DARWIN)
++#if (NGX_LINUX) || (NGX_DARWIN) || (NGX_FREEBSD)
+ #include <net/if.h>
+ #include <ifaddrs.h>
+ #elif (NGX_WIN32)
+@@ -585,7 +585,7 @@
+ {
+ /* TODO: port to Windows when need it, extend to other platforms. */
+
+-#if (NGX_LINUX) || (NGX_DARWIN)
++#if (NGX_LINUX) || (NGX_DARWIN) || (NGX_FREEBSD)
+
+ struct ifaddrs *ifaddrs, *ifa;
+ int rc, family;
diff --git a/www/nginx-devel/files/nginx.in b/www/nginx-devel/files/nginx.in
index daba266d9192..5ec438dd7342 100644
--- a/www/nginx-devel/files/nginx.in
+++ b/www/nginx-devel/files/nginx.in
@@ -69,6 +69,7 @@ if [ -n "$2" ]; then
required_files="${nginx_configfile}"
eval nginx_enable="\${nginx_${profile}_enable:-${nginx_enable}}"
eval nginx_flags="\${nginx_${profile}_flags:-${nginx_flags}}"
+ eval nginx_svcj_options="\${nginx_${profile}_svcj_options:-${nginx_svcj_options}}"
eval nginxlimits_enable="\${nginxlimits_${profile}_enable:-${nginxlimits_enable}}"
eval nginxlimits_args="\${nginxlimits_${profile}_args:-${nginxlimits_args}}"
nginx_flags="-c ${nginx_configfile} -g \"pid ${pidfile};\" ${nginx_flags}"
diff --git a/www/phpvirtualbox-70/Makefile b/www/phpvirtualbox-70/Makefile
index 22e8a6913dbe..b85b31ac272e 100644
--- a/www/phpvirtualbox-70/Makefile
+++ b/www/phpvirtualbox-70/Makefile
@@ -18,7 +18,8 @@ USE_PHP= session simplexml soap xml
ETCDIR= ${WWWDIR}
WWWDIR= ${PREFIX}/www/${PORTNAME}${SUFFIX}
-EXTRA_PATCHES+= ${.CURDIR}/../phpvirtualbox/files/patch-panes_mediumEncryptionPasswords.html
+EXTRA_PATCHES+= ${.CURDIR}/../phpvirtualbox-72/files/patch-endpoints_lib_vboxconnector.php \
+ ${.CURDIR}/../phpvirtualbox-72/files/patch-panes_mediumEncryptionPasswords.html
NO_ARCH= yes
NO_BUILD= yes
PORTSCOUT= limit:^7\.0\.
diff --git a/www/phpvirtualbox-71/Makefile b/www/phpvirtualbox-71/Makefile
index fb05e5b28ffb..9d48563e1730 100644
--- a/www/phpvirtualbox-71/Makefile
+++ b/www/phpvirtualbox-71/Makefile
@@ -1,12 +1,13 @@
PORTNAME= phpvirtualbox
DISTVERSION= 7.1-1
+PORTREVISION= 1
CATEGORIES= www
SUFFIX= -71
PKGNAMESUFFIX= ${SUFFIX}${PHP_PKGNAMESUFFIX}
MAINTAINER= vbox@FreeBSD.org
COMMENT= AJAX Web Interface for VirtualBox
-WWW= https://sourceforge.net/projects/phpvirtualbox-7-0/
+WWW= https://github.com/phpvirtualbox/phpvirtualbox/
LICENSE= GPLv3
@@ -16,7 +17,9 @@ USE_PHP= session simplexml soap xml
ETCDIR= ${WWWDIR}
WWWDIR= ${PREFIX}/www/${PORTNAME}${SUFFIX}
-EXTRA_PATCHES+= ${.CURDIR}/../phpvirtualbox/files/patch-panes_mediumEncryptionPasswords.html
+EXTRA_PATCHES+= ${.CURDIR}/../phpvirtualbox-72/files/patch-endpoints_lib_config.php \
+ ${.CURDIR}/../phpvirtualbox-72/files/patch-endpoints_lib_vboxconnector.php \
+ ${.CURDIR}/../phpvirtualbox-72/files/patch-panes_mediumEncryptionPasswords.html
NO_ARCH= yes
NO_BUILD= yes
PORTSCOUT= limit:^7\.1\.
diff --git a/www/phpvirtualbox-71/files/patch-endpoints_lib_vboxconnector.php b/www/phpvirtualbox-71/files/patch-endpoints_lib_vboxconnector.php
deleted file mode 100644
index 3ce4bd1b67fa..000000000000
--- a/www/phpvirtualbox-71/files/patch-endpoints_lib_vboxconnector.php
+++ /dev/null
@@ -1,21 +0,0 @@
---- endpoints/lib/vboxconnector.php.orig 2025-03-09 01:02:03 UTC
-+++ endpoints/lib/vboxconnector.php
-@@ -113,6 +113,8 @@ class vboxconnector {
- */
- var $dsep = null;
-
-+ var $client = null;
-+
- /**
- * Obtain configuration settings and set object vars
- * @param boolean $useAuthMaster use the authentication master obtained from configuration class
-@@ -388,7 +390,8 @@ class vboxconnector {
-
- // The amount of time we will wait for events is determined by
- // the amount of listeners - at least half a second
-- $listenerWait = max(100,intval(500/count($this->persistentRequest['vboxEventListeners'])));
-+ $listenerCount = count($this->persistentRequest['vboxEventListeners']);
-+ $listenerWait = max(100,intval(500/($listenerCount > 0 ? $listenerCount : 1)));
- }
-
- // Get events from each configured event listener
diff --git a/www/phpvirtualbox-72/Makefile b/www/phpvirtualbox-72/Makefile
new file mode 100644
index 000000000000..5cd673bbf480
--- /dev/null
+++ b/www/phpvirtualbox-72/Makefile
@@ -0,0 +1,37 @@
+PORTNAME= phpvirtualbox
+DISTVERSION= 7.2-1
+PORTREVISION= 1
+CATEGORIES= www
+SUFFIX= -72
+PKGNAMESUFFIX= ${SUFFIX}${PHP_PKGNAMESUFFIX}
+
+MAINTAINER= vbox@FreeBSD.org
+COMMENT= AJAX Web Interface for VirtualBox
+WWW= https://github.com/phpvirtualbox/phpvirtualbox/
+
+LICENSE= GPLv3
+
+USES= php:flavors
+USE_GITHUB= yes
+USE_PHP= session simplexml soap xml
+
+ETCDIR= ${WWWDIR}
+WWWDIR= ${PREFIX}/www/${PORTNAME}${SUFFIX}
+NO_ARCH= yes
+NO_BUILD= yes
+PORTSCOUT= limit:^7\.2\.
+
+post-patch:
+ @${MV} ${WRKSRC}/phpvirtualbox.conf ${WRKSRC}/phpvirtualbox${SUFFIX}.conf
+ @${REINPLACE_CMD} -e 's#Alias /phpvirtualbox#Alias /phpvirtualbox${SUFFIX}#' \
+ -e 's#/usr/share/phpvirtualbox#${WWWDIR}#g' \
+ ${WRKSRC}/phpvirtualbox${SUFFIX}.conf
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${WWWDIR}
+ (cd ${WRKSRC}/ && ${COPYTREE_SHARE} "*" ${STAGEDIR}${WWWDIR} \
+ "-not -name *.orig -not -name config.php-example")
+ ${INSTALL_DATA} ${WRKSRC}/config.php-example \
+ ${STAGEDIR}${WWWDIR}/config.php.sample
+
+.include <bsd.port.mk>
diff --git a/www/phpvirtualbox-72/distinfo b/www/phpvirtualbox-72/distinfo
new file mode 100644
index 000000000000..36e164f0de0c
--- /dev/null
+++ b/www/phpvirtualbox-72/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1756400000
+SHA256 (phpvirtualbox-phpvirtualbox-7.2-1_GH0.tar.gz) = 8025ed6b6af7ab4f32b0ac548fee94621469d5f5bc89d6a8a553a3989ada5ca9
+SIZE (phpvirtualbox-phpvirtualbox-7.2-1_GH0.tar.gz) = 5271540
diff --git a/www/phpvirtualbox-71/files/patch-endpoints_lib_config.php b/www/phpvirtualbox-72/files/patch-endpoints_lib_config.php
index 82de95a4947b..82de95a4947b 100644
--- a/www/phpvirtualbox-71/files/patch-endpoints_lib_config.php
+++ b/www/phpvirtualbox-72/files/patch-endpoints_lib_config.php
diff --git a/www/phpvirtualbox-70/files/patch-endpoints_lib_vboxconnector.php b/www/phpvirtualbox-72/files/patch-endpoints_lib_vboxconnector.php
index 3ce4bd1b67fa..3ce4bd1b67fa 100644
--- a/www/phpvirtualbox-70/files/patch-endpoints_lib_vboxconnector.php
+++ b/www/phpvirtualbox-72/files/patch-endpoints_lib_vboxconnector.php
diff --git a/www/phpvirtualbox-72/files/patch-endpoints_lib_vboxwebService-7.2.wsdl b/www/phpvirtualbox-72/files/patch-endpoints_lib_vboxwebService-7.2.wsdl
new file mode 100644
index 000000000000..40b0ff619005
--- /dev/null
+++ b/www/phpvirtualbox-72/files/patch-endpoints_lib_vboxwebService-7.2.wsdl
@@ -0,0 +1,11 @@
+--- endpoints/lib/vboxwebService-7.2.wsdl.orig 2025-08-28 05:41:35 UTC
++++ endpoints/lib/vboxwebService-7.2.wsdl
+@@ -5,7 +5,7 @@ -->
+ Generator: src/VBox/Main/webservice/websrv-wsdl-service.xsl
+ -->
+ <definitions xmlns:interface="urn:vbox" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:vbox="http://www.virtualbox.org/" xmlns="http://schemas.xmlsoap.org/wsdl/" name="VirtualBox" targetNamespace="http://www.virtualbox.org/Service">
+- <import location="vboxweb.wsdl" namespace="http://www.virtualbox.org/"/>
++ <import location="vboxweb-7.2.wsdl" namespace="http://www.virtualbox.org/"/>
+ <service name="vboxService">
+ <port binding="vbox:vboxBinding" name="vboxServicePort">
+ <soap:address location="http://localhost:18083/"/>
diff --git a/www/phpvirtualbox/files/patch-panes_mediumEncryptionPasswords.html b/www/phpvirtualbox-72/files/patch-panes_mediumEncryptionPasswords.html
index 3e8a7c62dfb7..3e8a7c62dfb7 100644
--- a/www/phpvirtualbox/files/patch-panes_mediumEncryptionPasswords.html
+++ b/www/phpvirtualbox-72/files/patch-panes_mediumEncryptionPasswords.html
diff --git a/www/phpvirtualbox-72/pkg-descr b/www/phpvirtualbox-72/pkg-descr
new file mode 100644
index 000000000000..9d1a4ce377ff
--- /dev/null
+++ b/www/phpvirtualbox-72/pkg-descr
@@ -0,0 +1,3 @@
+An open source, AJAX implementation of the VirtualBox user
+interface written in PHP. As a modern web interface, it allows
+you to access and control remote VirtualBox instances
diff --git a/www/phpvirtualbox-72/pkg-plist b/www/phpvirtualbox-72/pkg-plist
new file mode 100644
index 000000000000..7e75d2fc12d8
--- /dev/null
+++ b/www/phpvirtualbox-72/pkg-plist
@@ -0,0 +1,614 @@
+@group www
+@owner www
+%%WWWDIR%%/CHANGELOG.txt
+%%WWWDIR%%/Dockerfile
+%%WWWDIR%%/GPLv3.txt
+%%WWWDIR%%/LICENSE.txt
+%%WWWDIR%%/README.md
+@sample %%ETCDIR%%/config.php.sample
+%%WWWDIR%%/css/jquery-ui.css
+%%WWWDIR%%/css/jquery.projectPlugins.css
+%%WWWDIR%%/css/layout.css
+%%WWWDIR%%/css/tipped.css
+%%WWWDIR%%/docker-compose.yml
+%%WWWDIR%%/endpoints/api.php
+%%WWWDIR%%/endpoints/config.js
+%%WWWDIR%%/endpoints/index.html
+%%WWWDIR%%/endpoints/jqueryFileTree.php
+%%WWWDIR%%/endpoints/language.php
+%%WWWDIR%%/endpoints/lib/auth/ActiveDirectory.php
+%%WWWDIR%%/endpoints/lib/auth/Builtin.php
+%%WWWDIR%%/endpoints/lib/auth/LDAP.php
+%%WWWDIR%%/endpoints/lib/auth/MySQL.php
+%%WWWDIR%%/endpoints/lib/auth/OpenMediaVault.php
+%%WWWDIR%%/endpoints/lib/auth/WebAuth.php
+%%WWWDIR%%/endpoints/lib/auth/index.html
+%%WWWDIR%%/endpoints/lib/authinterface.php
+%%WWWDIR%%/endpoints/lib/config.php
+%%WWWDIR%%/endpoints/lib/index.html
+%%WWWDIR%%/endpoints/lib/language.php
+%%WWWDIR%%/endpoints/lib/utils.php
+%%WWWDIR%%/endpoints/lib/vboxServiceWrappers.php
+%%WWWDIR%%/endpoints/lib/vboxconnector.php
+%%WWWDIR%%/endpoints/lib/vboxweb-7.2.wsdl
+%%WWWDIR%%/endpoints/lib/vboxwebService-7.2.wsdl
+%%WWWDIR%%/endpoints/rdp.php
+%%WWWDIR%%/endpoints/screen.php
+%%WWWDIR%%/images/30white.png
+%%WWWDIR%%/images/50px-Question_icon.svg.png
+%%WWWDIR%%/images/50px-Warning_icon.svg.png
+%%WWWDIR%%/images/arrow_grad_dn.png
+%%WWWDIR%%/images/arrow_grad_left.png
+%%WWWDIR%%/images/arrow_grad_right.png
+%%WWWDIR%%/images/arrow_grad_up.png
+%%WWWDIR%%/images/arrow_white_dn.png
+%%WWWDIR%%/images/arrow_white_left.png
+%%WWWDIR%%/images/arrow_white_right.png
+%%WWWDIR%%/images/arrow_white_up.png
+%%WWWDIR%%/images/donate.gif
+%%WWWDIR%%/images/downArrow.png
+%%WWWDIR%%/images/header_grad.png
+%%WWWDIR%%/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png
+%%WWWDIR%%/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png
+%%WWWDIR%%/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png
+%%WWWDIR%%/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png
+%%WWWDIR%%/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png
+%%WWWDIR%%/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png
+%%WWWDIR%%/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png
+%%WWWDIR%%/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png
+%%WWWDIR%%/images/jquery-ui/ui-icons_222222_256x240.png
+%%WWWDIR%%/images/jquery-ui/ui-icons_2e83ff_256x240.png
+%%WWWDIR%%/images/jquery-ui/ui-icons_454545_256x240.png
+%%WWWDIR%%/images/jquery-ui/ui-icons_888888_256x240.png
+%%WWWDIR%%/images/jquery-ui/ui-icons_cd0a0a_256x240.png
+%%WWWDIR%%/images/jqueryFileTree/directory.png
+%%WWWDIR%%/images/jqueryFileTree/file.png
+%%WWWDIR%%/images/jqueryFileTree/folder_open.png
+%%WWWDIR%%/images/jqueryFileTree/spinner.gif
+%%WWWDIR%%/images/monitor_bl.png
+%%WWWDIR%%/images/monitor_bottom.png
+%%WWWDIR%%/images/monitor_br.png
+%%WWWDIR%%/images/monitor_glossy.png
+%%WWWDIR%%/images/monitor_left.png
+%%WWWDIR%%/images/monitor_right.png
+%%WWWDIR%%/images/monitor_tl.png
+%%WWWDIR%%/images/monitor_top.png
+%%WWWDIR%%/images/monitor_tr.png
+%%WWWDIR%%/images/rightArrow.png
+%%WWWDIR%%/images/spinner.gif
+%%WWWDIR%%/images/treeview-default-line.gif
+%%WWWDIR%%/images/treeview-default.gif
+%%WWWDIR%%/images/upArrow.png
+%%WWWDIR%%/images/vbox/OSE/VirtualBox.icns
+%%WWWDIR%%/images/vbox/OSE/VirtualBox_16px.png
+%%WWWDIR%%/images/vbox/OSE/VirtualBox_20px.png
+%%WWWDIR%%/images/vbox/OSE/VirtualBox_32px.png
+%%WWWDIR%%/images/vbox/OSE/VirtualBox_40px.png
+%%WWWDIR%%/images/vbox/OSE/VirtualBox_48px.png
+%%WWWDIR%%/images/vbox/OSE/VirtualBox_64px.png
+%%WWWDIR%%/images/vbox/OSE/VirtualBox_cube_42px.png
+%%WWWDIR%%/images/vbox/OSE/VirtualBox_win.ico
+%%WWWDIR%%/images/vbox/OSE/about.png
+%%WWWDIR%%/images/vbox/OSE/about_16px.png
+%%WWWDIR%%/images/vbox/acpi_16px.png
+%%WWWDIR%%/images/vbox/acpi_disabled_16px.png
+%%WWWDIR%%/images/vbox/add_host_iface_16px.png
+%%WWWDIR%%/images/vbox/add_host_iface_disabled_16px.png
+%%WWWDIR%%/images/vbox/arrow_down_10px.png
+%%WWWDIR%%/images/vbox/arrow_left_10px.png
+%%WWWDIR%%/images/vbox/arrow_right_10px.png
+%%WWWDIR%%/images/vbox/arrow_up_10px.png
+%%WWWDIR%%/images/vbox/attachment_16px.png
+%%WWWDIR%%/images/vbox/attachment_add_16px.png
+%%WWWDIR%%/images/vbox/attachment_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/attachment_disabled_16px.png
+%%WWWDIR%%/images/vbox/attachment_remove_16px.png
+%%WWWDIR%%/images/vbox/attachment_remove_disabled_16px.png
+%%WWWDIR%%/images/vbox/bgnd_sel_2.jpg
+%%WWWDIR%%/images/vbox/blank.gif
+%%WWWDIR%%/images/vbox/cd_16px.png
+%%WWWDIR%%/images/vbox/cd_32px.png
+%%WWWDIR%%/images/vbox/cd_add_16px.png
+%%WWWDIR%%/images/vbox/cd_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/cd_disabled_16px.png
+%%WWWDIR%%/images/vbox/cd_disabled_32px.png
+%%WWWDIR%%/images/vbox/cd_unmount_16px.png
+%%WWWDIR%%/images/vbox/cd_unmount_dis_16px.png
+%%WWWDIR%%/images/vbox/cd_unmount_disabled_16px.png
+%%WWWDIR%%/images/vbox/chipset_16px.png
+%%WWWDIR%%/images/vbox/chipset_disabled_16px.png
+%%WWWDIR%%/images/vbox/close_16px.png
+%%WWWDIR%%/images/vbox/controller_add_16px.png
+%%WWWDIR%%/images/vbox/controller_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/controller_remove_16px.png
+%%WWWDIR%%/images/vbox/controller_remove_disabled_16px.png
+%%WWWDIR%%/images/vbox/cpu_16px.png
+%%WWWDIR%%/images/vbox/description_16px.png
+%%WWWDIR%%/images/vbox/description_disabled_16px.png
+%%WWWDIR%%/images/vbox/description_edit_16px.png
+%%WWWDIR%%/images/vbox/description_edit_disabled_16px.png
+%%WWWDIR%%/images/vbox/discard_cur_state_16px.png
+%%WWWDIR%%/images/vbox/discard_cur_state_22px.png
+%%WWWDIR%%/images/vbox/discard_cur_state_dis_16px.png
+%%WWWDIR%%/images/vbox/discard_cur_state_dis_22px.png
+%%WWWDIR%%/images/vbox/discard_cur_state_snapshot_16px.png
+%%WWWDIR%%/images/vbox/discard_cur_state_snapshot_22px.png
+%%WWWDIR%%/images/vbox/discard_cur_state_snapshot_dis_16px.png
+%%WWWDIR%%/images/vbox/discard_cur_state_snapshot_dis_22px.png
+%%WWWDIR%%/images/vbox/diskimage_16px.png
+%%WWWDIR%%/images/vbox/exit_16px.png
+%%WWWDIR%%/images/vbox/expanding_collapsing_16px.png
+%%WWWDIR%%/images/vbox/export_16px.png
+%%WWWDIR%%/images/vbox/fd_16px.png
+%%WWWDIR%%/images/vbox/fd_32px.png
+%%WWWDIR%%/images/vbox/fd_add_16px.png
+%%WWWDIR%%/images/vbox/fd_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/fd_disabled_16px.png
+%%WWWDIR%%/images/vbox/fd_disabled_32px.png
+%%WWWDIR%%/images/vbox/fd_unmount_16px.png
+%%WWWDIR%%/images/vbox/fd_unmount_dis_16px.png
+%%WWWDIR%%/images/vbox/floppy_16px.png
+%%WWWDIR%%/images/vbox/floppy_add_16px.png
+%%WWWDIR%%/images/vbox/floppy_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/floppy_collapse_16px.png
+%%WWWDIR%%/images/vbox/floppy_expand_16px.png
+%%WWWDIR%%/images/vbox/fullscreen_16px.png
+%%WWWDIR%%/images/vbox/global_settings_16px.png
+%%WWWDIR%%/images/vbox/global_settings_disabled_16px.png
+%%WWWDIR%%/images/vbox/group_abstract_16px.png
+%%WWWDIR%%/images/vbox/guesttools_16px.png
+%%WWWDIR%%/images/vbox/guesttools_disabled_16px.png
+%%WWWDIR%%/images/vbox/hd_16px.png
+%%WWWDIR%%/images/vbox/hd_32px.png
+%%WWWDIR%%/images/vbox/hd_add_16px.png
+%%WWWDIR%%/images/vbox/hd_add_22px.png
+%%WWWDIR%%/images/vbox/hd_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/hd_add_disabled_22px.png
+%%WWWDIR%%/images/vbox/hd_disabled_16px.png
+%%WWWDIR%%/images/vbox/hd_disabled_32px.png
+%%WWWDIR%%/images/vbox/hd_new_16px.png
+%%WWWDIR%%/images/vbox/hd_new_22px.png
+%%WWWDIR%%/images/vbox/hd_new_disabled_16px.png
+%%WWWDIR%%/images/vbox/hd_new_disabled_22px.png
+%%WWWDIR%%/images/vbox/hd_release_16px.png
+%%WWWDIR%%/images/vbox/hd_release_22px.png
+%%WWWDIR%%/images/vbox/hd_release_disabled_16px.png
+%%WWWDIR%%/images/vbox/hd_release_disabled_22px.png
+%%WWWDIR%%/images/vbox/hd_remove_16px.png
+%%WWWDIR%%/images/vbox/hd_remove_22px.png
+%%WWWDIR%%/images/vbox/hd_remove_disabled_16px.png
+%%WWWDIR%%/images/vbox/hd_remove_disabled_22px.png
+%%WWWDIR%%/images/vbox/help_16px.png
+%%WWWDIR%%/images/vbox/ide_16px.png
+%%WWWDIR%%/images/vbox/ide_add_16px.png
+%%WWWDIR%%/images/vbox/ide_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/ide_collapse_16px.png
+%%WWWDIR%%/images/vbox/ide_expand_16px.png
+%%WWWDIR%%/images/vbox/import_16px.png
+%%WWWDIR%%/images/vbox/list_movedown_16px.png
+%%WWWDIR%%/images/vbox/list_movedown_disabled_16px.png
+%%WWWDIR%%/images/vbox/list_moveup_16px.png
+%%WWWDIR%%/images/vbox/list_moveup_disabled_16px.png
+%%WWWDIR%%/images/vbox/machine_16px.png
+%%WWWDIR%%/images/vbox/machine_32px.png
+%%WWWDIR%%/images/vbox/machine_abstract_16px.png
+%%WWWDIR%%/images/vbox/machine_disabled_16px.png
+%%WWWDIR%%/images/vbox/machine_disabled_32px.png
+%%WWWDIR%%/images/vbox/menuArrow.gif
+%%WWWDIR%%/images/vbox/menuArrow_w.gif
+%%WWWDIR%%/images/vbox/name_16px.png
+%%WWWDIR%%/images/vbox/node.gif
+%%WWWDIR%%/images/vbox/nw_16px.png
+%%WWWDIR%%/images/vbox/nw_32px.png
+%%WWWDIR%%/images/vbox/nw_disabled_16px.png
+%%WWWDIR%%/images/vbox/nw_disabled_32px.png
+%%WWWDIR%%/images/vbox/os_archlinux.png
+%%WWWDIR%%/images/vbox/os_archlinux_64.png
+%%WWWDIR%%/images/vbox/os_debian.png
+%%WWWDIR%%/images/vbox/os_debian_64.png
+%%WWWDIR%%/images/vbox/os_dos.png
+%%WWWDIR%%/images/vbox/os_fedora.png
+%%WWWDIR%%/images/vbox/os_fedora_64.png
+%%WWWDIR%%/images/vbox/os_freebsd.png
+%%WWWDIR%%/images/vbox/os_freebsd_64.png
+%%WWWDIR%%/images/vbox/os_gentoo.png
+%%WWWDIR%%/images/vbox/os_gentoo_64.png
+%%WWWDIR%%/images/vbox/os_jrockitve.png
+%%WWWDIR%%/images/vbox/os_l4.png
+%%WWWDIR%%/images/vbox/os_linux.png
+%%WWWDIR%%/images/vbox/os_linux22.png
+%%WWWDIR%%/images/vbox/os_linux24.png
+%%WWWDIR%%/images/vbox/os_linux24_64.png
+%%WWWDIR%%/images/vbox/os_linux26.png
+%%WWWDIR%%/images/vbox/os_linux26_64.png
+%%WWWDIR%%/images/vbox/os_linux_64.png
+%%WWWDIR%%/images/vbox/os_linux_other.png
+%%WWWDIR%%/images/vbox/os_macosx.png
+%%WWWDIR%%/images/vbox/os_macosx_64.png
+%%WWWDIR%%/images/vbox/os_mandriva.png
+%%WWWDIR%%/images/vbox/os_mandriva_64.png
+%%WWWDIR%%/images/vbox/os_netbsd.png
+%%WWWDIR%%/images/vbox/os_netbsd_64.png
+%%WWWDIR%%/images/vbox/os_netware.png
+%%WWWDIR%%/images/vbox/os_openbsd.png
+%%WWWDIR%%/images/vbox/os_openbsd_64.png
+%%WWWDIR%%/images/vbox/os_opensuse.png
+%%WWWDIR%%/images/vbox/os_opensuse_64.png
+%%WWWDIR%%/images/vbox/os_oracle.png
+%%WWWDIR%%/images/vbox/os_oracle_64.png
+%%WWWDIR%%/images/vbox/os_oraclesolaris.png
+%%WWWDIR%%/images/vbox/os_oraclesolaris_64.png
+%%WWWDIR%%/images/vbox/os_os2_other.png
+%%WWWDIR%%/images/vbox/os_os2ecs.png
+%%WWWDIR%%/images/vbox/os_os2warp3.png
+%%WWWDIR%%/images/vbox/os_os2warp4.png
+%%WWWDIR%%/images/vbox/os_os2warp45.png
+%%WWWDIR%%/images/vbox/os_other.png
+%%WWWDIR%%/images/vbox/os_other_64.png
+%%WWWDIR%%/images/vbox/os_qnx.png
+%%WWWDIR%%/images/vbox/os_redhat.png
+%%WWWDIR%%/images/vbox/os_redhat_64.png
+%%WWWDIR%%/images/vbox/os_solaris.png
+%%WWWDIR%%/images/vbox/os_solaris_64.png
+%%WWWDIR%%/images/vbox/os_turbolinux.png
+%%WWWDIR%%/images/vbox/os_turbolinux_64.png
+%%WWWDIR%%/images/vbox/os_type_16px.png
+%%WWWDIR%%/images/vbox/os_ubuntu.png
+%%WWWDIR%%/images/vbox/os_ubuntu_64.png
+%%WWWDIR%%/images/vbox/os_virtualbox.png
+%%WWWDIR%%/images/vbox/os_win10.png
+%%WWWDIR%%/images/vbox/os_win10_64.png
+%%WWWDIR%%/images/vbox/os_win11_64.png
+%%WWWDIR%%/images/vbox/os_win2k.png
+%%WWWDIR%%/images/vbox/os_win2k12_64.png
+%%WWWDIR%%/images/vbox/os_win2k16_64.png
+%%WWWDIR%%/images/vbox/os_win2k19_64.png
+%%WWWDIR%%/images/vbox/os_win2k3.png
+%%WWWDIR%%/images/vbox/os_win2k3_64.png
+%%WWWDIR%%/images/vbox/os_win2k8.png
+%%WWWDIR%%/images/vbox/os_win2k8_64.png
+%%WWWDIR%%/images/vbox/os_win31.png
+%%WWWDIR%%/images/vbox/os_win7.png
+%%WWWDIR%%/images/vbox/os_win7_64.png
+%%WWWDIR%%/images/vbox/os_win8.png
+%%WWWDIR%%/images/vbox/os_win81.png
+%%WWWDIR%%/images/vbox/os_win81_64.png
+%%WWWDIR%%/images/vbox/os_win8_64.png
+%%WWWDIR%%/images/vbox/os_win95.png
+%%WWWDIR%%/images/vbox/os_win98.png
+%%WWWDIR%%/images/vbox/os_win_other.png
+%%WWWDIR%%/images/vbox/os_win_other_64.png
+%%WWWDIR%%/images/vbox/os_winme.png
+%%WWWDIR%%/images/vbox/os_winnt4.png
+%%WWWDIR%%/images/vbox/os_winvista.png
+%%WWWDIR%%/images/vbox/os_winvista_64.png
+%%WWWDIR%%/images/vbox/os_winxp.png
+%%WWWDIR%%/images/vbox/os_winxp_64.png
+%%WWWDIR%%/images/vbox/os_xandros.png
+%%WWWDIR%%/images/vbox/os_xandros_64.png
+%%WWWDIR%%/images/vbox/parallel_port_16px.png
+%%WWWDIR%%/images/vbox/preview_empty_228x168px.png
+%%WWWDIR%%/images/vbox/preview_full_228x168px.png
+%%WWWDIR%%/images/vbox/progress_clone_90px.png
+%%WWWDIR%%/images/vbox/progress_delete_90px.png
+%%WWWDIR%%/images/vbox/progress_export_90px.png
+%%WWWDIR%%/images/vbox/progress_import_90px.png
+%%WWWDIR%%/images/vbox/progress_install_guest_additions_90px.png
+%%WWWDIR%%/images/vbox/progress_media_create_90px.png
+%%WWWDIR%%/images/vbox/progress_media_delete_90px.png
+%%WWWDIR%%/images/vbox/progress_poweroff_90px.png
+%%WWWDIR%%/images/vbox/progress_snapshot_create_90px.png
+%%WWWDIR%%/images/vbox/progress_snapshot_discard_90px.png
+%%WWWDIR%%/images/vbox/progress_snapshot_restore_90px.png
+%%WWWDIR%%/images/vbox/progress_start_90px.png
+%%WWWDIR%%/images/vbox/progress_state_restore_90px.png
+%%WWWDIR%%/images/vbox/progress_state_save_90px.png
+%%WWWDIR%%/images/vbox/ram_16px.png
+%%WWWDIR%%/images/vbox/refresh_16px.png
+%%WWWDIR%%/images/vbox/refresh_22px.png
+%%WWWDIR%%/images/vbox/refresh_32px.png
+%%WWWDIR%%/images/vbox/refresh_disabled_16px.png
+%%WWWDIR%%/images/vbox/refresh_disabled_22px.png
+%%WWWDIR%%/images/vbox/refresh_disabled_32px.png
+%%WWWDIR%%/images/vbox/register_16px.png
+%%WWWDIR%%/images/vbox/remove_host_iface_16px.png
+%%WWWDIR%%/images/vbox/remove_host_iface_disabled_16px.png
+%%WWWDIR%%/images/vbox/sata_16px.png
+%%WWWDIR%%/images/vbox/sata_add_16px.png
+%%WWWDIR%%/images/vbox/sata_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/sata_collapse_16px.png
+%%WWWDIR%%/images/vbox/sata_expand_16px.png
+%%WWWDIR%%/images/vbox/scsi_16px.png
+%%WWWDIR%%/images/vbox/scsi_add_16px.png
+%%WWWDIR%%/images/vbox/scsi_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/scsi_collapse_16px.png
+%%WWWDIR%%/images/vbox/scsi_expand_16px.png
+%%WWWDIR%%/images/vbox/select_file_16px.png
+%%WWWDIR%%/images/vbox/select_file_disabled_16px.png
+%%WWWDIR%%/images/vbox/serial_port_16px.png
+%%WWWDIR%%/images/vbox/serial_port_disabled_16px.png
+%%WWWDIR%%/images/vbox/sf_16px.png
+%%WWWDIR%%/images/vbox/sf_add_16px.png
+%%WWWDIR%%/images/vbox/sf_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/sf_disabled_16px.png
+%%WWWDIR%%/images/vbox/sf_edit_16px.png
+%%WWWDIR%%/images/vbox/sf_edit_disabled_16px.png
+%%WWWDIR%%/images/vbox/sf_remove_16px.png
+%%WWWDIR%%/images/vbox/sf_remove_disabled_16px.png
+%%WWWDIR%%/images/vbox/sf_settings_16px.png
+%%WWWDIR%%/images/vbox/sf_settings_disabled_16px.png
+%%WWWDIR%%/images/vbox/site_16px.png
+%%WWWDIR%%/images/vbox/site_32px.png
+%%WWWDIR%%/images/vbox/snapshot_delete_16px.png
+%%WWWDIR%%/images/vbox/snapshot_delete_22px.png
+%%WWWDIR%%/images/vbox/snapshot_delete_disabled_16px.png
+%%WWWDIR%%/images/vbox/snapshot_delete_disabled_22px.png
+%%WWWDIR%%/images/vbox/snapshot_offline_16px.png
+%%WWWDIR%%/images/vbox/snapshot_online_16px.png
+%%WWWDIR%%/images/vbox/snapshot_restore_16px.png
+%%WWWDIR%%/images/vbox/snapshot_restore_22px.png
+%%WWWDIR%%/images/vbox/snapshot_restore_disabled_16px.png
+%%WWWDIR%%/images/vbox/snapshot_restore_disabled_22px.png
+%%WWWDIR%%/images/vbox/snapshot_show_details_16px.png
+%%WWWDIR%%/images/vbox/snapshot_show_details_22px.png
+%%WWWDIR%%/images/vbox/snapshot_show_details_disabled_16px.png
+%%WWWDIR%%/images/vbox/snapshot_show_details_disabled_22px.png
+%%WWWDIR%%/images/vbox/snapshot_take_16px.png
+%%WWWDIR%%/images/vbox/snapshot_take_22px.png
+%%WWWDIR%%/images/vbox/snapshot_take_disabled_16px.png
+%%WWWDIR%%/images/vbox/snapshot_take_disabled_22px.png
+%%WWWDIR%%/images/vbox/sort_16px.png
+%%WWWDIR%%/images/vbox/sort_disabled_16px.png
+%%WWWDIR%%/images/vbox/sound_16px.png
+%%WWWDIR%%/images/vbox/sound_disabled_16px.png
+%%WWWDIR%%/images/vbox/state_aborted_16px.png
+%%WWWDIR%%/images/vbox/state_discarding_16px.png
+%%WWWDIR%%/images/vbox/state_paused_16px.png
+%%WWWDIR%%/images/vbox/state_powered_off_16px.png
+%%WWWDIR%%/images/vbox/state_restoring_16px.png
+%%WWWDIR%%/images/vbox/state_running_16px.png
+%%WWWDIR%%/images/vbox/state_saved_16px.png
+%%WWWDIR%%/images/vbox/state_saving_16px.png
+%%WWWDIR%%/images/vbox/state_stuck_16px.png
+%%WWWDIR%%/images/vbox/status_check_16px.png
+%%WWWDIR%%/images/vbox/status_error_16px.png
+%%WWWDIR%%/images/vbox/usb_16px.png
+%%WWWDIR%%/images/vbox/usb_add_16px.png
+%%WWWDIR%%/images/vbox/usb_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/usb_collapse_16px.png
+%%WWWDIR%%/images/vbox/usb_disabled_16px.png
+%%WWWDIR%%/images/vbox/usb_expand_16px.png
+%%WWWDIR%%/images/vbox/usb_filter_edit_16px.png
+%%WWWDIR%%/images/vbox/usb_filter_edit_disabled_16px.png
+%%WWWDIR%%/images/vbox/usb_movedown_16px.png
+%%WWWDIR%%/images/vbox/usb_movedown_disabled_16px.png
+%%WWWDIR%%/images/vbox/usb_moveup_16px.png
+%%WWWDIR%%/images/vbox/usb_moveup_disabled_16px.png
+%%WWWDIR%%/images/vbox/usb_new_16px.png
+%%WWWDIR%%/images/vbox/usb_new_disabled_16px.png
+%%WWWDIR%%/images/vbox/usb_remove_16px.png
+%%WWWDIR%%/images/vbox/usb_remove_disabled_16px.png
+%%WWWDIR%%/images/vbox/usb_unavailable_16px.png
+%%WWWDIR%%/images/vbox/usb_unavailable_disabled_16px.png
+%%WWWDIR%%/images/vbox/vdm_add_16px.png
+%%WWWDIR%%/images/vbox/vdm_add_22px.png
+%%WWWDIR%%/images/vbox/vdm_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/vdm_add_disabled_22px.png
+%%WWWDIR%%/images/vbox/vdm_new_16px.png
+%%WWWDIR%%/images/vbox/vdm_new_22px.png
+%%WWWDIR%%/images/vbox/vdm_new_disabled_16px.png
+%%WWWDIR%%/images/vbox/vdm_new_disabled_22px.png
+%%WWWDIR%%/images/vbox/vdm_release_16px.png
+%%WWWDIR%%/images/vbox/vdm_release_22px.png
+%%WWWDIR%%/images/vbox/vdm_release_disabled_16px.png
+%%WWWDIR%%/images/vbox/vdm_release_disabled_22px.png
+%%WWWDIR%%/images/vbox/vdm_remove_16px.png
+%%WWWDIR%%/images/vbox/vdm_remove_22px.png
+%%WWWDIR%%/images/vbox/vdm_remove_disabled_16px.png
+%%WWWDIR%%/images/vbox/vdm_remove_disabled_22px.png
+%%WWWDIR%%/images/vbox/video_capture_16px.png
+%%WWWDIR%%/images/vbox/video_capture_disabled_16px.png
+%%WWWDIR%%/images/vbox/video_capture_on_16px.png
+%%WWWDIR%%/images/vbox/video_capture_on_disabled_16px.png
+%%WWWDIR%%/images/vbox/video_capture_settings_16px.png
+%%WWWDIR%%/images/vbox/virtio_scsi_add_16px.png
+%%WWWDIR%%/images/vbox/virtio_scsi_add_disabled_16px.png
+%%WWWDIR%%/images/vbox/virtio_scsi_collapse_16px.png
+%%WWWDIR%%/images/vbox/virtio_scsi_expand_16px.png
+%%WWWDIR%%/images/vbox/virtualbox-hdd.png
+%%WWWDIR%%/images/vbox/virtualbox-ova.png
+%%WWWDIR%%/images/vbox/virtualbox-ovf.png
+%%WWWDIR%%/images/vbox/virtualbox-vbox.png
+%%WWWDIR%%/images/vbox/virtualbox-vdi.png
+%%WWWDIR%%/images/vbox/virtualbox-vhd.png
+%%WWWDIR%%/images/vbox/virtualbox-vmdk.png
+%%WWWDIR%%/images/vbox/vm_add_16px.png
+%%WWWDIR%%/images/vbox/vm_clone_16px.png
+%%WWWDIR%%/images/vbox/vm_clone_22px.png
+%%WWWDIR%%/images/vbox/vm_clone_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_clone_disabled_22px.png
+%%WWWDIR%%/images/vbox/vm_delete_16px.png
+%%WWWDIR%%/images/vbox/vm_delete_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_discard_16px.png
+%%WWWDIR%%/images/vbox/vm_discard_32px.png
+%%WWWDIR%%/images/vbox/vm_discard_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_discard_disabled_32px.png
+%%WWWDIR%%/images/vbox/vm_group_create_16px.png
+%%WWWDIR%%/images/vbox/vm_group_create_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_group_name_16px.png
+%%WWWDIR%%/images/vbox/vm_group_name_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_group_remove_16px.png
+%%WWWDIR%%/images/vbox/vm_group_remove_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_new_16px.png
+%%WWWDIR%%/images/vbox/vm_new_32px.png
+%%WWWDIR%%/images/vbox/vm_new_disabled_32px.png
+%%WWWDIR%%/images/vbox/vm_open_filemanager_16px.png
+%%WWWDIR%%/images/vbox/vm_open_filemanager_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_pause_16px.png
+%%WWWDIR%%/images/vbox/vm_pause_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_pause_on_16px.png
+%%WWWDIR%%/images/vbox/vm_pause_on_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_poweroff_16px.png
+%%WWWDIR%%/images/vbox/vm_poweroff_32px.png
+%%WWWDIR%%/images/vbox/vm_poweroff_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_poweroff_disabled_32px.png
+%%WWWDIR%%/images/vbox/vm_reset_16px.png
+%%WWWDIR%%/images/vbox/vm_reset_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_save_state_16px.png
+%%WWWDIR%%/images/vbox/vm_save_state_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_settings_16px.png
+%%WWWDIR%%/images/vbox/vm_settings_32px.png
+%%WWWDIR%%/images/vbox/vm_settings_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_settings_disabled_32px.png
+%%WWWDIR%%/images/vbox/vm_show_logs_16px.png
+%%WWWDIR%%/images/vbox/vm_show_logs_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_shutdown_16px.png
+%%WWWDIR%%/images/vbox/vm_shutdown_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_start_16px.png
+%%WWWDIR%%/images/vbox/vm_start_32px.png
+%%WWWDIR%%/images/vbox/vm_start_disabled_16px.png
+%%WWWDIR%%/images/vbox/vm_start_disabled_32px.png
+%%WWWDIR%%/images/vbox/vmw_clone_bg.png
+%%WWWDIR%%/images/vbox/vmw_first_run_bg.png
+%%WWWDIR%%/images/vbox/vmw_new_harddisk_bg.png
+%%WWWDIR%%/images/vbox/vmw_new_welcome_bg.png
+%%WWWDIR%%/images/vbox/vmw_ovf_export_bg.png
+%%WWWDIR%%/images/vbox/vmw_ovf_import_bg.png
+%%WWWDIR%%/images/vbox/vrdp_16px.png
+%%WWWDIR%%/images/vbox/vrdp_32px.png
+%%WWWDIR%%/images/vbox/vrdp_disabled_16px.png
+%%WWWDIR%%/images/vbox/vrdp_disabled_32px.png
+%%WWWDIR%%/images/vbox/vrdp_on_16px.png
+%%WWWDIR%%/images/vbox/vrdp_on_disabled_16px.png
+%%WWWDIR%%/images/vbox/vtx_amdv_16px.png
+%%WWWDIR%%/images/vbox/vtx_amdv_disabled_16px.png
+%%WWWDIR%%/images/vbox/welcome.png
+%%WWWDIR%%/images/wizard_bg.png
+%%WWWDIR%%/index.html
+%%WWWDIR%%/js/canvasimages.js
+%%WWWDIR%%/js/chooser.js
+%%WWWDIR%%/js/datamediator.js
+%%WWWDIR%%/js/dialogs.js
+%%WWWDIR%%/js/eventlistener.js
+%%WWWDIR%%/js/jquery-3.7.1.min.js
+%%WWWDIR%%/js/jquery-ui-1.14.1.min.js
+%%WWWDIR%%/js/jquery.jec-1.3.1.js
+%%WWWDIR%%/js/jquery.projectPlugins.js
+%%WWWDIR%%/js/jquery.scrollTo-min.js
+%%WWWDIR%%/js/jquery.tipped-2.1b.min.js
+%%WWWDIR%%/js/phpvirtualbox.js
+%%WWWDIR%%/js/utils.js
+%%WWWDIR%%/languages/cs.xml
+%%WWWDIR%%/languages/da.xml
+%%WWWDIR%%/languages/de.xml
+%%WWWDIR%%/languages/en.xml
+%%WWWDIR%%/languages/es.xml
+%%WWWDIR%%/languages/fr.xml
+%%WWWDIR%%/languages/it.xml
+%%WWWDIR%%/languages/ja.xml
+%%WWWDIR%%/languages/languages.txt
+%%WWWDIR%%/languages/nl.xml
+%%WWWDIR%%/languages/pl.xml
+%%WWWDIR%%/languages/pt_br.xml
+%%WWWDIR%%/languages/ro.xml
+%%WWWDIR%%/languages/ru.xml
+%%WWWDIR%%/languages/source/ParseVboxLang.inc
+%%WWWDIR%%/languages/source/ParseVboxLang.php
+%%WWWDIR%%/languages/source/bg.dat
+%%WWWDIR%%/languages/source/ca.dat
+%%WWWDIR%%/languages/source/ca_va.dat
+%%WWWDIR%%/languages/source/cs.dat
+%%WWWDIR%%/languages/source/da.dat
+%%WWWDIR%%/languages/source/de.dat
+%%WWWDIR%%/languages/source/el.dat
+%%WWWDIR%%/languages/source/en.dat
+%%WWWDIR%%/languages/source/es.dat
+%%WWWDIR%%/languages/source/eu.dat
+%%WWWDIR%%/languages/source/fa.dat
+%%WWWDIR%%/languages/source/fi.dat
+%%WWWDIR%%/languages/source/fr.dat
+%%WWWDIR%%/languages/source/gl.dat
+%%WWWDIR%%/languages/source/he.dat
+%%WWWDIR%%/languages/source/hr_hr.dat
+%%WWWDIR%%/languages/source/hu.dat
+%%WWWDIR%%/languages/source/id.dat
+%%WWWDIR%%/languages/source/it.dat
+%%WWWDIR%%/languages/source/ja.dat
+%%WWWDIR%%/languages/source/km_kh.dat
+%%WWWDIR%%/languages/source/ko.dat
+%%WWWDIR%%/languages/source/lt.dat
+%%WWWDIR%%/languages/source/nl.dat
+%%WWWDIR%%/languages/source/pl.dat
+%%WWWDIR%%/languages/source/pt.dat
+%%WWWDIR%%/languages/source/pt_br.dat
+%%WWWDIR%%/languages/source/ro.dat
+%%WWWDIR%%/languages/source/ru.dat
+%%WWWDIR%%/languages/source/sk.dat
+%%WWWDIR%%/languages/source/sl.dat
+%%WWWDIR%%/languages/source/sr.dat
+%%WWWDIR%%/languages/source/sv.dat
+%%WWWDIR%%/languages/source/th.dat
+%%WWWDIR%%/languages/source/tr.dat
+%%WWWDIR%%/languages/source/uk.dat
+%%WWWDIR%%/languages/source/zh_cn.dat
+%%WWWDIR%%/languages/source/zh_tw.dat
+%%WWWDIR%%/languages/zh_cn.xml
+%%WWWDIR%%/languages/zh_tw.xml
+%%WWWDIR%%/packaging/install-scripts/install.bash
+%%WWWDIR%%/packaging/install-scripts/uninstall.bash
+%%WWWDIR%%/panes/about.html
+%%WWWDIR%%/panes/chooser.html
+%%WWWDIR%%/panes/guestNetAdapters.html
+%%WWWDIR%%/panes/login.html
+%%WWWDIR%%/panes/mediumEncryptionPasswords.html
+%%WWWDIR%%/panes/settingsAudio.html
+%%WWWDIR%%/panes/settingsDisplay.html
+%%WWWDIR%%/panes/settingsGeneral.html
+%%WWWDIR%%/panes/settingsGlobalGeneral.html
+%%WWWDIR%%/panes/settingsGlobalLanguage.html
+%%WWWDIR%%/panes/settingsGlobalNetwork.html
+%%WWWDIR%%/panes/settingsGlobalNetworkNATPortForwarding.html
+%%WWWDIR%%/panes/settingsGlobalUsers.html
+%%WWWDIR%%/panes/settingsNetwork.html
+%%WWWDIR%%/panes/settingsParallelPorts.html
+%%WWWDIR%%/panes/settingsPortForwarding.html
+%%WWWDIR%%/panes/settingsSerialPorts.html
+%%WWWDIR%%/panes/settingsSharedFolders.html
+%%WWWDIR%%/panes/settingsStorage.html
+%%WWWDIR%%/panes/settingsSystem.html
+%%WWWDIR%%/panes/settingsUSB.html
+%%WWWDIR%%/panes/tabVMConsole.html
+%%WWWDIR%%/panes/tabVMConsoleRDP.html
+%%WWWDIR%%/panes/tabVMConsoleVNC.html
+%%WWWDIR%%/panes/tabVMDetails.html
+%%WWWDIR%%/panes/tabVMSnapshots.html
+%%WWWDIR%%/panes/tabs.html
+%%WWWDIR%%/panes/toolbar.html
+%%WWWDIR%%/panes/topmenu.html
+%%WWWDIR%%/panes/userEdit.html
+%%WWWDIR%%/panes/vmlogs.html
+%%WWWDIR%%/panes/vmm.html
+%%WWWDIR%%/panes/vmmISCSI.html
+%%WWWDIR%%/panes/vmmModify.html
+%%WWWDIR%%/panes/wizardCloneVM.html
+%%WWWDIR%%/panes/wizardCloneVMAdvanced.html
+%%WWWDIR%%/panes/wizardCopyHD.html
+%%WWWDIR%%/panes/wizardCopyHDAdvanced.html
+%%WWWDIR%%/panes/wizardExportAppliance.html
+%%WWWDIR%%/panes/wizardExportApplianceAdvanced.html
+%%WWWDIR%%/panes/wizardFirstRun.html
+%%WWWDIR%%/panes/wizardImportAppliance.html
+%%WWWDIR%%/panes/wizardImportApplianceAdvanced.html
+%%WWWDIR%%/panes/wizardNewHD.html
+%%WWWDIR%%/panes/wizardNewHDAdvanced.html
+%%WWWDIR%%/panes/wizardNewVM.html
+%%WWWDIR%%/panes/wizardNewVMAdvanced.html
+%%WWWDIR%%/phpvirtualbox-72.conf
+%%WWWDIR%%/rdpweb/RDPClientUI.swf
+%%WWWDIR%%/rdpweb/license_3rd.txt
+%%WWWDIR%%/rdpweb/swfobject.js
+%%WWWDIR%%/rdpweb/webclient.js
+%%WWWDIR%%/rdpweb/webclient3.html
+%%WWWDIR%%/recovery.php-disabled
+%%WWWDIR%%/tightvnc/VncViewer.jar
+%%WWWDIR%%/vboxinit
diff --git a/www/phpvirtualbox-legacy/Makefile b/www/phpvirtualbox-legacy/Makefile
index 5c7c939fe8a5..d1d886b7c58c 100644
--- a/www/phpvirtualbox-legacy/Makefile
+++ b/www/phpvirtualbox-legacy/Makefile
@@ -1,6 +1,6 @@
PORTNAME= phpvirtualbox
DISTVERSION= 5.2-1
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= www
SUFFIX= -legacy
PKGNAMESUFFIX= ${SUFFIX}${PHP_PKGNAMESUFFIX}
@@ -18,8 +18,7 @@ USE_PHP= session simplexml soap xml
ETCDIR= ${WWWDIR}
WWWDIR= ${PREFIX}/www/${PORTNAME}${SUFFIX}
-EXTRA_PATCHES+= ${.CURDIR}/../phpvirtualbox/files/patch-php8 \
- ${.CURDIR}/../phpvirtualbox/files/patch-panes_mediumEncryptionPasswords.html
+EXTRA_PATCHES+= ${.CURDIR}/../phpvirtualbox-72/files/patch-panes_mediumEncryptionPasswords.html
NO_ARCH= yes
NO_BUILD= yes
PORTSCOUT= limit:^5\.
@@ -29,6 +28,7 @@ post-patch:
@${REINPLACE_CMD} -e 's#Alias /phpvirtualbox#Alias /phpvirtualbox-legacy#' \
-e 's#/usr/share/phpvirtualbox#${WWWDIR}#g' \
${WRKSRC}/phpvirtualbox-legacy.conf
+ @${REINPLACE_CMD} -e 's#\r#\n#g' ${WRKSRC}/languages/zh_tw.xml
do-install:
${MKDIR} ${STAGEDIR}${WWWDIR}
diff --git a/www/phpvirtualbox/files/patch-php8 b/www/phpvirtualbox-legacy/files/patch-php8
index 52fe5a6a5b12..52fe5a6a5b12 100644
--- a/www/phpvirtualbox/files/patch-php8
+++ b/www/phpvirtualbox-legacy/files/patch-php8
diff --git a/www/phpvirtualbox/Makefile b/www/phpvirtualbox/Makefile
index a0894d3b098f..bcd01b010d36 100644
--- a/www/phpvirtualbox/Makefile
+++ b/www/phpvirtualbox/Makefile
@@ -1,6 +1,6 @@
PORTNAME= phpvirtualbox
DISTVERSION= 6.1
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= www
PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
@@ -17,6 +17,8 @@ GH_TAGNAME= cf82d58f2
USE_PHP= session simplexml soap xml
ETCDIR= ${WWWDIR}
+EXTRA_PATCHES+= ${.CURDIR}/../phpvirtualbox-72/files/patch-panes_mediumEncryptionPasswords.html \
+ ${.CURDIR}/../phpvirtualbox-legacy/files/patch-php8
NO_ARCH= yes
NO_BUILD= yes
PORTSCOUT= limit:^6\.
@@ -24,6 +26,7 @@ PORTSCOUT= limit:^6\.
post-patch:
@${REINPLACE_CMD} -e 's#/usr/share/phpvirtualbox#${WWWDIR}#g' \
${WRKSRC}/phpvirtualbox.conf
+ @${REINPLACE_CMD} -e 's#\r#\n#g' ${WRKSRC}/languages/zh_tw.xml
do-install:
${MKDIR} ${STAGEDIR}${WWWDIR}
diff --git a/www/pocket-id/Makefile b/www/pocket-id/Makefile
index 6732c6454467..ab8b55ae4fc6 100644
--- a/www/pocket-id/Makefile
+++ b/www/pocket-id/Makefile
@@ -1,6 +1,6 @@
PORTNAME= pocket-id
DISTVERSIONPREFIX= v
-DISTVERSION= 1.9.1
+DISTVERSION= 1.10.0
CATEGORIES= www
MASTER_SITES= LOCAL/dtxdf/${PORTNAME}/
DISTFILES= ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}.frontend${EXTRACT_SUFX}
diff --git a/www/pocket-id/distinfo b/www/pocket-id/distinfo
index 19b1a503227e..2fed86b8e729 100644
--- a/www/pocket-id/distinfo
+++ b/www/pocket-id/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1756073537
-SHA256 (go/www_pocket-id/pocket-id-pocket-id-v1.9.1_GH0/pocket-id-v1.9.1.frontend.tar.gz) = 308477aa87321dc17323f77a8f48ed3cc5ce3b9c99b529648d35490d61e36d20
-SIZE (go/www_pocket-id/pocket-id-pocket-id-v1.9.1_GH0/pocket-id-v1.9.1.frontend.tar.gz) = 1496166
-SHA256 (go/www_pocket-id/pocket-id-pocket-id-v1.9.1_GH0/go.mod) = 407629c8229cd31ee5221adda1ac6926f22a6e1f938b86f73d7b95f3402db75d
-SIZE (go/www_pocket-id/pocket-id-pocket-id-v1.9.1_GH0/go.mod) = 7114
-SHA256 (go/www_pocket-id/pocket-id-pocket-id-v1.9.1_GH0/pocket-id-pocket-id-v1.9.1_GH0.tar.gz) = e79cb839ff1ac04692fbee3c95e233c8723f6318ed4cd0251194b8fec6bf4fd9
-SIZE (go/www_pocket-id/pocket-id-pocket-id-v1.9.1_GH0/pocket-id-pocket-id-v1.9.1_GH0.tar.gz) = 5637458
+TIMESTAMP = 1756427787
+SHA256 (go/www_pocket-id/pocket-id-pocket-id-v1.10.0_GH0/pocket-id-v1.10.0.frontend.tar.gz) = d316b82be00d698a820ac115663ae35f6485b885094ca47d430eec174f8cadb2
+SIZE (go/www_pocket-id/pocket-id-pocket-id-v1.10.0_GH0/pocket-id-v1.10.0.frontend.tar.gz) = 1488185
+SHA256 (go/www_pocket-id/pocket-id-pocket-id-v1.10.0_GH0/go.mod) = 407629c8229cd31ee5221adda1ac6926f22a6e1f938b86f73d7b95f3402db75d
+SIZE (go/www_pocket-id/pocket-id-pocket-id-v1.10.0_GH0/go.mod) = 7114
+SHA256 (go/www_pocket-id/pocket-id-pocket-id-v1.10.0_GH0/pocket-id-pocket-id-v1.10.0_GH0.tar.gz) = f6fc8cb49b65eae09ee9f46122d25557d141279970b157c5e29141c0080d969c
+SIZE (go/www_pocket-id/pocket-id-pocket-id-v1.10.0_GH0/pocket-id-pocket-id-v1.10.0_GH0.tar.gz) = 5638841
diff --git a/www/py-dj51-django-choices-field/Makefile b/www/py-dj51-django-choices-field/Makefile
index c0090e2af7de..738a07fce073 100644
--- a/www/py-dj51-django-choices-field/Makefile
+++ b/www/py-dj51-django-choices-field/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-choices-field
-DISTVERSION= 2.3.0
+DISTVERSION= 3.0.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj51-
diff --git a/www/py-dj51-django-choices-field/distinfo b/www/py-dj51-django-choices-field/distinfo
index 7f61f9ac7dde..c6c4cefdf5ca 100644
--- a/www/py-dj51-django-choices-field/distinfo
+++ b/www/py-dj51-django-choices-field/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711885476
-SHA256 (django_choices_field-2.3.0.tar.gz) = bb0c85c79737ab98bfb9c0d9ddf98010d612c0585be767890e25fd192c3d1694
-SIZE (django_choices_field-2.3.0.tar.gz) = 6448
+TIMESTAMP = 1756398970
+SHA256 (django_choices_field-3.0.1.tar.gz) = 5b45f5d3aa2ef3c30a7ff296ac7acc743097fb3185c78f8c4256c6a73854ab20
+SIZE (django_choices_field-3.0.1.tar.gz) = 5717
diff --git a/www/py-dj52-django-choices-field/Makefile b/www/py-dj52-django-choices-field/Makefile
index 355a02ed97cb..5f4feebdf60d 100644
--- a/www/py-dj52-django-choices-field/Makefile
+++ b/www/py-dj52-django-choices-field/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-choices-field
-DISTVERSION= 2.3.0
+DISTVERSION= 3.0.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj52-
diff --git a/www/py-dj52-django-choices-field/distinfo b/www/py-dj52-django-choices-field/distinfo
index 7f61f9ac7dde..c6c4cefdf5ca 100644
--- a/www/py-dj52-django-choices-field/distinfo
+++ b/www/py-dj52-django-choices-field/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711885476
-SHA256 (django_choices_field-2.3.0.tar.gz) = bb0c85c79737ab98bfb9c0d9ddf98010d612c0585be767890e25fd192c3d1694
-SIZE (django_choices_field-2.3.0.tar.gz) = 6448
+TIMESTAMP = 1756398970
+SHA256 (django_choices_field-3.0.1.tar.gz) = 5b45f5d3aa2ef3c30a7ff296ac7acc743097fb3185c78f8c4256c6a73854ab20
+SIZE (django_choices_field-3.0.1.tar.gz) = 5717
diff --git a/www/py-django-choices-field/Makefile b/www/py-django-choices-field/Makefile
index ea749d189df7..bed9bf22985c 100644
--- a/www/py-django-choices-field/Makefile
+++ b/www/py-django-choices-field/Makefile
@@ -1,6 +1,5 @@
PORTNAME= django-choices-field
-DISTVERSION= 2.3.0
-PORTREVISION= 1
+DISTVERSION= 3.0.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-django-choices-field/distinfo b/www/py-django-choices-field/distinfo
index 7f61f9ac7dde..c6c4cefdf5ca 100644
--- a/www/py-django-choices-field/distinfo
+++ b/www/py-django-choices-field/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711885476
-SHA256 (django_choices_field-2.3.0.tar.gz) = bb0c85c79737ab98bfb9c0d9ddf98010d612c0585be767890e25fd192c3d1694
-SIZE (django_choices_field-2.3.0.tar.gz) = 6448
+TIMESTAMP = 1756398970
+SHA256 (django_choices_field-3.0.1.tar.gz) = 5b45f5d3aa2ef3c30a7ff296ac7acc743097fb3185c78f8c4256c6a73854ab20
+SIZE (django_choices_field-3.0.1.tar.gz) = 5717
diff --git a/www/py-djangorestframework/Makefile b/www/py-djangorestframework/Makefile
index 355d17e95537..c1906afb909e 100644
--- a/www/py-djangorestframework/Makefile
+++ b/www/py-djangorestframework/Makefile
@@ -1,5 +1,5 @@
PORTNAME= djangorestframework
-DISTVERSION= 3.16.0
+DISTVERSION= 3.16.1
PORTEPOCH= 1
CATEGORIES= www python
MASTER_SITES= PYPI
diff --git a/www/py-djangorestframework/distinfo b/www/py-djangorestframework/distinfo
index c336e0e97c68..d9123228b38d 100644
--- a/www/py-djangorestframework/distinfo
+++ b/www/py-djangorestframework/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1744359953
-SHA256 (djangorestframework-3.16.0.tar.gz) = f022ff46613584de994c0c6a4aebbace5fd700555fbe9d33b865ebf173eba6c9
-SIZE (djangorestframework-3.16.0.tar.gz) = 1068408
+TIMESTAMP = 1755333901
+SHA256 (djangorestframework-3.16.1.tar.gz) = 166809528b1aced0a17dc66c24492af18049f2c9420dbd0be29422029cfc3ff7
+SIZE (djangorestframework-3.16.1.tar.gz) = 1089735
diff --git a/www/py-httpx-retries/Makefile b/www/py-httpx-retries/Makefile
index bc3702d822c4..92f0036b875d 100644
--- a/www/py-httpx-retries/Makefile
+++ b/www/py-httpx-retries/Makefile
@@ -1,5 +1,5 @@
PORTNAME= httpx-retries
-DISTVERSION= 0.4.0
+DISTVERSION= 0.4.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-httpx-retries/distinfo b/www/py-httpx-retries/distinfo
index 4ef455958702..727a38088bfc 100644
--- a/www/py-httpx-retries/distinfo
+++ b/www/py-httpx-retries/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747637137
-SHA256 (httpx_retries-0.4.0.tar.gz) = a7aa513e3f1eef347aac69adecfad9f421210a84df88c88f935ec130f98e6642
-SIZE (httpx_retries-0.4.0.tar.gz) = 12571
+TIMESTAMP = 1756495143
+SHA256 (httpx_retries-0.4.1.tar.gz) = 008c10a57ee73665fa82bfa28466c736da5214b31ee6eacec8707c36493ed152
+SIZE (httpx_retries-0.4.1.tar.gz) = 12588
diff --git a/www/py-nicegui/Makefile b/www/py-nicegui/Makefile
index fc34341ad718..fce00807ef93 100644
--- a/www/py-nicegui/Makefile
+++ b/www/py-nicegui/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nicegui
-DISTVERSION= 2.23.0
+DISTVERSION= 2.23.3
CATEGORIES= www graphics python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-nicegui/distinfo b/www/py-nicegui/distinfo
index 685aece27ba5..4ab63ccd99a0 100644
--- a/www/py-nicegui/distinfo
+++ b/www/py-nicegui/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755889052
-SHA256 (nicegui-2.23.0.tar.gz) = 8180fcba79515fa14ce03977c31282aa17627822163d482f591020ff93b1efe0
-SIZE (nicegui-2.23.0.tar.gz) = 13108139
+TIMESTAMP = 1756499959
+SHA256 (nicegui-2.23.3.tar.gz) = 7fc99bc40d1682b37c54eda6275f77db863b9c7bcc7ad15006c507b69a30d22c
+SIZE (nicegui-2.23.3.tar.gz) = 13108186
diff --git a/www/py-wsgidav/Makefile b/www/py-wsgidav/Makefile
index 839c933ebc85..21b9489313a3 100644
--- a/www/py-wsgidav/Makefile
+++ b/www/py-wsgidav/Makefile
@@ -1,9 +1,9 @@
PORTNAME= WsgiDAV
-DISTVERSION= 4.3.2
-PORTREVISION= 2
+DISTVERSION= 4.3.3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:tl}-${DISTVERSION}
MAINTAINER= ultima@FreeBSD.org
COMMENT= WSGI based WebDAV server for sharing resources
@@ -21,13 +21,19 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}defusedxml>=0.5:devel/py-defusedxml@${PY_FLA
${PYTHON_PKGNAMEPREFIX}six>=1.12:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Jinja2>=2.10:devel/py-Jinja2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyyaml>=3.2:devel/py-pyyaml@${PY_FLAVOR}
-TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cheroot>=6.0:www/py-cheroot@${PY_FLAVOR} \
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}CouchDB>=1.1:databases/py-couchdb@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}cheroot>=6.0:www/py-cheroot@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pymongo>=3.13:databases/py-pymongo@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mysqlclient>=2.2:databases/py-mysqlclient@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest>=2.7:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-cov>=1.8:devel/py-pytest-cov@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-html>=1.8:devel/py-pytest-html@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}python-pam>=1.8:security/py-python-pam@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}redis>=6.2:databases/py-redis@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tox>=2.0:devel/py-tox@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}webtest>=2.0:www/py-webtest@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}webtest>=2.0:www/py-webtest@${PY_FLAVOR} \
+ mercurial>=0:devel/mercurial
USES= python
USE_PYTHON= distutils autoplist
diff --git a/www/py-wsgidav/distinfo b/www/py-wsgidav/distinfo
index 15316e92e385..2d99414ce925 100644
--- a/www/py-wsgidav/distinfo
+++ b/www/py-wsgidav/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1718387273
-SHA256 (WsgiDAV-4.3.2.tar.gz) = 4c3c24ac01b656a9edcb0014f31717ca8b9a3ec7d7cd9adc39d9ce1b00bfe759
-SIZE (WsgiDAV-4.3.2.tar.gz) = 167847
+TIMESTAMP = 1754464002
+SHA256 (wsgidav-4.3.3.tar.gz) = 5f0ad71bea72def3018b6ba52da3bcb83f61e0873c27225344582805d6e52b9e
+SIZE (wsgidav-4.3.3.tar.gz) = 168118
diff --git a/www/tor-browser/Makefile b/www/tor-browser/Makefile
index f99e3cb04891..ff5bf958f8a6 100644
--- a/www/tor-browser/Makefile
+++ b/www/tor-browser/Makefile
@@ -1,5 +1,6 @@
PORTNAME= tor-browser
DISTVERSION= 15.0a1
+PORTREVISION= 1
CATEGORIES= www net security wayland
TAG_BASE= 96a559c7c1f7b9231db2b5cece7ecae980ae835d
TAG_TOR= 3becb908fbf68aa77accc1f2e03e2c29f4fe40e2
diff --git a/www/ungoogled-chromium/files/patch-net_dns_BUILD.gn b/www/ungoogled-chromium/files/patch-net_dns_BUILD.gn
index 6646c9edc97b..e1fd322aea84 100644
--- a/www/ungoogled-chromium/files/patch-net_dns_BUILD.gn
+++ b/www/ungoogled-chromium/files/patch-net_dns_BUILD.gn
@@ -1,6 +1,6 @@
---- net/dns/BUILD.gn.orig 2025-02-20 09:59:21 UTC
+--- net/dns/BUILD.gn.orig 2025-03-29 00:50:57 UTC
+++ net/dns/BUILD.gn
-@@ -140,7 +140,7 @@ source_set("dns") {
+@@ -138,7 +138,7 @@ source_set("dns") {
"dns_config_service_android.cc",
"dns_config_service_android.h",
]
@@ -9,7 +9,17 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -181,6 +181,7 @@ source_set("dns") {
+@@ -172,6 +172,9 @@ source_set("dns") {
+ }
+
+ deps = [ "//net:net_deps" ]
++ if (is_bsd) {
++ deps += [ "//services/screen_ai/buildflags" ]
++ }
+
+ public_deps = [
+ ":dns_client",
+@@ -179,6 +182,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
@@ -17,7 +27,7 @@
]
allow_circular_includes_from = [
-@@ -450,9 +451,9 @@ source_set("tests") {
+@@ -447,9 +451,9 @@ source_set("tests") {
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
diff --git a/www/waterfox/Makefile b/www/waterfox/Makefile
index d4cd473ff1ef..b7679d220de8 100644
--- a/www/waterfox/Makefile
+++ b/www/waterfox/Makefile
@@ -1,5 +1,6 @@
PORTNAME= waterfox
DISTVERSION= 6.6.1
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= www
diff --git a/x11-toolkits/wlroots017/Makefile b/x11-toolkits/wlroots017/Makefile
index 4b8183d24a11..c7ccdfda65f7 100644
--- a/x11-toolkits/wlroots017/Makefile
+++ b/x11-toolkits/wlroots017/Makefile
@@ -1,6 +1,6 @@
PORTNAME= wlroots
DISTVERSION= 0.17.4
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= x11-toolkits
PKGNAMESUFFIX= 017
@@ -54,7 +54,8 @@ VULKAN_DESC= Vulkan renderer
VULKAN_BUILD_DEPENDS= glslangValidator:graphics/glslang \
vulkan-headers>0:graphics/vulkan-headers
VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader
-VULKAN_RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri
+VULKAN_RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri \
+ vulkan-headers>0:graphics/vulkan-headers
VULKAN_VARS= RENDERERS+=vulkan
X11_LIB_DEPENDS= libxcb-errors.so:x11/xcb-util-errors \
diff --git a/x11-toolkits/wlroots018/Makefile b/x11-toolkits/wlroots018/Makefile
index 3a58fc4f3dc3..264f2c4f7bed 100644
--- a/x11-toolkits/wlroots018/Makefile
+++ b/x11-toolkits/wlroots018/Makefile
@@ -1,6 +1,6 @@
PORTNAME= wlroots
DISTVERSION= 0.18.2
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= x11-toolkits
PKGNAMESUFFIX= 018
@@ -57,7 +57,8 @@ VULKAN_DESC= Vulkan renderer
VULKAN_BUILD_DEPENDS= glslangValidator:graphics/glslang \
vulkan-headers>0:graphics/vulkan-headers
VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader
-VULKAN_RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri
+VULKAN_RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri \
+ vulkan-headers>0:graphics/vulkan-headers
VULKAN_VARS= RENDERERS+=vulkan
X11_LIB_DEPENDS= libxcb-errors.so:x11/xcb-util-errors \
diff --git a/x11-toolkits/wlroots019/Makefile b/x11-toolkits/wlroots019/Makefile
index f785e46fa20d..679858b4f554 100644
--- a/x11-toolkits/wlroots019/Makefile
+++ b/x11-toolkits/wlroots019/Makefile
@@ -1,6 +1,6 @@
PORTNAME= wlroots
DISTVERSION= 0.19.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= x11-toolkits
PKGNAMESUFFIX= 019
@@ -58,7 +58,8 @@ VULKAN_DESC= Vulkan renderer
VULKAN_BUILD_DEPENDS= glslangValidator:graphics/glslang \
vulkan-headers>0:graphics/vulkan-headers
VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader
-VULKAN_RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri
+VULKAN_RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri \
+ vulkan-headers>0:graphics/vulkan-headers
VULKAN_VARS= RENDERERS+=vulkan
X11_LIB_DEPENDS= libxcb-errors.so:x11/xcb-util-errors \
diff --git a/x11-wm/wayfire-plugins-extra/Makefile b/x11-wm/wayfire-plugins-extra/Makefile
index a4a1179f9345..be68e5c70a79 100644
--- a/x11-wm/wayfire-plugins-extra/Makefile
+++ b/x11-wm/wayfire-plugins-extra/Makefile
@@ -1,51 +1,43 @@
PORTNAME= wayfire-plugins-extra
DISTVERSIONPREFIX= v
-DISTVERSION= 0.9.0
-PORTREVISION= 1
+DISTVERSION= 0.10.0
CATEGORIES= x11-wm wayland
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Additional plugins for Wayfire
WWW= https://wayfire.org/
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \
+BUILD_DEPENDS= boost-libs>0:devel/boost-libs \
+ evdev-proto>0:devel/evdev-proto \
wayland-scanner:graphics/wayland \
wayland-protocols>0:graphics/wayland-protocols \
wayfire>0:x11-wm/wayfire
LIB_DEPENDS= libevdev.so:devel/libevdev \
libwf-config.so:devel/wf-config \
libwayland-server.so:graphics/wayland \
- libwlroots-0.17.so:x11-toolkits/wlroots017
+ libwlroots-0.19.so:x11-toolkits/wlroots019
-USES= compiler:c++17-lang gnome meson pkgconfig
+USES= compiler:c++17-lang gl gnome meson pkgconfig
USE_GITHUB= yes
USE_GITLAB= nodefault
+USE_GL= glesv2
USE_GNOME= cairo glibmm
GH_ACCOUNT= WayfireWM
-GH_TUPLE= timgott:wayfire-shadows:de32395:wayfire_shadows/subprojects/wayfire-shadows \
- soreau:pixdecor:d172e84:pixdecor/subprojects/pixdecor \
- soreau:filters:5850fee:filters/subprojects/filters
-GL_TUPLE= wayfireplugins:focus-request:bc41d54:focus_request/subprojects/focus-request \
- wayfireplugins:windecor:f609ac0:windecor/subprojects/windecor
+GH_TUPLE= timgott:wayfire-shadows:v0.9.0-1-g453c217:wayfire_shadows/subprojects/wayfire-shadows \
+ soreau:pixdecor:8a0b028:pixdecor/subprojects/pixdecor \
+ soreau:filters:00024b5:filters/subprojects/filters
+GL_TUPLE= wayfireplugins:focus-request:v0.9.0:focus_request/subprojects/focus-request
MESON_ARGS= -Denable_focus_request=true -Denable_wayfire_shadows=true \
-Denable_filters=true
-OPTIONS_DEFINE= LIBRSVG2 PANGO
-OPTIONS_DEFAULT=LIBRSVG2 PANGO
+OPTIONS_DEFINE= PANGO
+OPTIONS_DEFAULT=PANGO
OPTIONS_SUB= yes
PANGO_USE= GNOME=pango
PANGO_MESON_TRUE= enable_pixdecor
-LIBRSVG2_USE= GNOME=librsvg2
-LIBRSVG2_MESON_TRUE= enable_windecor
-
-post-patch:
-# Respect PREFIX for icons
- @${REINPLACE_CMD} 's,/usr/share,${DATADIR:H},' \
- ${WRKSRC}/subprojects/windecor/deco-icontheme.cpp
-
.include <bsd.port.mk>
diff --git a/x11-wm/wayfire-plugins-extra/distinfo b/x11-wm/wayfire-plugins-extra/distinfo
index 91f2faf8ccc6..b0ce7721887d 100644
--- a/x11-wm/wayfire-plugins-extra/distinfo
+++ b/x11-wm/wayfire-plugins-extra/distinfo
@@ -1,13 +1,11 @@
-TIMESTAMP = 1724488925
-SHA256 (WayfireWM-wayfire-plugins-extra-v0.9.0_GH0.tar.gz) = 5fd08387fb02ce541b7f9dfbeefbbef9cd19b2c88347517f40afab4da54b83bf
-SIZE (WayfireWM-wayfire-plugins-extra-v0.9.0_GH0.tar.gz) = 48580
-SHA256 (timgott-wayfire-shadows-de32395_GH0.tar.gz) = 2d6f0c4fc8524d2b4a926955d3f6856c090d08d37b8908979039e6e1291779c8
-SIZE (timgott-wayfire-shadows-de32395_GH0.tar.gz) = 11260
-SHA256 (soreau-pixdecor-d172e84_GH0.tar.gz) = ba938deac035e5f21e92d9f838b80b0539d6b8dc004f09f25cd400125376759c
-SIZE (soreau-pixdecor-d172e84_GH0.tar.gz) = 41145
-SHA256 (soreau-filters-5850fee_GH0.tar.gz) = 4a97738f07de6e3def04656226960090ebc2046ceb62c860a5cee94406da4188
-SIZE (soreau-filters-5850fee_GH0.tar.gz) = 6515
-SHA256 (focus-request-bc41d54.tar.bz2) = da114547ed0b3ccca593d44e4a01f6d86a45ff284e15610e8e465696e9446da9
-SIZE (focus-request-bc41d54.tar.bz2) = 1740
-SHA256 (windecor-f609ac0.tar.bz2) = 2b10209bb6e787af69b6115291330c37dfc8f1c39fb9f91a650cf3ad1c586c10
-SIZE (windecor-f609ac0.tar.bz2) = 32244
+TIMESTAMP = 1754971427
+SHA256 (WayfireWM-wayfire-plugins-extra-v0.10.0_GH0.tar.gz) = b986c7df5b25c9dfaad0ee17aadc21166042faa7c278bba98759fd5505d247ea
+SIZE (WayfireWM-wayfire-plugins-extra-v0.10.0_GH0.tar.gz) = 60234
+SHA256 (timgott-wayfire-shadows-v0.9.0-1-g453c217_GH0.tar.gz) = d4ad8fd9cbb27f743c9a79893699fe34e8ed99197174c2ee28bef0b399d15217
+SIZE (timgott-wayfire-shadows-v0.9.0-1-g453c217_GH0.tar.gz) = 12522
+SHA256 (soreau-pixdecor-8a0b028_GH0.tar.gz) = 5138125cf18f4281565fdfb8d9f59c922de629a1ae52718dcc74429f8bfe5c0e
+SIZE (soreau-pixdecor-8a0b028_GH0.tar.gz) = 47313
+SHA256 (soreau-filters-00024b5_GH0.tar.gz) = b3716287703b9b1c98bf769d8dbb2577d95b1f2891ea1cf863fab1fda7d24124
+SIZE (soreau-filters-00024b5_GH0.tar.gz) = 8923
+SHA256 (focus-request-v0.9.0.tar.bz2) = 07914e465db240d1153410a08a54c35086e10f3654e2e177830e24bbf4e56c81
+SIZE (focus-request-v0.9.0.tar.bz2) = 4344
diff --git a/x11-wm/wayfire-plugins-extra/files/patch-libc++ b/x11-wm/wayfire-plugins-extra/files/patch-libc++
deleted file mode 100644
index 0f971afea036..000000000000
--- a/x11-wm/wayfire-plugins-extra/files/patch-libc++
+++ /dev/null
@@ -1,14 +0,0 @@
-../subprojects/windecor/deco-theme.cpp:14:10: fatal error: 'bits/stdc++.h' file not found
-#include <bits/stdc++.h>
- ^~~~~~~~~~~~~~~
-
---- subprojects/windecor/deco-theme.cpp.orig 2023-09-30 05:08:04 UTC
-+++ subprojects/windecor/deco-theme.cpp
-@@ -11,7 +11,6 @@
- #include <sys/stat.h>
- #include <unistd.h>
- #include <fstream>
--#include <bits/stdc++.h>
-
- typedef struct {
- double x;
diff --git a/x11-wm/wayfire-plugins-extra/files/patch-wlroots017 b/x11-wm/wayfire-plugins-extra/files/patch-wlroots017
deleted file mode 100644
index 43194a59e84f..000000000000
--- a/x11-wm/wayfire-plugins-extra/files/patch-wlroots017
+++ /dev/null
@@ -1,30 +0,0 @@
-wayfire-shadows| Run-time dependency wlroots found: NO (tried pkgconfig and cmake)
-
-subprojects/wayfire-shadows/meson.build:17:11: ERROR: Dependency "wlroots" not found, tried pkgconfig and cmake
-
-windecor| Run-time dependency wlroots found: NO (tried pkgconfig and cmake)
-
-subprojects/windecor/meson.build:18:11: ERROR: Dependency "wlroots" not found, tried pkgconfig and cmake
-
---- subprojects/wayfire-shadows/meson.build.orig 2023-09-08 22:38:12 UTC
-+++ subprojects/wayfire-shadows/meson.build
-@@ -14,7 +14,7 @@ wayfire = dependency('wayfire')
- )
-
- wayfire = dependency('wayfire')
--wlroots = dependency('wlroots')
-+wlroots = dependency('wlroots-0.17')
- wfconfig = dependency('wf-config')
-
- add_project_arguments(['-DWLR_USE_UNSTABLE'], language: ['cpp', 'c'])
---- subprojects/windecor/meson.build.orig 2023-09-30 05:08:04 UTC
-+++ subprojects/windecor/meson.build
-@@ -15,7 +15,7 @@ pixman = dependency('pixman-1')
-
- wayfire = dependency('wayfire')
- pixman = dependency('pixman-1')
--wlroots = dependency('wlroots')
-+wlroots = dependency('wlroots-0.17')
- wfconfig = dependency('wf-config')
- cairo = dependency('cairo')
- rsvg = dependency( 'librsvg-2.0' )
diff --git a/x11-wm/wayfire-plugins-extra/pkg-plist b/x11-wm/wayfire-plugins-extra/pkg-plist
index 151a668557de..64314a5ac6dd 100644
--- a/x11-wm/wayfire-plugins-extra/pkg-plist
+++ b/x11-wm/wayfire-plugins-extra/pkg-plist
@@ -2,6 +2,7 @@ lib/wayfire/libannotate.so
lib/wayfire/libautorotate-iio.so
lib/wayfire/libbench.so
lib/wayfire/libcrosshair.so
+lib/wayfire/libextra-animations.so
lib/wayfire/libfilters.so
lib/wayfire/libfocus-change.so
lib/wayfire/libfocus-request.so
@@ -18,17 +19,17 @@ lib/wayfire/libobs.so
lib/wayfire/libpin-view.so
%%PANGO%%lib/wayfire/libpixdecor.so
lib/wayfire/libshowrepaint.so
+lib/wayfire/libshowtouch.so
lib/wayfire/libview-shot.so
lib/wayfire/libwater.so
-%%LIBRSVG2%%lib/wayfire/libwindecor.so
lib/wayfire/libwinshadows.so
lib/wayfire/libwinzoom.so
lib/wayfire/libworkspace-names.so
-%%LIBRSVG2%%share/wayfire/icons/plugin-windecor.svg
share/wayfire/metadata/annotate.xml
share/wayfire/metadata/autorotate-iio.xml
share/wayfire/metadata/bench.xml
share/wayfire/metadata/crosshair.xml
+share/wayfire/metadata/extra-animations.xml
share/wayfire/metadata/filters.xml
share/wayfire/metadata/focus-change.xml
share/wayfire/metadata/focus-request.xml
@@ -44,10 +45,9 @@ share/wayfire/metadata/obs.xml
share/wayfire/metadata/pin-view.xml
%%PANGO%%share/wayfire/metadata/pixdecor.xml
share/wayfire/metadata/showrepaint.xml
+share/wayfire/metadata/showtouch.xml
share/wayfire/metadata/view-shot.xml
share/wayfire/metadata/water.xml
-%%LIBRSVG2%%share/wayfire/metadata/windecor.xml
share/wayfire/metadata/window-zoom.xml
share/wayfire/metadata/winshadows.xml
share/wayfire/metadata/workspace-names.xml
-%%LIBRSVG2%%share/wayfire/windecor/executable.svg
diff --git a/x11-wm/wayfire/Makefile b/x11-wm/wayfire/Makefile
index c8af247557e0..0742aca84f0b 100644
--- a/x11-wm/wayfire/Makefile
+++ b/x11-wm/wayfire/Makefile
@@ -1,10 +1,9 @@
PORTNAME= wayfire
DISTVERSIONPREFIX= v
-DISTVERSION= 0.9.0
-PORTREVISION= 2
+DISTVERSION= 0.10.0
CATEGORIES= x11-wm wayland
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= 3D Wayland compositor
WWW= https://wayfire.org/
@@ -12,20 +11,20 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \
- nlohmann-json>0:devel/nlohmann-json \
- wf-config>=0.9.0<0.10.0:devel/wf-config \
+ wf-config>=0.10.0<0.11.0:devel/wf-config \
${LOCALBASE}/include/xf86drmMode.h:graphics/libdrm \
wayland-protocols>=1.12:graphics/wayland-protocols \
glm>=0.9.8:math/glm
LIB_DEPENDS= libevdev.so:devel/libevdev \
libinotify.so:devel/libinotify \
+ libudev.so:devel/libudev-devd \
libwf-config.so:devel/wf-config \
+ libyyjson.so:devel/yyjson \
libpng.so:graphics/png \
libwayland-server.so:graphics/wayland \
- libwlroots-0.17.so:x11-toolkits/wlroots017 \
+ libwlroots-0.19.so:x11-toolkits/wlroots019 \
libinput.so:x11/libinput \
libxkbcommon.so:x11/libxkbcommon
-RUN_DEPENDS= nlohmann-json>0:devel/nlohmann-json
TEST_DEPENDS= doctest>0:devel/doctest
USES= cmake:indirect compiler:c++17-lang gl gnome jpeg meson pkgconfig xorg
@@ -34,13 +33,15 @@ USE_GL= egl glesv2
USE_GNOME= cairo pango
USE_XORG= pixman
GH_ACCOUNT= WayfireWM
-GH_TUPLE= WayfireWM:wf-touch:b8b844f:wftouch/subprojects/wf-touch \
- WayfireWM:wf-utils:08553c4:wfutils/subprojects/wf-utils
+GH_TUPLE= WayfireWM:wf-touch:093d894:wftouch/subprojects/wf-touch \
+ WayfireWM:wf-utils:3ef27d1:wfutils/subprojects/wf-utils
MESON_ARGS= -Dtests=disabled \
-Dwf-touch:tests=disabled \
- -Dwf-utils:default_library=static \
${NULL}
+# XXX https://github.com/WayfireWM/wayfire/issues/2800
+USES+= localbase
+
.if !exists(/usr/include/omp.h)
# LLVM openmp in base doesn't support powerpc, armv6, armv7 yet
MESON_ARGS+= -Denable_openmp=false
@@ -58,12 +59,6 @@ post-patch:
-e '/project_version/s/@0@/${DISTVERSIONFULL}/' \
${WRKSRC}/meson.build
-.ifdef GH_TUPLE
-post-configure:
- @${REINPLACE_CMD} 's/meson install/& \
- --skip-subprojects/' ${BUILD_WRKSRC}/build.ninja
-.endif
-
post-install:
${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/${PORTNAME}.ini ${STAGEDIR}${EXAMPLESDIR}
@@ -71,7 +66,8 @@ post-install:
pre-test:
@if [ ! -e ${WRKDIR}/.meson_build_tests ]; then \
${RM} ${CONFIGURE_COOKIE} ${BUILD_COOKIE}; \
- ${MAKE} -C${.CURDIR} build MESON_ARGS="${MESON_ARGS} --reconfigure -Dtests=enabled"; \
+ ${MAKE} -C${.CURDIR} build MESON_ARGS="${MESON_ARGS} --reconfigure \
+ ${MESON_ARGS:M*tests*:S/=dis/=en/}"; \
${TOUCH} ${WRKDIR}/.meson_build_tests; \
fi
diff --git a/x11-wm/wayfire/distinfo b/x11-wm/wayfire/distinfo
index 8e706d071d10..779fe7e32d9d 100644
--- a/x11-wm/wayfire/distinfo
+++ b/x11-wm/wayfire/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1724497494
-SHA256 (WayfireWM-wayfire-v0.9.0_GH0.tar.gz) = 233fa0cf1c967a48d40a075ea7e34132e80ad30c2aef5e306c4466be1e585acb
-SIZE (WayfireWM-wayfire-v0.9.0_GH0.tar.gz) = 477667
-SHA256 (WayfireWM-wf-touch-b8b844f_GH0.tar.gz) = d4c1ba47e3f1561a4de2fc3166a46e9a3849526b62efab27b160a4a2804fb6b8
-SIZE (WayfireWM-wf-touch-b8b844f_GH0.tar.gz) = 9976
-SHA256 (WayfireWM-wf-utils-08553c4_GH0.tar.gz) = 0d5f9293fa0012b095c8e902884ca56f828928cf14a578ceac712f73e85b40d5
-SIZE (WayfireWM-wf-utils-08553c4_GH0.tar.gz) = 48507
+TIMESTAMP = 1756267943
+SHA256 (WayfireWM-wayfire-v0.10.0_GH0.tar.gz) = f4b3997ae0cc764d38226038d05291f44b02988782f27852c26b04387b9da440
+SIZE (WayfireWM-wayfire-v0.10.0_GH0.tar.gz) = 507994
+SHA256 (WayfireWM-wf-touch-093d894_GH0.tar.gz) = 7fa685012ed73363d507f093838b7d64264b6038bbdc5baab571171f5120d257
+SIZE (WayfireWM-wf-touch-093d894_GH0.tar.gz) = 10577
+SHA256 (WayfireWM-wf-utils-3ef27d1_GH0.tar.gz) = fcea63b4e4fd026fede0fc0fbeb4858c3d2df0eb9da400d26a322b2ff10a2d68
+SIZE (WayfireWM-wf-utils-3ef27d1_GH0.tar.gz) = 48507
diff --git a/x11-wm/wayfire/files/patch-wlroots017 b/x11-wm/wayfire/files/patch-wlroots017
deleted file mode 100644
index 28311aebc9a3..000000000000
--- a/x11-wm/wayfire/files/patch-wlroots017
+++ /dev/null
@@ -1,32 +0,0 @@
-Run-time dependency wlroots found: NO (tried pkgconfig and cmake)
-Looking for a fallback subproject for the dependency wlroots
-
-meson.build:45:11: ERROR: Subproject exists but has no meson.build file.
-
---- meson.build.orig 2024-08-24 11:04:54 UTC
-+++ meson.build
-@@ -42,11 +42,11 @@ elif get_option('use_system_wlroots').enabled()
-
- elif get_option('use_system_wlroots').enabled()
- use_system_wlroots = true
-- wlroots = dependency('wlroots', version: ['>=0.17.0', '<0.18.0'], required: true)
-+ wlroots = dependency('wlroots-0.17', version: ['>=0.17.0', '<0.18.0'], required: true)
-
- elif get_option('use_system_wlroots').auto()
- message( 'SEARCHING FOR WLROOTS' )
-- wlroots = dependency('wlroots', version: ['>=0.17.0', '<0.18.0'], required: false)
-+ wlroots = dependency('wlroots-0.17', version: ['>=0.17.0', '<0.18.0'], required: false)
- use_system_wlroots = true
- if not wlroots.found()
- use_system_wlroots = false
---- src/meson.build.orig 2024-08-24 11:04:54 UTC
-+++ src/meson.build
-@@ -147,7 +147,7 @@ public_api_requirements = [
- wayland_server,
- pixman,
- # These might be subprojects so we need to pass them as strings
-- 'wlroots',
-+ 'wlroots-0.17',
- 'wf-config',
- ]
-
diff --git a/x11-wm/wayfire/pkg-plist b/x11-wm/wayfire/pkg-plist
index 8775999874d7..c741060a3665 100644
--- a/x11-wm/wayfire/pkg-plist
+++ b/x11-wm/wayfire/pkg-plist
@@ -1,7 +1,13 @@
bin/wayfire
+include/wayfire/action/action.hpp
+include/wayfire/action/action_interface.hpp
include/wayfire/bindings-repository.hpp
include/wayfire/bindings.hpp
include/wayfire/compositor-view.hpp
+include/wayfire/condition/access_interface.hpp
+include/wayfire/condition/condition.hpp
+include/wayfire/condition/logic_condition.hpp
+include/wayfire/condition/test_condition.hpp
include/wayfire/config-backend.hpp
include/wayfire/config.h
include/wayfire/core.hpp
@@ -11,10 +17,13 @@ include/wayfire/geometry.hpp
include/wayfire/idle.hpp
include/wayfire/img.hpp
include/wayfire/input-device.hpp
+include/wayfire/lexer/lexer.hpp
+include/wayfire/lexer/literal.hpp
+include/wayfire/lexer/symbol.hpp
include/wayfire/matcher.hpp
+include/wayfire/nonstd/json.hpp
include/wayfire/nonstd/observer_ptr.h
include/wayfire/nonstd/reverse.hpp
-include/wayfire/nonstd/safe-list.hpp
include/wayfire/nonstd/tracking-allocator.hpp
include/wayfire/nonstd/wlroots-full.hpp
include/wayfire/nonstd/wlroots.hpp
@@ -23,8 +32,13 @@ include/wayfire/opengl.hpp
include/wayfire/option-wrapper.hpp
include/wayfire/output-layout.hpp
include/wayfire/output.hpp
+include/wayfire/parser/action_parser.hpp
+include/wayfire/parser/condition_parser.hpp
+include/wayfire/parser/lambda_rule_parser.hpp
+include/wayfire/parser/rule_parser.hpp
include/wayfire/per-output-plugin.hpp
include/wayfire/plugin.hpp
+include/wayfire/plugins/animate/animate.hpp
include/wayfire/plugins/blur/blur.hpp
include/wayfire/plugins/common/cairo-util.hpp
include/wayfire/plugins/common/geometry-animation.hpp
@@ -34,7 +48,6 @@ include/wayfire/plugins/common/move-drag-interface.hpp
include/wayfire/plugins/common/preview-indication.hpp
include/wayfire/plugins/common/shared-core-data.hpp
include/wayfire/plugins/common/simple-text-node.hpp
-include/wayfire/plugins/common/simple-texture.hpp
include/wayfire/plugins/common/util.hpp
include/wayfire/plugins/common/workspace-wall.hpp
include/wayfire/plugins/crossfade.hpp
@@ -43,12 +56,16 @@ include/wayfire/plugins/input-method-v1/input-method-v1.hpp
include/wayfire/plugins/ipc/ipc-activator.hpp
include/wayfire/plugins/ipc/ipc-helpers.hpp
include/wayfire/plugins/ipc/ipc-method-repository.hpp
+include/wayfire/plugins/ipc/ipc-rules-common.hpp
include/wayfire/plugins/scale-signal.hpp
include/wayfire/plugins/vswitch.hpp
include/wayfire/plugins/wm-actions-signals.hpp
include/wayfire/plugins/wobbly/wobbly-signal.hpp
include/wayfire/region.hpp
include/wayfire/render-manager.hpp
+include/wayfire/render.hpp
+include/wayfire/rule/lambda_rule.hpp
+include/wayfire/rule/rule.hpp
include/wayfire/scene-input.hpp
include/wayfire/scene-operations.hpp
include/wayfire/scene-render.hpp
@@ -58,6 +75,7 @@ include/wayfire/signal-definitions.hpp
include/wayfire/signal-provider.hpp
include/wayfire/toplevel-view.hpp
include/wayfire/toplevel.hpp
+include/wayfire/touch/touch.hpp
include/wayfire/txn/transaction-manager.hpp
include/wayfire/txn/transaction-object.hpp
include/wayfire/txn/transaction.hpp
@@ -71,6 +89,8 @@ include/wayfire/unstable/wlr-view-keyboard-interaction.hpp
include/wayfire/unstable/xdg-toplevel-base.hpp
include/wayfire/unstable/xwl-toplevel-base.hpp
include/wayfire/util.hpp
+include/wayfire/utils.hpp
+include/wayfire/variant.hpp
include/wayfire/view-access-interface.hpp
include/wayfire/view-helpers.hpp
include/wayfire/view-transform.hpp
@@ -80,6 +100,12 @@ include/wayfire/workarea.hpp
include/wayfire/workspace-set.hpp
include/wayfire/workspace-stream.hpp
lib/libwayfire-blur-base.so
+lib/libwayfire-move-drag-interface.a
+lib/libwayfire-workspace-wall.a
+lib/libwf-utils.so
+lib/libwf-utils.so.0
+lib/libwf-utils.so.0.4.0
+lib/libwftouch.a
lib/wayfire/libalpha.so
lib/wayfire/libanimate.so
lib/wayfire/libautostart.so
@@ -88,7 +114,6 @@ lib/wayfire/libcommand.so
lib/wayfire/libcube.so
lib/wayfire/libdecoration.so
lib/wayfire/libdefault-config-backend.so
-lib/wayfire/libdemo-ipc.so
lib/wayfire/libexpo.so
lib/wayfire/libextra-gestures.so
lib/wayfire/libfast-switcher.so
@@ -113,6 +138,7 @@ lib/wayfire/libshortcuts-inhibit.so
lib/wayfire/libsimple-tile.so
lib/wayfire/libstipc.so
lib/wayfire/libswitcher.so
+lib/wayfire/libvk-color-management.so
lib/wayfire/libvswipe.so
lib/wayfire/libvswitch.so
lib/wayfire/libwayfire-shell.so
@@ -125,6 +151,7 @@ lib/wayfire/libxdg-activation.so
lib/wayfire/libxkb-bindings.so
lib/wayfire/libzoom.so
libdata/pkgconfig/wayfire.pc
+libdata/pkgconfig/wf-utils.pc
share/man/man1/wayfire.1.gz
%%EXAMPLESDIR%%/wayfire.ini
%%DATADIR%%/metadata/alpha.xml
@@ -174,3 +201,4 @@ share/man/man1/wayfire.1.gz
%%DATADIR%%/metadata/zoom.xml
%%DATADIR%%/protocols/unstable/wayfire-shell-unstable-v2.xml
share/wayland-sessions/wayfire.desktop
+share/xdg-desktop-portal/wayfire-portals.conf
diff --git a/x11/Makefile b/x11/Makefile
index 4b4ee4a3f246..e641d7dcf4ed 100644
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -460,6 +460,7 @@
SUBDIR += watershot
SUBDIR += way-displays
SUBDIR += waybar
+ SUBDIR += waycheck
SUBDIR += waycorner
SUBDIR += wayidle
SUBDIR += wayland-logout
diff --git a/x11/lightdm-kde-greeter/Makefile b/x11/lightdm-kde-greeter/Makefile
index ca00120b5196..4814955eb6ae 100644
--- a/x11/lightdm-kde-greeter/Makefile
+++ b/x11/lightdm-kde-greeter/Makefile
@@ -1,25 +1,29 @@
PORTNAME= lightdm-kde-greeter
PORTVERSION= 6.0.3
+PORTREVISION= 1
CATEGORIES= x11 kde
MAINTAINER= kde@FreeBSD.org
COMMENT= KDE login screen using the LightDM framework
WWW= https://invent.kde.org/plasma/lightdm-kde-greeter
-LIB_DEPENDS= liblightdm-gobject-1.so:x11/lightdm
-RUN_DEPENDS= at-spi2-core>0:accessibility/at-spi2-core
-
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING.GPL3
-USES= cmake compiler:c++11-lang gettext gnome kde:6 pkgconfig qt:6 \
- tar:xz xorg
-USE_KDE= auth config configwidgets i18n iconthemes kcmutils networkmanagerqt \
- package plasma-workspace \
- ecm:build
+LIB_DEPENDS= libnm.so:net-mgmt/networkmanager-shim \
+ liblightdm-gobject-1.so:x11/lightdm
+RUN_DEPENDS= at-spi2-core>0:accessibility/at-spi2-core
+
+USES= cmake compiler:c++17-lang gettext gl gnome kde:6 pkgconfig \
+ qt:6 tar:xz xorg
+USE_GL= opengl
USE_GNOME= gtk20
-USE_QT= base
-USE_XORG= x11
+USE_KDE= auth colorscheme config configwidgets coreaddons i18n \
+ iconthemes kcmutils libplasma networkmanagerqt package \
+ widgetsaddons \
+ ecm:build
+USE_QT= 5compat base declarative
+USE_XORG= x11 xcb xext xrandr xrender
KDE_INVENT= 31d29530ad834c1bfb70ed43f9395a549fbace56 plasma
@@ -27,7 +31,9 @@ CMAKE_ARGS= -DGREETER_IMAGES_DIR="${PREFIX}/var/db/${PORTNAME}/images" \
-DLIGHTDM_CONFIG_DIR=${PREFIX}/etc/lightdm \
-DDATA_INSTALL_DIR=${PREFIX}/share
-post-stage:
+post-install:
${RM} -r ${STAGEDIR}${PREFIX}/lib/systemd
+ (cd ${STAGEDIR}${PREFIX}/etc/lightdm && ${MV} lightdm-kde-greeter.conf \
+ lightdm-kde-greeter.conf.sample)
.include <bsd.port.mk>
diff --git a/x11/lightdm-kde-greeter/pkg-message b/x11/lightdm-kde-greeter/pkg-message
index ddc6c404298e..bd08570da8b5 100644
--- a/x11/lightdm-kde-greeter/pkg-message
+++ b/x11/lightdm-kde-greeter/pkg-message
@@ -1,6 +1,12 @@
+[
+{ type: install
+ message: <<EOM
To enable lightdm-kde-greeter as the current lightdm greeter, you can
create a file at /usr/local/etc/lightdm/lightdm.conf.d/50-myconfig.conf
with the following:
[Seat:*]
greeter-session=lightdm-kde-greeter
+EOM
+}
+]
diff --git a/x11/lightdm-kde-greeter/pkg-plist b/x11/lightdm-kde-greeter/pkg-plist
index 6a04b8e00fab..d4ec905f5fdf 100644
--- a/x11/lightdm-kde-greeter/pkg-plist
+++ b/x11/lightdm-kde-greeter/pkg-plist
@@ -1,6 +1,6 @@
bin/lightdm-kde-greeter-rootimage
bin/lightdm-kde-greeter-wifikeeper
-etc/lightdm/lightdm-kde-greeter.conf
+@sample etc/lightdm/lightdm-kde-greeter.conf.sample
lib/libexec/kf6/kauth/kcmlightdmhelper
%%QT_PLUGINDIR%%/plasma/kcms/systemsettings/kcm_lightdm.so
sbin/lightdm-kde-greeter
diff --git a/x11/salut/Makefile b/x11/salut/Makefile
index 08bef05512b1..7977ed92222e 100644
--- a/x11/salut/Makefile
+++ b/x11/salut/Makefile
@@ -4,7 +4,7 @@ DISTVERSION= 0.3.1
PORTREVISION= 25
CATEGORIES= x11 wayland
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Sleek notification daemon
LICENSE= MPL20
diff --git a/x11/sway-audio-idle-inhibit/Makefile b/x11/sway-audio-idle-inhibit/Makefile
index 585d62702df4..d00e00b9075f 100644
--- a/x11/sway-audio-idle-inhibit/Makefile
+++ b/x11/sway-audio-idle-inhibit/Makefile
@@ -4,7 +4,7 @@ PORTVERSION= 0.1.2
PORTREVISION= 1
CATEGORIES= x11 wayland
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Disable swayidle during audio playback/recording
WWW= https://github.com/ErikReider/SwayAudioIdleInhibit
diff --git a/x11/swayfloatingswitcher/Makefile b/x11/swayfloatingswitcher/Makefile
index 99a792aad2bd..20d38b63a953 100644
--- a/x11/swayfloatingswitcher/Makefile
+++ b/x11/swayfloatingswitcher/Makefile
@@ -3,7 +3,7 @@ PORTVERSION= s20221131
PORTREVISION= 2
CATEGORIES= x11
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Simple Alt+Tab switcher for floating windows
WWW= https://github.com/ErikReider/SwayFloatingSwitcher
diff --git a/x11/swaync/Makefile b/x11/swaync/Makefile
index 30ad36275dea..e5a620326a73 100644
--- a/x11/swaync/Makefile
+++ b/x11/swaync/Makefile
@@ -3,7 +3,7 @@ DISTVERSIONPREFIX= v
PORTVERSION= 0.12.2
CATEGORIES= x11 wayland
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Simple Wayland notification daemon with GTK panel
WWW= https://github.com/ErikReider/SwayNotificationCenter
diff --git a/x11/swaync/pkg-descr b/x11/swaync/pkg-descr
index fe8221c507b9..fd7fb56cef28 100644
--- a/x11/swaync/pkg-descr
+++ b/x11/swaync/pkg-descr
@@ -2,18 +2,26 @@ A simple notification daemon with a GTK gui for notifications and the
control center
Features:
+- Grouped notifications
- Keyboard shortcuts
- Notification body markup with image support
+- Inline replies
- A panel to view previous notifications
- Show album art for notifications like Spotify
- Do not disturb
+- Inhibiting notifications through DBUS or client
+- Restores previous Do not disturb value after restart
- Click notification to execute default action
- Show alternative notification actions
+- Copy detected 2FA codes to clipboard
- Customization through a CSS file
- Trackpad/mouse gesture to close notification
- The same features as any other basic notification daemon
- Basic configuration through a JSON config file
- Hot-reload config through swaync-client
+- Customizable widgets
+- Select the preferred monitor to display on (with swaync-client
+ command for scripting)
Planned Features:
- Slick animations
diff --git a/x11/swaysettings/Makefile b/x11/swaysettings/Makefile
index 8ade08fd89b8..6e69f59d97c8 100644
--- a/x11/swaysettings/Makefile
+++ b/x11/swaysettings/Makefile
@@ -4,7 +4,7 @@ DISTVERSION= 0.5.0
PORTREVISION= 1
CATEGORIES= x11
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= GUI for setting Sway wallpaper, default apps, GTK themes, etc.
WWW= https://github.com/ErikReider/SwaySettings
diff --git a/x11/wapanel/Makefile b/x11/wapanel/Makefile
index 74a4849076d9..520343443625 100644
--- a/x11/wapanel/Makefile
+++ b/x11/wapanel/Makefile
@@ -3,7 +3,7 @@ DISTVERSION= 1.1.0
PORTREVISION= 7
CATEGORIES= x11 wayland
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Desktop bar for Wayfire and other wlroots compositors
WWW= https://firstbober.github.io/wapanel/
diff --git a/x11/watershot/Makefile b/x11/watershot/Makefile
index fa553f474884..b5dbe3602509 100644
--- a/x11/watershot/Makefile
+++ b/x11/watershot/Makefile
@@ -4,7 +4,7 @@ DISTVERSION= 0.2.2
PORTREVISION= 16
CATEGORIES= x11 wayland
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Simple Wayland-native screenshot tool
WWW= https://github.com/Kirottu/watershot
diff --git a/x11/waycheck/Makefile b/x11/waycheck/Makefile
new file mode 100644
index 000000000000..65b41ff8c51d
--- /dev/null
+++ b/x11/waycheck/Makefile
@@ -0,0 +1,30 @@
+PORTNAME= waycheck
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.7.0
+CATEGORIES= x11 wayland
+
+MAINTAINER= tagattie@FreeBSD.org
+COMMENT= Simple GUI that displays the protocols implemented by a Wayland compositor
+WWW= https://gitlab.freedesktop.org/serebit/waycheck
+
+LICENSE= APACHE20 CC0-1.0
+LICENSE_COMB= multi
+LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSES/Apache-2.0.txt
+LICENSE_FILE_CC0-1.0= ${WRKSRC}/LICENSES/CC0-1.0.txt
+
+LIB_DEPENDS= libwayland-client.so:graphics/wayland
+
+USES= meson pkgconfig qt:6
+
+USE_GITLAB= yes
+GL_SITE= https://gitlab.freedesktop.org/
+GL_ACCOUNT= serebit
+
+USE_QT= base wayland
+
+PLIST_FILES= bin/${PORTNAME} \
+ share/applications/dev.serebit.Waycheck.desktop \
+ share/icons/hicolor/scalable/apps/dev.serebit.Waycheck.svg \
+ share/metainfo/dev.serebit.Waycheck.metainfo.xml
+
+.include <bsd.port.mk>
diff --git a/x11/waycheck/distinfo b/x11/waycheck/distinfo
new file mode 100644
index 000000000000..c3dab321fc1d
--- /dev/null
+++ b/x11/waycheck/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1756195503
+SHA256 (waycheck-v1.7.0.tar.bz2) = 658caca3d967d9b23bb1f6d42c6fd67832263bb60fd600a26e97748d0e47e105
+SIZE (waycheck-v1.7.0.tar.bz2) = 21545
diff --git a/x11/waycheck/files/patch-meson.build b/x11/waycheck/files/patch-meson.build
new file mode 100644
index 000000000000..882534abc553
--- /dev/null
+++ b/x11/waycheck/files/patch-meson.build
@@ -0,0 +1,15 @@
+--- meson.build.orig 2025-08-27 20:19:12 UTC
++++ meson.build
+@@ -16,6 +16,12 @@ dep_wayland_client = dependency('wayland-client')
+ )
+ dep_wayland_client = dependency('wayland-client')
+
++cc = meson.get_compiler('cpp')
++dep_libutil = dependency('', required : false)
++if host_machine.system() == 'freebsd'
++ dep_libutil = cc.find_library('util', required : true)
++endif
++
+ datadir = get_option('datadir')
+
+ subdir('src')
diff --git a/x11/waycheck/files/patch-src_meson.build b/x11/waycheck/files/patch-src_meson.build
new file mode 100644
index 000000000000..decf26941ea7
--- /dev/null
+++ b/x11/waycheck/files/patch-src_meson.build
@@ -0,0 +1,10 @@
+--- src/meson.build.orig 2025-08-27 20:18:18 UTC
++++ src/meson.build
+@@ -15,6 +15,6 @@ waycheck = executable(
+ waycheck = executable(
+ 'waycheck',
+ sources: waycheck_sources,
+- dependencies: [dep_qt6, dep_wayland_client],
++ dependencies: [dep_qt6, dep_wayland_client, dep_libutil],
+ install: true,
+ )
diff --git a/x11/waycheck/files/patch-src_window.cpp b/x11/waycheck/files/patch-src_window.cpp
new file mode 100644
index 000000000000..6e976a9c5ffb
--- /dev/null
+++ b/x11/waycheck/files/patch-src_window.cpp
@@ -0,0 +1,56 @@
+--- src/window.cpp.orig 2025-06-27 19:43:51 UTC
++++ src/window.cpp
+@@ -13,7 +13,24 @@
+ #include <unistd.h>
+ #include <wayland-client-protocol.h>
+
++#if defined(__FreeBSD__)
++#include <sys/types.h>
++#include <sys/ucred.h>
++#include <sys/un.h>
++#include <sys/user.h>
++#include <libutil.h>
++#endif
++
+ static pid_t pid_from_fd(const int fd) {
++#if defined(__FreeBSD__)
++ xucred cred{};
++ socklen_t len = sizeof(struct xucred);
++ if (getsockopt(fd, SOL_LOCAL, LOCAL_PEERCRED, &cred, &len) == -1) {
++ perror("getsockopt failed");
++ exit(1);
++ }
++ return cred.cr_pid;
++#else
+ ucred cred{};
+ socklen_t len = sizeof(struct ucred);
+ if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &cred, &len) == -1) {
+@@ -21,9 +38,19 @@ static pid_t pid_from_fd(const int fd) {
+ exit(1);
+ }
+ return cred.pid;
++#endif
+ }
+
+ static std::string process_name_from_pid(const pid_t pid) {
++#if defined(__FreeBSD__)
++ struct kinfo_proc *proc = kinfo_getproc(pid);
++
++ if (proc) {
++ std::string out = proc->ki_comm;
++ free(proc);
++ return out;
++ }
++#else
+ const std::string procpath = QString::asprintf("/proc/%d/comm", pid).toStdString();
+
+ std::ifstream infile(procpath);
+@@ -38,7 +65,7 @@ static std::string process_name_from_pid(const pid_t p
+ // running in a flatpak or a snap, most likely
+ return "Unknown (Sandboxed)";
+ }
+-
++#endif
+ return "Unknown";
+ }
+
diff --git a/x11/waycheck/pkg-descr b/x11/waycheck/pkg-descr
new file mode 100644
index 000000000000..fcdbdc739f27
--- /dev/null
+++ b/x11/waycheck/pkg-descr
@@ -0,0 +1,5 @@
+Waycheck is a simple Qt6 application that displays all of the Wayland
+protocols that your compositor supports, and all of the protocols that
+it doesn't support. It can be used to compare protocol support between
+compositors, or if you're working on your own compositor, to keep
+track of which protocols you still need to implement.
diff --git a/x11/wcm/Makefile b/x11/wcm/Makefile
index 5c9a05933b71..c3d81a31bd04 100644
--- a/x11/wcm/Makefile
+++ b/x11/wcm/Makefile
@@ -1,10 +1,9 @@
PORTNAME= wcm
DISTVERSIONPREFIX= v
-DISTVERSION= 0.9.0
-PORTREVISION= 1
+DISTVERSION= 0.10.0
CATEGORIES= x11 wayland
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Wayfire Config Manager
WWW= https://wayfire.org/
@@ -25,8 +24,6 @@ USES= compiler:c++17-lang gnome meson pkgconfig
USE_GITHUB= yes
USE_GNOME= gdkpixbuf gtk30 libxml2
GH_ACCOUNT= WayfireWM
-MESON_ARGS= -Denable_wdisplays=false # use package
-DATADIR= ${PREFIX}/share/wayfire
OPTIONS_DEFINE= WDISPLAYS WFSHELL
OPTIONS_DEFAULT=WDISPLAYS WFSHELL
diff --git a/x11/wcm/distinfo b/x11/wcm/distinfo
index c78b27154182..2db2654231bc 100644
--- a/x11/wcm/distinfo
+++ b/x11/wcm/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1724414952
-SHA256 (WayfireWM-wcm-v0.9.0_GH0.tar.gz) = 35205c165b83ac387235b0415f58f0e80a8975421de23250c7cb70c471aeee87
-SIZE (WayfireWM-wcm-v0.9.0_GH0.tar.gz) = 400778
+TIMESTAMP = 1756308383
+SHA256 (WayfireWM-wcm-v0.10.0_GH0.tar.gz) = 9d42754243d3eed44426b0e9efab92a40277df691e592ae990b4733f2243a841
+SIZE (WayfireWM-wcm-v0.10.0_GH0.tar.gz) = 333987
diff --git a/x11/wcm/pkg-plist b/x11/wcm/pkg-plist
index b05212e9a733..dc8520e57748 100644
--- a/x11/wcm/pkg-plist
+++ b/x11/wcm/pkg-plist
@@ -1,12 +1,6 @@
bin/wcm
-share/applications/wayfire-config-manager.desktop
-share/icons/hicolor/128x128/apps/wcm.png
-share/icons/hicolor/160x160/apps/wcm.png
-share/icons/hicolor/192x192/apps/wcm.png
-share/icons/hicolor/48x48/apps/wcm.png
-share/icons/hicolor/64x64/apps/wcm.png
-share/icons/hicolor/72x72/apps/wcm.png
-share/icons/hicolor/96x96/apps/wcm.png
+share/applications/wcm.desktop
+share/icons/wcm.svg
%%DATADIR%%/icons/plugin-alpha.svg
%%DATADIR%%/icons/plugin-animate.svg
%%DATADIR%%/icons/plugin-annotate.svg
@@ -63,4 +57,4 @@ share/icons/hicolor/96x96/apps/wcm.png
%%DATADIR%%/icons/plugin-workspace-names.svg
%%DATADIR%%/icons/plugin-wrot.svg
%%DATADIR%%/icons/plugin-zoom.svg
-%%DATADIR%%/icons/wcm.png
+%%DATADIR%%/icons/wcm.svg
diff --git a/x11/wf-shell/Makefile b/x11/wf-shell/Makefile
index 0ee84c20d8b8..d81d93925194 100644
--- a/x11/wf-shell/Makefile
+++ b/x11/wf-shell/Makefile
@@ -1,10 +1,9 @@
PORTNAME= wf-shell
DISTVERSIONPREFIX= v
-DISTVERSION= 0.9.0
-PORTREVISION= 1
+DISTVERSION= 0.10.0
CATEGORIES= x11 wayland
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= GTK3-based panel for wayfire
WWW= https://wayfire.org/
diff --git a/x11/wf-shell/distinfo b/x11/wf-shell/distinfo
index c01e68ccaa32..49f73aff85fc 100644
--- a/x11/wf-shell/distinfo
+++ b/x11/wf-shell/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1724498806
-SHA256 (WayfireWM-wf-shell-v0.9.0_GH0.tar.gz) = 71d14174c08cf51334ff8ec10aa5e055340bf291b993fef85d15f51892098e82
-SIZE (WayfireWM-wf-shell-v0.9.0_GH0.tar.gz) = 9045484
+TIMESTAMP = 1736771286
+SHA256 (WayfireWM-wf-shell-v0.10.0_GH0.tar.gz) = f90bf34ead49d996c950ce52cb6aca62fbaaffcedbbf35165edb4d82f970a3ff
+SIZE (WayfireWM-wf-shell-v0.10.0_GH0.tar.gz) = 9045441
SHA256 (GNOME-libgnome-volume-control-468022b_GH0.tar.gz) = 1c1d806ad1f57d7f644381b67ee87ef3e7e10f3a2da1432beef535ca50c0040f
SIZE (GNOME-libgnome-volume-control-468022b_GH0.tar.gz) = 45503