summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
Diffstat (limited to 'emulators')
-rw-r--r--emulators/Makefile3
-rw-r--r--emulators/ares/Makefile1
-rw-r--r--emulators/dolphin-emu/Makefile23
-rw-r--r--emulators/dolphin-emu/Makefile.tuples8
-rw-r--r--emulators/dolphin-emu/distinfo22
-rw-r--r--emulators/dolphin-emu/files/patch-CMakeLists.txt16
-rw-r--r--emulators/dolphin-emu/files/patch-minizip-ng.txt38
-rw-r--r--emulators/dolphin-emu/pkg-plist138
-rw-r--r--emulators/emulationstation/Makefile2
-rw-r--r--emulators/es-de/Makefile2
-rw-r--r--emulators/flycast/Makefile1
-rw-r--r--emulators/higan/Makefile62
-rw-r--r--emulators/libretro-pcsx2/Makefile2
-rw-r--r--emulators/linux-rl9/Makefile13
-rw-r--r--emulators/linux_base-c7/Makefile8
-rw-r--r--emulators/linux_base-c7/distinfo10
-rw-r--r--emulators/linux_base-c7/pkg-plist.aarch6418
-rw-r--r--emulators/linux_base-c7/pkg-plist.amd6420
-rw-r--r--emulators/linux_base-c7/pkg-plist.i38618
-rw-r--r--emulators/linux_base-rl9/Makefile14
-rw-r--r--emulators/linux_base-rl9/Makefile.version28
-rw-r--r--emulators/linux_base-rl9/distinfo348
-rw-r--r--emulators/linux_base-rl9/pkg-plist.aarch641015
-rw-r--r--emulators/linux_base-rl9/pkg-plist.amd641633
-rw-r--r--emulators/magia/Makefile2
-rw-r--r--emulators/mame/Makefile10
-rw-r--r--emulators/mame/distinfo8
-rw-r--r--emulators/mame/files/mame.ini.in9
-rw-r--r--emulators/mame/files/plugin.ini.in18
-rw-r--r--emulators/mame/pkg-plist5
-rw-r--r--emulators/mastergear/Makefile18
-rw-r--r--emulators/mupen64plus-video-glide64mk2/Makefile2
-rw-r--r--emulators/open-vm-kmod/Makefile2
-rw-r--r--emulators/open-vm-kmod/distinfo6
-rw-r--r--emulators/open-vm-kmod/files/patch-vmmemctl_os.c22
-rw-r--r--emulators/open-vm-tools/Makefile3
-rw-r--r--emulators/open-vm-tools/distinfo6
-rw-r--r--emulators/pcsx2/Makefile13
-rw-r--r--emulators/pcsx2/distinfo6
-rw-r--r--emulators/pcsx2/files/patch-pcsx2-qt-AutoUpdaterDialog.cpp11
-rw-r--r--emulators/playonbsd/Makefile2
-rw-r--r--emulators/ppsspp/Makefile33
-rw-r--r--emulators/ppsspp/distinfo24
-rw-r--r--emulators/ppsspp/files/patch-Common_GPU_Vulkan_VulkanContext.cpp11
-rw-r--r--emulators/ppsspp/files/patch-cmake_Modules_FindFFmpeg.cmake8
-rw-r--r--emulators/ppsspp/files/patch-no-egl27
-rw-r--r--emulators/ppsspp/files/patch-no-egl-plus-warnings-fix33
-rw-r--r--emulators/ppsspp/pkg-plist1
-rw-r--r--emulators/qemu-devel/Makefile13
-rw-r--r--emulators/qemu-devel/distinfo30
-rw-r--r--emulators/qemu-devel/pkg-plist16
-rw-r--r--emulators/qemu/Makefile3
-rw-r--r--emulators/qemu/distinfo6
-rw-r--r--emulators/qmc2/Makefile2
-rw-r--r--emulators/rpcs3/Makefile16
-rw-r--r--emulators/rpcs3/distinfo30
-rw-r--r--emulators/rpcs3/files/patch-rpcs3_rpcs3qt_game__list__frame.cpp24
-rw-r--r--emulators/rpcs3/files/patch-rpcs3_rpcs3qt_ps__move__tracker__dialog.cpp24
-rw-r--r--emulators/rpcs3/files/patch-wolfssl16
-rw-r--r--emulators/rpcs3/pkg-plist2
-rw-r--r--emulators/virtualbox-ose-70/Makefile20
-rw-r--r--emulators/virtualbox-ose-70/files/patch-configure43
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk13
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp20
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp11
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp8
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h4
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp28
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c81
-rw-r--r--emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp39
-rw-r--r--emulators/virtualbox-ose-70/files/vboxinit.in6
-rw-r--r--emulators/virtualbox-ose-71/Makefile424
-rw-r--r--emulators/virtualbox-ose-71/distinfo7
-rw-r--r--emulators/virtualbox-ose-71/files/extrapatch-Config.kmk11
-rw-r--r--emulators/virtualbox-ose-71/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile11
-rw-r--r--emulators/virtualbox-ose-71/files/extrapatch-vboximg-Config.kmk11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-Config.kmk402
-rw-r--r--emulators/virtualbox-ose-71/files/patch-configure138
-rw-r--r--emulators/virtualbox-ose-71/files/patch-doc_manual_en__US_dita_UserManual.ditamap11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-include-iprt-x86.h19
-rw-r--r--emulators/virtualbox-ose-71/files/patch-include_VBox_com_array.h36
-rw-r--r--emulators/virtualbox-ose-71/files/patch-include_VBox_sup.h11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-include_iprt_string.h14
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c284
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile27
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest34
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient25
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop10
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-DrvNATlibslirp.cpp10
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-slirp-bsd-sys-mbuf.h12
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk20
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt10
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Installer-Makefile.kmk14
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Installer-freebsd-VBox.sh77
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk14
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h39
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp71
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_pam_pam__vbox.cpp20
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile38
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile.kmk31
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_drm_vboxvideo__drm.c17
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk31
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.856
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.c171
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_bcmp.c12
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h428
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c1015
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c645
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c1543
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk29
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp20
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp29
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp56
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Makefile.kmk44
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_PC_ipxe_Makefile.kmk29
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_USB_USBProxyDevice-freebsd.cpp11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp58
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp29
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrv.cpp13
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrvInternal.h11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_Makefile30
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c234
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPLib-freebsd.cpp11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_files__vboxdrv34
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_VBoxNetAdp-freebsd.c147
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c471
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Main_Makefile.kmk10
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Main_include_HostPower.h20
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_HostImpl.cpp11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp24
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_Makefile.kmk29
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c58
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c29
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c408
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c22
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c92
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c53
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c73
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semfastmutex-r0drv-freebsd.c59
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c80
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c30
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_the-freebsd-kernel.h48
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c91
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c35
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c43
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c68
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp39
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r3_posix_process-creation-posix.cpp38
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp59
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_VMM_Config.kmk11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_Makefile.kmk11
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c13
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h17
-rw-r--r--emulators/virtualbox-ose-71/files/pkg-message.in120
-rw-r--r--emulators/virtualbox-ose-71/files/vboxheadless.in140
-rw-r--r--emulators/virtualbox-ose-71/files/vboxinit.in91
-rw-r--r--emulators/virtualbox-ose-71/files/vboxwatchdog.in51
-rw-r--r--emulators/virtualbox-ose-71/files/vboxwebsrv.in47
-rw-r--r--emulators/virtualbox-ose-71/files/virtualbox.desktop17
-rw-r--r--emulators/virtualbox-ose-71/pkg-descr8
-rw-r--r--emulators/virtualbox-ose-71/pkg-plist449
-rw-r--r--emulators/virtualbox-ose-additions-legacy/Makefile8
-rw-r--r--emulators/virtualbox-ose-additions/Makefile8
-rw-r--r--emulators/virtualbox-ose-kmod-70/Makefile11
-rw-r--r--emulators/virtualbox-ose-kmod-71/Makefile114
-rw-r--r--emulators/virtualbox-ose-kmod-71/distinfo3
-rw-r--r--emulators/virtualbox-ose-kmod-71/files/pkg-message.in10
-rw-r--r--emulators/virtualbox-ose-kmod-71/files/vboxnet.in67
-rw-r--r--emulators/virtualbox-ose-kmod-71/pkg-descr5
-rw-r--r--emulators/virtualbox-ose-kmod-71/pkg-plist6
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/Makefile9
-rw-r--r--emulators/virtualbox-ose-kmod/Makefile9
-rw-r--r--emulators/virtualbox-ose-legacy/Makefile8
-rw-r--r--emulators/virtualbox-ose-legacy/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk13
-rw-r--r--emulators/virtualbox-ose-legacy/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp47
-rw-r--r--emulators/virtualbox-ose-legacy/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c13
-rw-r--r--emulators/virtualbox-ose-legacy/files/patch-src_VBox_Runtime_r3_xml.cpp53
-rw-r--r--emulators/virtualbox-ose-legacy/files/vboxinit.in6
-rw-r--r--emulators/virtualbox-ose-nox11-70/Makefile6
-rw-r--r--emulators/virtualbox-ose-nox11-71/Makefile11
-rw-r--r--emulators/virtualbox-ose-nox11-legacy/Makefile2
-rw-r--r--emulators/virtualbox-ose-nox11/Makefile4
-rw-r--r--emulators/virtualbox-ose/Makefile8
-rw-r--r--emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk13
-rw-r--r--emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp20
-rw-r--r--emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp2
-rw-r--r--emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h4
-rw-r--r--emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-internal.h11
-rw-r--r--emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp20
-rw-r--r--emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c13
-rw-r--r--emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r3_xml.cpp53
-rw-r--r--emulators/virtualbox-ose/files/vboxinit.in6
-rw-r--r--emulators/wine-devel/Makefile17
-rw-r--r--emulators/wine-devel/distinfo6
-rw-r--r--emulators/wine-devel/files/patch-configure12
-rw-r--r--emulators/wine-devel/files/wine-wow64.sh3
-rw-r--r--emulators/wine-devel/pkg-plist10
-rw-r--r--emulators/wine-mono-devel/Makefile2
-rw-r--r--emulators/wine-mono-devel/distinfo6
-rw-r--r--emulators/wine/Makefile13
-rw-r--r--emulators/wine/files/patch-man94
-rw-r--r--emulators/wine/pkg-plist8
-rw-r--r--emulators/yuzu/Makefile2
-rw-r--r--emulators/yuzu/files/patch-boost-1.8824
-rw-r--r--emulators/yuzu/files/patch-fmt11301
-rw-r--r--emulators/yuzu/files/patch-simpleini36
-rw-r--r--emulators/z80pack/Makefile3
-rw-r--r--emulators/z80pack/distinfo6
216 files changed, 11983 insertions, 2788 deletions
diff --git a/emulators/Makefile b/emulators/Makefile
index 8c5cb1a960c2..16651319508e 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -157,16 +157,19 @@
SUBDIR += vice
SUBDIR += virtualbox-ose
SUBDIR += virtualbox-ose-70
+ SUBDIR += virtualbox-ose-71
SUBDIR += virtualbox-ose-additions
SUBDIR += virtualbox-ose-additions-legacy
SUBDIR += virtualbox-ose-additions-nox11
SUBDIR += virtualbox-ose-additions-nox11-legacy
SUBDIR += virtualbox-ose-kmod
SUBDIR += virtualbox-ose-kmod-70
+ SUBDIR += virtualbox-ose-kmod-71
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-legacy
SUBDIR += visualboyadvance-m
SUBDIR += vmips
diff --git a/emulators/ares/Makefile b/emulators/ares/Makefile
index e8531db0bb63..6ec6dc0301ee 100644
--- a/emulators/ares/Makefile
+++ b/emulators/ares/Makefile
@@ -1,6 +1,7 @@
PORTNAME= ares
DISTVERSIONPREFIX= v
DISTVERSION= 144
+PORTREVISION= 1
CATEGORIES= emulators
MAINTAINER= bsdcode@disroot.org
diff --git a/emulators/dolphin-emu/Makefile b/emulators/dolphin-emu/Makefile
index a4f52e9efce0..71612ba87946 100644
--- a/emulators/dolphin-emu/Makefile
+++ b/emulators/dolphin-emu/Makefile
@@ -1,6 +1,5 @@
PORTNAME= dolphin-emu
-PORTVERSION= 2412
-PORTREVISION= 1
+PORTVERSION= 2506
CATEGORIES= emulators
MAINTAINER= martymac@FreeBSD.org
@@ -10,16 +9,19 @@ WWW= https://www.dolphin-emu.org
LICENSE= BSD3CLAUSE CC0-1.0 GPLv2+ MIT
LICENSE_COMB= multi
-BUILD_DEPENDS= vulkan-headers>0:graphics/vulkan-headers
+BUILD_DEPENDS= vulkan-headers>0:graphics/vulkan-headers \
+ ${LOCALBASE}/include/linux/input.h:devel/evdev-proto
# Notes on dependencies:
# - alsa support has been disabled (not optimal)
-# - enet and soundtouch come from Externals/ as Dolphin's versions diverge
+# - enet comes from Externals/ as Dolphin's version diverges
# (see comments in CMakeLists.txt)
# Various problems that may be addressed in the future:
# - freesurround comes from Externals/ as it is not available from ports yet
# - cubeb comes from Externals/ as it is not available from ports yet
# - gtest detection is missing (Externals/ version enforced by CMakeLists.txt)
+# - SFML comes from Externals/ as v3.0 is needed
# - mbedtls2 comes from Externals/ as it has been deprecated in the ports tree
+# - mGBA comes from Externals/ as building with our ports' version fails
LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \
libavdevice.so:multimedia/ffmpeg \
libavfilter.so:multimedia/ffmpeg \
@@ -39,11 +41,12 @@ LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \
libpulse.so:audio/pulseaudio \
libjack.so:audio/jack \
libsndio.so:audio/sndio \
- libsfml-system.so:devel/sfml \
libminiupnpc.so:net/miniupnpc \
libcurl.so:ftp/curl \
libhidapi.so:comms/hidapi \
- libxkbcommon.so:x11/libxkbcommon
+ libxkbcommon.so:x11/libxkbcommon \
+ libudev.so:devel/libudev-devd \
+ libevdev.so:devel/libevdev
USES= cmake compiler:c++17-lang desktop-file-utils elfctl gl iconv \
pkgconfig python qmake qt:6 sdl xorg
@@ -61,14 +64,14 @@ USE_SDL= sdl2
USE_XORG= ice sm x11 xext xi xrandr
USE_QT= base svg
-# XXX Does not build with USE_MGBA or ENABLE_EVDEV
CMAKE_ARGS+= -DUSE_UPNP:BOOL=ON \
-DENABLE_QT:BOOL=ON \
-DENABLE_ALSA:BOOL=OFF \
-DENABLE_PULSEAUDIO:BOOL=ON \
-DUSE_DISCORD_PRESENCE:BOOL=OFF \
- -DUSE_MGBA:BOOL=OFF \
- -DENABLE_AUTOUPDATE:BOOL=OFF
+ -DUSE_MGBA:BOOL=ON \
+ -DENABLE_AUTOUPDATE:BOOL=OFF \
+ -DENABLE_EVDEV:BOOL=ON
MAKE_ENV+= DESTDIR="${STAGEDIR}"
# XXX Fix build on archs where 'unsigned long' is 32bit
@@ -76,7 +79,7 @@ CXXFLAGS+= -DLZO_CFG_PREFER_TYPEOF_ACC_INT32E_T=LZO_TYPEOF_INT
# Bypass git check (and set a dummy -unused- revision)
CMAKE_ARGS+= -DDOLPHIN_WC_BRANCH:STRING="stable" \
- -DDOLPHIN_WC_REVISION:STRING="1"
+ -DDOLPHIN_WC_REVISION:STRING="${PORTVERSION}"
OPTIONS_DEFINE= NLS
OPTIONS_SUB= yes
diff --git a/emulators/dolphin-emu/Makefile.tuples b/emulators/dolphin-emu/Makefile.tuples
index 740dfd9e045d..80abec7edee8 100644
--- a/emulators/dolphin-emu/Makefile.tuples
+++ b/emulators/dolphin-emu/Makefile.tuples
@@ -1,10 +1,12 @@
GH_TUPLE= \
- GPUOpen-LibrariesAndSDKs:VulkanMemoryAllocator:009ecd192c1289c7529bff248a16cfe896254816:VulkanMemoryAllocator/Externals/VulkanMemoryAllocator \
+ mgba-emu:mgba:8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51:mgba/Externals/mGBA/mgba \
+ GPUOpen-LibrariesAndSDKs:VulkanMemoryAllocator:3bab6924988e5f19bf36586a496156cf72f70d9f:VulkanMemoryAllocator/Externals/VulkanMemoryAllocator \
mozilla:cubeb:54217bca3f3e0cd53c073690a23dd25d83557909:cubeb/Externals/cubeb/cubeb \
- epezent:implot:cc5e1daa5c7f2335a9460ae79c829011dc5cef2d:implot/Externals/implot/implot \
+ epezent:implot:18c72431f8265e2b0b5378a3a73d8a883b2175ff:implot/Externals/implot/implot \
google:googletest:58d77fa8070e8cec2dc1ed015d66b454c8d78850:googletest/Externals/gtest \
- RetroAchievements:rcheevos:d54cf8f1059cebc90a6f5ecdf03df69259f22054:rcheevos/Externals/rcheevos/rcheevos \
+ RetroAchievements:rcheevos:0115d9198ff7a73ff6568027dfb948ef6031818c:rcheevos/Externals/rcheevos/rcheevos \
lsalzman:enet:2a85cd64459f6ba038d233a634d9440490dbba12:enet/Externals/enet/enet \
syoyo:tinygltf:c5641f2c22d117da7971504591a8f6a41ece488b:tinygltf/Externals/tinygltf/tinygltf \
+ SFML:SFML:7f1162dfea4969bc17417563ac55d93b72e84c1e:SFML/Externals/SFML/SFML \
arsenm:sanitizers-cmake:aab6948fa863bc1cbe5d0850bc46b9ef02ed4c1a:sanitizerscmake/Externals/cubeb/cubeb/cmake/sanitizers-cmake \
diff --git a/emulators/dolphin-emu/distinfo b/emulators/dolphin-emu/distinfo
index 26bf4a00eab1..4f3b3d0f4495 100644
--- a/emulators/dolphin-emu/distinfo
+++ b/emulators/dolphin-emu/distinfo
@@ -1,19 +1,23 @@
-TIMESTAMP = 1737057858
-SHA256 (dolphin-emu-dolphin-2412_GH0.tar.gz) = 6aafc7d3b6f735a727db26c329679d4973b1b15e028c82e4452c33c4eb9fefa4
-SIZE (dolphin-emu-dolphin-2412_GH0.tar.gz) = 19926717
-SHA256 (GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-009ecd192c1289c7529bff248a16cfe896254816_GH0.tar.gz) = 5ed5125086a92666f1698df907a29f54f11197c382996094b556a1b22186ecaf
-SIZE (GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-009ecd192c1289c7529bff248a16cfe896254816_GH0.tar.gz) = 904841
+TIMESTAMP = 1749143696
+SHA256 (dolphin-emu-dolphin-2506_GH0.tar.gz) = f4ddea39b6dfc89993657d230e291021520d78abaa4c59cfa12e95cb4a4916ff
+SIZE (dolphin-emu-dolphin-2506_GH0.tar.gz) = 19891520
+SHA256 (mgba-emu-mgba-8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51_GH0.tar.gz) = 07e73f02198affccf83cc9740d377b78ba27866b0d654a5e55cafae69d1dfa1c
+SIZE (mgba-emu-mgba-8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51_GH0.tar.gz) = 14488880
+SHA256 (GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-3bab6924988e5f19bf36586a496156cf72f70d9f_GH0.tar.gz) = 618dc35e4f571a508575fc1fc914eb15ab513e4443986509aff08dfb8844ba24
+SIZE (GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-3bab6924988e5f19bf36586a496156cf72f70d9f_GH0.tar.gz) = 937902
SHA256 (mozilla-cubeb-54217bca3f3e0cd53c073690a23dd25d83557909_GH0.tar.gz) = a795511bf56183ff7bad8fb2d2836ca5bb158e12ddd519caced62946ffa69c83
SIZE (mozilla-cubeb-54217bca3f3e0cd53c073690a23dd25d83557909_GH0.tar.gz) = 228779
-SHA256 (epezent-implot-cc5e1daa5c7f2335a9460ae79c829011dc5cef2d_GH0.tar.gz) = af51940ae6482c0e96ffb4309982fa309f9aa383cd8f980081681010c8c3a835
-SIZE (epezent-implot-cc5e1daa5c7f2335a9460ae79c829011dc5cef2d_GH0.tar.gz) = 137924
+SHA256 (epezent-implot-18c72431f8265e2b0b5378a3a73d8a883b2175ff_GH0.tar.gz) = 4787c77e6050f3bdc19f39eecf87d5b321bd3096321142b63f8169e1aa8f9b34
+SIZE (epezent-implot-18c72431f8265e2b0b5378a3a73d8a883b2175ff_GH0.tar.gz) = 138121
SHA256 (google-googletest-58d77fa8070e8cec2dc1ed015d66b454c8d78850_GH0.tar.gz) = c6ab3b6b33f51ef7465921f8f8c10c15d7cbc510761a15a18ad85babf6d73278
SIZE (google-googletest-58d77fa8070e8cec2dc1ed015d66b454c8d78850_GH0.tar.gz) = 855887
-SHA256 (RetroAchievements-rcheevos-d54cf8f1059cebc90a6f5ecdf03df69259f22054_GH0.tar.gz) = bf8e6e9afa865c51ab796c8329df206297b329f008ef0c1308c642480fb2d289
-SIZE (RetroAchievements-rcheevos-d54cf8f1059cebc90a6f5ecdf03df69259f22054_GH0.tar.gz) = 665077
+SHA256 (RetroAchievements-rcheevos-0115d9198ff7a73ff6568027dfb948ef6031818c_GH0.tar.gz) = 81d5d35e8b03194c103ceaedab1f37c473062d0907b496c50481f862f80c654d
+SIZE (RetroAchievements-rcheevos-0115d9198ff7a73ff6568027dfb948ef6031818c_GH0.tar.gz) = 409887
SHA256 (lsalzman-enet-2a85cd64459f6ba038d233a634d9440490dbba12_GH0.tar.gz) = 526c5af3980edfaebb510119c3311a9062d33ca5599e9f137a88e0d8a3be67a6
SIZE (lsalzman-enet-2a85cd64459f6ba038d233a634d9440490dbba12_GH0.tar.gz) = 82867
SHA256 (syoyo-tinygltf-c5641f2c22d117da7971504591a8f6a41ece488b_GH0.tar.gz) = 6352803f1ed18d479ea93abf96ac75c0222a21403be22840bde1072ee5935dfa
SIZE (syoyo-tinygltf-c5641f2c22d117da7971504591a8f6a41ece488b_GH0.tar.gz) = 5903179
+SHA256 (SFML-SFML-7f1162dfea4969bc17417563ac55d93b72e84c1e_GH0.tar.gz) = 503d90b6576a3343f7344ee5eff8642d06a487db3a83b5f36e92359f4cc896a7
+SIZE (SFML-SFML-7f1162dfea4969bc17417563ac55d93b72e84c1e_GH0.tar.gz) = 4380626
SHA256 (arsenm-sanitizers-cmake-aab6948fa863bc1cbe5d0850bc46b9ef02ed4c1a_GH0.tar.gz) = 9f5b073625375322236a94ce8d2d803cdedad321c91e63845f487b9ebfb2c433
SIZE (arsenm-sanitizers-cmake-aab6948fa863bc1cbe5d0850bc46b9ef02ed4c1a_GH0.tar.gz) = 7234
diff --git a/emulators/dolphin-emu/files/patch-CMakeLists.txt b/emulators/dolphin-emu/files/patch-CMakeLists.txt
index 36fd5226dff5..926a7016786c 100644
--- a/emulators/dolphin-emu/files/patch-CMakeLists.txt
+++ b/emulators/dolphin-emu/files/patch-CMakeLists.txt
@@ -1,17 +1,9 @@
-Fix detection of several libraries
+Fix minizip detection
-1) Use system zlib instead of embedded zlib-ng
-
-2) Fix minizip detection
-
---- CMakeLists.txt.orig 2024-12-01 23:00:52 UTC
+--- CMakeLists.txt.orig 2025-06-05 08:15:10 UTC
+++ CMakeLists.txt
-@@ -672,10 +672,10 @@ dolphin_find_optional_system_library_pkgconfig(ZSTD li
-
- dolphin_find_optional_system_library_pkgconfig(ZSTD libzstd>=1.4.0 zstd::zstd Externals/zstd)
-
--add_subdirectory(Externals/zlib-ng)
-+dolphin_find_optional_system_library_pkgconfig(ZLIB zlib ZLIB::ZLIB Externals/zlib-ng)
+@@ -692,7 +692,7 @@ dolphin_find_optional_system_library_pkgconfig(MINIZIP
+ dolphin_find_optional_system_library_pkgconfig(ZLIB zlib>=1.3.1 ZLIB::ZLIB Externals/zlib-ng)
dolphin_find_optional_system_library_pkgconfig(MINIZIP
- "minizip>=4.0.4" minizip::minizip Externals/minizip-ng
diff --git a/emulators/dolphin-emu/files/patch-minizip-ng.txt b/emulators/dolphin-emu/files/patch-minizip-ng.txt
deleted file mode 100644
index f29aa06843b4..000000000000
--- a/emulators/dolphin-emu/files/patch-minizip-ng.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-Fix build with minizip-ng >= 4.0.8
-
-See: https://github.com/zlib-ng/minizip-ng/releases/tag/4.0.8
-
---- Source/Core/DiscIO/VolumeVerifier.cpp.orig 2025-01-14 10:58:28 UTC
-+++ Source/Core/DiscIO/VolumeVerifier.cpp
-@@ -13,7 +13,7 @@
- #include <unordered_set>
-
- #include <mbedtls/md5.h>
--#include <mz_compat.h>
-+#include <unzip.h>
- #include <pugixml.hpp>
-
- #include "Common/Align.h"
---- Source/Core/Common/MinizipUtil.h.orig 2025-01-14 11:17:08 UTC
-+++ Source/Core/Common/MinizipUtil.h
-@@ -5,7 +5,7 @@
-
- #include <algorithm>
-
--#include <mz_compat.h>
-+#include <unzip.h>
-
- #include "Common/CommonTypes.h"
- #include "Common/ScopeGuard.h"
---- Source/Core/UICommon/ResourcePack/ResourcePack.cpp.orig 2025-01-14 11:19:18 UTC
-+++ Source/Core/UICommon/ResourcePack/ResourcePack.cpp
-@@ -6,7 +6,8 @@
- #include <algorithm>
- #include <memory>
-
--#include <mz_compat.h>
-+#include <unzip.h>
-+#include <mz.h>
- #include <mz_os.h>
-
- #include "Common/CommonPaths.h"
diff --git a/emulators/dolphin-emu/pkg-plist b/emulators/dolphin-emu/pkg-plist
index cfc25a2139ce..c417fb1ce961 100644
--- a/emulators/dolphin-emu/pkg-plist
+++ b/emulators/dolphin-emu/pkg-plist
@@ -153,17 +153,22 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/G2O.ini
%%DATADIR%%/sys/GameSettings/G2RE52.ini
%%DATADIR%%/sys/GameSettings/G2V.ini
+%%DATADIR%%/sys/GameSettings/G2VE08.ini
+%%DATADIR%%/sys/GameSettings/G2VP08.ini
%%DATADIR%%/sys/GameSettings/G2X.ini
%%DATADIR%%/sys/GameSettings/G3A.ini
%%DATADIR%%/sys/GameSettings/G3F.ini
%%DATADIR%%/sys/GameSettings/G3L.ini
%%DATADIR%%/sys/GameSettings/G3Q.ini
%%DATADIR%%/sys/GameSettings/G3R.ini
+%%DATADIR%%/sys/GameSettings/G3RP52.ini
%%DATADIR%%/sys/GameSettings/G3X.ini
%%DATADIR%%/sys/GameSettings/G3YP52.ini
+%%DATADIR%%/sys/GameSettings/G4AEE9.ini
%%DATADIR%%/sys/GameSettings/G4C.ini
%%DATADIR%%/sys/GameSettings/G4GEE9.ini
%%DATADIR%%/sys/GameSettings/G4M.ini
+%%DATADIR%%/sys/GameSettings/G4ME69.ini
%%DATADIR%%/sys/GameSettings/G4NJDA.ini
%%DATADIR%%/sys/GameSettings/G4P.ini
%%DATADIR%%/sys/GameSettings/G4QE01.ini
@@ -173,6 +178,8 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/G5B.ini
%%DATADIR%%/sys/GameSettings/G5D.ini
%%DATADIR%%/sys/GameSettings/G5N.ini
+%%DATADIR%%/sys/GameSettings/G5SE7D.ini
+%%DATADIR%%/sys/GameSettings/G5SP7D.ini
%%DATADIR%%/sys/GameSettings/G5T.ini
%%DATADIR%%/sys/GameSettings/G6Q.ini
%%DATADIR%%/sys/GameSettings/G6S.ini
@@ -180,13 +187,19 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/G6W.ini
%%DATADIR%%/sys/GameSettings/G8M.ini
%%DATADIR%%/sys/GameSettings/G8ME01.ini
+%%DATADIR%%/sys/GameSettings/G8MJ01.ini
+%%DATADIR%%/sys/GameSettings/G8MP01.ini
%%DATADIR%%/sys/GameSettings/G8W.ini
%%DATADIR%%/sys/GameSettings/G8WP01.ini
%%DATADIR%%/sys/GameSettings/G95.ini
%%DATADIR%%/sys/GameSettings/G96.ini
+%%DATADIR%%/sys/GameSettings/G97.ini
%%DATADIR%%/sys/GameSettings/G99.ini
%%DATADIR%%/sys/GameSettings/G9R.ini
%%DATADIR%%/sys/GameSettings/G9S.ini
+%%DATADIR%%/sys/GameSettings/G9SE8P.ini
+%%DATADIR%%/sys/GameSettings/G9SJ8P.ini
+%%DATADIR%%/sys/GameSettings/G9SP8P.ini
%%DATADIR%%/sys/GameSettings/G9T.ini
%%DATADIR%%/sys/GameSettings/GAA.ini
%%DATADIR%%/sys/GameSettings/GAF.ini
@@ -203,14 +216,20 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GAUE08.ini
%%DATADIR%%/sys/GameSettings/GAV.ini
%%DATADIR%%/sys/GameSettings/GAY.ini
+%%DATADIR%%/sys/GameSettings/GAZE69.ini
%%DATADIR%%/sys/GameSettings/GB3.ini
%%DATADIR%%/sys/GameSettings/GB4E51.ini
%%DATADIR%%/sys/GameSettings/GBH.ini
%%DATADIR%%/sys/GameSettings/GBHEC8.ini
%%DATADIR%%/sys/GameSettings/GBL.ini
+%%DATADIR%%/sys/GameSettings/GBLE52.ini
+%%DATADIR%%/sys/GameSettings/GBLP52.ini
%%DATADIR%%/sys/GameSettings/GBM.ini
%%DATADIR%%/sys/GameSettings/GBOP51.ini
+%%DATADIR%%/sys/GameSettings/GBRJ18.ini
%%DATADIR%%/sys/GameSettings/GBS.ini
+%%DATADIR%%/sys/GameSettings/GBSE8P.ini
+%%DATADIR%%/sys/GameSettings/GBSP8P.ini
%%DATADIR%%/sys/GameSettings/GBV.ini
%%DATADIR%%/sys/GameSettings/GBW.ini
%%DATADIR%%/sys/GameSettings/GBZ.ini
@@ -223,6 +242,9 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GC6P01.ini
%%DATADIR%%/sys/GameSettings/GC8JA4.ini
%%DATADIR%%/sys/GameSettings/GC9.ini
+%%DATADIR%%/sys/GameSettings/GCA.ini
+%%DATADIR%%/sys/GameSettings/GCBE7D.ini
+%%DATADIR%%/sys/GameSettings/GCBP7D.ini
%%DATADIR%%/sys/GameSettings/GCC.ini
%%DATADIR%%/sys/GameSettings/GCCE01.ini
%%DATADIR%%/sys/GameSettings/GCCJGC.ini
@@ -237,6 +259,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GCP.ini
%%DATADIR%%/sys/GameSettings/GCVEEB.ini
%%DATADIR%%/sys/GameSettings/GCZ.ini
+%%DATADIR%%/sys/GameSettings/GD7E70.ini
%%DATADIR%%/sys/GameSettings/GDD.ini
%%DATADIR%%/sys/GameSettings/GDDE41.ini
%%DATADIR%%/sys/GameSettings/GDE.ini
@@ -268,6 +291,8 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GEN.ini
%%DATADIR%%/sys/GameSettings/GEO.ini
%%DATADIR%%/sys/GameSettings/GEZ.ini
+%%DATADIR%%/sys/GameSettings/GEZE8P.ini
+%%DATADIR%%/sys/GameSettings/GEZP8P.ini
%%DATADIR%%/sys/GameSettings/GF4.ini
%%DATADIR%%/sys/GameSettings/GF7.ini
%%DATADIR%%/sys/GameSettings/GF7E01.ini
@@ -280,7 +305,10 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GFF.ini
%%DATADIR%%/sys/GameSettings/GFG.ini
%%DATADIR%%/sys/GameSettings/GFH.ini
+%%DATADIR%%/sys/GameSettings/GFO.ini
+%%DATADIR%%/sys/GameSettings/GFQEA4.ini
%%DATADIR%%/sys/GameSettings/GFTE01.ini
+%%DATADIR%%/sys/GameSettings/GFW.ini
%%DATADIR%%/sys/GameSettings/GFY.ini
%%DATADIR%%/sys/GameSettings/GFYE69.ini
%%DATADIR%%/sys/GameSettings/GFZ.ini
@@ -296,6 +324,8 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GGSEA4.ini
%%DATADIR%%/sys/GameSettings/GGSPA4.ini
%%DATADIR%%/sys/GameSettings/GGTE01.ini
+%%DATADIR%%/sys/GameSettings/GGTJ01.ini
+%%DATADIR%%/sys/GameSettings/GGTP01.ini
%%DATADIR%%/sys/GameSettings/GGV.ini
%%DATADIR%%/sys/GameSettings/GGVD78.ini
%%DATADIR%%/sys/GameSettings/GGVE78.ini
@@ -310,12 +340,17 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GHAJ08.ini
%%DATADIR%%/sys/GameSettings/GHAP08.ini
%%DATADIR%%/sys/GameSettings/GHK.ini
+%%DATADIR%%/sys/GameSettings/GHLE69.ini
%%DATADIR%%/sys/GameSettings/GHME4F.ini
%%DATADIR%%/sys/GameSettings/GHN.ini
%%DATADIR%%/sys/GameSettings/GHQ.ini
+%%DATADIR%%/sys/GameSettings/GHQE7D.ini
+%%DATADIR%%/sys/GameSettings/GHQP7D.ini
%%DATADIR%%/sys/GameSettings/GHR.ini
%%DATADIR%%/sys/GameSettings/GHRE78.ini
%%DATADIR%%/sys/GameSettings/GHS.ini
+%%DATADIR%%/sys/GameSettings/GHSE69.ini
+%%DATADIR%%/sys/GameSettings/GHSP69.ini
%%DATADIR%%/sys/GameSettings/GHV.ini
%%DATADIR%%/sys/GameSettings/GHY.ini
%%DATADIR%%/sys/GameSettings/GIA.ini
@@ -346,20 +381,29 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GJN.ini
%%DATADIR%%/sys/GameSettings/GJUE78.ini
%%DATADIR%%/sys/GameSettings/GJWE78.ini
+%%DATADIR%%/sys/GameSettings/GJY.ini
%%DATADIR%%/sys/GameSettings/GK2.ini
+%%DATADIR%%/sys/GameSettings/GK2E52.ini
%%DATADIR%%/sys/GameSettings/GK4.ini
%%DATADIR%%/sys/GameSettings/GK4E01.ini
%%DATADIR%%/sys/GameSettings/GK5.ini
%%DATADIR%%/sys/GameSettings/GK7.ini
%%DATADIR%%/sys/GameSettings/GKB.ini
+%%DATADIR%%/sys/GameSettings/GKBPAF.ini
+%%DATADIR%%/sys/GameSettings/GKDP01.ini
%%DATADIR%%/sys/GameSettings/GKH.ini
%%DATADIR%%/sys/GameSettings/GKL.ini
%%DATADIR%%/sys/GameSettings/GKM.ini
%%DATADIR%%/sys/GameSettings/GKNEB2.ini
%%DATADIR%%/sys/GameSettings/GKO.ini
+%%DATADIR%%/sys/GameSettings/GKRPB2.ini
%%DATADIR%%/sys/GameSettings/GKS.ini
%%DATADIR%%/sys/GameSettings/GKU.ini
+%%DATADIR%%/sys/GameSettings/GKWJ18.ini
%%DATADIR%%/sys/GameSettings/GKY.ini
+%%DATADIR%%/sys/GameSettings/GKYE01.ini
+%%DATADIR%%/sys/GameSettings/GKYJ01.ini
+%%DATADIR%%/sys/GameSettings/GKYP01.ini
%%DATADIR%%/sys/GameSettings/GKZ.ini
%%DATADIR%%/sys/GameSettings/GL5.ini
%%DATADIR%%/sys/GameSettings/GL7.ini
@@ -391,13 +435,22 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GM8.ini
%%DATADIR%%/sys/GameSettings/GM8E01.ini
%%DATADIR%%/sys/GameSettings/GMB.ini
+%%DATADIR%%/sys/GameSettings/GMBE8P.ini
+%%DATADIR%%/sys/GameSettings/GMBP8P.ini
%%DATADIR%%/sys/GameSettings/GMD.ini
+%%DATADIR%%/sys/GameSettings/GMF.ini
%%DATADIR%%/sys/GameSettings/GMH.ini
%%DATADIR%%/sys/GameSettings/GMI.ini
%%DATADIR%%/sys/GameSettings/GMN.ini
+%%DATADIR%%/sys/GameSettings/GMOP70.ini
%%DATADIR%%/sys/GameSettings/GMPE01.ini
+%%DATADIR%%/sys/GameSettings/GMPJ01.ini
+%%DATADIR%%/sys/GameSettings/GMPP01.ini
%%DATADIR%%/sys/GameSettings/GMS.ini
%%DATADIR%%/sys/GameSettings/GMSE01.ini
+%%DATADIR%%/sys/GameSettings/GMSJ01.ini
+%%DATADIR%%/sys/GameSettings/GMSJ01r0.ini
+%%DATADIR%%/sys/GameSettings/GMSJ01r1.ini
%%DATADIR%%/sys/GameSettings/GMSP01.ini
%%DATADIR%%/sys/GameSettings/GMX.ini
%%DATADIR%%/sys/GameSettings/GMXE70.ini
@@ -418,8 +471,11 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GO7E69.ini
%%DATADIR%%/sys/GameSettings/GO7F69.ini
%%DATADIR%%/sys/GameSettings/GO7P69.ini
+%%DATADIR%%/sys/GameSettings/GOCE5D.ini
%%DATADIR%%/sys/GameSettings/GOM.ini
%%DATADIR%%/sys/GameSettings/GOME01.ini
+%%DATADIR%%/sys/GameSettings/GOMP01.ini
+%%DATADIR%%/sys/GameSettings/GONE69.ini
%%DATADIR%%/sys/GameSettings/GOQ.ini
%%DATADIR%%/sys/GameSettings/GOS.ini
%%DATADIR%%/sys/GameSettings/GOW.ini
@@ -427,34 +483,55 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GOYE69.ini
%%DATADIR%%/sys/GameSettings/GP2.ini
%%DATADIR%%/sys/GameSettings/GP3.ini
+%%DATADIR%%/sys/GameSettings/GP4J18.ini
%%DATADIR%%/sys/GameSettings/GP5.ini
%%DATADIR%%/sys/GameSettings/GP5E01.ini
+%%DATADIR%%/sys/GameSettings/GP5J01.ini
+%%DATADIR%%/sys/GameSettings/GP5P01.ini
%%DATADIR%%/sys/GameSettings/GP6.ini
%%DATADIR%%/sys/GameSettings/GP6E01.ini
+%%DATADIR%%/sys/GameSettings/GP6J01.ini
+%%DATADIR%%/sys/GameSettings/GP6P01.ini
%%DATADIR%%/sys/GameSettings/GP7E01.ini
+%%DATADIR%%/sys/GameSettings/GP7J01.ini
+%%DATADIR%%/sys/GameSettings/GP7P01.ini
%%DATADIR%%/sys/GameSettings/GPA.ini
%%DATADIR%%/sys/GameSettings/GPE.ini
%%DATADIR%%/sys/GameSettings/GPH.ini
%%DATADIR%%/sys/GameSettings/GPIE01.ini
+%%DATADIR%%/sys/GameSettings/GPIE01r0.ini
+%%DATADIR%%/sys/GameSettings/GPIE01r1.ini
%%DATADIR%%/sys/GameSettings/GPIP01.ini
%%DATADIR%%/sys/GameSettings/GPK.ini
+%%DATADIR%%/sys/GameSettings/GPL.ini
+%%DATADIR%%/sys/GameSettings/GPNE08.ini
%%DATADIR%%/sys/GameSettings/GPNP08.ini
%%DATADIR%%/sys/GameSettings/GPO.ini
%%DATADIR%%/sys/GameSettings/GPOE8P.ini
+%%DATADIR%%/sys/GameSettings/GPOE8Pr0.ini
+%%DATADIR%%/sys/GameSettings/GPOE8Pr1.ini
%%DATADIR%%/sys/GameSettings/GPOP8P.ini
%%DATADIR%%/sys/GameSettings/GPS.ini
%%DATADIR%%/sys/GameSettings/GPSP8P.ini
%%DATADIR%%/sys/GameSettings/GPT.ini
%%DATADIR%%/sys/GameSettings/GPVE01.ini
+%%DATADIR%%/sys/GameSettings/GPVP01.ini
%%DATADIR%%/sys/GameSettings/GPXJ01.ini
%%DATADIR%%/sys/GameSettings/GQ4.ini
%%DATADIR%%/sys/GameSettings/GQC.ini
+%%DATADIR%%/sys/GameSettings/GQN.ini
%%DATADIR%%/sys/GameSettings/GQP.ini
%%DATADIR%%/sys/GameSettings/GQPE78.ini
%%DATADIR%%/sys/GameSettings/GQPP78.ini
+%%DATADIR%%/sys/GameSettings/GQQ.ini
%%DATADIR%%/sys/GameSettings/GQS.ini
+%%DATADIR%%/sys/GameSettings/GQSDAF.ini
%%DATADIR%%/sys/GameSettings/GQSEAF.ini
+%%DATADIR%%/sys/GameSettings/GQSFAF.ini
%%DATADIR%%/sys/GameSettings/GQX.ini
+%%DATADIR%%/sys/GameSettings/GR2E52.ini
+%%DATADIR%%/sys/GameSettings/GR2J52.ini
+%%DATADIR%%/sys/GameSettings/GR2P52.ini
%%DATADIR%%/sys/GameSettings/GR6.ini
%%DATADIR%%/sys/GameSettings/GRB.ini
%%DATADIR%%/sys/GameSettings/GREE08.ini
@@ -463,6 +540,9 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GRJ.ini
%%DATADIR%%/sys/GameSettings/GRK.ini
%%DATADIR%%/sys/GameSettings/GRNE52.ini
+%%DATADIR%%/sys/GameSettings/GRNJ52.ini
+%%DATADIR%%/sys/GameSettings/GRNP52.ini
+%%DATADIR%%/sys/GameSettings/GROE5Z.ini
%%DATADIR%%/sys/GameSettings/GRQ.ini
%%DATADIR%%/sys/GameSettings/GRSPAF.ini
%%DATADIR%%/sys/GameSettings/GRU.ini
@@ -471,13 +551,18 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GRYE41.ini
%%DATADIR%%/sys/GameSettings/GS2.ini
%%DATADIR%%/sys/GameSettings/GS2E78.ini
+%%DATADIR%%/sys/GameSettings/GSAE01r0.ini
+%%DATADIR%%/sys/GameSettings/GSAE01r1.ini
%%DATADIR%%/sys/GameSettings/GSAP01.ini
%%DATADIR%%/sys/GameSettings/GSB.ini
%%DATADIR%%/sys/GameSettings/GSM.ini
%%DATADIR%%/sys/GameSettings/GSN.ini
%%DATADIR%%/sys/GameSettings/GSNE8P.ini
+%%DATADIR%%/sys/GameSettings/GSNJ8P.ini
%%DATADIR%%/sys/GameSettings/GSNP8P.ini
%%DATADIR%%/sys/GameSettings/GSO.ini
+%%DATADIR%%/sys/GameSettings/GSPE69.ini
+%%DATADIR%%/sys/GameSettings/GSPP69.ini
%%DATADIR%%/sys/GameSettings/GSQ.ini
%%DATADIR%%/sys/GameSettings/GSR.ini
%%DATADIR%%/sys/GameSettings/GSS.ini
@@ -485,6 +570,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GST.ini
%%DATADIR%%/sys/GameSettings/GSV.ini
%%DATADIR%%/sys/GameSettings/GSW.ini
+%%DATADIR%%/sys/GameSettings/GSWE64.ini
%%DATADIR%%/sys/GameSettings/GSX.ini
%%DATADIR%%/sys/GameSettings/GSZ.ini
%%DATADIR%%/sys/GameSettings/GT3.ini
@@ -496,11 +582,14 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GTK.ini
%%DATADIR%%/sys/GameSettings/GTKE51.ini
%%DATADIR%%/sys/GameSettings/GTO.ini
+%%DATADIR%%/sys/GameSettings/GTOJAF.ini
%%DATADIR%%/sys/GameSettings/GTR.ini
%%DATADIR%%/sys/GameSettings/GTSE4F.ini
%%DATADIR%%/sys/GameSettings/GTW.ini
%%DATADIR%%/sys/GameSettings/GTY.ini
%%DATADIR%%/sys/GameSettings/GTZ.ini
+%%DATADIR%%/sys/GameSettings/GTZE41.ini
+%%DATADIR%%/sys/GameSettings/GTZP41.ini
%%DATADIR%%/sys/GameSettings/GU2.ini
%%DATADIR%%/sys/GameSettings/GU2D78.ini
%%DATADIR%%/sys/GameSettings/GU2F78.ini
@@ -509,10 +598,14 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GU3X78.ini
%%DATADIR%%/sys/GameSettings/GU4.ini
%%DATADIR%%/sys/GameSettings/GU4Y78.ini
+%%DATADIR%%/sys/GameSettings/GU6.ini
%%DATADIR%%/sys/GameSettings/GUB.ini
%%DATADIR%%/sys/GameSettings/GUM.ini
%%DATADIR%%/sys/GameSettings/GUN.ini
%%DATADIR%%/sys/GameSettings/GUNE5D.ini
+%%DATADIR%%/sys/GameSettings/GUNE5Dr0.ini
+%%DATADIR%%/sys/GameSettings/GUNE5Dr1.ini
+%%DATADIR%%/sys/GameSettings/GUNP5D.ini
%%DATADIR%%/sys/GameSettings/GUP.ini
%%DATADIR%%/sys/GameSettings/GUT.ini
%%DATADIR%%/sys/GameSettings/GUZ.ini
@@ -520,30 +613,39 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GVC.ini
%%DATADIR%%/sys/GameSettings/GVD.ini
%%DATADIR%%/sys/GameSettings/GVJ.ini
+%%DATADIR%%/sys/GameSettings/GVJE08.ini
+%%DATADIR%%/sys/GameSettings/GVJP08.ini
%%DATADIR%%/sys/GameSettings/GVL.ini
%%DATADIR%%/sys/GameSettings/GVO.ini
%%DATADIR%%/sys/GameSettings/GVPE69.ini
%%DATADIR%%/sys/GameSettings/GVS.ini
-%%DATADIR%%/sys/GameSettings/GVS46E.ini
-%%DATADIR%%/sys/GameSettings/GVS46J.ini
+%%DATADIR%%/sys/GameSettings/GVSE8P.ini
%%DATADIR%%/sys/GameSettings/GW2.ini
%%DATADIR%%/sys/GameSettings/GW7.ini
%%DATADIR%%/sys/GameSettings/GW9.ini
+%%DATADIR%%/sys/GameSettings/GWH.ini
%%DATADIR%%/sys/GameSettings/GWJ.ini
%%DATADIR%%/sys/GameSettings/GWK.ini
%%DATADIR%%/sys/GameSettings/GWL.ini
%%DATADIR%%/sys/GameSettings/GWP.ini
%%DATADIR%%/sys/GameSettings/GWQE52.ini
+%%DATADIR%%/sys/GameSettings/GWR.ini
%%DATADIR%%/sys/GameSettings/GWRE01.ini
%%DATADIR%%/sys/GameSettings/GWRP01.ini
%%DATADIR%%/sys/GameSettings/GWT.ini
+%%DATADIR%%/sys/GameSettings/GWWE01.ini
+%%DATADIR%%/sys/GameSettings/GWWJ01.ini
%%DATADIR%%/sys/GameSettings/GWWP01.ini
%%DATADIR%%/sys/GameSettings/GWY.ini
+%%DATADIR%%/sys/GameSettings/GWZE01.ini
%%DATADIR%%/sys/GameSettings/GX3.ini
+%%DATADIR%%/sys/GameSettings/GXCE01.ini
%%DATADIR%%/sys/GameSettings/GXG.ini
%%DATADIR%%/sys/GameSettings/GXM.ini
%%DATADIR%%/sys/GameSettings/GXN.ini
%%DATADIR%%/sys/GameSettings/GXS.ini
+%%DATADIR%%/sys/GameSettings/GXSE8P.ini
+%%DATADIR%%/sys/GameSettings/GXSJ8P.ini
%%DATADIR%%/sys/GameSettings/GXSP8P.ini
%%DATADIR%%/sys/GameSettings/GXU.ini
%%DATADIR%%/sys/GameSettings/GXX.ini
@@ -551,6 +653,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GXXJ01.ini
%%DATADIR%%/sys/GameSettings/GXXP01.ini
%%DATADIR%%/sys/GameSettings/GYA.ini
+%%DATADIR%%/sys/GameSettings/GYFPA4.ini
%%DATADIR%%/sys/GameSettings/GYQ.ini
%%DATADIR%%/sys/GameSettings/GYT.ini
%%DATADIR%%/sys/GameSettings/GZ2.ini
@@ -559,12 +662,16 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/GZ2P01.ini
%%DATADIR%%/sys/GameSettings/GZ3E70.ini
%%DATADIR%%/sys/GameSettings/GZD.ini
+%%DATADIR%%/sys/GameSettings/GZDP70.ini
%%DATADIR%%/sys/GameSettings/GZE.ini
%%DATADIR%%/sys/GameSettings/GZL.ini
%%DATADIR%%/sys/GameSettings/GZLE01.ini
%%DATADIR%%/sys/GameSettings/GZLJ01.ini
%%DATADIR%%/sys/GameSettings/GZLP01.ini
%%DATADIR%%/sys/GameSettings/GZP.ini
+%%DATADIR%%/sys/GameSettings/GZPE70.ini
+%%DATADIR%%/sys/GameSettings/GZPP70.ini
+%%DATADIR%%/sys/GameSettings/GZSE70.ini
%%DATADIR%%/sys/GameSettings/GZW.ini
%%DATADIR%%/sys/GameSettings/HA8.ini
%%DATADIR%%/sys/GameSettings/HA9.ini
@@ -623,6 +730,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/LAL.ini
%%DATADIR%%/sys/GameSettings/LAO.ini
%%DATADIR%%/sys/GameSettings/LAP.ini
+%%DATADIR%%/sys/GameSettings/LULZHB.ini
%%DATADIR%%/sys/GameSettings/M.ini
%%DATADIR%%/sys/GameSettings/MAK.ini
%%DATADIR%%/sys/GameSettings/MB3.ini
@@ -664,6 +772,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/R25.ini
%%DATADIR%%/sys/GameSettings/R26.ini
%%DATADIR%%/sys/GameSettings/R29.ini
+%%DATADIR%%/sys/GameSettings/R2D.ini
%%DATADIR%%/sys/GameSettings/R2E.ini
%%DATADIR%%/sys/GameSettings/R2F.ini
%%DATADIR%%/sys/GameSettings/R2G.ini
@@ -824,7 +933,6 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/REF.ini
%%DATADIR%%/sys/GameSettings/REG.ini
%%DATADIR%%/sys/GameSettings/REL.ini
-%%DATADIR%%/sys/GameSettings/RELJAB.ini
%%DATADIR%%/sys/GameSettings/REM.ini
%%DATADIR%%/sys/GameSettings/REP.ini
%%DATADIR%%/sys/GameSettings/REQ.ini
@@ -923,11 +1031,14 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/RKI.ini
%%DATADIR%%/sys/GameSettings/RKJ.ini
%%DATADIR%%/sys/GameSettings/RKL.ini
+%%DATADIR%%/sys/GameSettings/RKM.ini
+%%DATADIR%%/sys/GameSettings/RKP.ini
%%DATADIR%%/sys/GameSettings/RKQ.ini
%%DATADIR%%/sys/GameSettings/RKS.ini
%%DATADIR%%/sys/GameSettings/RKT.ini
%%DATADIR%%/sys/GameSettings/RKW.ini
%%DATADIR%%/sys/GameSettings/RL5.ini
+%%DATADIR%%/sys/GameSettings/RL6.ini
%%DATADIR%%/sys/GameSettings/RLD.ini
%%DATADIR%%/sys/GameSettings/RLEEFS.ini
%%DATADIR%%/sys/GameSettings/RLI.ini
@@ -942,6 +1053,8 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/RM7.ini
%%DATADIR%%/sys/GameSettings/RM8.ini
%%DATADIR%%/sys/GameSettings/RM8E01.ini
+%%DATADIR%%/sys/GameSettings/RM8J01.ini
+%%DATADIR%%/sys/GameSettings/RM8P01.ini
%%DATADIR%%/sys/GameSettings/RM9.ini
%%DATADIR%%/sys/GameSettings/RMC.ini
%%DATADIR%%/sys/GameSettings/RME.ini
@@ -964,12 +1077,14 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/RMY.ini
%%DATADIR%%/sys/GameSettings/RMZ.ini
%%DATADIR%%/sys/GameSettings/RN2.ini
+%%DATADIR%%/sys/GameSettings/RN3.ini
%%DATADIR%%/sys/GameSettings/RN5.ini
%%DATADIR%%/sys/GameSettings/RN8.ini
%%DATADIR%%/sys/GameSettings/RNB.ini
%%DATADIR%%/sys/GameSettings/RNC.ini
%%DATADIR%%/sys/GameSettings/RND.ini
%%DATADIR%%/sys/GameSettings/RNG.ini
+%%DATADIR%%/sys/GameSettings/RNK.ini
%%DATADIR%%/sys/GameSettings/RNM.ini
%%DATADIR%%/sys/GameSettings/RNO.ini
%%DATADIR%%/sys/GameSettings/RNU.ini
@@ -1094,10 +1209,13 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/RTZ.ini
%%DATADIR%%/sys/GameSettings/RUD.ini
%%DATADIR%%/sys/GameSettings/RUF.ini
+%%DATADIR%%/sys/GameSettings/RUFEMV.ini
+%%DATADIR%%/sys/GameSettings/RUFP99.ini
%%DATADIR%%/sys/GameSettings/RUN.ini
%%DATADIR%%/sys/GameSettings/RUO.ini
%%DATADIR%%/sys/GameSettings/RUP.ini
%%DATADIR%%/sys/GameSettings/RUR.ini
+%%DATADIR%%/sys/GameSettings/RUS.ini
%%DATADIR%%/sys/GameSettings/RUU.ini
%%DATADIR%%/sys/GameSettings/RUW.ini
%%DATADIR%%/sys/GameSettings/RUZ.ini
@@ -1184,6 +1302,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/S2O.ini
%%DATADIR%%/sys/GameSettings/S2W.ini
%%DATADIR%%/sys/GameSettings/S3B.ini
+%%DATADIR%%/sys/GameSettings/S3C.ini
%%DATADIR%%/sys/GameSettings/S3H.ini
%%DATADIR%%/sys/GameSettings/S59.ini
%%DATADIR%%/sys/GameSettings/S5D.ini
@@ -1225,6 +1344,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/SD2.ini
%%DATADIR%%/sys/GameSettings/SD2J01.ini
%%DATADIR%%/sys/GameSettings/SD8.ini
+%%DATADIR%%/sys/GameSettings/SDAE5G.ini
%%DATADIR%%/sys/GameSettings/SDB.ini
%%DATADIR%%/sys/GameSettings/SDE.ini
%%DATADIR%%/sys/GameSettings/SDL.ini
@@ -1263,6 +1383,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/SGX.ini
%%DATADIR%%/sys/GameSettings/SH2.ini
%%DATADIR%%/sys/GameSettings/SH6.ini
+%%DATADIR%%/sys/GameSettings/SH8.ini
%%DATADIR%%/sys/GameSettings/SH9.ini
%%DATADIR%%/sys/GameSettings/SHL.ini
%%DATADIR%%/sys/GameSettings/SHO.ini
@@ -1288,6 +1409,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/SJX.ini
%%DATADIR%%/sys/GameSettings/SJZ.ini
%%DATADIR%%/sys/GameSettings/SK3.ini
+%%DATADIR%%/sys/GameSettings/SK4.ini
%%DATADIR%%/sys/GameSettings/SK8.ini
%%DATADIR%%/sys/GameSettings/SKA.ini
%%DATADIR%%/sys/GameSettings/SKB.ini
@@ -1322,6 +1444,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/SMS.ini
%%DATADIR%%/sys/GameSettings/SMU.ini
%%DATADIR%%/sys/GameSettings/SMZ.ini
+%%DATADIR%%/sys/GameSettings/SN2.ini
%%DATADIR%%/sys/GameSettings/SND.ini
%%DATADIR%%/sys/GameSettings/SNG.ini
%%DATADIR%%/sys/GameSettings/SNJ.ini
@@ -1348,6 +1471,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/SPD.ini
%%DATADIR%%/sys/GameSettings/SPH.ini
%%DATADIR%%/sys/GameSettings/SPM.ini
+%%DATADIR%%/sys/GameSettings/SPQ.ini
%%DATADIR%%/sys/GameSettings/SPR.ini
%%DATADIR%%/sys/GameSettings/SPT.ini
%%DATADIR%%/sys/GameSettings/SPU.ini
@@ -1399,6 +1523,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/SUO.ini
%%DATADIR%%/sys/GameSettings/SUS.ini
%%DATADIR%%/sys/GameSettings/SUU.ini
+%%DATADIR%%/sys/GameSettings/SUV.ini
%%DATADIR%%/sys/GameSettings/SUW.ini
%%DATADIR%%/sys/GameSettings/SVB.ini
%%DATADIR%%/sys/GameSettings/SVF.ini
@@ -1526,6 +1651,9 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/GameSettings/WMG.ini
%%DATADIR%%/sys/GameSettings/WML.ini
%%DATADIR%%/sys/GameSettings/WMO.ini
+%%DATADIR%%/sys/GameSettings/WMOEE9.ini
+%%DATADIR%%/sys/GameSettings/WMOJE9.ini
+%%DATADIR%%/sys/GameSettings/WMOPE9.ini
%%DATADIR%%/sys/GameSettings/WMS.ini
%%DATADIR%%/sys/GameSettings/WO6.ini
%%DATADIR%%/sys/GameSettings/WOA.ini
@@ -1741,6 +1869,9 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/Resources/Platform_Gamecube.png
%%DATADIR%%/sys/Resources/Platform_Gamecube@2x.png
%%DATADIR%%/sys/Resources/Platform_Gamecube@4x.png
+%%DATADIR%%/sys/Resources/Platform_Triforce.png
+%%DATADIR%%/sys/Resources/Platform_Triforce@2x.png
+%%DATADIR%%/sys/Resources/Platform_Triforce@4x.png
%%DATADIR%%/sys/Resources/Platform_Wad.png
%%DATADIR%%/sys/Resources/Platform_Wad@2x.png
%%DATADIR%%/sys/Resources/Platform_Wad@4x.png
@@ -2295,6 +2426,7 @@ share/applications/dolphin-emu.desktop
%%DATADIR%%/sys/Wii/shared2/wc24/nwc24msg.cfg
%%DATADIR%%/sys/codehandler.bin
%%DATADIR%%/sys/totaldb.dsy
+%%DATADIR%%/sys/triforcetdb-en.txt
%%DATADIR%%/sys/wiitdb-de.txt
%%DATADIR%%/sys/wiitdb-en.txt
%%DATADIR%%/sys/wiitdb-es.txt
diff --git a/emulators/emulationstation/Makefile b/emulators/emulationstation/Makefile
index fa6fb08e2a28..a27f69efbbf9 100644
--- a/emulators/emulationstation/Makefile
+++ b/emulators/emulationstation/Makefile
@@ -1,7 +1,7 @@
PORTNAME= emulationstation
DISTVERSIONPREFIX= v
DISTVERSION= 2.11.2
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= emulators
MAINTAINER= freebsd@coombscloud.com
diff --git a/emulators/es-de/Makefile b/emulators/es-de/Makefile
index 842897494274..5e494aad2821 100644
--- a/emulators/es-de/Makefile
+++ b/emulators/es-de/Makefile
@@ -54,7 +54,7 @@ DEINIT_DESC= Deinit frontend on emulator launch
DEINIT_CMAKE_BOOL= DEINIT_ON_LAUNCH
-NLS_USES= gettext
+NLS_USES= gettext-runtime gettext-tools
NLS_CMAKE_BOOL= COMPILE_LOCALIZATIONS
post-install:
diff --git a/emulators/flycast/Makefile b/emulators/flycast/Makefile
index cf5a8593268d..40740987bb9b 100644
--- a/emulators/flycast/Makefile
+++ b/emulators/flycast/Makefile
@@ -1,6 +1,7 @@
PORTNAME= flycast
DISTVERSIONPREFIX= v
DISTVERSION= 2.5
+PORTREVISION= 1
CATEGORIES= emulators
MAINTAINER= bsdcode@disroot.org
diff --git a/emulators/higan/Makefile b/emulators/higan/Makefile
index 279e937599c9..f70e30b97169 100644
--- a/emulators/higan/Makefile
+++ b/emulators/higan/Makefile
@@ -4,7 +4,7 @@ DISTVERSION= 110
PORTREVISION= 1
CATEGORIES= emulators games
-MAINTAINER= cyberbotx@cyberbotx.com
+MAINTAINER= ports@FreeBSD.org
COMMENT= Nintendo multi-system emulator
WWW= https://github.com/higan-emu/higan
@@ -18,60 +18,40 @@ LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libharfbuzz.so:print/harfbuzz
USES= compiler:c++14-lang gettext gmake gnome pkgconfig xorg
-USE_GNOME= cairo gdkpixbuf gtk20 gtksourceview2
-USE_XORG= x11 xext xrandr
USE_CSTD= c99
USE_CXXSTD= c++14
USE_GITHUB= yes
GH_ACCOUNT= higan-emu
+USE_GNOME= cairo gdkpixbuf gtk20 gtksourceview2
+USE_XORG= x11 xext xrandr
+
MAKEFILE= GNUmakefile
MAKE_ENV= compiler="${CXX}" hiro="gtk2"
OPTIONS_DEFINE= DEBUG
-OPTIONS_MULTI= VIDEO SOUND INPUT
+OPTIONS_DEFAULT= GLX INPUT_SDL OPENAL SDL XSHM XV
+OPTIONS_MULTI= INPUT SOUND VIDEO
+OPTIONS_MULTI_INPUT= INPUT_SDL
+OPTIONS_MULTI_SOUND= AO OPENAL PULSEAUDIO
OPTIONS_MULTI_VIDEO= GLX SDL XSHM XV
-OPTIONS_MULTI_SOUND= AO OPENAL OSS PULSEAUDIO
-OPTIONS_MULTI_INPUT= INPUT_SDL INPUT_X
-OPTIONS_DEFAULT= GLX XSHM XV SDL \
- OPENAL INPUT_SDL INPUT_X
-
-XSHM_DESC= Build XShm video driver
-XV_DESC= Build Xv video driver
-INPUT_SDL_DESC= Build SDL input driver
-INPUT_X_DESC= Build X input driver
-
-GLX_USES= gl
-GLX_USE= GL=gl
-GLX_VARS= VIDEO_DRIVER+=video.glx
-SDL_USES= sdl
-SDL_USE= XORG=xv SDL=sdl2
-SDL_VARS= VIDEO_DRIVER+=video.sdl
-
-XSHM_USE= XORG=xext
-XSHM_VARS= VIDEO_DRIVER+=video.xshm
-
-XV_USE= XORG=xv
-XV_VARS= VIDEO_DRIVER+=video.xvideo
-
-AO_LIB_DEPENDS= libao.so:audio/libao
-AO_VARS= AUDIO_DRIVER+=audio.ao
-
-OPENAL_USES= openal:al
-OPENAL_VARS= AUDIO_DRIVER+=audio.openal
-
-OSS_VARS= AUDIO_DRIVER+=audio.oss
+INPUT_SDL_DESC= Build SDL input driver
+XSHM_DESC= Build XShm video driver
+XV_DESC= Build Xv video driver
+AO_LIB_DEPENDS= libao.so:audio/libao
+GLX_USES= gl
+GLX_USE= GL=gl
+INPUT_SDL_USES= sdl
+INPUT_SDL_USE= SDL=sdl
+OPENAL_USES= openal:al
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
-PULSEAUDIO_VARS= AUDIO_DRIVER+=audio.pulseaudio
-
-INPUT_SDL_USES= sdl
-INPUT_SDL_USE= SDL=sdl
-INPUT_SDL_VARS= INPUT_DRIVER+=input.sdl
-
-INPUT_X_VARS= INPUT_DRIVER+=input.xlib
+SDL_USES= sdl
+SDL_USE= SDL=sdl2 XORG=xv
+XSHM_USE= XORG=xext
+XV_USE= XORG=xv
post-patch:
${REINPLACE_CMD} -e 's|/usr/share/|${PREFIX}/share/|' \
diff --git a/emulators/libretro-pcsx2/Makefile b/emulators/libretro-pcsx2/Makefile
index a9ea6d824b1f..00d7fbdebd29 100644
--- a/emulators/libretro-pcsx2/Makefile
+++ b/emulators/libretro-pcsx2/Makefile
@@ -1,6 +1,6 @@
PORTNAME= libretro-pcsx2
PORTVERSION= 0.20201030
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= emulators games
MAINTAINER= beyert@cs.ucr.edu
diff --git a/emulators/linux-rl9/Makefile b/emulators/linux-rl9/Makefile
index d878a46c372d..8e3984606821 100644
--- a/emulators/linux-rl9/Makefile
+++ b/emulators/linux-rl9/Makefile
@@ -1,6 +1,5 @@
PORTNAME= linux-rl9
PORTVERSION= ${LINUX_DIST_VER}
-PORTREVISION= 3
CATEGORIES= emulators linux
MAINTAINER= emulation@FreeBSD.org
@@ -11,23 +10,23 @@ LICENSE= BSD2CLAUSE
USES= linux:rl9 metaport
USE_LINUX= alsalib alsa-lib-devel alsa-plugins-oss alsa-plugins-pulseaudio \
- at-spi2-atk at-spi2-core atk avahi-libs brotli \
+ at-spi2-atk at-spi2-core atk avahi-libs \
ca-certificates cairo cairo-gobject cups-libs curl cyrus-sasl2 \
dbuslibs devtools dri elfutils-libelf elfutils-libs expat \
ffmpeg-libs flac fontconfig freetype fribidi gdkpixbuf2 gnupg gnutls \
graphite2 gsm gstreamer1 gstreamer1-libav gtk2 gtk3 harfbuzz icu \
imageformats-libs libassuan libasyncns libdrm libepoxy libevent \
- libgcrypt libgfortran libglvnd libgpg-error libidn2 libksba libnghttp2 libogg \
- libpciaccess libpsl librsvg2 libsecret libsigc++20 \
- libsndfile libsoup libssh libstemmer libtasn1 libthai libtheora libtool-ltdl \
- libtracker-sparql libunistring libusb libv4l libva libvdpau \
+ libgcrypt libglvnd libgpg-error libksba libnghttp2 libogg \
+ libpciaccess librsvg2 libsecret libsigc++20 \
+ libsndfile libssh libstemmer libtasn1 libthai libtheora libtool-ltdl \
+ libtracker-sparql libusb libv4l libva libvdpau \
libvorbis libvpx libxkbcommon libxml2 libxslt llvm \
lz4 nettle npth nspr nss ocl-icd openal-soft openldap opus orc \
p11-kit pango pixman pulseaudio-libs pulseaudio-utils python3 \
qt3d qtbase qtconnectivity qtdeclarative qtgraphicaleffects qtimageformats \
qtmultimedia qtquickcontrols qtscript qtsensors qtserialbus qtserialport \
qtsvg qttools qtwayland qtwebchannel qtwebsockets qtx11extras qtxmlpatterns \
- sdl12 sdl12-extralibs sdl20 sdl2gfx sdl2image sdl2mixer sdl2ttf \
+ sdl12 sdl12-extralibs sdl20 sdl20-extralibs \
sqlite3 strace systemd-libs tcp_wrappers-libs vulkan \
wayland wget xcb-util xorglibs
diff --git a/emulators/linux_base-c7/Makefile b/emulators/linux_base-c7/Makefile
index f12ee3eeefa0..f6ac0239dde0 100644
--- a/emulators/linux_base-c7/Makefile
+++ b/emulators/linux_base-c7/Makefile
@@ -1,6 +1,6 @@
PORTNAME= c7
PORTVERSION= ${LINUX_DIST_VER}
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= emulators linux
PKGNAMEPREFIX= linux_base-
EXTRACT_ONLY= ${DISTFILES:N*${SRC_SUFX}*:Nfilesystem-*:C/:[^:]+$//}
@@ -12,6 +12,10 @@ USES= linux:c7
USE_LINUX= # empty
USE_LINUX_RPM= yes
+# lib64/gconv/ stuff that is loaded dynamically and has rpath
+NO_SHLIB_REQUIRES_GLOB= libCNS.so* libGB.so* libISOIR165.so* \
+ libJIS.so* libJISX0213.so* libKSC.so*
+
BIN_DISTNAMES= bash-4.2.46-35.el7_9 \
bzip2-1.0.6-13.el7 \
centos-release-7-9.2009.2.el7.centos \
@@ -57,6 +61,7 @@ LIB_DISTNAMES= audit-libs-2.8.5-4.el7 \
libstdc++-4.8.5-44.el7 \
libuuid-2.23.2-65.el7_9.1 \
libverto-0.2.5-4.el7 \
+ mpfr-3.1.1-4.el7 \
ncurses-libs-5.9-14.20130511.el7_4 \
nss-softokn-freebl-3.90.0-6.el7_9 \
openssl-libs-1.0.2k-26.el7_9 \
@@ -111,6 +116,7 @@ SRC_DISTFILES= acl-2.2.51-15.el7${SRC_SUFX}:SOURCE \
libidn-1.28-4.el7${SRC_SUFX}:SOURCE \
libselinux-2.5-15.el7${SRC_SUFX}:SOURCE \
libsepol-2.5-10.el7${SRC_SUFX}:SOURCE \
+ mpfr-3.1.1-4.el7${SRC_SUFX}:SOURCE \
ncurses-5.9-14.20130511.el7_4${SRC_SUFX}:SOURCE \
nss-softokn-3.90.0-6.el7_9${SRC_SUFX}:SOURCE \
openssl-1.0.2k-26.el7_9${SRC_SUFX}:SOURCE \
diff --git a/emulators/linux_base-c7/distinfo b/emulators/linux_base-c7/distinfo
index 57b1da9edf58..4961d4c4086f 100644
--- a/emulators/linux_base-c7/distinfo
+++ b/emulators/linux_base-c7/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1745089701
+TIMESTAMP = 1747983508
SHA256 (centos/audit-libs-2.8.5-4.el7.aarch64.rpm) = c67ba5a600a6a94da1ee52fffc4855b6f6c75ae4ad1a568aafec1538849d8395
SIZE (centos/audit-libs-2.8.5-4.el7.aarch64.rpm) = 98696
SHA256 (centos/audit-libs-2.8.5-4.el7.i686.rpm) = 53624cacb5fb907f0dd6112044f9358f1245e81c07cee66ae76e1ed7362480b0
@@ -251,6 +251,12 @@ SHA256 (centos/libverto-0.2.5-4.el7.i686.rpm) = 9d0f76540a5db6154e3f86d7d825b59e
SIZE (centos/libverto-0.2.5-4.el7.i686.rpm) = 16728
SHA256 (centos/libverto-0.2.5-4.el7.x86_64.rpm) = e8485822ec59dbb056057ae28872f673574fe70162aed18bb315fcbb8819d8cd
SIZE (centos/libverto-0.2.5-4.el7.x86_64.rpm) = 16820
+SHA256 (centos/mpfr-3.1.1-4.el7.aarch64.rpm) = afb6073325878dd3d09d042e97111971b35e5a495423584d6c1630ffb9dfede2
+SIZE (centos/mpfr-3.1.1-4.el7.aarch64.rpm) = 202496
+SHA256 (centos/mpfr-3.1.1-4.el7.i686.rpm) = 434df971d8ca24131e558a76d76b89c1a50492f2042c16f02267c623a35c6675
+SIZE (centos/mpfr-3.1.1-4.el7.i686.rpm) = 204828
+SHA256 (centos/mpfr-3.1.1-4.el7.x86_64.rpm) = 252c6dbd30edf55bfc5e24cc2862470d6046156d515a7cf614d6994dba13519a
+SIZE (centos/mpfr-3.1.1-4.el7.x86_64.rpm) = 208316
SHA256 (centos/ncurses-5.9-14.20130511.el7_4.aarch64.rpm) = 72c170b7fba9425782141691eeeac14875687af32a8ac5d09c83314324e129c9
SIZE (centos/ncurses-5.9-14.20130511.el7_4.aarch64.rpm) = 310084
SHA256 (centos/ncurses-5.9-14.20130511.el7_4.i686.rpm) = ad7a2660acba812a13c6715b14ac509d77df0522f17eeabba93c44de714a6044
@@ -409,6 +415,8 @@ SHA256 (centos/libselinux-2.5-15.el7.src.rpm) = 978ed00b9c7ca78a51e0aff48070c69e
SIZE (centos/libselinux-2.5-15.el7.src.rpm) = 311489
SHA256 (centos/libsepol-2.5-10.el7.src.rpm) = 89da19c3ca2daa42f9a02593c2e0e77630c54d951ffa41ba29f7862074841909
SIZE (centos/libsepol-2.5-10.el7.src.rpm) = 534142
+SHA256 (centos/mpfr-3.1.1-4.el7.src.rpm) = c6946822a27080f2952925146088928a16292ee0fc2639aa4ef862eae716397e
+SIZE (centos/mpfr-3.1.1-4.el7.src.rpm) = 1080457
SHA256 (centos/ncurses-5.9-14.20130511.el7_4.src.rpm) = 7250cb2d8e0dbaf1ec64be098662858486948eb53c3e924b9de873e40857b236
SIZE (centos/ncurses-5.9-14.20130511.el7_4.src.rpm) = 3940747
SHA256 (centos/nss-softokn-3.90.0-6.el7_9.src.rpm) = 6bf91cbc81864e10c0e941d3f2973d58e13b1675a7e53cad3e4f9286e4a073af
diff --git a/emulators/linux_base-c7/pkg-plist.aarch64 b/emulators/linux_base-c7/pkg-plist.aarch64
index b759bdfc3830..7bae1d337289 100644
--- a/emulators/linux_base-c7/pkg-plist.aarch64
+++ b/emulators/linux_base-c7/pkg-plist.aarch64
@@ -719,6 +719,8 @@ usr/lib64/libmenuw.so.5
usr/lib64/libmenuw.so.5.9
usr/lib64/libmount.so.1
usr/lib64/libmount.so.1.1.0
+usr/lib64/libmpfr.so.4
+usr/lib64/libmpfr.so.4.1.1
usr/lib64/libncurses++.so.5
usr/lib64/libncurses++.so.5.9
usr/lib64/libncurses++w.so.5
@@ -1141,6 +1143,22 @@ usr/share/centos-release/EULA
%%PORTDOCS%%usr/share/doc/libverto-0.2.5/ChangeLog
%%PORTDOCS%%usr/share/doc/libverto-0.2.5/NEWS
%%PORTDOCS%%usr/share/doc/libverto-0.2.5/README
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/COPYING
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/COPYING.LESSER
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/NEWS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/README
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/AUTHORS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/BUGS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/COPYING
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/COPYING.LESSER
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/FAQ.html
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/NEWS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/TODO
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/ReadMe
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/divworst.c
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/rndo-add.c
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/sample.c
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/version.c
%%PORTDOCS%%usr/share/doc/ncurses-5.9/ANNOUNCE
%%PORTDOCS%%usr/share/doc/ncurses-5.9/AUTHORS
%%PORTDOCS%%usr/share/doc/ncurses-5.9/NEWS.bz2
diff --git a/emulators/linux_base-c7/pkg-plist.amd64 b/emulators/linux_base-c7/pkg-plist.amd64
index 3771c91075dd..75b90bfa2d54 100644
--- a/emulators/linux_base-c7/pkg-plist.amd64
+++ b/emulators/linux_base-c7/pkg-plist.amd64
@@ -719,6 +719,8 @@ usr/lib/libmenuw.so.5
usr/lib/libmenuw.so.5.9
usr/lib/libmount.so.1
usr/lib/libmount.so.1.1.0
+usr/lib/libmpfr.so.4
+usr/lib/libmpfr.so.4.1.1
usr/lib/libncurses++.so.5
usr/lib/libncurses++.so.5.9
usr/lib/libncurses++w.so.5
@@ -1200,6 +1202,8 @@ usr/lib64/libmenuw.so.5
usr/lib64/libmenuw.so.5.9
usr/lib64/libmount.so.1
usr/lib64/libmount.so.1.1.0
+usr/lib64/libmpfr.so.4
+usr/lib64/libmpfr.so.4.1.1
usr/lib64/libncurses++.so.5
usr/lib64/libncurses++.so.5.9
usr/lib64/libncurses++w.so.5
@@ -1636,6 +1640,22 @@ usr/share/centos-release/EULA
%%PORTDOCS%%usr/share/doc/libverto-0.2.5/ChangeLog
%%PORTDOCS%%usr/share/doc/libverto-0.2.5/NEWS
%%PORTDOCS%%usr/share/doc/libverto-0.2.5/README
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/COPYING
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/COPYING.LESSER
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/NEWS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/README
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/AUTHORS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/BUGS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/COPYING
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/COPYING.LESSER
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/FAQ.html
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/NEWS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/TODO
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/ReadMe
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/divworst.c
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/rndo-add.c
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/sample.c
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/version.c
%%PORTDOCS%%usr/share/doc/ncurses-5.9/ANNOUNCE
%%PORTDOCS%%usr/share/doc/ncurses-5.9/AUTHORS
%%PORTDOCS%%usr/share/doc/ncurses-5.9/NEWS.bz2
diff --git a/emulators/linux_base-c7/pkg-plist.i386 b/emulators/linux_base-c7/pkg-plist.i386
index 128a821bc2ce..5deb2b9a3263 100644
--- a/emulators/linux_base-c7/pkg-plist.i386
+++ b/emulators/linux_base-c7/pkg-plist.i386
@@ -715,6 +715,8 @@ usr/lib/libmenuw.so.5
usr/lib/libmenuw.so.5.9
usr/lib/libmount.so.1
usr/lib/libmount.so.1.1.0
+usr/lib/libmpfr.so.4
+usr/lib/libmpfr.so.4.1.1
usr/lib/libncurses++.so.5
usr/lib/libncurses++.so.5.9
usr/lib/libncurses++w.so.5
@@ -1164,6 +1166,22 @@ usr/share/centos-release/EULA
%%PORTDOCS%%usr/share/doc/libverto-0.2.5/ChangeLog
%%PORTDOCS%%usr/share/doc/libverto-0.2.5/NEWS
%%PORTDOCS%%usr/share/doc/libverto-0.2.5/README
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/COPYING
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/COPYING.LESSER
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/NEWS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/README
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/AUTHORS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/BUGS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/COPYING
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/COPYING.LESSER
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/FAQ.html
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/NEWS
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/TODO
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/ReadMe
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/divworst.c
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/rndo-add.c
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/sample.c
+%%PORTDOCS%%usr/share/doc/mpfr-3.1.1/mpfr/examples/version.c
%%PORTDOCS%%usr/share/doc/ncurses-5.9/ANNOUNCE
%%PORTDOCS%%usr/share/doc/ncurses-5.9/AUTHORS
%%PORTDOCS%%usr/share/doc/ncurses-5.9/NEWS.bz2
diff --git a/emulators/linux_base-rl9/Makefile b/emulators/linux_base-rl9/Makefile
index 6b60d59bdf8f..628b300ba9f9 100644
--- a/emulators/linux_base-rl9/Makefile
+++ b/emulators/linux_base-rl9/Makefile
@@ -1,6 +1,5 @@
PORTNAME= rl9
PORTVERSION= ${LINUX_DIST_VER}
-PORTREVISION= 8
CATEGORIES= emulators linux
PKGNAMEPREFIX= linux_base-
EXTRACT_ONLY= ${DISTFILES:N*${SRC_SUFX}*:Nf/filesystem-*:C/:[^:]+$//}
@@ -15,7 +14,9 @@ USE_LINUX= # empty
USE_LINUX_RPM= yes
WANT_LINUX32= yes
-CONFLICTS_INSTALL= linux-${linux_ARGS}-libsigsegv
+# lib64/gconv/ stuff that is loaded dynamically and has rpath
+NO_SHLIB_REQUIRES_GLOB= libCNS.so* libGB.so* libISOIR165.so* \
+ libJIS.so* libJISX0213.so* libKSC.so*
.include "${.CURDIR}/Makefile.version"
@@ -37,6 +38,7 @@ BIN_DISTNAMES= bash-${bash_ver} \
ncurses-${ncurses_ver} \
sed-${sed_ver} \
setserial-${setserial_ver} \
+ sqlite-${sqlite_ver} \
util-linux-${util_ver} \
util-linux-core-${util_ver} \
which-${which_ver}
@@ -56,6 +58,7 @@ LIB_DISTNAMES= bzip2-libs-${bzip2_ver} \
libacl-${libacl_ver} \
libattr-${libattr_ver} \
libblkid-${util_ver} \
+ libbrotli-${brotli_ver} \
libcap-${libcap_ver} \
libcom_err-${e2fsprogs_ver} \
libdatrie-${libdatrie_ver} \
@@ -66,14 +69,18 @@ LIB_DISTNAMES= bzip2-libs-${bzip2_ver} \
libffi-${libffi_ver} \
libgcc-${gcc_ver} \
libgudev-${libgudev_ver} \
+ libidn2-${libidn2_ver} \
libmount-${util_ver} \
libnsl-${glibc_ver} \
libproxy-${libproxy_ver} \
+ libpsl-${libpsl_ver} \
libselinux-${selinux_ver} \
libsepol-${sepol_ver} \
libsigsegv-${libsigsegv_ver} \
libsmartcols-${util_ver} \
+ libsoup-${libsoup_ver} \
libstdc++-${gcc_ver} \
+ libunistring-${libunistring_ver} \
libuuid-${util_ver} \
libverto-${libverto_ver} \
libxcrypt-${libxcrypt_ver} \
@@ -91,6 +98,7 @@ LIB_DISTNAMES= bzip2-libs-${bzip2_ver} \
popt-${popt_ver} \
readline-${readline_ver} \
slang-${slang_ver} \
+ sqlite-libs-${sqlite_ver} \
xz-libs-${xz_ver} \
zlib-${zlib_ver}
@@ -133,6 +141,7 @@ SRC_DISTFILES= acl-${libacl_ver}${SRC_SUFX}:SOURCE \
libselinux-${selinux_ver}${SRC_SUFX}:SOURCE \
libsepol-${sepol_ver}${SRC_SUFX}:SOURCE \
libsigsegv-${libsigsegv_ver}${SRC_SUFX}:SOURCE \
+ libsoup-${libsoup_ver}${SRC_SUFX}:SOURCE \
libverto-${libverto_ver}${SRC_SUFX}:SOURCE \
libxcrypt-${libxcrypt_ver}${SRC_SUFX}:SOURCE \
mpfr-${mpfr_ver}${SRC_SUFX}:SOURCE \
@@ -174,6 +183,7 @@ REMOVE_FILES= bin/chfn bin/chsh bin/findmnt bin/login bin/lsblk bin/lscpu \
usr/bin/taskset usr/bin/unshare usr/sbin/agetty usr/sbin/blkid \
usr/sbin/blockdev usr/sbin/fsck usr/sbin/losetup usr/sbin/mkswap \
usr/sbin/partx usr/sbin/swapoff usr/sbin/swapon usr/sbin/switch_root \
+ usr/lib/gio/modules/libgiognutls.so usr/lib64/gio/modules/libgiognutls.so \
usr/share/man/man1/chrt.1.gz usr/share/man/man1/dmesg.1.gz \
usr/share/man/man1/flock.1.gz usr/share/man/man1/hardlink.1.gz \
usr/share/man/man1/ionice.1.gz usr/share/man/man1/ipcmk.1.gz \
diff --git a/emulators/linux_base-rl9/Makefile.version b/emulators/linux_base-rl9/Makefile.version
index b54ebe994cd9..6bc9e8c58232 100644
--- a/emulators/linux_base-rl9/Makefile.version
+++ b/emulators/linux_base-rl9/Makefile.version
@@ -1,38 +1,43 @@
basesystem_ver= 11-13.el9.0.1
bash_ver= 5.1.8-9.el9
+brotli_ver= 1.0.9-7.el9_5
bzip2_ver= 1.0.8-10.el9_5
-coreutils_ver= 8.32-36.el9
+coreutils_ver= 8.32-39.el9
diffutils_ver= 3.7-12.el9
-e2fsprogs_ver= 1.46.5-5.el9
+e2fsprogs_ver= 1.46.5-7.el9
filesystem_ver= 3.16-5.el9
findutils_ver= 4.8.0-7.el9
-fuse_ver= 2.9.9-16.el9
+fuse_ver= 2.9.9-17.el9
gawk_ver= 5.1.0-6.el9
gcc_ver= 11.5.0-5.el9_5
gdbm_ver= 1.23-1.el9
geocode-glib_ver= 3.26.2-5.el9
glib-networking_ver= 2.68.3-3.el9
-glib2_ver= 2.68.4-14.el9_4.1
-glibc_ver= 2.34-125.el9_5.8
+glib2_ver= 2.68.4-16.el9
+glibc_ver= 2.34-168.el9_6.19
gmp_ver= 6.2.0-13.el9
grep_ver= 3.6-5.el9
info_ver= 6.7-15.el9
json-glib_ver= 1.6.6-1.el9
keyutils_ver= 1.6.3-1.el9
-krb5_ver= 1.21.1-4.el9_5
+krb5_ver= 1.21.1-6.el9
less_ver= 590-5.el9
libacl_ver= 2.3.1-4.el9
libattr_ver= 2.5.1-3.el9
libcap_ver= 2.48-9.el9_2
libdatrie_ver= 0.2.13-4.el9
-libdb_ver= 5.3.28-54.el9
+libdb_ver= 5.3.28-55.el9
libedit_ver= 3.1-38.20210216cvs.el9
libevdev_ver= 1.11.0-3.el9
libffi_ver= 3.4.2-8.el9
libgudev_ver= 237-1.el9
+libidn2_ver= 2.3.0-7.el9
libnattr_ver= 2.5.1-3.el9
libproxy_ver= 0.4.15-35.el9
+libpsl_ver= 0.21.1-5.el9
libsigsegv_ver= 2.13-4.el9
+libsoup_ver= 2.72.0-10.el9_6.2
+libunistring_ver= 0.9.10-15.el9
libverto_ver= 0.3.2-3.el9
libxcrypt_ver= 4.4.18-3.el9
mpfr_ver= 4.1.0-7.el9
@@ -45,13 +50,14 @@ popt_ver= 1.18-8.el9
readline_ver= 8.1-4.el9
rocky-release_ver= 9.5-1.2.el9
sed_ver= 4.8-9.el9
-selinux_ver= 3.6-1.el9
-sepol_ver= 3.6-1.el9
+selinux_ver= 3.6-3.el9
+sepol_ver= 3.6-2.el9
setserial_ver= 2.17-54.el9
setup_ver= 2.13.7-10.el9
slang_ver= 2.3.2-11.el9
-util_ver= 2.37.4-20.el9
+sqlite_ver= 3.34.1-7.el9_3
+util_ver= 2.37.4-21.el9
which_ver= 2.21-29.el9
xz_ver= 5.2.5-8.el9_0
zlib_ver= 1.2.11-40.el9
-zstd_ver= 1.5.1-2.el9
+zstd_ver= 1.5.5-1.el9
diff --git a/emulators/linux_base-rl9/distinfo b/emulators/linux_base-rl9/distinfo
index ff2b4e9497ec..a187221c7d0c 100644
--- a/emulators/linux_base-rl9/distinfo
+++ b/emulators/linux_base-rl9/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1746515966
+TIMESTAMP = 1750633076
SHA256 (rocky/b/basesystem-11-13.el9.0.1.noarch.rpm) = 9f707e8d1046381c9b4a4df6a6674327df6ffe0298d48e1750972212c97aafad
SIZE (rocky/b/basesystem-11-13.el9.0.1.noarch.rpm) = 6565
SHA256 (rocky/b/bash-5.1.8-9.el9.aarch64.rpm) = f6b8bbdbd96ecb8d240a4d3c4a038f58faeab170015b07c7096d02157838279d
@@ -15,24 +15,24 @@ SHA256 (rocky/b/bzip2-libs-1.0.8-10.el9_5.i686.rpm) = 3e7d1321c13f53b170717d150f
SIZE (rocky/b/bzip2-libs-1.0.8-10.el9_5.i686.rpm) = 40141
SHA256 (rocky/b/bzip2-libs-1.0.8-10.el9_5.x86_64.rpm) = 1741762b008088e223b9ec386bc77322b95ab47ed8e982e32e8f3d11997955be
SIZE (rocky/b/bzip2-libs-1.0.8-10.el9_5.x86_64.rpm) = 39972
-SHA256 (rocky/c/coreutils-8.32-36.el9.aarch64.rpm) = 97dedc47d3c920a40f9d9ff01d8b062124fbe3b3f93151b3230453667b2bb772
-SIZE (rocky/c/coreutils-8.32-36.el9.aarch64.rpm) = 1133904
-SHA256 (rocky/c/coreutils-8.32-36.el9.x86_64.rpm) = 9c5f9d4b74543a16b32fdb1536b53ac42042c9ad0acb794f9ab91655c069eb19
-SIZE (rocky/c/coreutils-8.32-36.el9.x86_64.rpm) = 1181131
+SHA256 (rocky/c/coreutils-8.32-39.el9.aarch64.rpm) = f7b726650ec026e994ebaa181715950109b962ae8da21309ba59b8286137252f
+SIZE (rocky/c/coreutils-8.32-39.el9.aarch64.rpm) = 1113137
+SHA256 (rocky/c/coreutils-8.32-39.el9.x86_64.rpm) = 73a91621d9303290c1e27d2a834df4e5532d94dfa9ef2eca984d97f1fd2249a5
+SIZE (rocky/c/coreutils-8.32-39.el9.x86_64.rpm) = 1158633
SHA256 (rocky/d/diffutils-3.7-12.el9.aarch64.rpm) = df77e6cb59b73a1ff3d007c8011c689bf9bdbd416889bce8d65dc9855144e335
SIZE (rocky/d/diffutils-3.7-12.el9.aarch64.rpm) = 391813
SHA256 (rocky/d/diffutils-3.7-12.el9.x86_64.rpm) = d3932991f5d9b1e5f6326e376cf77f3f676bbf0c5657b2ddf1013bfdb4738a69
SIZE (rocky/d/diffutils-3.7-12.el9.x86_64.rpm) = 396968
-SHA256 (rocky/e/e2fsprogs-1.46.5-5.el9.aarch64.rpm) = 5e7e13ef9e10c5eb625e0c6edb8e913e235a630f567f939f02c1d4f4c2470d2b
-SIZE (rocky/e/e2fsprogs-1.46.5-5.el9.aarch64.rpm) = 1018362
-SHA256 (rocky/e/e2fsprogs-1.46.5-5.el9.x86_64.rpm) = f79ac72b32036502f10e4a679fb4817758de89006f71b695b53c06f13084247a
-SIZE (rocky/e/e2fsprogs-1.46.5-5.el9.x86_64.rpm) = 1026807
-SHA256 (rocky/e/e2fsprogs-libs-1.46.5-5.el9.aarch64.rpm) = ce2bbbd636414190a36fd76a959c1d519b2fd92da85187501d9b9fe96e93f5e3
-SIZE (rocky/e/e2fsprogs-libs-1.46.5-5.el9.aarch64.rpm) = 227421
-SHA256 (rocky/e/e2fsprogs-libs-1.46.5-5.el9.i686.rpm) = a026908e1861a2f63ec281c2c7b8add14899c257d47e7c4c1141cb489b4fc537
-SIZE (rocky/e/e2fsprogs-libs-1.46.5-5.el9.i686.rpm) = 259694
-SHA256 (rocky/e/e2fsprogs-libs-1.46.5-5.el9.x86_64.rpm) = 7c465f9f430781cec46d6d6ae0c45a3a22a0838eb4c6819e8410224dfa505df9
-SIZE (rocky/e/e2fsprogs-libs-1.46.5-5.el9.x86_64.rpm) = 226783
+SHA256 (rocky/e/e2fsprogs-1.46.5-7.el9.aarch64.rpm) = bb0d5e64092fe8f539dac21a35f559dfa2453521b09ace9b0b39feb9c23f6923
+SIZE (rocky/e/e2fsprogs-1.46.5-7.el9.aarch64.rpm) = 1015999
+SHA256 (rocky/e/e2fsprogs-1.46.5-7.el9.x86_64.rpm) = 18fee60bd62d5ef248447df59d2a9c89a6c07c560bca05fd5e69a174357ed68e
+SIZE (rocky/e/e2fsprogs-1.46.5-7.el9.x86_64.rpm) = 1022981
+SHA256 (rocky/e/e2fsprogs-libs-1.46.5-7.el9.aarch64.rpm) = 0aaecc33fe832814e6e1107f5c885ce296b41de0d8e453614714f76f467bd4e4
+SIZE (rocky/e/e2fsprogs-libs-1.46.5-7.el9.aarch64.rpm) = 226870
+SHA256 (rocky/e/e2fsprogs-libs-1.46.5-7.el9.i686.rpm) = 1dddaf5a9adfb8da036e49ec0d58a217122fae2af63cd4cec24ce25b37f0bbcc
+SIZE (rocky/e/e2fsprogs-libs-1.46.5-7.el9.i686.rpm) = 259414
+SHA256 (rocky/e/e2fsprogs-libs-1.46.5-7.el9.x86_64.rpm) = 2e2cf05b97d183343cc8d84c77d3af7c49f3a153f6fdbd93c7c34b44c79a2c61
+SIZE (rocky/e/e2fsprogs-libs-1.46.5-7.el9.x86_64.rpm) = 226202
SHA256 (rocky/f/filesystem-3.16-5.el9.aarch64.rpm) = 373dffb499081ae9f7573af300e4087b4abc6f54a25dfd7c8cc63b295c2d4e03
SIZE (rocky/f/filesystem-3.16-5.el9.aarch64.rpm) = 1117518
SHA256 (rocky/f/filesystem-3.16-5.el9.x86_64.rpm) = cabe98453b9517158c5a045cfec0418b747c874da2717d183f4296f240bdf8d9
@@ -41,16 +41,16 @@ SHA256 (rocky/f/findutils-4.8.0-7.el9.aarch64.rpm) = b77862b75f970d95a6943c46133
SIZE (rocky/f/findutils-4.8.0-7.el9.aarch64.rpm) = 550234
SHA256 (rocky/f/findutils-4.8.0-7.el9.x86_64.rpm) = 1c9c28792695c61ced41da9337f323111973ba7eea938c3c11944532e384a662
SIZE (rocky/f/findutils-4.8.0-7.el9.x86_64.rpm) = 549239
-SHA256 (rocky/f/fuse-2.9.9-16.el9.aarch64.rpm) = 3dd56d0baa2c83b6ee5d0dc9be112031783d0a124f51b0f0bd512209112cae9c
-SIZE (rocky/f/fuse-2.9.9-16.el9.aarch64.rpm) = 79610
-SHA256 (rocky/f/fuse-2.9.9-16.el9.x86_64.rpm) = fc076e7835b9de97d00be6610bb3851b2bc18993c681caa2fbb5901bb1999879
-SIZE (rocky/f/fuse-2.9.9-16.el9.x86_64.rpm) = 80044
-SHA256 (rocky/f/fuse-libs-2.9.9-16.el9.aarch64.rpm) = 6944c5d19a9328391fb7535799c6acee9598e6b7a0625d2c69833a6cd28980cc
-SIZE (rocky/f/fuse-libs-2.9.9-16.el9.aarch64.rpm) = 96342
-SHA256 (rocky/f/fuse-libs-2.9.9-16.el9.i686.rpm) = 7f094b2e5654f3790165441e505914fb3a0c825cff92410bbbd31e60f2d78491
-SIZE (rocky/f/fuse-libs-2.9.9-16.el9.i686.rpm) = 109504
-SHA256 (rocky/f/fuse-libs-2.9.9-16.el9.x86_64.rpm) = 0fb2172f73c49e359315f89da8ff0bfa78c2bdd8ec6a6891597e83a0601210fd
-SIZE (rocky/f/fuse-libs-2.9.9-16.el9.x86_64.rpm) = 98099
+SHA256 (rocky/f/fuse-2.9.9-17.el9.aarch64.rpm) = 42b60a7fc59e9b73c010f6609c14cd44ded2d8adf03bf43752152841bf409382
+SIZE (rocky/f/fuse-2.9.9-17.el9.aarch64.rpm) = 79069
+SHA256 (rocky/f/fuse-2.9.9-17.el9.x86_64.rpm) = f1de06c2c41e5fe6071609b369e499c282af7a85f09ecb0475f0100df12e6dda
+SIZE (rocky/f/fuse-2.9.9-17.el9.x86_64.rpm) = 79519
+SHA256 (rocky/f/fuse-libs-2.9.9-17.el9.aarch64.rpm) = 7729aaf4b9ec5689dd7d5a0972b27866c58eff063034c621f9d80b747c2012cd
+SIZE (rocky/f/fuse-libs-2.9.9-17.el9.aarch64.rpm) = 95924
+SHA256 (rocky/f/fuse-libs-2.9.9-17.el9.i686.rpm) = 2ad507dc955f3623462089d64eb0b0d211fa48380d5600f760a2526fea4c63be
+SIZE (rocky/f/fuse-libs-2.9.9-17.el9.i686.rpm) = 109570
+SHA256 (rocky/f/fuse-libs-2.9.9-17.el9.x86_64.rpm) = 4ce8725296d740d70aed725d3946244dab5c263ca846dc6cb571f7a2d0aa858c
+SIZE (rocky/f/fuse-libs-2.9.9-17.el9.x86_64.rpm) = 97719
SHA256 (rocky/g/gawk-5.1.0-6.el9.aarch64.rpm) = c831415c883ab8ecd6d62373cea563c73042d06463c91e6645f82984eeb12c74
SIZE (rocky/g/gawk-5.1.0-6.el9.aarch64.rpm) = 999013
SHA256 (rocky/g/gawk-5.1.0-6.el9.x86_64.rpm) = eaca68b315d6c2ef5ec30deaf9b7c38401e2ed0169972d158fd88b917e8a47dc
@@ -73,32 +73,32 @@ SHA256 (rocky/g/glib-networking-2.68.3-3.el9.i686.rpm) = 2a7824f80e9ef343a8467da
SIZE (rocky/g/glib-networking-2.68.3-3.el9.i686.rpm) = 180304
SHA256 (rocky/g/glib-networking-2.68.3-3.el9.x86_64.rpm) = fa9bec5c45cd1d4123f3e5e9793c592312d95dc50369740226969e69bd0e0ab0
SIZE (rocky/g/glib-networking-2.68.3-3.el9.x86_64.rpm) = 173019
-SHA256 (rocky/g/glib2-2.68.4-14.el9_4.1.aarch64.rpm) = a720ff7488134ba4fef07680e45a1fd757b50a9b83edb9ae9f70d4740c8aeb7d
-SIZE (rocky/g/glib2-2.68.4-14.el9_4.1.aarch64.rpm) = 2708566
-SHA256 (rocky/g/glib2-2.68.4-14.el9_4.1.i686.rpm) = 70fc96806a62a13d46e6786f52b340c5099d9672e59370d6ac9f1c170a258a52
-SIZE (rocky/g/glib2-2.68.4-14.el9_4.1.i686.rpm) = 2824506
-SHA256 (rocky/g/glib2-2.68.4-14.el9_4.1.x86_64.rpm) = 80a459770f044a232087c6e3483ceaf118807987d51e2501c4e5bdf64b1bb58d
-SIZE (rocky/g/glib2-2.68.4-14.el9_4.1.x86_64.rpm) = 2741037
-SHA256 (rocky/g/glibc-2.34-125.el9_5.8.aarch64.rpm) = 7110fd3359cce2266a72df6e9b4f85320c54ca8e90ff159f58f3fe65d287698d
-SIZE (rocky/g/glibc-2.34-125.el9_5.8.aarch64.rpm) = 1772281
-SHA256 (rocky/g/glibc-2.34-125.el9_5.8.i686.rpm) = 143b942ced528c17fc3e2bd8cb0cfed70aeb8f098d4e82f533e7a8703946e9c7
-SIZE (rocky/g/glibc-2.34-125.el9_5.8.i686.rpm) = 1984225
-SHA256 (rocky/g/glibc-2.34-125.el9_5.8.x86_64.rpm) = b7fcc189398338475f84a2538e628de3fd0bb0ac778d66c9e4ee06e0fc177689
-SIZE (rocky/g/glibc-2.34-125.el9_5.8.x86_64.rpm) = 2039086
-SHA256 (rocky/g/glibc-all-langpacks-2.34-125.el9_5.8.aarch64.rpm) = bd033f52cd6c65b4b4faccd7c012d6af4e85a670452a847af6ea2bfe54d68d49
-SIZE (rocky/g/glibc-all-langpacks-2.34-125.el9_5.8.aarch64.rpm) = 18730073
-SHA256 (rocky/g/glibc-all-langpacks-2.34-125.el9_5.8.x86_64.rpm) = c138c3b76ee3bf0d4268068ff560c0ffb821ac0135f78ab6825c817ec3539cb2
-SIZE (rocky/g/glibc-all-langpacks-2.34-125.el9_5.8.x86_64.rpm) = 18731797
-SHA256 (rocky/g/glibc-common-2.34-125.el9_5.8.aarch64.rpm) = a0e38ead8793c1071f2f6e7cd6c8cb5c764e21d7b7e5f40d8c6700beadb3c3e4
-SIZE (rocky/g/glibc-common-2.34-125.el9_5.8.aarch64.rpm) = 287567
-SHA256 (rocky/g/glibc-common-2.34-125.el9_5.8.x86_64.rpm) = 07878f56af2ac82507b59e13e786b7dd9811243c4230c5a310ecfb2c43877b1d
-SIZE (rocky/g/glibc-common-2.34-125.el9_5.8.x86_64.rpm) = 296884
-SHA256 (rocky/g/glibc-gconv-extra-2.34-125.el9_5.8.aarch64.rpm) = 431e843b276b489f1872969fb53c17059ec576917b9ea08b9c7d849f86bfc1fa
-SIZE (rocky/g/glibc-gconv-extra-2.34-125.el9_5.8.aarch64.rpm) = 1711363
-SHA256 (rocky/g/glibc-gconv-extra-2.34-125.el9_5.8.i686.rpm) = d343406cbb75cf8609ff61e02e41d17b3edd6b755666de35bb5708fbc65f0e4f
-SIZE (rocky/g/glibc-gconv-extra-2.34-125.el9_5.8.i686.rpm) = 1682322
-SHA256 (rocky/g/glibc-gconv-extra-2.34-125.el9_5.8.x86_64.rpm) = 57d45448e415f7447d20320596031e01a609f102d341c3a8a2cafadacc31ac1d
-SIZE (rocky/g/glibc-gconv-extra-2.34-125.el9_5.8.x86_64.rpm) = 1645776
+SHA256 (rocky/g/glib2-2.68.4-16.el9.aarch64.rpm) = 541e7161b729d7ca7697420c11c910cc76b14a621385a3635388c7e2ebeba769
+SIZE (rocky/g/glib2-2.68.4-16.el9.aarch64.rpm) = 2704830
+SHA256 (rocky/g/glib2-2.68.4-16.el9.i686.rpm) = ef4ab5a8ef717fb418930105447e6974809b2f380ffac61538e95a19b60f6a51
+SIZE (rocky/g/glib2-2.68.4-16.el9.i686.rpm) = 2823474
+SHA256 (rocky/g/glib2-2.68.4-16.el9.x86_64.rpm) = 4830c7ff22fd986efb3b5802d08029cbdc33a6dbbad55fb6c272c55218e51211
+SIZE (rocky/g/glib2-2.68.4-16.el9.x86_64.rpm) = 2737173
+SHA256 (rocky/g/glibc-2.34-168.el9_6.19.aarch64.rpm) = 2acd8162d1e26f0c6eaf81e5f95b2c380e9c9d0ab8585ca7f21ce2d0bb1fecf5
+SIZE (rocky/g/glibc-2.34-168.el9_6.19.aarch64.rpm) = 1768161
+SHA256 (rocky/g/glibc-2.34-168.el9_6.19.i686.rpm) = eb383ff671bbca2657ba373645448effc4207fc5f8382c4aca6f96ffda7c01d5
+SIZE (rocky/g/glibc-2.34-168.el9_6.19.i686.rpm) = 1978180
+SHA256 (rocky/g/glibc-2.34-168.el9_6.19.x86_64.rpm) = 9c51750fa82466b52c66f1dc1b86ada5ace1b4197eb12189843f2061556cad04
+SIZE (rocky/g/glibc-2.34-168.el9_6.19.x86_64.rpm) = 2030908
+SHA256 (rocky/g/glibc-all-langpacks-2.34-168.el9_6.19.aarch64.rpm) = 9f9abef6ee86b90a3f7ce97285a02d127795d1a15e90af240ad24bf8da7b6296
+SIZE (rocky/g/glibc-all-langpacks-2.34-168.el9_6.19.aarch64.rpm) = 18717407
+SHA256 (rocky/g/glibc-all-langpacks-2.34-168.el9_6.19.x86_64.rpm) = 001e936bfb8621c0152322ad29f7c913311856c84449482fbf26c3086b69c66e
+SIZE (rocky/g/glibc-all-langpacks-2.34-168.el9_6.19.x86_64.rpm) = 18717415
+SHA256 (rocky/g/glibc-common-2.34-168.el9_6.19.aarch64.rpm) = 8e6b5ab2d6a95051efb5e8e7e1241d0feaad178d15af41b40903bdc898e4b09e
+SIZE (rocky/g/glibc-common-2.34-168.el9_6.19.aarch64.rpm) = 292320
+SHA256 (rocky/g/glibc-common-2.34-168.el9_6.19.x86_64.rpm) = 136530d214a30424970457d573dd36f0fb574d40f7ee42c790e6d344efe27734
+SIZE (rocky/g/glibc-common-2.34-168.el9_6.19.x86_64.rpm) = 302086
+SHA256 (rocky/g/glibc-gconv-extra-2.34-168.el9_6.19.aarch64.rpm) = e3fa2c7ea577941866340331ba481691ab4e5966b55f9825d21d8a8ef0c33d40
+SIZE (rocky/g/glibc-gconv-extra-2.34-168.el9_6.19.aarch64.rpm) = 1679013
+SHA256 (rocky/g/glibc-gconv-extra-2.34-168.el9_6.19.i686.rpm) = 028ec1e9626ef03acc25e29ce1c0b10147085b638e7bd075cfe081db43b53a26
+SIZE (rocky/g/glibc-gconv-extra-2.34-168.el9_6.19.i686.rpm) = 1642987
+SHA256 (rocky/g/glibc-gconv-extra-2.34-168.el9_6.19.x86_64.rpm) = 3e8a0692ee91644568ce89bbbf092ed4ee9512a072a8a627f44730e248f6d587
+SIZE (rocky/g/glibc-gconv-extra-2.34-168.el9_6.19.x86_64.rpm) = 1615301
SHA256 (rocky/g/gmp-6.2.0-13.el9.aarch64.rpm) = 54f5999feb6a26c57616d64cc880dccb5e44723911f52b06a36311e389a568ce
SIZE (rocky/g/gmp-6.2.0-13.el9.aarch64.rpm) = 270794
SHA256 (rocky/g/gmp-6.2.0-13.el9.i686.rpm) = 186f9821881081e526d4a8a6e34240e55db8830380bf4d1303e4e1d5d6e9f755
@@ -129,12 +129,12 @@ SHA256 (rocky/k/keyutils-libs-1.6.3-1.el9.i686.rpm) = 1921ffd05b1bd783c199ba0306
SIZE (rocky/k/keyutils-libs-1.6.3-1.el9.i686.rpm) = 31963
SHA256 (rocky/k/keyutils-libs-1.6.3-1.el9.x86_64.rpm) = 347a9d44e0271c1ff6f511fe493e736b3d36fde683360ccc51c852ab91810b16
SIZE (rocky/k/keyutils-libs-1.6.3-1.el9.x86_64.rpm) = 31595
-SHA256 (rocky/k/krb5-libs-1.21.1-4.el9_5.aarch64.rpm) = 9a31da451bc9ac69dc814b716aca6c5e9740d1a02b7dd89e8a42f060aacba0c7
-SIZE (rocky/k/krb5-libs-1.21.1-4.el9_5.aarch64.rpm) = 777976
-SHA256 (rocky/k/krb5-libs-1.21.1-4.el9_5.i686.rpm) = 903eff09563f1391eda7e961c9d8c2754e98cddc3dcf10221260147631cb3c28
-SIZE (rocky/k/krb5-libs-1.21.1-4.el9_5.i686.rpm) = 824464
-SHA256 (rocky/k/krb5-libs-1.21.1-4.el9_5.x86_64.rpm) = 9f46dae9e1ded35472f1071eb87ebfa4790d0e69187235f773404de61785ad6f
-SIZE (rocky/k/krb5-libs-1.21.1-4.el9_5.x86_64.rpm) = 774100
+SHA256 (rocky/k/krb5-libs-1.21.1-6.el9.aarch64.rpm) = 1c6205f377fc9cbf0cbbeee71aa38d851e94988d15ded5a393819a0cc7de9e21
+SIZE (rocky/k/krb5-libs-1.21.1-6.el9.aarch64.rpm) = 776066
+SHA256 (rocky/k/krb5-libs-1.21.1-6.el9.i686.rpm) = 4751680ff8b8e5ea728ef0b3609290044e8e2761f069ef9c7fbc458d64ab9d00
+SIZE (rocky/k/krb5-libs-1.21.1-6.el9.i686.rpm) = 822506
+SHA256 (rocky/k/krb5-libs-1.21.1-6.el9.x86_64.rpm) = 143365a2e51654b7c80350b975749d3b61a300ab4718f817b49f9aaa4951982d
+SIZE (rocky/k/krb5-libs-1.21.1-6.el9.x86_64.rpm) = 772433
SHA256 (rocky/l/less-590-5.el9.aarch64.rpm) = d80cae3c354ae8417b77f1205c1da5175a79b1663e342b73094d874c9aa41066
SIZE (rocky/l/less-590-5.el9.aarch64.rpm) = 163430
SHA256 (rocky/l/less-590-5.el9.x86_64.rpm) = b6ec3819b307d9a65eb269c8b2737479444267ead009c99ca474db7ad8907052
@@ -151,36 +151,42 @@ SHA256 (rocky/l/libattr-2.5.1-3.el9.i686.rpm) = f0deb20bf7f31dddaf9a85b7acc806c7
SIZE (rocky/l/libattr-2.5.1-3.el9.i686.rpm) = 18745
SHA256 (rocky/l/libattr-2.5.1-3.el9.x86_64.rpm) = 77742a1097d81c384b8c7529e3c049fb7de206b773ad230553be99ba5c9d9fc1
SIZE (rocky/l/libattr-2.5.1-3.el9.x86_64.rpm) = 18347
-SHA256 (rocky/l/libblkid-2.37.4-20.el9.aarch64.rpm) = 8522a13f39ee76a77ff47f4cfd34f8b6e22c7909efb6cd030a59c001df9e94ff
-SIZE (rocky/l/libblkid-2.37.4-20.el9.aarch64.rpm) = 108380
-SHA256 (rocky/l/libblkid-2.37.4-20.el9.i686.rpm) = 5767efe0e33bcb56ba00fb37ade069fb1494b4bf1876d9f386ebef6181eb3b5c
-SIZE (rocky/l/libblkid-2.37.4-20.el9.i686.rpm) = 120871
-SHA256 (rocky/l/libblkid-2.37.4-20.el9.x86_64.rpm) = 685281417c4346761b44ac727a511a3de222ed8454c01a446b1349890a634f6d
-SIZE (rocky/l/libblkid-2.37.4-20.el9.x86_64.rpm) = 108917
+SHA256 (rocky/l/libblkid-2.37.4-21.el9.aarch64.rpm) = 1210764b98d9077fe9ad4f536de8f8b5384b1d066ac9d4c3e8595277964f2697
+SIZE (rocky/l/libblkid-2.37.4-21.el9.aarch64.rpm) = 108359
+SHA256 (rocky/l/libblkid-2.37.4-21.el9.i686.rpm) = e47685f135721ba7453dcda9f4a2764b89bd2e5be3f91d92aa07c7fe4afd4e6b
+SIZE (rocky/l/libblkid-2.37.4-21.el9.i686.rpm) = 120461
+SHA256 (rocky/l/libblkid-2.37.4-21.el9.x86_64.rpm) = 6a65c588cbc5546f5bd2701b5716278ae44a05220cd539535a3958b6ea038830
+SIZE (rocky/l/libblkid-2.37.4-21.el9.x86_64.rpm) = 108730
+SHA256 (rocky/l/libbrotli-1.0.9-7.el9_5.aarch64.rpm) = e7a412a4613c6032c93bd217a413916ad87014139991441ac2d2cc4e58ce0213
+SIZE (rocky/l/libbrotli-1.0.9-7.el9_5.aarch64.rpm) = 318461
+SHA256 (rocky/l/libbrotli-1.0.9-7.el9_5.i686.rpm) = 4baea718bd3b48888564bebe2700c7cd13eab6033f08d2ac24cd1581af3af514
+SIZE (rocky/l/libbrotli-1.0.9-7.el9_5.i686.rpm) = 321751
+SHA256 (rocky/l/libbrotli-1.0.9-7.el9_5.x86_64.rpm) = 307cec82f955c39e26ce1c73d5e1ac7bf00d172f85575e7e16b4b73e876fd3c1
+SIZE (rocky/l/libbrotli-1.0.9-7.el9_5.x86_64.rpm) = 319496
SHA256 (rocky/l/libcap-2.48-9.el9_2.aarch64.rpm) = e7b8b5ace872eb354539991f9f6cbd5fbd1fd7fcd230893ef81237c09da27f06
SIZE (rocky/l/libcap-2.48-9.el9_2.aarch64.rpm) = 67186
SHA256 (rocky/l/libcap-2.48-9.el9_2.i686.rpm) = dfb7395d3db508bccc8e6f8e76f74707a5429f98632fd9a11871fb1c607f5ffa
SIZE (rocky/l/libcap-2.48-9.el9_2.i686.rpm) = 69926
SHA256 (rocky/l/libcap-2.48-9.el9_2.x86_64.rpm) = f399db0064e09ccf71d9a395454fefb1ca38076f18fac9e08104816bd9324c32
SIZE (rocky/l/libcap-2.48-9.el9_2.x86_64.rpm) = 68237
-SHA256 (rocky/l/libcom_err-1.46.5-5.el9.aarch64.rpm) = 60ef191ff670f7de4658af55cd3f926e323ccbddcb7974b228916cb5dd28fe7b
-SIZE (rocky/l/libcom_err-1.46.5-5.el9.aarch64.rpm) = 25574
-SHA256 (rocky/l/libcom_err-1.46.5-5.el9.i686.rpm) = 44f3c65fcc8a82eccc7359b64ea1e26cf27ea18b7248ed2c817d38d5860dffbd
-SIZE (rocky/l/libcom_err-1.46.5-5.el9.i686.rpm) = 26404
-SHA256 (rocky/l/libcom_err-1.46.5-5.el9.x86_64.rpm) = f5e5232e19bccd8f9ac5e4972f3b0e85dee8991c842aa7cc8f44d1bd18932388
-SIZE (rocky/l/libcom_err-1.46.5-5.el9.x86_64.rpm) = 25930
+SHA256 (rocky/l/libcom_err-1.46.5-7.el9.aarch64.rpm) = 2dd31415307a05334ae9bc961ad34b17afc23e9b9533a1e0ac5539e6260c44d8
+SIZE (rocky/l/libcom_err-1.46.5-7.el9.aarch64.rpm) = 25418
+SHA256 (rocky/l/libcom_err-1.46.5-7.el9.i686.rpm) = 0f4854ca0c95136a887a846a0ffec291a7a4839fb1fc30c683a28dad7e1d32e5
+SIZE (rocky/l/libcom_err-1.46.5-7.el9.i686.rpm) = 26174
+SHA256 (rocky/l/libcom_err-1.46.5-7.el9.x86_64.rpm) = 4582ab872db9d39aaf4a7f0137c957eeb42a65f620216a3f381b00e8d2265194
+SIZE (rocky/l/libcom_err-1.46.5-7.el9.x86_64.rpm) = 25808
SHA256 (rocky/l/libdatrie-0.2.13-4.el9.aarch64.rpm) = ad561550ee0c35b3ed7c273e937fcac159c894e15500ad30f95dff15db1ecbdf
SIZE (rocky/l/libdatrie-0.2.13-4.el9.aarch64.rpm) = 32212
SHA256 (rocky/l/libdatrie-0.2.13-4.el9.i686.rpm) = fd1e5f28c41e4123ee3beb34cf13eecdf68fe8db96017fa617b80bf7593f170d
SIZE (rocky/l/libdatrie-0.2.13-4.el9.i686.rpm) = 33322
SHA256 (rocky/l/libdatrie-0.2.13-4.el9.x86_64.rpm) = 820f090a87181c921892fdb5744c53cb935eca5e303d4adbaba0d04ae35a4a61
SIZE (rocky/l/libdatrie-0.2.13-4.el9.x86_64.rpm) = 32491
-SHA256 (rocky/l/libdb-5.3.28-54.el9.aarch64.rpm) = 266bb43149e67399cbcf8247787c1b784a50c420cc57a7b4173a5793b7eefb4b
-SIZE (rocky/l/libdb-5.3.28-54.el9.aarch64.rpm) = 724070
-SHA256 (rocky/l/libdb-5.3.28-54.el9.i686.rpm) = cf1032c555c54fcc2afb18820e7bf3539f045612a15833136dd88da43b7dc863
-SIZE (rocky/l/libdb-5.3.28-54.el9.i686.rpm) = 824898
-SHA256 (rocky/l/libdb-5.3.28-54.el9.x86_64.rpm) = d32cf8a7c3f631d5b0bafcdf5fa6bf6c8438ccd5d0466943310ad8deef886f15
-SIZE (rocky/l/libdb-5.3.28-54.el9.x86_64.rpm) = 753408
+SHA256 (rocky/l/libdb-5.3.28-55.el9.aarch64.rpm) = c8afbf7d987ef6ad8cbfebe5394f141f048ee8320f33e6262bc1148e230e7670
+SIZE (rocky/l/libdb-5.3.28-55.el9.aarch64.rpm) = 724197
+SHA256 (rocky/l/libdb-5.3.28-55.el9.i686.rpm) = 66cbe56c6f0b4fcca411712b7d0c6995a8eddb60295180e6bb09cf762c3828f5
+SIZE (rocky/l/libdb-5.3.28-55.el9.i686.rpm) = 822965
+SHA256 (rocky/l/libdb-5.3.28-55.el9.x86_64.rpm) = 4a1b890fbb02c7a84fe0473e086317d2956ef39f32721434ead04efea1f77c4b
+SIZE (rocky/l/libdb-5.3.28-55.el9.x86_64.rpm) = 753520
SHA256 (rocky/l/libedit-3.1-38.20210216cvs.el9.aarch64.rpm) = 7f5937f4debf7eaa0f7a92e321d6d35bee089f42c7d7529c1ad4fbd7c270ea4b
SIZE (rocky/l/libedit-3.1-38.20210216cvs.el9.aarch64.rpm) = 103897
SHA256 (rocky/l/libedit-3.1-38.20210216cvs.el9.i686.rpm) = 657f0a7d99887b7cde2a241ecfde72973747486ac056a19b27c92c59fc0a3b02
@@ -193,12 +199,12 @@ SHA256 (rocky/l/libevdev-1.11.0-3.el9.i686.rpm) = c301d9e380ad02e5545ddbd703d4fd
SIZE (rocky/l/libevdev-1.11.0-3.el9.i686.rpm) = 42952
SHA256 (rocky/l/libevdev-1.11.0-3.el9.x86_64.rpm) = 6e62f64bd004b988017571a11b72d9b177d75368236f17af81b4c479ce8d5e31
SIZE (rocky/l/libevdev-1.11.0-3.el9.x86_64.rpm) = 45846
-SHA256 (rocky/l/libfdisk-2.37.4-20.el9.aarch64.rpm) = 068e888c074721a9b1975d6c3c1d41acabb7e765919208b30dcdaf562778ead1
-SIZE (rocky/l/libfdisk-2.37.4-20.el9.aarch64.rpm) = 151388
-SHA256 (rocky/l/libfdisk-2.37.4-20.el9.i686.rpm) = ef771a53073e75fec2acc3b30f429aec1c3d036c5999fd563edcc58a83819fff
-SIZE (rocky/l/libfdisk-2.37.4-20.el9.i686.rpm) = 171716
-SHA256 (rocky/l/libfdisk-2.37.4-20.el9.x86_64.rpm) = 8f2f07dd3beeb80214db6bca60969a64c71b69a9220c7262df8c915033de1a50
-SIZE (rocky/l/libfdisk-2.37.4-20.el9.x86_64.rpm) = 156514
+SHA256 (rocky/l/libfdisk-2.37.4-21.el9.aarch64.rpm) = c51d46e0d1ddb506b92b2f20d466017fc9622f9c5dd69e2d647e33043f6f7670
+SIZE (rocky/l/libfdisk-2.37.4-21.el9.aarch64.rpm) = 151116
+SHA256 (rocky/l/libfdisk-2.37.4-21.el9.i686.rpm) = 9db4abc6a9c128d22fc16410a588e5220063ad333b81a3610b66552f24cb2cd9
+SIZE (rocky/l/libfdisk-2.37.4-21.el9.i686.rpm) = 171546
+SHA256 (rocky/l/libfdisk-2.37.4-21.el9.x86_64.rpm) = a7af319a0426a67bb1cf9c193f88f16fc5663b8d7f57227249557344871c8917
+SIZE (rocky/l/libfdisk-2.37.4-21.el9.x86_64.rpm) = 156379
SHA256 (rocky/l/libffi-3.4.2-8.el9.aarch64.rpm) = 1a6fe133eab781288e5ecef0cdde627d57f7d67efb3ded23ec5d9e5a22fb6ab4
SIZE (rocky/l/libffi-3.4.2-8.el9.aarch64.rpm) = 35443
SHA256 (rocky/l/libffi-3.4.2-8.el9.i686.rpm) = 9e365ba0dc6786a12578c91cdb2013b1336d857f932fff70bfca798f9e5279dc
@@ -217,60 +223,84 @@ SHA256 (rocky/l/libgudev-237-1.el9.i686.rpm) = b390949a3c0124579a53b2d986754ae2a
SIZE (rocky/l/libgudev-237-1.el9.i686.rpm) = 36535
SHA256 (rocky/l/libgudev-237-1.el9.x86_64.rpm) = d1bfa6c0da6fdb70cf1a6f107042cec28689afd5fe3b1109f955b61bc6cc2c5f
SIZE (rocky/l/libgudev-237-1.el9.x86_64.rpm) = 35847
-SHA256 (rocky/l/libmount-2.37.4-20.el9.aarch64.rpm) = f10b35190a67203cae540dc5d0381d26d4ab5623d753511d439917517bb11434
-SIZE (rocky/l/libmount-2.37.4-20.el9.aarch64.rpm) = 134935
-SHA256 (rocky/l/libmount-2.37.4-20.el9.i686.rpm) = 21eddd2c18c7c9d68d8f5f24786db134250f447f4624d7d67224071deec77d94
-SIZE (rocky/l/libmount-2.37.4-20.el9.i686.rpm) = 145048
-SHA256 (rocky/l/libmount-2.37.4-20.el9.x86_64.rpm) = 8ae34772bc519310fbb3eae367bb81ebcc0add25d75155cba8d9af67947d7fb0
-SIZE (rocky/l/libmount-2.37.4-20.el9.x86_64.rpm) = 137687
-SHA256 (rocky/l/libnsl-2.34-125.el9_5.8.aarch64.rpm) = 75d7046c0a82d6c2e925af8e6b82da273e4f9cc51bf932a109ebbdc1afe83a26
-SIZE (rocky/l/libnsl-2.34-125.el9_5.8.aarch64.rpm) = 57614
-SHA256 (rocky/l/libnsl-2.34-125.el9_5.8.i686.rpm) = 1228b53e473128050b7a708a16d72a9dbad5d16986968115ea91ff2549182bef
-SIZE (rocky/l/libnsl-2.34-125.el9_5.8.i686.rpm) = 62745
-SHA256 (rocky/l/libnsl-2.34-125.el9_5.8.x86_64.rpm) = f4913ddc988030d92b68a9c7bd8ae2af0c8521870cf931b72e59232c96fe2fef
-SIZE (rocky/l/libnsl-2.34-125.el9_5.8.x86_64.rpm) = 58181
+SHA256 (rocky/l/libidn2-2.3.0-7.el9.aarch64.rpm) = 0832f2067447fb0485ba5220919a926694930006f19e098694e5274d56b6aadc
+SIZE (rocky/l/libidn2-2.3.0-7.el9.aarch64.rpm) = 98237
+SHA256 (rocky/l/libidn2-2.3.0-7.el9.i686.rpm) = dd02219555652565f3ce99ede5979d0c4676a5ab3cc584f3fdc70d521c177d71
+SIZE (rocky/l/libidn2-2.3.0-7.el9.i686.rpm) = 98675
+SHA256 (rocky/l/libidn2-2.3.0-7.el9.x86_64.rpm) = be32d8ba7ff8cf790c15d89c5ea18747d7fcc0126782a0e80f15901bb9889b31
+SIZE (rocky/l/libidn2-2.3.0-7.el9.x86_64.rpm) = 97676
+SHA256 (rocky/l/libmount-2.37.4-21.el9.aarch64.rpm) = e6152dabc095682cd575c76aa54c3b22ff8f3d9a7bc740106836b40e39d75688
+SIZE (rocky/l/libmount-2.37.4-21.el9.aarch64.rpm) = 134634
+SHA256 (rocky/l/libmount-2.37.4-21.el9.i686.rpm) = 8867477dbc4772e19144e45342eb707410bcf6b4271ebc241f986f0d18b5cb16
+SIZE (rocky/l/libmount-2.37.4-21.el9.i686.rpm) = 144706
+SHA256 (rocky/l/libmount-2.37.4-21.el9.x86_64.rpm) = 13de9f8ae01cdb98b0928b33325613a97dc917d1b1b5adb5d83f11ee05415e80
+SIZE (rocky/l/libmount-2.37.4-21.el9.x86_64.rpm) = 136970
+SHA256 (rocky/l/libnsl-2.34-168.el9_6.19.aarch64.rpm) = 15e5fb181bda91b70af4591523c90264e30ab8967685903a9075e8d3ed8b3895
+SIZE (rocky/l/libnsl-2.34-168.el9_6.19.aarch64.rpm) = 63734
+SHA256 (rocky/l/libnsl-2.34-168.el9_6.19.i686.rpm) = d595fc273ea5a3b1f2b5da203d3c8e54e7d5cc7b67ef7f2ee43ba4773128b033
+SIZE (rocky/l/libnsl-2.34-168.el9_6.19.i686.rpm) = 68936
+SHA256 (rocky/l/libnsl-2.34-168.el9_6.19.x86_64.rpm) = 9071af2a30152346263858ce67bd19dc9a5d5b7710936979bc7eda698826a7f1
+SIZE (rocky/l/libnsl-2.34-168.el9_6.19.x86_64.rpm) = 64403
SHA256 (rocky/l/libproxy-0.4.15-35.el9.aarch64.rpm) = 31daa01dfa6eb8e0ae100cbdc20f0d73320598a934f0eabad830b0060027f2d2
SIZE (rocky/l/libproxy-0.4.15-35.el9.aarch64.rpm) = 71753
SHA256 (rocky/l/libproxy-0.4.15-35.el9.i686.rpm) = 44c7d66545b791a88f1faf63dc6d686ddfaa8154aa45899cd1469dd7aed9f657
SIZE (rocky/l/libproxy-0.4.15-35.el9.i686.rpm) = 79219
SHA256 (rocky/l/libproxy-0.4.15-35.el9.x86_64.rpm) = b5723d56327d929d31efc63d2d746b61a1205269c6dae21d55881bc729a422ec
SIZE (rocky/l/libproxy-0.4.15-35.el9.x86_64.rpm) = 74998
-SHA256 (rocky/l/libselinux-3.6-1.el9.aarch64.rpm) = b54cca70a42bdbebe5bd62ae674e9f80ac6e08f4c2b6179b547edc09bd9d4f6c
-SIZE (rocky/l/libselinux-3.6-1.el9.aarch64.rpm) = 86800
-SHA256 (rocky/l/libselinux-3.6-1.el9.i686.rpm) = e7e73bf702efd0bc91daad71aa70046d8650ab27b92b07e958ea083a79c511d0
-SIZE (rocky/l/libselinux-3.6-1.el9.i686.rpm) = 93600
-SHA256 (rocky/l/libselinux-3.6-1.el9.x86_64.rpm) = 50d204575b1cbf21e822c65bb9ed42416f6fcaf00e9be9ff5698a84036529ddd
-SIZE (rocky/l/libselinux-3.6-1.el9.x86_64.rpm) = 87073
-SHA256 (rocky/l/libsepol-3.6-1.el9.aarch64.rpm) = ec1097b26e8134ab0b7bbe641525b5574720b4e8ffa8156a6f6111b470125c0d
-SIZE (rocky/l/libsepol-3.6-1.el9.aarch64.rpm) = 324894
-SHA256 (rocky/l/libsepol-3.6-1.el9.i686.rpm) = e982b8a6e2ed94d01d992b56d5b3c2f6db7288fe93e8b482274cb0fae5203d2f
-SIZE (rocky/l/libsepol-3.6-1.el9.i686.rpm) = 351074
-SHA256 (rocky/l/libsepol-3.6-1.el9.x86_64.rpm) = d58084e91e5f6d091b40a9485b52a3099dbcd82c48a9a60520d14a5aad2406fd
-SIZE (rocky/l/libsepol-3.6-1.el9.x86_64.rpm) = 336922
+SHA256 (rocky/l/libpsl-0.21.1-5.el9.aarch64.rpm) = 3c7d57a0adafb76ddcf588e41326bcb0b33fd7c6cbf2044450288a289e47ab25
+SIZE (rocky/l/libpsl-0.21.1-5.el9.aarch64.rpm) = 64676
+SHA256 (rocky/l/libpsl-0.21.1-5.el9.i686.rpm) = a8101c1d94803b6b84f818569d122a702771d0eece23bca2f340cb20449d173c
+SIZE (rocky/l/libpsl-0.21.1-5.el9.i686.rpm) = 65579
+SHA256 (rocky/l/libpsl-0.21.1-5.el9.x86_64.rpm) = 30553c652451362ebf346a98ff45fa2417dc25a9a644401b4d86d9000c0346a9
+SIZE (rocky/l/libpsl-0.21.1-5.el9.x86_64.rpm) = 64862
+SHA256 (rocky/l/libselinux-3.6-3.el9.aarch64.rpm) = 9703e0531f15c1da12e382ee399c1459e7cec6fed0ec98645a170fa784acac87
+SIZE (rocky/l/libselinux-3.6-3.el9.aarch64.rpm) = 86553
+SHA256 (rocky/l/libselinux-3.6-3.el9.i686.rpm) = 375d13bf313d55627a9e74b0d435f36bf363d9cca130567b47fdcd14a2cf4fa1
+SIZE (rocky/l/libselinux-3.6-3.el9.i686.rpm) = 93243
+SHA256 (rocky/l/libselinux-3.6-3.el9.x86_64.rpm) = 52f36acacd851901745f7729b7bce31ef7e5fa0fa250a0ce653d4e76dce02664
+SIZE (rocky/l/libselinux-3.6-3.el9.x86_64.rpm) = 86789
+SHA256 (rocky/l/libsepol-3.6-2.el9.aarch64.rpm) = be5ad6b4cf9bf814b4672a67af5a8ef985a9a4e7943c6f5e3ec7ea793748d135
+SIZE (rocky/l/libsepol-3.6-2.el9.aarch64.rpm) = 324588
+SHA256 (rocky/l/libsepol-3.6-2.el9.i686.rpm) = cb50331f210c3799163e6d5b1ad1b21c9a4c2f479c045ded2d597a388ecd4e5a
+SIZE (rocky/l/libsepol-3.6-2.el9.i686.rpm) = 350700
+SHA256 (rocky/l/libsepol-3.6-2.el9.x86_64.rpm) = e5da14a9afe825cced510db984c6bd767d7b1bb6aea1f6c3e2c4456c03dc70ee
+SIZE (rocky/l/libsepol-3.6-2.el9.x86_64.rpm) = 336553
SHA256 (rocky/l/libsigsegv-2.13-4.el9.aarch64.rpm) = 1935c944375f3bf40913bbda2cd87bbaf25a475be51c1662c24f54eb04da584b
SIZE (rocky/l/libsigsegv-2.13-4.el9.aarch64.rpm) = 27124
SHA256 (rocky/l/libsigsegv-2.13-4.el9.i686.rpm) = 312f6e760effbf2019985c86212d9ee73051b524918281ff7b0f229f6736da6a
SIZE (rocky/l/libsigsegv-2.13-4.el9.i686.rpm) = 27681
SHA256 (rocky/l/libsigsegv-2.13-4.el9.x86_64.rpm) = a80701bd3f67994493b1a14e043d9212032c86fd24374c309cf2b7006900f4da
SIZE (rocky/l/libsigsegv-2.13-4.el9.x86_64.rpm) = 27135
-SHA256 (rocky/l/libsmartcols-2.37.4-20.el9.aarch64.rpm) = 540dd30afe7d5ea12916fd4ff1d771673a7cdd103e144014560109b4d027d869
-SIZE (rocky/l/libsmartcols-2.37.4-20.el9.aarch64.rpm) = 62175
-SHA256 (rocky/l/libsmartcols-2.37.4-20.el9.i686.rpm) = 4924bb362ffa06e682d46fafd453bf9bd0965b54003903ffb8c6f9eb399ad756
-SIZE (rocky/l/libsmartcols-2.37.4-20.el9.i686.rpm) = 65437
-SHA256 (rocky/l/libsmartcols-2.37.4-20.el9.x86_64.rpm) = bda89ca67d387cc6aa39c6808ad7b5f9b6ccc9d02fb01617182a810633074653
-SIZE (rocky/l/libsmartcols-2.37.4-20.el9.x86_64.rpm) = 63334
+SHA256 (rocky/l/libsmartcols-2.37.4-21.el9.aarch64.rpm) = 9a61634f7428f5b84c5c1281d8c76aeecb4cd94911a0a3571688ab03db376a03
+SIZE (rocky/l/libsmartcols-2.37.4-21.el9.aarch64.rpm) = 62348
+SHA256 (rocky/l/libsmartcols-2.37.4-21.el9.i686.rpm) = eac9a17b0a9982116d5c1e30732fb582b9a006625dc8f364fb07164c49ceb1ae
+SIZE (rocky/l/libsmartcols-2.37.4-21.el9.i686.rpm) = 65152
+SHA256 (rocky/l/libsmartcols-2.37.4-21.el9.x86_64.rpm) = e3cd7c91d1e96f53440edfc60041f04a028c0ab3216e40213ea5868451a9c1bc
+SIZE (rocky/l/libsmartcols-2.37.4-21.el9.x86_64.rpm) = 63120
+SHA256 (rocky/l/libsoup-2.72.0-10.el9_6.2.aarch64.rpm) = 8a3ee9fbab89e01674a1cc72f6287ed793c9db99a9cdabe134c8d040b56569e3
+SIZE (rocky/l/libsoup-2.72.0-10.el9_6.2.aarch64.rpm) = 390282
+SHA256 (rocky/l/libsoup-2.72.0-10.el9_6.2.i686.rpm) = c49556dc9c67ece4fe4142815068ddcbfabe175cb0e015a5482a49199e0b2f57
+SIZE (rocky/l/libsoup-2.72.0-10.el9_6.2.i686.rpm) = 418375
+SHA256 (rocky/l/libsoup-2.72.0-10.el9_6.2.x86_64.rpm) = 5a18681d01127ba2c0e251fbc4dcf4eb62685601a8aae20e3930d7137510af10
+SIZE (rocky/l/libsoup-2.72.0-10.el9_6.2.x86_64.rpm) = 397144
SHA256 (rocky/l/libstdc++-11.5.0-5.el9_5.aarch64.rpm) = dda158bff05238aeb6dd2560603ef21f41cc252ac0ba404d4ec444c3f13c4c0e
SIZE (rocky/l/libstdc++-11.5.0-5.el9_5.aarch64.rpm) = 711196
SHA256 (rocky/l/libstdc++-11.5.0-5.el9_5.i686.rpm) = 755ff10fecb4f2c0bf09a620a6d3af84d041e57e92c6766102589a48fd31ac95
SIZE (rocky/l/libstdc++-11.5.0-5.el9_5.i686.rpm) = 803189
SHA256 (rocky/l/libstdc++-11.5.0-5.el9_5.x86_64.rpm) = c2396f89268ca7d21f0571bfd38ad33657b4a845e446d8662d41c432f1c194de
SIZE (rocky/l/libstdc++-11.5.0-5.el9_5.x86_64.rpm) = 748678
-SHA256 (rocky/l/libuuid-2.37.4-20.el9.aarch64.rpm) = 0180e850a12b12877048a1dc1bcecc58e48f439fba4ca09bbf394b3f4c60a21d
-SIZE (rocky/l/libuuid-2.37.4-20.el9.aarch64.rpm) = 27238
-SHA256 (rocky/l/libuuid-2.37.4-20.el9.i686.rpm) = b027fc81606102fc8accee466dcc2e454332d40852645710d853a1495f06baee
-SIZE (rocky/l/libuuid-2.37.4-20.el9.i686.rpm) = 28328
-SHA256 (rocky/l/libuuid-2.37.4-20.el9.x86_64.rpm) = 24a4082728d22bfec44b9c77f060ab8b33ced51b8831881962ca8fa93c12db43
-SIZE (rocky/l/libuuid-2.37.4-20.el9.x86_64.rpm) = 27425
+SHA256 (rocky/l/libunistring-0.9.10-15.el9.aarch64.rpm) = 640263402602c1f5a77a2ecde6b73cfd71e6bb574619f6ead58fdf61c0f4f63e
+SIZE (rocky/l/libunistring-0.9.10-15.el9.aarch64.rpm) = 498368
+SHA256 (rocky/l/libunistring-0.9.10-15.el9.i686.rpm) = bf11f42137900620f5c6f2464d675752688675ff649143147bd771ed581c99e3
+SIZE (rocky/l/libunistring-0.9.10-15.el9.i686.rpm) = 510707
+SHA256 (rocky/l/libunistring-0.9.10-15.el9.x86_64.rpm) = 7e8b90a282ec310de6766619056296bdf666f3040f22cff211cd52710b39ece5
+SIZE (rocky/l/libunistring-0.9.10-15.el9.x86_64.rpm) = 506614
+SHA256 (rocky/l/libuuid-2.37.4-21.el9.aarch64.rpm) = fa438440f035b3e2c87d45c0ef4485f7c91458f4ed0f73b6fcc0f18533b406c5
+SIZE (rocky/l/libuuid-2.37.4-21.el9.aarch64.rpm) = 27157
+SHA256 (rocky/l/libuuid-2.37.4-21.el9.i686.rpm) = b0cfbc18ae67f2b4cc8605229c58fdd6dcbfa5c230e1991da3c1af9669029831
+SIZE (rocky/l/libuuid-2.37.4-21.el9.i686.rpm) = 28240
+SHA256 (rocky/l/libuuid-2.37.4-21.el9.x86_64.rpm) = 97c132661651a81f8a0abd41ce11a88b25c773ef2633be961717dedf2e65f07a
+SIZE (rocky/l/libuuid-2.37.4-21.el9.x86_64.rpm) = 27457
SHA256 (rocky/l/libverto-0.3.2-3.el9.aarch64.rpm) = d12d7f526c5ef9957f6e1d9be4b2b77ff892040e08112f0a8804677e3c668b64
SIZE (rocky/l/libverto-0.3.2-3.el9.aarch64.rpm) = 20851
SHA256 (rocky/l/libverto-0.3.2-3.el9.i686.rpm) = aaa5c950e270962b5d5c1f59225dc96e205a58b4985430589adc34c753216b74
@@ -283,12 +313,12 @@ SHA256 (rocky/l/libxcrypt-4.4.18-3.el9.i686.rpm) = a9df06cdddf956ae3de2052767bc8
SIZE (rocky/l/libxcrypt-4.4.18-3.el9.i686.rpm) = 124057
SHA256 (rocky/l/libxcrypt-4.4.18-3.el9.x86_64.rpm) = e3c178ed2e04ac25699d5af612fad51694a23f5d544b72cab2f65d35b8db5f28
SIZE (rocky/l/libxcrypt-4.4.18-3.el9.x86_64.rpm) = 117617
-SHA256 (rocky/l/libzstd-1.5.1-2.el9.aarch64.rpm) = b997fa077e854b7541c044dd2c213e9ecf18b67176a9e7f70dba11dc53f48d5e
-SIZE (rocky/l/libzstd-1.5.1-2.el9.aarch64.rpm) = 314410
-SHA256 (rocky/l/libzstd-1.5.1-2.el9.i686.rpm) = be7a85f4e09963396cdc297cfaea7d0ee3551b733d5841ce8c5083f465afe8f5
-SIZE (rocky/l/libzstd-1.5.1-2.el9.i686.rpm) = 340877
-SHA256 (rocky/l/libzstd-1.5.1-2.el9.x86_64.rpm) = 517b3080de2e0891cc346ba6b1548ef438b95dbede0e6e7a6deae89fc241f5bc
-SIZE (rocky/l/libzstd-1.5.1-2.el9.x86_64.rpm) = 337469
+SHA256 (rocky/l/libzstd-1.5.5-1.el9.aarch64.rpm) = 2bf515e49598e6226b47c5c1cc24e51f9550b15cef36380b283ad3959dbd0fe8
+SIZE (rocky/l/libzstd-1.5.5-1.el9.aarch64.rpm) = 279988
+SHA256 (rocky/l/libzstd-1.5.5-1.el9.i686.rpm) = 9bf54e27e5a0ba9ca43e807bed46819896168f887ca1cd83e66af87f160cbebb
+SIZE (rocky/l/libzstd-1.5.5-1.el9.i686.rpm) = 289392
+SHA256 (rocky/l/libzstd-1.5.5-1.el9.x86_64.rpm) = c5c8b675cfad29fee013a84a2f70bcb958f400b654ff63455bb80597daae86ab
+SIZE (rocky/l/libzstd-1.5.5-1.el9.x86_64.rpm) = 301084
SHA256 (rocky/m/mpfr-4.1.0-7.el9.aarch64.rpm) = 41ce16a26c839c36cd84a836361ecd3ca4bc966bddc945af8cb70886331511ee
SIZE (rocky/m/mpfr-4.1.0-7.el9.aarch64.rpm) = 244002
SHA256 (rocky/m/mpfr-4.1.0-7.el9.i686.rpm) = b9352d80d67ac8b610269108a18bb0052ffec69b76ed4b318ebee58f4772f114
@@ -385,14 +415,24 @@ SHA256 (rocky/s/slang-2.3.2-11.el9.i686.rpm) = 012839622f868a21a6e9340636e10068b
SIZE (rocky/s/slang-2.3.2-11.el9.i686.rpm) = 406583
SHA256 (rocky/s/slang-2.3.2-11.el9.x86_64.rpm) = ce9de0b6765d6bc5a13dc0d70649c60f99b5566b8b779bc9d715170375192947
SIZE (rocky/s/slang-2.3.2-11.el9.x86_64.rpm) = 382399
-SHA256 (rocky/u/util-linux-2.37.4-20.el9.aarch64.rpm) = 19aed3883a7cf679e803c4ce1b59cdde339e756f4b9e431bb4b6f966a4b2aef1
-SIZE (rocky/u/util-linux-2.37.4-20.el9.aarch64.rpm) = 2294383
-SHA256 (rocky/u/util-linux-2.37.4-20.el9.x86_64.rpm) = f9be4cbe6cb6cbda39ef5d471cd7f4aed50070927ff0259d092ad34d46cc8196
-SIZE (rocky/u/util-linux-2.37.4-20.el9.x86_64.rpm) = 2296252
-SHA256 (rocky/u/util-linux-core-2.37.4-20.el9.aarch64.rpm) = 5707b7c504f04a85ccf95f5f2ac329398dc480356ae7dc5e3b7bcb7559af6479
-SIZE (rocky/u/util-linux-core-2.37.4-20.el9.aarch64.rpm) = 445975
-SHA256 (rocky/u/util-linux-core-2.37.4-20.el9.x86_64.rpm) = f9a570f7927d3371d48b2207dfb2aec3dbe15862b5846e39fadd0f568d6778b9
-SIZE (rocky/u/util-linux-core-2.37.4-20.el9.x86_64.rpm) = 447799
+SHA256 (rocky/s/sqlite-3.34.1-7.el9_3.aarch64.rpm) = c28b24e8614c96b50bc91de6c54a7b931dcc842759d7864328287d8cfbfe5bf2
+SIZE (rocky/s/sqlite-3.34.1-7.el9_3.aarch64.rpm) = 753848
+SHA256 (rocky/s/sqlite-3.34.1-7.el9_3.x86_64.rpm) = 3db7e0a7937231a5b23a8537bec0ee58ab03e16dad01564ccfc7d0b844fcfc39
+SIZE (rocky/s/sqlite-3.34.1-7.el9_3.x86_64.rpm) = 764919
+SHA256 (rocky/s/sqlite-libs-3.34.1-7.el9_3.aarch64.rpm) = 2cb657f0cbcac497228fec8d29621f7e093af3a0b59a7d78703eb59032fb40a8
+SIZE (rocky/s/sqlite-libs-3.34.1-7.el9_3.aarch64.rpm) = 628618
+SHA256 (rocky/s/sqlite-libs-3.34.1-7.el9_3.i686.rpm) = 5003ec7b55f0d6e7ef97f157a012f004fa87a99f41a1f134995a0522b967fcb4
+SIZE (rocky/s/sqlite-libs-3.34.1-7.el9_3.i686.rpm) = 678995
+SHA256 (rocky/s/sqlite-libs-3.34.1-7.el9_3.x86_64.rpm) = 9e9b58febeff10765c104ecebc8af189507ecd6c2a600f9b0d9207394117a063
+SIZE (rocky/s/sqlite-libs-3.34.1-7.el9_3.x86_64.rpm) = 633300
+SHA256 (rocky/u/util-linux-2.37.4-21.el9.aarch64.rpm) = 6fb40a221bb130387888bc15116b7ff68e1ce87c4ed4458e1e53757aedcda2c8
+SIZE (rocky/u/util-linux-2.37.4-21.el9.aarch64.rpm) = 2291649
+SHA256 (rocky/u/util-linux-2.37.4-21.el9.x86_64.rpm) = d91647847d0bf984ca668a4464d876fef0e40805d6d73864ad7c3a0b3aa6fdee
+SIZE (rocky/u/util-linux-2.37.4-21.el9.x86_64.rpm) = 2279426
+SHA256 (rocky/u/util-linux-core-2.37.4-21.el9.aarch64.rpm) = d4ba6df41a32aff02ee942cb952cea3fe7f5eb58b6485baaffa3e4fafbd58df0
+SIZE (rocky/u/util-linux-core-2.37.4-21.el9.aarch64.rpm) = 440263
+SHA256 (rocky/u/util-linux-core-2.37.4-21.el9.x86_64.rpm) = 98b481d78be2a3e3c4d604c0e3913f34d3d73a8a567efd991ef6df754337f2c2
+SIZE (rocky/u/util-linux-core-2.37.4-21.el9.x86_64.rpm) = 441105
SHA256 (rocky/w/which-2.21-29.el9.aarch64.rpm) = e9351855af75aac7fb5c53173f262e4f87f400d7a96d48ec100a8d35269a1367
SIZE (rocky/w/which-2.21-29.el9.aarch64.rpm) = 40717
SHA256 (rocky/w/which-2.21-29.el9.x86_64.rpm) = c54b2c55264430eee2786fad79bd26c7a7c62204b1f7b568e5f097d850db9688
@@ -419,18 +459,18 @@ SHA256 (rocky/b/bash-5.1.8-9.el9.src.rpm) = 2feaf22c87e32f674c8ad7cb16ea260e9519
SIZE (rocky/b/bash-5.1.8-9.el9.src.rpm) = 10502704
SHA256 (rocky/b/bzip2-1.0.8-10.el9_5.src.rpm) = 0a5da1ab041a701e6432aac3062d0c26d02f2624d860ff584f1d380f4c91e241
SIZE (rocky/b/bzip2-1.0.8-10.el9_5.src.rpm) = 821572
-SHA256 (rocky/c/coreutils-8.32-36.el9.src.rpm) = a40366df7fef778d67a90631a0a807977a2ed6f3d15bd97c0fc9c8ba3f2209fd
-SIZE (rocky/c/coreutils-8.32-36.el9.src.rpm) = 5677028
+SHA256 (rocky/c/coreutils-8.32-39.el9.src.rpm) = 8cd352cceae8dd5ff9483b5f2de1e61f6be0aad45a10f2187fad1035eaed0690
+SIZE (rocky/c/coreutils-8.32-39.el9.src.rpm) = 5680833
SHA256 (rocky/d/diffutils-3.7-12.el9.src.rpm) = cdb9fa5192884d5bab617927a54aa83bd39d4f67963fa73e609d4e2897c37dc2
SIZE (rocky/d/diffutils-3.7-12.el9.src.rpm) = 1474771
-SHA256 (rocky/e/e2fsprogs-1.46.5-5.el9.src.rpm) = 5b67eb4089d3463aad8b0045fe7774705f33cdba398452553692bbca22ce36e8
-SIZE (rocky/e/e2fsprogs-1.46.5-5.el9.src.rpm) = 7413550
+SHA256 (rocky/e/e2fsprogs-1.46.5-7.el9.src.rpm) = fb02dc1e5c772de3a3d7e938392fa5512f18d5993927c98580ecff320ede7796
+SIZE (rocky/e/e2fsprogs-1.46.5-7.el9.src.rpm) = 7414416
SHA256 (rocky/f/filesystem-3.16-5.el9.src.rpm) = 09f78e040d8e6ff9d5218942bf7140de7708b4ad53c128aabfebb7cc7904bf18
SIZE (rocky/f/filesystem-3.16-5.el9.src.rpm) = 18475
SHA256 (rocky/f/findutils-4.8.0-7.el9.src.rpm) = bcc1a98f56e7ba7bd3e0e52f99511d12e78decf0af78cbd29998556cb068b382
SIZE (rocky/f/findutils-4.8.0-7.el9.src.rpm) = 2007589
-SHA256 (rocky/f/fuse-2.9.9-16.el9.src.rpm) = 5c9d7decbbffc641722673ec64043e2e4d4e646b31458ef7695840607c249ca8
-SIZE (rocky/f/fuse-2.9.9-16.el9.src.rpm) = 1829633
+SHA256 (rocky/f/fuse-2.9.9-17.el9.src.rpm) = 33c3b76362bcc4630b7a415fde6951927d2c458947fe25c544e7ae8471fd294a
+SIZE (rocky/f/fuse-2.9.9-17.el9.src.rpm) = 1829749
SHA256 (rocky/g/gawk-5.1.0-6.el9.src.rpm) = 2dc77bb16a6be20f4474328581a740a419387124ff2cfb1b8c2b2809469cb9ea
SIZE (rocky/g/gawk-5.1.0-6.el9.src.rpm) = 3188594
SHA256 (rocky/g/gcc-11.5.0-5.el9_5.src.rpm) = 8656bacb48e097fec2c34a35460ff0338c021ac4b1b0cb3849e47f4256692095
@@ -441,10 +481,10 @@ SHA256 (rocky/g/geocode-glib-3.26.2-5.el9.src.rpm) = cd4902dafb8f4479356f17d53e4
SIZE (rocky/g/geocode-glib-3.26.2-5.el9.src.rpm) = 83267
SHA256 (rocky/g/glib-networking-2.68.3-3.el9.src.rpm) = aa6bb6cb4406d2b1aa6d75611cc2f90eaba5f556596e79d046c42f26a9e0278d
SIZE (rocky/g/glib-networking-2.68.3-3.el9.src.rpm) = 254741
-SHA256 (rocky/g/glib2-2.68.4-14.el9_4.1.src.rpm) = 4137a8f97ec2b906dabc48b93e12d3c5d916711087cbce82dd2d233016c2ddfc
-SIZE (rocky/g/glib2-2.68.4-14.el9_4.1.src.rpm) = 5068111
-SHA256 (rocky/g/glibc-2.34-125.el9_5.8.src.rpm) = 2a0ea9e22af53f2c9f5f9819b000f970206e8b2242132ae6165f1ecd3eb3c2ea
-SIZE (rocky/g/glibc-2.34-125.el9_5.8.src.rpm) = 18631240
+SHA256 (rocky/g/glib2-2.68.4-16.el9.src.rpm) = 777801aa08ed9a92a1e8d0114394a7fabbcf44937344d0a4751752c72594125e
+SIZE (rocky/g/glib2-2.68.4-16.el9.src.rpm) = 5069608
+SHA256 (rocky/g/glibc-2.34-168.el9_6.19.src.rpm) = 9a602a4f0a3d3c5d28df7a746421b29d5b5077ab1f971562eaa023a303b1b0ce
+SIZE (rocky/g/glibc-2.34-168.el9_6.19.src.rpm) = 19642716
SHA256 (rocky/g/gmp-6.2.0-13.el9.src.rpm) = 8297b96da5460fd78d81e38c3ac1559a35eb51bea3c3d398efaacd62868d20d4
SIZE (rocky/g/gmp-6.2.0-13.el9.src.rpm) = 2500190
SHA256 (rocky/g/grep-3.6-5.el9.src.rpm) = d7e0368575da276796d79537cb4897092988285541a2ede0b5688ba42215f34b
@@ -453,16 +493,16 @@ SHA256 (rocky/j/json-glib-1.6.6-1.el9.src.rpm) = ba95317ff8dad227b304364ca50ec85
SIZE (rocky/j/json-glib-1.6.6-1.el9.src.rpm) = 1317772
SHA256 (rocky/k/keyutils-1.6.3-1.el9.src.rpm) = 49c8af3cf9a7164242d8d457dc17d57eaaf97af07859d584b091e9e39f0bede7
SIZE (rocky/k/keyutils-1.6.3-1.el9.src.rpm) = 149203
-SHA256 (rocky/k/krb5-1.21.1-4.el9_5.src.rpm) = 3fb5c4f03ccf4dc8c9e85c41a45aa6f7f419b7bb369f0de2cfcd6f83438164ac
-SIZE (rocky/k/krb5-1.21.1-4.el9_5.src.rpm) = 8835785
+SHA256 (rocky/k/krb5-1.21.1-6.el9.src.rpm) = 170406a8b6d2f3becf1afe4bcea0e08c4f44adcb3ac470037266cdb36b0b41d2
+SIZE (rocky/k/krb5-1.21.1-6.el9.src.rpm) = 8916347
SHA256 (rocky/l/less-590-5.el9.src.rpm) = 9354552d15d43d789de3b4f9561a5ee464d75f9309a2092218d546ad1b5ce9f2
SIZE (rocky/l/less-590-5.el9.src.rpm) = 380068
SHA256 (rocky/l/libcap-2.48-9.el9_2.src.rpm) = 54f35d6b547033d86b9fed8247c80306fffbb3c316a286586ab37bee660d275c
SIZE (rocky/l/libcap-2.48-9.el9_2.src.rpm) = 198929
SHA256 (rocky/l/libdatrie-0.2.13-4.el9.src.rpm) = ef54036ffe2f890f13b6208cc2b5531583d69d492688ecc03e8dee3d62b07b1c
SIZE (rocky/l/libdatrie-0.2.13-4.el9.src.rpm) = 324214
-SHA256 (rocky/l/libdb-5.3.28-54.el9.src.rpm) = 497a3a3a10a19b2bb39eb5a955710dfebe33694a4869b85032bd69ff4e2af4ff
-SIZE (rocky/l/libdb-5.3.28-54.el9.src.rpm) = 35282165
+SHA256 (rocky/l/libdb-5.3.28-55.el9.src.rpm) = 6633b628cc424c5ddd513687ca8b85228c01d27df60543bca7e1442f59d38ddc
+SIZE (rocky/l/libdb-5.3.28-55.el9.src.rpm) = 35282456
SHA256 (rocky/l/libedit-3.1-38.20210216cvs.el9.src.rpm) = 865cc64b0049617e1aa2e784520cc3f7c4d68813aefc98dffd71d3353f9e37cd
SIZE (rocky/l/libedit-3.1-38.20210216cvs.el9.src.rpm) = 529753
SHA256 (rocky/l/libevdev-1.11.0-3.el9.src.rpm) = 2edb9205f23b2659b10d2710efc5512a5f0681bfc337fbfb75bd888131be46bb
@@ -473,12 +513,14 @@ SHA256 (rocky/l/libgudev-237-1.el9.src.rpm) = 2904abffd7583e387e6233cdef9dd9224a
SIZE (rocky/l/libgudev-237-1.el9.src.rpm) = 38802
SHA256 (rocky/l/libproxy-0.4.15-35.el9.src.rpm) = 9ce7f7bf42973bea5fd91e556e554a3ad3b76f63a301b1a280d4af6d45284cd2
SIZE (rocky/l/libproxy-0.4.15-35.el9.src.rpm) = 120129
-SHA256 (rocky/l/libselinux-3.6-1.el9.src.rpm) = 2db2d5d2ad87a9b28eae6cb7c5dfab2b965a2f79d3486ac82aba68413b442071
-SIZE (rocky/l/libselinux-3.6-1.el9.src.rpm) = 265639
-SHA256 (rocky/l/libsepol-3.6-1.el9.src.rpm) = ae509bd810045681bf3c603ba0f70096809833a3127fe21218840ebaf5e469b5
-SIZE (rocky/l/libsepol-3.6-1.el9.src.rpm) = 534494
+SHA256 (rocky/l/libselinux-3.6-3.el9.src.rpm) = 7c4027c9bbdb54dd1e119a4d0c0bd82de59b1c019ea79cba6fb2e4e278efce74
+SIZE (rocky/l/libselinux-3.6-3.el9.src.rpm) = 267707
+SHA256 (rocky/l/libsepol-3.6-2.el9.src.rpm) = 918a8132aa3ee7317217e6bf50939f9fb7e00248225c12ac600260be41ba1626
+SIZE (rocky/l/libsepol-3.6-2.el9.src.rpm) = 535547
SHA256 (rocky/l/libsigsegv-2.13-4.el9.src.rpm) = 36dc113c8837b27c3c12b021e05786b69c2014519ed4c9f5354436cd80e8b1a4
SIZE (rocky/l/libsigsegv-2.13-4.el9.src.rpm) = 471565
+SHA256 (rocky/l/libsoup-2.72.0-10.el9_6.2.src.rpm) = 4b3b526a52cdf2dbaaff0e8222822294a3922db1981cba8e0a3e230dbf284a4a
+SIZE (rocky/l/libsoup-2.72.0-10.el9_6.2.src.rpm) = 1513675
SHA256 (rocky/l/libverto-0.3.2-3.el9.src.rpm) = 08f0b27aaf3b288e10ab3c1068ee09f3f2afe036879787d3f66b871ef161cb33
SIZE (rocky/l/libverto-0.3.2-3.el9.src.rpm) = 394523
SHA256 (rocky/l/libxcrypt-4.4.18-3.el9.src.rpm) = dba21a9a96b6532e452b45190b9ba38b56c2a1fbaecae037505c5315de014b3d
@@ -511,13 +553,13 @@ SHA256 (rocky/s/slang-2.3.2-11.el9.src.rpm) = 09b66b87664e1975912a3ccf0dc045ea08
SIZE (rocky/s/slang-2.3.2-11.el9.src.rpm) = 1592900
SHA256 (rocky/t/texinfo-6.7-15.el9.src.rpm) = beb821fc1b42f83852ed93eb8563be8f848a8d30a2eca2a1da7761b5de745e6a
SIZE (rocky/t/texinfo-6.7-15.el9.src.rpm) = 4364617
-SHA256 (rocky/u/util-linux-2.37.4-20.el9.src.rpm) = 94fc4dc67a4ad2724041d92d4b8418c3c71fd5d497d6bf8f4511c3c2dab43af6
-SIZE (rocky/u/util-linux-2.37.4-20.el9.src.rpm) = 6256967
+SHA256 (rocky/u/util-linux-2.37.4-21.el9.src.rpm) = f629469f0eb787619c3fd1bb156910d55cdd0d5ef0004ce719cfc5440cd2f28a
+SIZE (rocky/u/util-linux-2.37.4-21.el9.src.rpm) = 6258692
SHA256 (rocky/w/which-2.21-29.el9.src.rpm) = 2417f4282c349795befae1c8cbc357906b47fd1a9ea5eeea5f92c69430c084d5
SIZE (rocky/w/which-2.21-29.el9.src.rpm) = 162444
SHA256 (rocky/x/xz-5.2.5-8.el9_0.src.rpm) = b7cef2fb719b09209740b5be7fcd6e766b069e9a5177a51bd74894e3fe5959b6
SIZE (rocky/x/xz-5.2.5-8.el9_0.src.rpm) = 1165795
SHA256 (rocky/z/zlib-1.2.11-40.el9.src.rpm) = 0902a850988d0051410218305303ffb76c090a2606113078c73a0c1f73adee7d
SIZE (rocky/z/zlib-1.2.11-40.el9.src.rpm) = 554604
-SHA256 (rocky/z/zstd-1.5.1-2.el9.src.rpm) = ef2be564d3bfe67c70420f5fb7a78741dea2d3ba1c2a400088b841420a18eb79
-SIZE (rocky/z/zstd-1.5.1-2.el9.src.rpm) = 1945682
+SHA256 (rocky/z/zstd-1.5.5-1.el9.src.rpm) = 24459f352126ff5c32fab8a50e49473378966d22b11918edde04be3235574575
+SIZE (rocky/z/zstd-1.5.5-1.el9.src.rpm) = 2376247
diff --git a/emulators/linux_base-rl9/pkg-plist.aarch64 b/emulators/linux_base-rl9/pkg-plist.aarch64
index 543159638632..2a1b8860da03 100644
--- a/emulators/linux_base-rl9/pkg-plist.aarch64
+++ b/emulators/linux_base-rl9/pkg-plist.aarch64
@@ -240,6 +240,7 @@ usr/bin/sort
usr/bin/sotruss
usr/bin/split
usr/bin/sprof
+usr/bin/sqlite3
usr/bin/stat
usr/bin/stdbuf
usr/bin/stty
@@ -291,681 +292,6 @@ usr/bin/write
usr/bin/xargs
usr/bin/yes
usr/bin/zdump
-usr/lib/.build-id/00/28e554acd9c16064b12195dcc8dffd7caea925
-usr/lib/.build-id/00/8c49e4fa52d5c6b4421efe93a2e0a97b34953f
-usr/lib/.build-id/00/e9e02ed1f5eceff9fd22ce6b60614cff4923ac
-usr/lib/.build-id/01/583f6240dd9b8816b13a961865f5300765f96f
-usr/lib/.build-id/01/a03e4c212790df1b5b8536a369fbce672ea0ba
-usr/lib/.build-id/01/ccf7f8b258b4d32de576f1ec45d006aec2397c
-usr/lib/.build-id/02/7d2af4f8d48eb0d6f76086d9a9aa20cc32866e
-usr/lib/.build-id/02/ec43c4270173dfaaa729bfb411c39f6c05e689
-usr/lib/.build-id/02/ec509c1887bed47f214291315b934ebd5331ee
-usr/lib/.build-id/03/3d7014e704a1754ada5b4b7251f51288f24deb
-usr/lib/.build-id/03/3d7014e704a1754ada5b4b7251f51288f24deb.1
-usr/lib/.build-id/03/3d7014e704a1754ada5b4b7251f51288f24deb.2
-usr/lib/.build-id/03/3d7014e704a1754ada5b4b7251f51288f24deb.3
-usr/lib/.build-id/03/73ec6d70882a8d6be0de64027b6afac8e5ff7f
-usr/lib/.build-id/03/860dc639b33f7b611df9436e75b7ed9d282cac
-usr/lib/.build-id/03/e0dec25a905d88b1a66e3f4888bdf3e127e458
-usr/lib/.build-id/04/00eb89b7a2c633b6826a1725eeb542a342e9e7
-usr/lib/.build-id/04/25c5c3f3209030214db909f391036b77dc216f
-usr/lib/.build-id/04/4137595229c7c14f25a6e0fc15c2730048bcde
-usr/lib/.build-id/04/e90816c511b49f014942b11701f2b033252c7d
-usr/lib/.build-id/04/efefdf2cde1cbc93e7a06a27a0df1a01c5e549
-usr/lib/.build-id/05/1e2c62f858d0fc2768a432bce6a6ae314c6469
-usr/lib/.build-id/05/23a385c1cc29e8666e6b76d72c1e65faedeff9
-usr/lib/.build-id/05/8cee041af1ac78582d809da84fac235b3e33a4
-usr/lib/.build-id/05/cd47cd3f1b85fe2a3180d44149f3ec1854cf01
-usr/lib/.build-id/05/d06e8936fc01653c07ddd2aff996f6c3342dd9
-usr/lib/.build-id/07/273c74672ec5f8cb236410988c012256a10c36
-usr/lib/.build-id/07/2a1fabdb5b468d0c63c216f25a99f6e6126d08
-usr/lib/.build-id/07/b4d247838028f97395772b1123f2adb888ea04
-usr/lib/.build-id/08/1ddb412a3d7fe0c8707a0c77bf267f8c2e6be0
-usr/lib/.build-id/08/67c8958c0d2301cd56a6684cd127a3a6c7ca7f
-usr/lib/.build-id/08/a3257453f24caa1385d01e55529dd9d37bde97
-usr/lib/.build-id/08/ece9705554a20668769989c03aefda757c9e4b
-usr/lib/.build-id/09/3fb5505d8463d4b548b94427840235abdecd66
-usr/lib/.build-id/09/7bb2ce9b724a4aa558d3b5d74605bfec11941e
-usr/lib/.build-id/09/7c38b6959e1ed0c991800e3760ed23f7786e5b
-usr/lib/.build-id/09/91197b6880e2d437050c6ac13c2e9478dbbe94
-usr/lib/.build-id/0a/012043c71c0375c69b6b59b18cc1190ddeb5fe
-usr/lib/.build-id/0a/b9b26d6947f6579c584c7d7a86d0d5c8871f4b
-usr/lib/.build-id/0a/e5f47d3779a0034fb6f223b88e31c61d97d987
-usr/lib/.build-id/0c/5d8cefb95ac8ba99d3c8ffcece49a9990639f1
-usr/lib/.build-id/0d/2ecf014d0a4a7e716086a684b84b25c8d7a1af
-usr/lib/.build-id/0d/40b80f1b4c81c1a48cf26963b7b2a2dfb6428a
-usr/lib/.build-id/0d/7052cc8bf4b5c8eb0d08d69096ac19e5305aab
-usr/lib/.build-id/0d/83f71b7e625aec20b43e2b8af1a9c2eebbfa4d
-usr/lib/.build-id/0d/8cf7b47310a145132cdf078c8c728b6a8f9528
-usr/lib/.build-id/0e/316d97e94a6db78db9eb7307fd42be3dd4a146
-usr/lib/.build-id/0e/5f65272031391f298cb5c3b6b7d1dee2994163
-usr/lib/.build-id/0e/95bf3e9389a373837be8ba4351b8908261511a
-usr/lib/.build-id/0f/5e4c65dacbd3c3633f9fe64e6b2141960c6800
-usr/lib/.build-id/0f/64b9662a9331da8410b42f71e83b63dac29002
-usr/lib/.build-id/0f/735384fa1d8b8ce48647c8e0f0d2f47c4ba86d
-usr/lib/.build-id/0f/8ef51f38e46af5db95876ce29e75e31b23fa44
-usr/lib/.build-id/0f/de05b2ba67bc59e94c565b94e6a33d2d04836d
-usr/lib/.build-id/0f/fcd218d9c919b874371b4b70b3ad63887e426c
-usr/lib/.build-id/10/10651b00165f486e48686964f4b8aa9bde964a
-usr/lib/.build-id/10/bb114fdf43be740c91726253737ffcace6ae54
-usr/lib/.build-id/10/cb7f5973e6ef4e9f3a16595b8e6c4301621b13
-usr/lib/.build-id/10/d9d4601e6658b709a8464e8d31a8354af74b07
-usr/lib/.build-id/11/25fd031769dd0d900b39447f356307c445f4c5
-usr/lib/.build-id/11/351f731fefb7d05e17c32f88f7afa6e6afe1ac
-usr/lib/.build-id/11/e25a8131aa87dff1e1a2d6c6b04257e6caadca
-usr/lib/.build-id/11/e96e9ddf3de4ed63e41d44cc9d527728db242b
-usr/lib/.build-id/12/142227e77518a53a06e2705c4df9f9e9111684
-usr/lib/.build-id/12/2a5bd09c03d696cd8d76b9b3a167a6fce7ca52
-usr/lib/.build-id/12/4469f55a1e05fc14ce67b98b25f511b68f252b
-usr/lib/.build-id/13/36f318182548c0c7e0a523925a3485993a1aee
-usr/lib/.build-id/13/6fb155b0e1511d4427e32b6fcebeddc04847d1
-usr/lib/.build-id/14/1b8bebadc641dfba1edfcfbb8f7eb0695958ac
-usr/lib/.build-id/14/703307203f8ad722d46782fe8003e2fbc4feef
-usr/lib/.build-id/16/e32f31b1003250856db043211675d12d68da03
-usr/lib/.build-id/17/50f667b5910e546e33bac7b86b754d468f7d35
-usr/lib/.build-id/17/ddb0be85f497ae363da00615c61d42a64b8c8d
-usr/lib/.build-id/17/df6b541b28aa001ddc51a3132c10ab44230f44
-usr/lib/.build-id/17/fdd1e9d012608599f2d0a7c3fe92f67053c302
-usr/lib/.build-id/18/33df465fa91aaff396b5a1c7a963c446320c33
-usr/lib/.build-id/18/369eaa44e29a9b4d3c9b09a2580c02ff8e275b
-usr/lib/.build-id/18/4d62558aff37f2e342e5108a5a9f89b33d0883
-usr/lib/.build-id/18/af7fda2cba0787ec5ce301f19c08c28692af8d
-usr/lib/.build-id/19/1f53d617797d33429d889dd538bdf54c438a7b
-usr/lib/.build-id/19/61f692e311a49a82dace870268331fbe5eb27e
-usr/lib/.build-id/19/78a7dfecc1917d7e4a4c80880648127155ede8
-usr/lib/.build-id/19/e5e08f360ff8fa73b6ba6ff0be39a4f108535c
-usr/lib/.build-id/1a/2e0a366961633ad97feeaa2240f6a1e80f3a12
-usr/lib/.build-id/1a/4b74c00d9951cd46d7e8136d8b2ce98ef36e14
-usr/lib/.build-id/1a/a63105df0f360f28b2790f57754e24a41262bf
-usr/lib/.build-id/1b/42fa71a5299d33ebead63172ae39ba7f47ac54
-usr/lib/.build-id/1b/52de80e2c6482462f0172bd29f5368a6015445
-usr/lib/.build-id/1b/79c67b93a0a80f4b8bca30f84c72471ba2189b
-usr/lib/.build-id/1b/ade8bcbc42cceeae103d157bb513233ea44f41
-usr/lib/.build-id/1c/19227c52247d85a561c86b6aee287fb7fc60c3
-usr/lib/.build-id/1c/673e755912468f7ec6b65b8e821a70852af609
-usr/lib/.build-id/1c/903ff37e7804e14404f3fa48c6ec2a2cc9077e
-usr/lib/.build-id/1c/b89d5ef1adbcdf36af5e347545416c9594ff99
-usr/lib/.build-id/1c/e502ea5885da82dfddab2217ef849ac2132b73
-usr/lib/.build-id/1d/0451c454b062f4dae778ab850c0edafa9ced13
-usr/lib/.build-id/1d/27f4ce7169ac8bdb4e6e280e6b5dd9a7dd1b8d
-usr/lib/.build-id/1d/7b43f2e60db6c1b226bd8eaba65239445a68a0
-usr/lib/.build-id/1e/3e9f8dcc345fa9f60524904dcb88e9c9bdf94b
-usr/lib/.build-id/1e/67008be973e6b64dfeab6de0bb63824456c4e4
-usr/lib/.build-id/1e/8c919499ee13b6f837b4e9094e324a04a2941a
-usr/lib/.build-id/1e/bd7a60bb061c8da0f20466e75e413d3223d775
-usr/lib/.build-id/1e/c2a5e0f10c60fddeb63f2948b7052e881436aa
-usr/lib/.build-id/1f/19d589314996cf8da7ace4ed63729d03b590b2
-usr/lib/.build-id/1f/7152cd259e2082402f0469d9c195a7a3a64d21
-usr/lib/.build-id/20/3e2270451d35d8a0eaa2a4f9b195f65f4e87f9
-usr/lib/.build-id/21/50e2a6bd01b6840d91e04efaf0e4562c20e20a
-usr/lib/.build-id/21/7452ad5f1e94ec5c3ab241acd625b98b4631e6
-usr/lib/.build-id/21/96ed74dd2d28ff191057d36b95339fe794a317
-usr/lib/.build-id/22/1161078c0203fdded34d8be06728fb624127eb
-usr/lib/.build-id/22/b9864f184379217f0f44fac62032525d3cd197
-usr/lib/.build-id/23/d506ef78a76e9881d6777e14194d2e67fee302
-usr/lib/.build-id/24/24c715a351c02aa5b72ebbd06d798d3e71c1be
-usr/lib/.build-id/24/bccd65d8a79bde2195317d93f63ce5704ef007
-usr/lib/.build-id/25/0cd48b635d3ea9ea71d11ee4204a6f2f5b39df
-usr/lib/.build-id/25/119ecb08b21caf2155918b11d76059d43172f8
-usr/lib/.build-id/25/38c1e68feca53ffd9f77e1c480b180b4d7aa2d
-usr/lib/.build-id/25/5149056f16234a7f50424d9c43468f6ee9f5a7
-usr/lib/.build-id/25/8d3cf5a8bf66fd9c1c0c6015159e36f477d06b
-usr/lib/.build-id/26/0cb85d8f0184984f67e90091068fa247df75ba
-usr/lib/.build-id/26/33c0c2e2cc3da988db402fd6f8d1efc0888a95
-usr/lib/.build-id/27/3416a3af7c2f15fb2bd318d5bf19f12d14f42e
-usr/lib/.build-id/27/6f65c9e5242a45312e2cc1362bd3f02cba8663
-usr/lib/.build-id/27/dc9a781eaadc74fde64246dd29a4685186cfb9
-usr/lib/.build-id/27/e751c348b820531337afa30f4199175ac03aeb
-usr/lib/.build-id/27/f521a21633384da435194852e211d578255c36
-usr/lib/.build-id/28/40547b50293771a1f8408225c37984ea84f0d8
-usr/lib/.build-id/28/cfd18c8dace506007fcf1ec5527da11046d084
-usr/lib/.build-id/29/ea354feb218567ed9c481f389c0a6ba2269be3
-usr/lib/.build-id/2a/38c1fe4ed1011cb9a86c2f8b21600c64959159
-usr/lib/.build-id/2a/70b4c3835e3c7a3576216afcdc4b19790317c9
-usr/lib/.build-id/2a/70dd0b68a6aba00d9a7eca54fa50653fe3a5d9
-usr/lib/.build-id/2a/bbfc484c0f85b5f59e9ba2d42130443ce2888d
-usr/lib/.build-id/2b/39b903c0885e6d5d74a0c4366c46e4ecdc9ca2
-usr/lib/.build-id/2b/3ce68ccf1222b25dbb89f5b84d45bd7551f9fe
-usr/lib/.build-id/2c/1db267f28cb249023af08ca5a27030eddc37f8
-usr/lib/.build-id/2c/21c5ce360b332381d3304764e0815b90c72304
-usr/lib/.build-id/2c/ee087a6df7b68a255c63ced0dd0c0788faab11
-usr/lib/.build-id/2e/00394d8ed1368bd37ddc789ac90bd84830484d
-usr/lib/.build-id/2e/4f9868c014ae968a483157dd40dbcc04cbef86
-usr/lib/.build-id/2e/d14e84c4dea044671f02a06b86080922887182
-usr/lib/.build-id/2f/ac382f935f8a137c698004f7f4352f4c353ce7
-usr/lib/.build-id/2f/dbed728a9e261b391b6afb22cee96d18552e71
-usr/lib/.build-id/2f/f778a8d7e5ad58f57c5584a1c5bea3c81932e8
-usr/lib/.build-id/30/64e17094cf77a8f6e4570f9896c45c71927b5d
-usr/lib/.build-id/30/87282a3f41b8ee003da6b5ffad5839af70b770
-usr/lib/.build-id/30/e2cf2fef64ad892bf21121244f6bfd374c66c1
-usr/lib/.build-id/31/3da7f06966b673fa41e6578234a4d0f7345ea8
-usr/lib/.build-id/31/414509974439cebe965d21a2e7699372e343f3
-usr/lib/.build-id/31/43e5d37834fa1244ca9022a9ef6f7e9d676ac2
-usr/lib/.build-id/31/8d360ca9ac24b10786257ebb88ab12a69f5446
-usr/lib/.build-id/31/e7ffebb669a830cf818326c4ed736c18ce3539
-usr/lib/.build-id/32/29944e4ff1ae6348cf12a7fbf3b87237368e9e
-usr/lib/.build-id/32/36a5b31fbe904162c98a56fbf969b86cacd4a1
-usr/lib/.build-id/32/70f0e330ecc2daa9b9d4aff024ec0647b68c60
-usr/lib/.build-id/32/747a056f4e4efb64bfd3f8672c161bf4c707ea
-usr/lib/.build-id/32/747a056f4e4efb64bfd3f8672c161bf4c707ea.1
-usr/lib/.build-id/32/747a056f4e4efb64bfd3f8672c161bf4c707ea.2
-usr/lib/.build-id/32/747a056f4e4efb64bfd3f8672c161bf4c707ea.3
-usr/lib/.build-id/32/a2b8b40d5d4ce831a684615d3ee5ca656b45b3
-usr/lib/.build-id/32/cf645b197ee775a3592ae3d5ef85a4c450a1ec
-usr/lib/.build-id/33/13eeeeb9e9ee4feb96456ff6650dea7cdb4a14
-usr/lib/.build-id/33/2f40799882f6d8152c6c0ef02d031fe45aa5c3
-usr/lib/.build-id/33/5c71bb58d78cbce232328f154e70d3435c9209
-usr/lib/.build-id/33/aa2ae5425cba1d356cffd437bce0eba8543b8e
-usr/lib/.build-id/33/ce0d74de03e0a215065ebddabe62a9b403c80b
-usr/lib/.build-id/34/63af0614b4c9f70870d5b381e55bfa8cb9f883
-usr/lib/.build-id/34/9b642661186c6596a68fea6a970c53f0c4e952
-usr/lib/.build-id/34/d31542b2cdb87c9e0a2adaf5a089fe1bd7a57e
-usr/lib/.build-id/35/1786247a3a18b0472b15f746f43779cc6080f4
-usr/lib/.build-id/35/22a6985bf0aef3b023db9747c04532234e7ff6
-usr/lib/.build-id/35/5340c9573f2bf227487ded615c70231a26e7b4
-usr/lib/.build-id/35/a9124d3b62dddfe11545b164e3c41a1905c796
-usr/lib/.build-id/36/95757d3e24e40185f36cc0343905b1057a89e6
-usr/lib/.build-id/36/a8b6a34131940cabc39d5b800272552f57d273
-usr/lib/.build-id/36/d9870834ecf90dc0c1bd5ddb74531ced8bfa5b
-usr/lib/.build-id/37/4e962d9ba3ef78fb1b9485b58c73a1ef40515b
-usr/lib/.build-id/37/891470842a2a99824c65b7b464f47ebed0057b
-usr/lib/.build-id/38/2c142e81cedc9fe38732f7abb678b138999ba4
-usr/lib/.build-id/38/4d099bce6d6944ceaf23d255cff0771e198847
-usr/lib/.build-id/38/7dd0a895314c431af54f60cf2b12a3dfffc964
-usr/lib/.build-id/3b/aa2f316a950a0de75a6f0a8e4d6694a80130fa
-usr/lib/.build-id/3b/aea3f0cab85809d71e862c1b2bf02adec065ce
-usr/lib/.build-id/3b/d155e72f0bb584555db424bf993ee256b10267
-usr/lib/.build-id/3c/32b4c8d138f95d97073cf4ecea207d7bc7b100
-usr/lib/.build-id/3c/ab931e7bb6c868059877b8bee99acc8afa3a18
-usr/lib/.build-id/3d/4a70d90c0d82d9f88005a96ffb01702ac560b2
-usr/lib/.build-id/3e/30436ff8f17a59c4f47ed0301f80d5501ebc4b
-usr/lib/.build-id/3e/4939d19ef92f67c99a7e439f286624ebbefd9f
-usr/lib/.build-id/3e/9a094ae2273a46c62f6b86546efae5a84a6170
-usr/lib/.build-id/3e/c130c040011eb3666d22f43d3f5b692fa96c28
-usr/lib/.build-id/3f/71f326f67ba7d7bce2d5b7d3b5a6d7364a8aa3
-usr/lib/.build-id/3f/737dcda35d1ec08980963b4e17c4569cad95f5
-usr/lib/.build-id/3f/7d14abc06408404429ac937736b3f462cb740b
-usr/lib/.build-id/3f/bbb7486f2524c1451fea0a2ff68d518c0f8987
-usr/lib/.build-id/40/8b7239ab9785203b2cb897b07b7ad7b468c808
-usr/lib/.build-id/41/01660be93ed09467d5147a84ac0268395d5c63
-usr/lib/.build-id/41/01660be93ed09467d5147a84ac0268395d5c63.1
-usr/lib/.build-id/41/01660be93ed09467d5147a84ac0268395d5c63.2
-usr/lib/.build-id/41/01660be93ed09467d5147a84ac0268395d5c63.3
-usr/lib/.build-id/41/053a6d2d04742bec7d7d1f999c477dc9df0370
-usr/lib/.build-id/41/30769428670079c6f2e7035fd5f35ec2d67672
-usr/lib/.build-id/41/8c6d9426eaa2732cbd96c790e2e97956c09e9e
-usr/lib/.build-id/41/da172fcad8c82b69016217a8d860e46268acc7
-usr/lib/.build-id/42/2d698d5711c14adb162b46090239e80701e28d
-usr/lib/.build-id/42/67681cba1156a6de39de4b02fdc3f44e424b1c
-usr/lib/.build-id/42/b591a025a25942c9bc9d57e0cb64d207ad83e6
-usr/lib/.build-id/43/0863e62424734746ae82349b8d91c0697629c3
-usr/lib/.build-id/43/36f8b9eb39fb053898519839636d54f238df27
-usr/lib/.build-id/43/775f309990052ca774ff5430e52cf5bd041305
-usr/lib/.build-id/45/a3c2ffa00fafe2019ee5a48be405d71b2e0155
-usr/lib/.build-id/46/111d8ad3028e58c9c72b1b79ce00b0e9b87246
-usr/lib/.build-id/46/24bc9074d03d7eab9f71869b20fc8c61010cab
-usr/lib/.build-id/46/3b3d8bed276197e9d36125d6cbdacd64cb5aa6
-usr/lib/.build-id/46/4ea91297e872636a174f68b0901ee47af7244e
-usr/lib/.build-id/46/783416b4880f7201d151236c88b5dd2c86da1d
-usr/lib/.build-id/46/ceb3d85da7c066ac31c693dd57759907a234a9
-usr/lib/.build-id/47/18bfba9c3b8e2d38f39aa44cc88e418c1845e1
-usr/lib/.build-id/47/1f533b1453332b4d40577b12691e336b11ea16
-usr/lib/.build-id/47/75a09a12603694b1dd620169af525c10d64a60
-usr/lib/.build-id/47/916887fa0e52bab4b14ea960b5f10125ded4cf
-usr/lib/.build-id/47/99e99f0b01f3e5482cc5784a3558dd31cf3e2e
-usr/lib/.build-id/48/2bcdf5d4204b723b2c57b582fffdf54c99c379
-usr/lib/.build-id/4a/cce70b64d9caa416c6a48c1c33a78a3830c815
-usr/lib/.build-id/4a/edd1545a39c21e2882df116dad4405fbf14676
-usr/lib/.build-id/4b/ae81da85f05b8d2dbe7ad54181bdb754d0f984
-usr/lib/.build-id/4b/ced9c7c37582597e7343d4e66374c5484a3659
-usr/lib/.build-id/4b/d403d604f17c0677e40488f3c9fbf9d607787d
-usr/lib/.build-id/4c/178603ac0184e780ba7b233f9edb41084c858e
-usr/lib/.build-id/4c/e610bafeb88c27e9a11fd0771308e5d49e8cfa
-usr/lib/.build-id/4c/f49cca2955a1f1a6940e83e8273229e7d88576
-usr/lib/.build-id/4e/4f49c6a09a136eb3491c9856237f16e971a5d2
-usr/lib/.build-id/4f/2f237ded6281276ed3a1488a6aaaac1d5aab5a
-usr/lib/.build-id/4f/6ee0146d39d57eff9b918df38a1f00981b1dd6
-usr/lib/.build-id/4f/b38f408e233e5e001ea1da9edcafc46c5886c4
-usr/lib/.build-id/4f/cfb61a346219c3a01fbd4b260670a79118ac79
-usr/lib/.build-id/50/5d30bd25bf0728f79fbd0d5ce5ce5a3aa15f9a
-usr/lib/.build-id/51/6eaf32bb73f3e5d9f8dce1575bef1ae8c1b3d0
-usr/lib/.build-id/51/b08c195320b24eb666c9cb0ff02103341ff4de
-usr/lib/.build-id/52/697f5405f8c97d922906f99f25dd9d391e7065
-usr/lib/.build-id/52/82036bfd7791e973b81d0d08b5193fa6b35ce6
-usr/lib/.build-id/52/94f252f3996ea13fa15569330d0eb76e77ad86
-usr/lib/.build-id/52/b8b0973476b650c8e446bdca960227263b81b3
-usr/lib/.build-id/52/d3ffa05d6a4403f9fc351a6fb00dec1171946b
-usr/lib/.build-id/53/2eef15ffb5d6cca142eeebe1a1431c31440b81
-usr/lib/.build-id/53/b2aba40bfdbabbc78e553918ebcaf2b527864f
-usr/lib/.build-id/53/ecb40719ca87fc7f6ef15705d359321b95a67c
-usr/lib/.build-id/53/f2be8d44499f8d481181ade95d9ccd1347a6b0
-usr/lib/.build-id/54/9bd5673270e62be97c71eb734e974db529a5dd
-usr/lib/.build-id/54/a33908901201cf8fa5446adafeedba3c129195
-usr/lib/.build-id/56/7325763c1bc34acbdbf6753560230580999154
-usr/lib/.build-id/57/92deae190ad9dd8ce653d975eed7a4a902d8c0
-usr/lib/.build-id/58/1e25e4fe190fbbbbe64c3410fa7214075d8ece
-usr/lib/.build-id/58/812bf2faadef019faa6adbecaa65397f468240
-usr/lib/.build-id/59/872f43be9f38166a0f47d96aea016cab048351
-usr/lib/.build-id/59/a175dae175525e58ff35cac8606c41701e0190
-usr/lib/.build-id/59/e448b9becea98b4adaf3aa8db8f2615953c3aa
-usr/lib/.build-id/5a/07e13ce76c4a58b6e36833b2c1a8e38a1793ce
-usr/lib/.build-id/5a/1c585343dc90c604aa019918367da132fc6f8d
-usr/lib/.build-id/5a/3e89565e8d6715b7311c377d140e1059b755e8
-usr/lib/.build-id/5a/5dd17e4bd2e52471f3de5a8c2f44462bb4b987
-usr/lib/.build-id/5a/792b980c50ab1e4ea62e31d6fac6028fbf17f6
-usr/lib/.build-id/5a/7aa7835c5d1e93b3d4dc5e06dd30e769e45427
-usr/lib/.build-id/5b/4c355874c3a34d50a7330dabd0c643470761ba
-usr/lib/.build-id/5b/8cba0a0a3f5b539fe58766083c839f1489c353
-usr/lib/.build-id/5c/bae2b689656dd0b63e1dd6000bedfc1002a64d
-usr/lib/.build-id/5d/b91b2a54c56348eb3c53016003fd4eb0e9dd4b
-usr/lib/.build-id/5e/a669641835fe0b3a7658d3c207d1ef19373d57
-usr/lib/.build-id/5f/70e609764522a774c19ca08facadba1108b242
-usr/lib/.build-id/60/a6a669a3641ed094e4c1d615145668a9709ee8
-usr/lib/.build-id/60/fc3cba5b188e56db9ae184d7b391c5dbe6a6b3
-usr/lib/.build-id/61/52da2e3aaf9f6ee1c0086d98c80bcb36003633
-usr/lib/.build-id/61/555cc285f6fa044d229d9010d64f35ab09262a
-usr/lib/.build-id/61/bf0deb1bacddde16a62637037b3598d9f909e2
-usr/lib/.build-id/62/10bd9a59dec23f6969c8c3c05f2886b4a5ec6d
-usr/lib/.build-id/62/53a1b0054ef3f06ac0a9f0983f52fa79722629
-usr/lib/.build-id/62/66870544ab714af415f40920038bd2850f9c90
-usr/lib/.build-id/62/90bed5ee48b8e82dfce4680b636f96a1d4e2b7
-usr/lib/.build-id/62/a225b8996813e373efbc664e7ba98745f9e249
-usr/lib/.build-id/63/391d964b60f5f53b62594f793f3b3ca5ebd0bf
-usr/lib/.build-id/63/4230e98b4a30e471708f77b072ef3adb19c04e
-usr/lib/.build-id/63/48faa7d1b1b21beeaaa05cf62d2bbee6b3a1a7
-usr/lib/.build-id/63/65779383e3c28c56c410ee293bd7bf6206a73f
-usr/lib/.build-id/64/adcfaf67952bd02642c3f3684b3dbb44ed013e
-usr/lib/.build-id/65/0acf559cdf61bb308a900f38dc21cd8163ec51
-usr/lib/.build-id/65/124f7ea804a19f88b7abd135eb2c93f6006ec3
-usr/lib/.build-id/65/608143ad38c3f236e2266222c70a4800afc655
-usr/lib/.build-id/65/ca3a887a1060062108aa70583fb6809a97e522
-usr/lib/.build-id/66/873ec9dc07d97c1a99785e653c1e719832bfc5
-usr/lib/.build-id/66/9b36adaa916a8e6fed83e511db4404096004c0
-usr/lib/.build-id/67/0b4b4e4b774e898f90f953c8f2facef616a293
-usr/lib/.build-id/67/879008fb6bd24f08f920f538efadd7603ec5b3
-usr/lib/.build-id/67/8a2e246ea5c76ef90a728d4738e2e23efee06e
-usr/lib/.build-id/67/ed6e502db24c8c6beda334303ab9387f631603
-usr/lib/.build-id/68/807ccc643c3c1f5aa55ebf6549c9b08f408fb8
-usr/lib/.build-id/69/e6517be863c8d34715771bbe79548c65317756
-usr/lib/.build-id/6a/466e07c5d3a3afeaabb2344e60f9c21a2c1a67
-usr/lib/.build-id/6b/3d4878cb8e2b0948e7f73272f603a892b353a1
-usr/lib/.build-id/6c/1d29ac89b49488a51a73bcc297af10a748eb3e
-usr/lib/.build-id/6c/d7b02f9387d41dbd75ad5d5026be7395db391f
-usr/lib/.build-id/6d/07a1add50b565eaa5e9f9ece1c2a490ae795b8
-usr/lib/.build-id/6d/2e76c3173a8695877caf2e6b0c04d89d384df6
-usr/lib/.build-id/6e/978abbbfff7458fa2bf2251f5bb8bbef6f7530
-usr/lib/.build-id/6f/2e1b4d8ef75fd769acff19b2d6ed5d771b044d
-usr/lib/.build-id/6f/443b23b1c3278c48be97e20b7c4ba937233806
-usr/lib/.build-id/6f/7e8e9fce4f337723e11c2b261369948fc85f05
-usr/lib/.build-id/70/246358827e77d4751b1a2aa4cbcc9d6ba5db39
-usr/lib/.build-id/71/1ee170506e3987b4b29d8a5f0bb072589c3624
-usr/lib/.build-id/71/b42758b562f3e962f7c1d1607460fdbbb1117f
-usr/lib/.build-id/72/c9393c41bb01868be3dfe9147bfcf9ae2eeb94
-usr/lib/.build-id/73/de08d957bb1ec53c9e18ce7f2505ec4c87c6bc
-usr/lib/.build-id/74/5c72cb342ba47249b3b34c213b774bc7bb1f4d
-usr/lib/.build-id/74/9cdddd0a80a8dac20ea44918aa7363d13118da
-usr/lib/.build-id/75/6107fc92abcc7b100fd0fe34ae09332d72b456
-usr/lib/.build-id/75/857064fd182628f8e6ddd98cb01f112c5329d3
-usr/lib/.build-id/75/cf85bcf85e11ffe1d570ae23d6cabe75ddd31c
-usr/lib/.build-id/76/06497195592772b76632c35487fd90d273ca4c
-usr/lib/.build-id/76/28f3889ba60f9d297631806d4e8c72947af1ad
-usr/lib/.build-id/77/187b857e50f6c380630d9c97fcc7a38298682d
-usr/lib/.build-id/77/37b3fec619e82428e185bd8bdfe70d2cd93f29
-usr/lib/.build-id/77/b00f081dcd548ae4aebdac3f0237994ceb7023
-usr/lib/.build-id/78/4e133f4efb8993bc56ddf3bd894a5ccc810c7e
-usr/lib/.build-id/78/796927e4ff0033cdd0c66c19a7ec4cdf2171b7
-usr/lib/.build-id/78/9f2485aa5ce4421b91e795893008bcb79b60d7
-usr/lib/.build-id/78/ca9a7996903f1f3ae5bee470abcb36b776fd2b
-usr/lib/.build-id/79/2a68e4ce0c9673f8942ca7a8f4192a366a0db9
-usr/lib/.build-id/79/733712bf173a0c1d40ec8df7da13c0cdab5557
-usr/lib/.build-id/7a/019a7b0cb962dee98f28eaee55d9c420c2fdeb
-usr/lib/.build-id/7a/7baeb477bb525f5107eb5dfd173c192cb6d2c5
-usr/lib/.build-id/7a/a14436fc98358781d5d52f18a9ae9ff0114c56
-usr/lib/.build-id/7a/f2cb3b7ddc1c6c6f96bfeda8dc6d5cee8f6456
-usr/lib/.build-id/7b/d444e7f789c250625dc8f8b312ae37978b2a27
-usr/lib/.build-id/7c/09477b5e1fd07287bb2eb0c7d938e65a6bd369
-usr/lib/.build-id/7c/c2ba49c384b5229da722bbe2f288025c80a481
-usr/lib/.build-id/7c/e83f1301a3ce00efdc056603a4c3fe96d143a9
-usr/lib/.build-id/7c/eb73fa8e07afa864b3ce8567513add1f81d4a6
-usr/lib/.build-id/7e/3ad0c3fb2fc72459b8c6f42325be06ec08c4b8
-usr/lib/.build-id/7e/a7069c85b6a9eccc8f7ce303dcc17f05173260
-usr/lib/.build-id/7e/fece4b45ff135c7d590c8ea05271c504ecfc65
-usr/lib/.build-id/7f/394e0909f13d6c85233ae2a84e50f4c38c06b8
-usr/lib/.build-id/7f/70b1b20e3837ec7b8e631cd801de87a0791e1d
-usr/lib/.build-id/7f/7ce9ae761776d514cc180db994b24e0be08bb1
-usr/lib/.build-id/7f/8079fccfe143fa6866ba5fcd76866be5f091dc
-usr/lib/.build-id/7f/b9ceb02b93358fa227e543053af25e05a97d9e
-usr/lib/.build-id/80/3f3e904445cc5beb0bcb76e029d65a4da6b8b9
-usr/lib/.build-id/80/40e9c3d52f5ee7e16f1544d3ea4f64f90b1a52
-usr/lib/.build-id/80/a4bfef0360bc88b8ac6488e56e960d92cdbb29
-usr/lib/.build-id/81/1bfde267ec6d48fcf954c6452a15b9df826df8
-usr/lib/.build-id/81/b52e020409c7e46958ed2357b668d8800f974c
-usr/lib/.build-id/82/01ee44eee4a480f610e2b48f1245a427a34ab7
-usr/lib/.build-id/83/cc91e6148b03ab988aba7a95968df5d26e61fb
-usr/lib/.build-id/83/dc683b7f1d53b6519b02fb0d9bcb8da482ca8a
-usr/lib/.build-id/84/00863d0e3867147e7ebc76ab1399a19fe5c3ce
-usr/lib/.build-id/85/3aa448381048f4ebb6a2610d58e3a5e828f662
-usr/lib/.build-id/85/719f365dd81205a5e43cfa153c53959537e0e1
-usr/lib/.build-id/85/929f5e2e360b436f603904fbbcaef23d419ee3
-usr/lib/.build-id/87/b0fe613fb9ee13d402bebafe5095155027707c
-usr/lib/.build-id/87/c01a6aefa09aa72889f724e3f455fb5bc5a3fe
-usr/lib/.build-id/87/d393e8c011e20d504dd3083be6ed63afb18cd2
-usr/lib/.build-id/88/1ce654b2fb61d63b3a9faa4de789095b735f0a
-usr/lib/.build-id/88/1edb5e32dc1b86357da17b5664da0f9ba9b7ff
-usr/lib/.build-id/88/a19dd79b79e0e66479d45aaf079163e9affae4
-usr/lib/.build-id/89/500a8ce6e528ed406bc97a0183df1bf7842c86
-usr/lib/.build-id/8a/1b0122ab6c9f949dd6e4018f281dffd8ae0eb7
-usr/lib/.build-id/8a/2b357bfd269c7f585f7c3d1b92a9760dbb5e32
-usr/lib/.build-id/8a/3c9d6d702ccdfbd367e160b9e9098deff47262
-usr/lib/.build-id/8a/42798b1e7e3bcfee668a4ff274a3d5745bce3d
-usr/lib/.build-id/8a/8af90f268f7f29a142078468855948633d8a67
-usr/lib/.build-id/8a/9ad4d659f37c867796164be5ebe460c19b6b08
-usr/lib/.build-id/8a/bc02b35aa54c9e348afc0a58a034a32cf88f79
-usr/lib/.build-id/8a/cbc27ec15f2797322a6097d4659319ee781438
-usr/lib/.build-id/8b/01ae6fbb2f653a016c1f86d5fba874dd53e97c
-usr/lib/.build-id/8b/05243fff1b1ed9bf4a99e04d091572fb205a4c
-usr/lib/.build-id/8b/9fd4e9dde71d3b2d3a1f504e46801669c5eaa7
-usr/lib/.build-id/8b/c73745a27220272ea09b8de846630d5361cd26
-usr/lib/.build-id/8b/cd598a33e05e44abda90d775828622c1304c38
-usr/lib/.build-id/8c/6a2860073f2c1732777b642e1024995615b6ea
-usr/lib/.build-id/8c/6c2f3935eb9aa28185dc46e2c522499e66b582
-usr/lib/.build-id/8c/8a3c208c0e4ff503335d587e8d580a52c45425
-usr/lib/.build-id/8c/968e5227668ad4224a93a8372f4be0f84e887e
-usr/lib/.build-id/8d/13860e1d19880e9d54eca53aa0d397d1f5dc6f
-usr/lib/.build-id/8e/16f5dc41f51d4d3e09d04f81fdd8926c33cc88
-usr/lib/.build-id/8e/a0dae7c0f0bfd15847b81407179acbe98a07f0
-usr/lib/.build-id/8e/deabd074677dfea936b9fb288037b2bdf5cf4a
-usr/lib/.build-id/8f/197c2693a3ca1913042933308daf475e689231
-usr/lib/.build-id/8f/83ffbfc86fea6b596ed7e4c167547e4abf99ed
-usr/lib/.build-id/90/46dd34d98a05cf6fdbb12a37e665dbff86a6ee
-usr/lib/.build-id/90/7c2e782c5e4f55a8b26cfb74be03c83f47f2e5
-usr/lib/.build-id/91/cab8b12acad5525d7c38b7e4cf2851173079a6
-usr/lib/.build-id/91/d0fe09a703938e1e05af9b9fdce2ea81981a6f
-usr/lib/.build-id/92/3846e434b797490185827a948446a1e4298a6e
-usr/lib/.build-id/92/3ddd3c9d8e4655b0372430448104bff3be5236
-usr/lib/.build-id/92/4aff50a5b2b78090c88022dcbaafa7688ae0f0
-usr/lib/.build-id/92/568e45aa3a0863b4f0061ce9b6df1a30eba532
-usr/lib/.build-id/93/17230f60df2ec1216b95b9b24392c12cfa3fe4
-usr/lib/.build-id/93/22658928f6036bda7b69ac0756c942cbd8d520
-usr/lib/.build-id/93/490f4e659e7c20938efa1f5c1f25739bf1e1a0
-usr/lib/.build-id/93/b8f83fa3fcfc1be716d8cc0816f818ccd5f7ec
-usr/lib/.build-id/94/04a135442b47586b2dbe6ce08f726e098fccc7
-usr/lib/.build-id/94/3ff7ccd59b3094c2acbc4e669c26dd2535438c
-usr/lib/.build-id/95/e917a404c0f9e7c76ad613f8f75f13ad62c939
-usr/lib/.build-id/96/39fee3f5dade41b816660fb49552246e723bc3
-usr/lib/.build-id/97/9b2f00c5dc97a2f8ccbf7b734eb7fb93ddb860
-usr/lib/.build-id/98/13c3053264cae2e3cf57e3bed3ebace4768563
-usr/lib/.build-id/98/2c5e96a5def3d0c9865bb58d635be56faf6daa
-usr/lib/.build-id/98/4830b9ecdae9e4811a1a576f0ea751ccf86bc9
-usr/lib/.build-id/98/78b44025aecc118c75e06224ed965b5682a5e0
-usr/lib/.build-id/98/8333dda6bf1fa1faa6d3ea0b58ffbbfdb4e49a
-usr/lib/.build-id/98/baaa56c4f0c168f8d0c95790c4306ba048d11d
-usr/lib/.build-id/99/136b0135aea13eaa2686e2d0f15f67023d5729
-usr/lib/.build-id/99/30610324bceeac249bcfeb91bc0449065ff46b
-usr/lib/.build-id/99/5e010799c564cc76b579477e47ef6a9df77b72
-usr/lib/.build-id/99/badfe9e60045e168e8a5f55b6fb5a2f0f36a1f
-usr/lib/.build-id/99/e8169b7ba36dd6a7431ac1099f1d7d4536bcd5
-usr/lib/.build-id/9b/2f872ed5287579bbf4cd78a330204b548aa09a
-usr/lib/.build-id/9b/9e1b838b35c90ea863a317fe996a09a1997c89
-usr/lib/.build-id/9b/f2ae80033953784c803dad2bbfe3a44f788e31
-usr/lib/.build-id/9c/bd95463c2c199d3f179dd18be100033601fd15
-usr/lib/.build-id/9d/70980161eb99604d73a0da3f2bf57522bf8ed4
-usr/lib/.build-id/9d/ae080c054590aa8cf6c64331432bfddb18950c
-usr/lib/.build-id/9d/ce776fc5e9be48efce88cc94d026cb28c02864
-usr/lib/.build-id/9d/d74ec8f9396d8fd0f31eacb45dfb8c8b628666
-usr/lib/.build-id/9e/34dca6d0680e869d9e3999d079a65f08a5161a
-usr/lib/.build-id/9f/092c70ddd3cb3657b7600616d986774cc6e869
-usr/lib/.build-id/9f/156ddcc0985fb9015cdde479be8d51bb3bd6fa
-usr/lib/.build-id/9f/7630d26fce0309f783dc4727bd0dbca5ca2b3d
-usr/lib/.build-id/9f/94113bff0ea36f23acb37f44ccabc388e20e20
-usr/lib/.build-id/9f/946c792da6e3d2ec9e944b82a4133973b81eb0
-usr/lib/.build-id/9f/b5d59c44bf7deb03003f238c4c59683c145f78
-usr/lib/.build-id/9f/bc285cbdf87ec1bdad67d16ada5342419ff88d
-usr/lib/.build-id/a0/466b2bcf78108d4d951e0cda01f36642ed4f01
-usr/lib/.build-id/a0/ddfc50b76f0bc651c12a6862f0b0dcfac3bf00
-usr/lib/.build-id/a0/e52c5f32c0e7cc28fb85569a0608c695be0183
-usr/lib/.build-id/a1/1939a9ce91a10f646eeac1c97f445ff99593ef
-usr/lib/.build-id/a1/4c03278c9f3444954c77012ce45e55d4e59edf
-usr/lib/.build-id/a1/a3dea3b2d92a088f73330bc861527ea0a61d57
-usr/lib/.build-id/a2/a91cf5b3f87d73b510d639bdc02be12ec9c62c
-usr/lib/.build-id/a2/aca59cab9932947e82dfbe3aff9d70f3e19ef6
-usr/lib/.build-id/a3/3da990bb3833aae1b11317f2024c6c0be8a646
-usr/lib/.build-id/a3/52c54b8a26e2eab606ce013f0be43f48f79899
-usr/lib/.build-id/a3/67a7f7e3465986299f99964a5f20e4b7c7030c
-usr/lib/.build-id/a3/c8baabb0ec84a78b1318c7b199e29c6e2a563a
-usr/lib/.build-id/a4/254a26afe6f6b9692bddce5b11557bdb00e495
-usr/lib/.build-id/a4/71b5ed97e5b4d9f09a07efc964d8b166990e9e
-usr/lib/.build-id/a4/9f5c27a2dcc585826275c240f35f186447b216
-usr/lib/.build-id/a5/4b396fc6b4cf4aef40b333bf834b044a91ef34
-usr/lib/.build-id/a5/6161e022dac5155bf5bb358aec578f793ef641
-usr/lib/.build-id/a5/64dbe0e5d342241321849e2a71431c45cae215
-usr/lib/.build-id/a5/d95e1db2df52d29aab66f48a9da682010bf5d6
-usr/lib/.build-id/a7/75f1e5adf16bb15e97d71df001f5ba23123081
-usr/lib/.build-id/a7/87ab9bc430d8e3e284a352307b8906fa1d5e50
-usr/lib/.build-id/a7/90c66d4575fd7e286bab9415b0c7293374ae1c
-usr/lib/.build-id/a8/1c662f20b941f05da4c346553d722061ecbd4a
-usr/lib/.build-id/a8/4a70aede94b365683184141161b0d907619555
-usr/lib/.build-id/a8/b54e8149ca03dbc8cbabfbaa627674f2f89ba6
-usr/lib/.build-id/a9/2181ece19fb80c188fb1e9e7efcaf7e21317f3
-usr/lib/.build-id/a9/26a0a4c4e968e565c6d91f91067eea59c8b42a
-usr/lib/.build-id/ab/171f860154f5d2f1099e8ecd9df6fc96111c56
-usr/lib/.build-id/ab/4d525c85e05293a15a79ec60a808822541c401
-usr/lib/.build-id/ac/5abbb4e34c23ced45fbb704b32f4b153645422
-usr/lib/.build-id/ac/c3a3720299bd993c0255466ee3a481d41d6ca4
-usr/lib/.build-id/ad/2fcd710b272844c9028ca12e9a0c4347479818
-usr/lib/.build-id/ad/41207e46f3baf02a08e70acac0c086a8be5c66
-usr/lib/.build-id/b0/6a67c9bedfcd7ef64937748d21d402c31e18d3
-usr/lib/.build-id/b0/78022e227686601d031b9a846409cedc1ed34d
-usr/lib/.build-id/b0/b12c47ed01e445f0e4f534edf738a76f25df1e
-usr/lib/.build-id/b1/45f503b2fce621bb5f6df874d18d71244c1cf6
-usr/lib/.build-id/b2/05198e94889dcb93415bb03b2ad3a695856934
-usr/lib/.build-id/b2/86935b39c09b86a4d7a3b3aaa6303d4a5180bf
-usr/lib/.build-id/b2/9343b9b140e4bf1581761e4e179553f373b8e4
-usr/lib/.build-id/b2/f2ec797ed1487053070b0aebeeee414ba2330d
-usr/lib/.build-id/b3/25ccf2ea9388383fb7d8146b53c1ea0c4d2509
-usr/lib/.build-id/b3/52fe2e657c492d5024f0a08d8d9532cd660412
-usr/lib/.build-id/b3/624afd6380e4b8e2496246434f2d84001a11b6
-usr/lib/.build-id/b3/de6078f171e70fcb011f57ba3c2d99a9518a96
-usr/lib/.build-id/b4/85ffbaa9747a9442d4eedf2643e6f949c6a22c
-usr/lib/.build-id/b5/be8c6475fc7b63ac959d7fd71b020b0ec8fcb3
-usr/lib/.build-id/b6/2ea3532d14825713d1bbdcf9c9c93d06c6ff12
-usr/lib/.build-id/b6/97d44edc30bb0134e19c3f0a194c193f3eff38
-usr/lib/.build-id/b6/ca302bdcba646afa138ee64b47cf655c29ac01
-usr/lib/.build-id/b7/27435848e12e40147d01c046ff204b6d18579d
-usr/lib/.build-id/b7/ba2187c015c879a572f12e1289a7096c92e2a5
-usr/lib/.build-id/b8/375c53370816f0bd342c7ae7e80e6b5250a8de
-usr/lib/.build-id/b8/b1d0b957d23bee9e21d52e7c35eb9b6678442a
-usr/lib/.build-id/b8/c1fb97caca36225cf3d0bf9c55ee39f5c1678e
-usr/lib/.build-id/b9/3e1f585386ae3f8d55c49dea92f6bd85623d1f
-usr/lib/.build-id/b9/9f3960d9cc205a397f3045eb2eaf95a34fd835
-usr/lib/.build-id/ba/0e1989fd2b1a9fc3f53d0240e980eca608c631
-usr/lib/.build-id/ba/7b6d4e5bc9babf41ecdf569e64201611ea9dc6
-usr/lib/.build-id/ba/a22819032d92f1f63ad06946cf62bbb9fd2acc
-usr/lib/.build-id/ba/e234c38681b052fdddc6d67b984a048d08d2e7
-usr/lib/.build-id/bb/0b5764b80a235d29a0dcb5fd0429d7caf24064
-usr/lib/.build-id/bb/108fa2f563b8408d3bc51cc50925e058a1ac7d
-usr/lib/.build-id/bb/4ead92c09db3731bcc812f22099f345d553bb1
-usr/lib/.build-id/bb/be0e5dee082762e77bbae9133599fd82d1798d
-usr/lib/.build-id/bc/1f0bbdd70686b64fefc72c63115eb87feded07
-usr/lib/.build-id/bc/36d47aa4f027a1b767c0c2c6ee0ff5eb3ab3c2
-usr/lib/.build-id/bc/70bc5a44c0c84da5a32f5617d4052079ca0632
-usr/lib/.build-id/bc/9788e1a74f3b943bcb4e56f29cd27081f45c9c
-usr/lib/.build-id/bc/ef23bb1b2db2f32674eede07f5f598600cf7b2
-usr/lib/.build-id/bd/3a64916c76cf377d71563f0cc08dd3642c2b0f
-usr/lib/.build-id/bd/dc065a42841a1c70b262de6d022d677089770b
-usr/lib/.build-id/be/ab4f34ca1333bb518a7acc1203b899d486afbd
-usr/lib/.build-id/be/dfc9d91b1d74995c8e19478125379bd2cadc76
-usr/lib/.build-id/bf/f047ac7fb9df6bd69506752b8eb5bac43b4365
-usr/lib/.build-id/bf/f62a550e07d6be016aac2ea0b6f4414e8968e6
-usr/lib/.build-id/c0/1e07b8d0ffb5e59afb553c3c8c698a9ff2603b
-usr/lib/.build-id/c0/7d1d6b2d382819bd50b158bb019b52affde66a
-usr/lib/.build-id/c0/dcbe6b1d12a467424afbba802e86532002f6a5
-usr/lib/.build-id/c1/42d0d13b1a1b868752de2fbbc130ac6a045816
-usr/lib/.build-id/c1/6aa0e9b8df8f7866907dce37d3c414606b573f
-usr/lib/.build-id/c1/7db0b2a175402e80a8c5bb9718f9461499a612
-usr/lib/.build-id/c1/9b8164491806dd1245ef4721f4b1a3158a591c
-usr/lib/.build-id/c1/c151aed009d5a2fac8378caf9c5589f52c156f
-usr/lib/.build-id/c1/d251686498a1ca8c6192e32617de17142b1ea3
-usr/lib/.build-id/c2/1f06bd4e3d8c366ce2e89e1dba6e56bc86db1e
-usr/lib/.build-id/c2/b913320d43344ea72b29ef398cb4663d9ce5b3
-usr/lib/.build-id/c3/8aa3c1bde579ae9d6ea4cb491140d0a4f51f4a
-usr/lib/.build-id/c3/cd62b7576dd87682b49becfb78398120fa65d7
-usr/lib/.build-id/c4/1f3b2beb780739c951eec38a32daa93c42d182
-usr/lib/.build-id/c4/6880d64992d8664f227e13e7faaf205a03fb56
-usr/lib/.build-id/c5/3d41f2c3b3e06e2bc594ff3b614f84d221cad0
-usr/lib/.build-id/c5/a28fc995bc98ccfa2bf9a1c6bdf2e4c4837920
-usr/lib/.build-id/c5/f3063607b091da4f3bd3710e08dba3ea7b575f
-usr/lib/.build-id/c6/2aa6e422a3d9757738d5abf0a17266ae60e16b
-usr/lib/.build-id/c6/3841e8d1860dc9f523da6526b65da0408ac7c2
-usr/lib/.build-id/c7/8bd0cf2c37a7c6473316a7fdb05084643cf152
-usr/lib/.build-id/c8/1c2753e516af45518b062d0ae196bc71699729
-usr/lib/.build-id/c8/53eca560eb208100c6fac6a36a7e07e49942d4
-usr/lib/.build-id/c8/982fc01494db3c34e8560aeee71cb5ef0caeae
-usr/lib/.build-id/c8/be8f827442d2e527655e897dd070fcaeb7b28c
-usr/lib/.build-id/c8/efd63640906a09d597d704554444c0ab758e98
-usr/lib/.build-id/c9/3ae2e7d69da1a6214c213dec0fd5d78314ed57
-usr/lib/.build-id/c9/5392dbd979f1c676a8015d1f33d17e547efda6
-usr/lib/.build-id/c9/aeec38440db42321f264d0b8a9503b30e7f30e
-usr/lib/.build-id/ca/36ea24bfe24e2c51132d5b989ff9a609d662ba
-usr/lib/.build-id/ca/4f9ab74faaadb0afcfe0124aa079f8673a9543
-usr/lib/.build-id/cb/1b7c1c06b1da1cee1a452372578aa59ee60783
-usr/lib/.build-id/cb/ab08e797ffa02330eef64a9449f16774b8938d
-usr/lib/.build-id/cb/e0410585309c22cb0b459d87d5545bf839cb14
-usr/lib/.build-id/cc/09459083f6c9c3420b4019bc4479a1d5fc8488
-usr/lib/.build-id/cc/0ba558646ba30b0a7f64a578da515ded64c807
-usr/lib/.build-id/cc/df732ac325c6a05324d40e1e0287c4de050a44
-usr/lib/.build-id/cd/0f7f0f64dced101ae808a0d78fea9bf3dbe2a4
-usr/lib/.build-id/cd/c25854eb76748ba3104b699b711be32f63462a
-usr/lib/.build-id/ce/4970a5a73f69e31e81117f6d4e2fb36f45cd6c
-usr/lib/.build-id/ce/9bca1db1e6602e41c46c959253b16528a8d244
-usr/lib/.build-id/ce/9f128460303111618d3093bdd18e1f7e3f0847
-usr/lib/.build-id/cf/082ade3414c70883238823f90acb54da3c013b
-usr/lib/.build-id/cf/3498af1c288d7339552c08dbab5f1d9e99d9a9
-usr/lib/.build-id/cf/578ac2329f0603267f9a246b7b10ed248bd63e
-usr/lib/.build-id/d0/42efd615fcb16b223609577616ab9f6f5af05c
-usr/lib/.build-id/d0/7df47a1219c7b69a152b66c77c2abef9f44a2d
-usr/lib/.build-id/d1/8de439d4c56f86f1df779cd9bc461eaafaac57
-usr/lib/.build-id/d1/c7147cec90ee4d42fbbf5b0887d660203d962e
-usr/lib/.build-id/d2/0d6b496087dc5994fc08cf642788be1693cc08
-usr/lib/.build-id/d2/1687457d9bc8f5f2fb0258e2cc359581e45329
-usr/lib/.build-id/d2/9485eebe58856e75ec9369bd1c31aad697e641
-usr/lib/.build-id/d3/0c98f494bb91dbfbc2333ecc590dca0d8f7771
-usr/lib/.build-id/d3/3aa486600f044bf4ce4f307cb1a5edcb89ba67
-usr/lib/.build-id/d3/ef07e214a5799ac605beadabf1573829ce0d2a
-usr/lib/.build-id/d3/f5eb80a9b5a7765beaadef64841764032ef52f
-usr/lib/.build-id/d4/73b09b4d91fdae794de3df685d149c007eed95
-usr/lib/.build-id/d4/e0dd632959b064d31589080124a304156407f8
-usr/lib/.build-id/d6/203895632b3bdc648972a8b37708d211dcc9df
-usr/lib/.build-id/d6/2f178c8100ba148efa8b3944b3420b742650c8
-usr/lib/.build-id/d6/3dc0289ef3ed55f6303103a2efd7b735d906fd
-usr/lib/.build-id/d6/5b1cea89c586e06f593a12027c640f48195e78
-usr/lib/.build-id/d6/8df8db642de998d623d92e5c21abc7cfc583bb
-usr/lib/.build-id/d7/07b5b366eb1aeaa854a4e3639a3f0bc2a71882
-usr/lib/.build-id/d7/16ff2479e74a7960cf12c75c048255777ebfea
-usr/lib/.build-id/d7/2f58464c84ca6927ba1fcde2ed190ba1a0a7c4
-usr/lib/.build-id/d7/94d2d419c748c56d553c60cf863b081aa44b94
-usr/lib/.build-id/d7/c3984b4b461270a1972d3601aa27d6fa08c11e
-usr/lib/.build-id/d7/c3984b4b461270a1972d3601aa27d6fa08c11e.1
-usr/lib/.build-id/d8/dea2c1b851b2d07f44cd5bf3deacd0f3df6643
-usr/lib/.build-id/d8/fbd944d8f23f4e0f02bc833aa7e369bd1ae8d6
-usr/lib/.build-id/d9/5159f2d8164bf4a722b0d93b14cbe6cb44df50
-usr/lib/.build-id/d9/ad1c2c48bb6b69eec6c07dd9e772be408be17a
-usr/lib/.build-id/d9/f88ecfafac71e57f7d3c717a68dab5d2cdd76a
-usr/lib/.build-id/da/4145ec9cd6ba78724a5eddefa8fb40b92d8e35
-usr/lib/.build-id/da/f5ed23ee84a5eaed42688941e72e4dd80b28c5
-usr/lib/.build-id/db/14f5ebfab3b8ccc904710687df2ebb2d268199
-usr/lib/.build-id/db/2f1f43a3e9181f09b75439b67e19e7120c175a
-usr/lib/.build-id/db/9cc748a2bcfe89cbcb6ee47480f12de00f3b5d
-usr/lib/.build-id/db/c74f6ad7c9d54f4feb294109d2225c318186bf
-usr/lib/.build-id/dc/2f89840cbe2a839172a5fc30bf5ab62a529cc1
-usr/lib/.build-id/dc/ba73fdd7978f554e1d0a52a1fcd41ff9455b3d
-usr/lib/.build-id/dd/44b4e9099efddaa9340a79d763beaaa891e3c7
-usr/lib/.build-id/dd/642b5408aed5707ffbf544feab134776f87664
-usr/lib/.build-id/dd/bf31a18c1e7dab7ab04e61c0597f97db7bb6dc
-usr/lib/.build-id/dd/ce873a712e52481282e717597f676a2b3ca7d0
-usr/lib/.build-id/dd/def81be1b20358130899ef6577c56a92247f22
-usr/lib/.build-id/de/09af2f59150dab7fa7192c3dd6183085308472
-usr/lib/.build-id/de/2168603d46b596f879a1e3ce55e9f63a47de19
-usr/lib/.build-id/de/51b788f5accce1218596db86c3e996a6410d29
-usr/lib/.build-id/de/acda4228d1fac7480ee0f1195e502859fe0ce9
-usr/lib/.build-id/de/d808d43836f23c3e6c975c4978776f5a7de1d4
-usr/lib/.build-id/df/0b5c7ef77fb831aae9cf426a1b65e730585921
-usr/lib/.build-id/df/1a3c5ee90bf8c9a165b6741e048369985e119b
-usr/lib/.build-id/df/52de2d4fa80156cefde96f1baa7a93d79e815b
-usr/lib/.build-id/df/a012e581ec0a44c510d251ec83124dce930d99
-usr/lib/.build-id/e0/7e32352d404d5c80c9b277e5614fbcf9c5990d
-usr/lib/.build-id/e0/aa0cc782acb17a27ccb9d3905ca00cd89d8602
-usr/lib/.build-id/e2/6c40ec3ffb8c68c6884ef24553ec0ccd2767c5
-usr/lib/.build-id/e2/ae2fd3245dd49e9708c349d1ab2574b912c890
-usr/lib/.build-id/e3/317130b5733f588340145ed19a970010d724c9
-usr/lib/.build-id/e3/34b6463967aa5c62663a0ed0499d973fcd0e19
-usr/lib/.build-id/e3/373348e98df983d5427fa7a449c1b25266adac
-usr/lib/.build-id/e4/1da92f519d488732152c0ccaff8d40ac1d85d0
-usr/lib/.build-id/e4/1da92f519d488732152c0ccaff8d40ac1d85d0.1
-usr/lib/.build-id/e4/56876295d4f0a1f84b5e8252bbe40d83c74a01
-usr/lib/.build-id/e4/61f53613589686c40a8532daab77853384be84
-usr/lib/.build-id/e5/1545990a70477e0f788421789298cb082cae05
-usr/lib/.build-id/e5/65421a9a98266dd85864c83e93cca94f571cb3
-usr/lib/.build-id/e6/54b36219c41b7bf0e53da8b852ac0f16c6fe68
-usr/lib/.build-id/e6/c8b4a33186e3bef9109140f3933cea85160e49
-usr/lib/.build-id/e6/d3d786e45ed72e64aa51b411b6bfd10b3cd5ed
-usr/lib/.build-id/e7/7f12cde0b4650b235c4ff8b16c14ad69640cc1
-usr/lib/.build-id/e9/b33780ee9e28d4c32fa5676913a5b4f21fabb6
-usr/lib/.build-id/ea/72858daf12161670cae59dedd094e906860449
-usr/lib/.build-id/eb/1567d781c7041e9f0de36ce4a938e0f49a9b87
-usr/lib/.build-id/eb/3e689620ed80333c0c242cb33ec8958f09e34d
-usr/lib/.build-id/eb/8607c5f94bd46daeecf053cf258f17e99de04a
-usr/lib/.build-id/eb/94b56bd6f0c9105bd23a18f04b7fc323278a53
-usr/lib/.build-id/ec/cfb4321e8627415a5c047e2dde51333c0e5335
-usr/lib/.build-id/ed/2f3218bc11e1634afb036bad1c322d23ea6dc4
-usr/lib/.build-id/ed/322aaba1b31c206c16263e3888d63c089a298c
-usr/lib/.build-id/ed/5437e0cbcc920bca459752ad0e35c1f175679d
-usr/lib/.build-id/ed/5d03d530f26f2b97851f7df46f4ffbb8299123
-usr/lib/.build-id/ed/5fed0e7d68d5b7cdc3f28c14f492031a2ef82e
-usr/lib/.build-id/ed/752ac7517a23fee747a1d63915e1ca07fef1f9
-usr/lib/.build-id/ed/76776e0c126c32ad64012752a7b06625b68983
-usr/lib/.build-id/ed/c14c719a218de144d10ec189672809cbf21412
-usr/lib/.build-id/ee/af42b4939a64d6121437942b6a6cdc835af6cf
-usr/lib/.build-id/ee/be2c6e75dadb513feb462393ff0152b461ed51
-usr/lib/.build-id/ef/0dbde9a935b7aad080cf4e0a339f39b4b2e848
-usr/lib/.build-id/ef/25daadef5c9256b0c8f78fa6c68bec50d77498
-usr/lib/.build-id/ef/b5632cead05a7106a883225ed5ade31d564133
-usr/lib/.build-id/f0/5ad2e73fe7df93582c144ac14509064367d6f8
-usr/lib/.build-id/f1/1837cea531bb63a62c9697cb7d1cac2412201b
-usr/lib/.build-id/f1/34d5797db2043828d4692273b8d856e9d2d5ce
-usr/lib/.build-id/f1/49b217168c897dfdb893c101929d3388cee40f
-usr/lib/.build-id/f2/c3d1e4b45d2ac2c8e8f51765335b7887cda041
-usr/lib/.build-id/f2/c4bd462aed834a18ea784a6b579f59be2e0dce
-usr/lib/.build-id/f3/5da0d6441d3c52d1828278f3b086e7f8040c59
-usr/lib/.build-id/f4/a4dab4b507caab83fc8658b59c0645fb8bc7af
-usr/lib/.build-id/f5/48fac9852f35f367e7ff7362d503b41549d2d1
-usr/lib/.build-id/f5/63d2f6cf1f319e380bf133bd655920509e83ea
-usr/lib/.build-id/f5/de75e7442a041f452c3139774a368c31e0c1d8
-usr/lib/.build-id/f6/560bea696fe1557e8d7954bdaf2b957535a0f9
-usr/lib/.build-id/f6/8daa8ecc068c68961a935f5fdebca23eeca60a
-usr/lib/.build-id/f7/3490d54e0af4bec74b5963c929f760d39ada1b
-usr/lib/.build-id/f7/4da02afa108ca2fed4f73c30482fa5e4666de5
-usr/lib/.build-id/f7/6814dd76420c0abf87f12d0d45efb6fb563087
-usr/lib/.build-id/f7/9c3627b581707a6c81eb1a3b6543138be850d4
-usr/lib/.build-id/f8/33da8e61498c59c4b5c19b85609bb5532393a9
-usr/lib/.build-id/f8/ae65cef6bdfdfc1b8e3ad615262408182dc631
-usr/lib/.build-id/f8/db8c26a0c69d788f8fd8ceeaf1ca214c6f62b4
-usr/lib/.build-id/f9/01cf2fb4a4a175107b63449c9f34f3d1215164
-usr/lib/.build-id/fa/4245e55d63335ffd990485510feed18f16655e
-usr/lib/.build-id/fa/44339b6ab408b15503d3f135319cda6900611f
-usr/lib/.build-id/fa/a50353e70cf980986923fb644ff31cbeb4d8e9
-usr/lib/.build-id/fb/96a1b1fcc82ad575c8ccbb3f823e5f36c676f8
-usr/lib/.build-id/fb/b8d4947efe2f43e6b24b3635dc0bba9d0b5d1f
-usr/lib/.build-id/fb/bbfeaa275b77a801622715da0b579ecd99bfd7
-usr/lib/.build-id/fc/27d40c916b23437641a70513e1ffc2ccfa7557
-usr/lib/.build-id/fd/0943f9bd6fcd66337053221a27259a2ca501f4
-usr/lib/.build-id/fd/293e96cab1a5967f602f98d4232b9536c3f3ff
-usr/lib/.build-id/fd/3ffce6a8a3ed60adc092a815191df1cfbecb63
-usr/lib/.build-id/fd/728af0cf15feae944716ff7269ec21a71c58ef
-usr/lib/.build-id/fd/9fa6cff82c006b6c588386983e1bb5c8b30857
-usr/lib/.build-id/fd/e188f5067218099974ab4e600a6a43170aea60
-usr/lib/.build-id/fe/8da1a3d7fa5e281198dc6d10e3f9d79f278851
-usr/lib/.build-id/fe/ce5696d52c8bb4f3e4e4379dad30e230923437
usr/lib/ld-linux-aarch64.so.1
usr/lib/locale/C.utf8/LC_ADDRESS
usr/lib/locale/C.utf8/LC_COLLATE
@@ -1024,14 +350,7 @@ usr/lib64/gconv/ASMO_449.so
usr/lib64/gconv/BIG5.so
usr/lib64/gconv/BIG5HKSCS.so
usr/lib64/gconv/BRF.so
-usr/lib64/gconv/CP737.so
-usr/lib64/gconv/CP770.so
-usr/lib64/gconv/CP771.so
-usr/lib64/gconv/CP772.so
-usr/lib64/gconv/CP773.so
-usr/lib64/gconv/CP774.so
-usr/lib64/gconv/CP775.so
-usr/lib64/gconv/CP932.so
+usr/lib64/gconv/CP10007.so
usr/lib64/gconv/CP1125.so
usr/lib64/gconv/CP1250.so
usr/lib64/gconv/CP1251.so
@@ -1042,20 +361,27 @@ usr/lib64/gconv/CP1255.so
usr/lib64/gconv/CP1256.so
usr/lib64/gconv/CP1257.so
usr/lib64/gconv/CP1258.so
-usr/lib64/gconv/CP10007.so
+usr/lib64/gconv/CP737.so
+usr/lib64/gconv/CP770.so
+usr/lib64/gconv/CP771.so
+usr/lib64/gconv/CP772.so
+usr/lib64/gconv/CP773.so
+usr/lib64/gconv/CP774.so
+usr/lib64/gconv/CP775.so
+usr/lib64/gconv/CP932.so
usr/lib64/gconv/CSN_369103.so
usr/lib64/gconv/CWI.so
usr/lib64/gconv/DEC-MCS.so
-usr/lib64/gconv/EBCDIC-AT-DE.so
usr/lib64/gconv/EBCDIC-AT-DE-A.so
+usr/lib64/gconv/EBCDIC-AT-DE.so
usr/lib64/gconv/EBCDIC-CA-FR.so
-usr/lib64/gconv/EBCDIC-DK-NO.so
usr/lib64/gconv/EBCDIC-DK-NO-A.so
-usr/lib64/gconv/EBCDIC-ES.so
+usr/lib64/gconv/EBCDIC-DK-NO.so
usr/lib64/gconv/EBCDIC-ES-A.so
usr/lib64/gconv/EBCDIC-ES-S.so
-usr/lib64/gconv/EBCDIC-FI-SE.so
+usr/lib64/gconv/EBCDIC-ES.so
usr/lib64/gconv/EBCDIC-FI-SE-A.so
+usr/lib64/gconv/EBCDIC-FI-SE.so
usr/lib64/gconv/EBCDIC-FR.so
usr/lib64/gconv/EBCDIC-IS-FRISS.so
usr/lib64/gconv/EBCDIC-IT.so
@@ -1065,8 +391,8 @@ usr/lib64/gconv/EBCDIC-US.so
usr/lib64/gconv/ECMA-CYRILLIC.so
usr/lib64/gconv/EUC-CN.so
usr/lib64/gconv/EUC-JISX0213.so
-usr/lib64/gconv/EUC-JP.so
usr/lib64/gconv/EUC-JP-MS.so
+usr/lib64/gconv/EUC-JP.so
usr/lib64/gconv/EUC-KR.so
usr/lib64/gconv/EUC-TW.so
usr/lib64/gconv/GB18030.so
@@ -1076,9 +402,9 @@ usr/lib64/gconv/GBK.so
usr/lib64/gconv/GEORGIAN-ACADEMY.so
usr/lib64/gconv/GEORGIAN-PS.so
usr/lib64/gconv/GOST_19768-74.so
-usr/lib64/gconv/GREEK7.so
-usr/lib64/gconv/GREEK7-OLD.so
usr/lib64/gconv/GREEK-CCITT.so
+usr/lib64/gconv/GREEK7-OLD.so
+usr/lib64/gconv/GREEK7.so
usr/lib64/gconv/HP-GREEK8.so
usr/lib64/gconv/HP-ROMAN8.so
usr/lib64/gconv/HP-ROMAN9.so
@@ -1086,6 +412,53 @@ usr/lib64/gconv/HP-THAI8.so
usr/lib64/gconv/HP-TURKISH8.so
usr/lib64/gconv/IBM037.so
usr/lib64/gconv/IBM038.so
+usr/lib64/gconv/IBM1004.so
+usr/lib64/gconv/IBM1008.so
+usr/lib64/gconv/IBM1008_420.so
+usr/lib64/gconv/IBM1025.so
+usr/lib64/gconv/IBM1026.so
+usr/lib64/gconv/IBM1046.so
+usr/lib64/gconv/IBM1047.so
+usr/lib64/gconv/IBM1097.so
+usr/lib64/gconv/IBM1112.so
+usr/lib64/gconv/IBM1122.so
+usr/lib64/gconv/IBM1123.so
+usr/lib64/gconv/IBM1124.so
+usr/lib64/gconv/IBM1129.so
+usr/lib64/gconv/IBM1130.so
+usr/lib64/gconv/IBM1132.so
+usr/lib64/gconv/IBM1133.so
+usr/lib64/gconv/IBM1137.so
+usr/lib64/gconv/IBM1140.so
+usr/lib64/gconv/IBM1141.so
+usr/lib64/gconv/IBM1142.so
+usr/lib64/gconv/IBM1143.so
+usr/lib64/gconv/IBM1144.so
+usr/lib64/gconv/IBM1145.so
+usr/lib64/gconv/IBM1146.so
+usr/lib64/gconv/IBM1147.so
+usr/lib64/gconv/IBM1148.so
+usr/lib64/gconv/IBM1149.so
+usr/lib64/gconv/IBM1153.so
+usr/lib64/gconv/IBM1154.so
+usr/lib64/gconv/IBM1155.so
+usr/lib64/gconv/IBM1156.so
+usr/lib64/gconv/IBM1157.so
+usr/lib64/gconv/IBM1158.so
+usr/lib64/gconv/IBM1160.so
+usr/lib64/gconv/IBM1161.so
+usr/lib64/gconv/IBM1162.so
+usr/lib64/gconv/IBM1163.so
+usr/lib64/gconv/IBM1164.so
+usr/lib64/gconv/IBM1166.so
+usr/lib64/gconv/IBM1167.so
+usr/lib64/gconv/IBM12712.so
+usr/lib64/gconv/IBM1364.so
+usr/lib64/gconv/IBM1371.so
+usr/lib64/gconv/IBM1388.so
+usr/lib64/gconv/IBM1390.so
+usr/lib64/gconv/IBM1399.so
+usr/lib64/gconv/IBM16804.so
usr/lib64/gconv/IBM256.so
usr/lib64/gconv/IBM273.so
usr/lib64/gconv/IBM274.so
@@ -1102,7 +475,12 @@ usr/lib64/gconv/IBM420.so
usr/lib64/gconv/IBM423.so
usr/lib64/gconv/IBM424.so
usr/lib64/gconv/IBM437.so
+usr/lib64/gconv/IBM4517.so
+usr/lib64/gconv/IBM4899.so
+usr/lib64/gconv/IBM4909.so
+usr/lib64/gconv/IBM4971.so
usr/lib64/gconv/IBM500.so
+usr/lib64/gconv/IBM5347.so
usr/lib64/gconv/IBM803.so
usr/lib64/gconv/IBM850.so
usr/lib64/gconv/IBM851.so
@@ -1130,8 +508,10 @@ usr/lib64/gconv/IBM891.so
usr/lib64/gconv/IBM901.so
usr/lib64/gconv/IBM902.so
usr/lib64/gconv/IBM903.so
+usr/lib64/gconv/IBM9030.so
usr/lib64/gconv/IBM904.so
usr/lib64/gconv/IBM905.so
+usr/lib64/gconv/IBM9066.so
usr/lib64/gconv/IBM918.so
usr/lib64/gconv/IBM921.so
usr/lib64/gconv/IBM922.so
@@ -1142,68 +522,27 @@ usr/lib64/gconv/IBM935.so
usr/lib64/gconv/IBM937.so
usr/lib64/gconv/IBM939.so
usr/lib64/gconv/IBM943.so
-usr/lib64/gconv/IBM1004.so
-usr/lib64/gconv/IBM1008.so
-usr/lib64/gconv/IBM1008_420.so
-usr/lib64/gconv/IBM1025.so
-usr/lib64/gconv/IBM1026.so
-usr/lib64/gconv/IBM1046.so
-usr/lib64/gconv/IBM1047.so
-usr/lib64/gconv/IBM1097.so
-usr/lib64/gconv/IBM1112.so
-usr/lib64/gconv/IBM1122.so
-usr/lib64/gconv/IBM1123.so
-usr/lib64/gconv/IBM1124.so
-usr/lib64/gconv/IBM1129.so
-usr/lib64/gconv/IBM1130.so
-usr/lib64/gconv/IBM1132.so
-usr/lib64/gconv/IBM1133.so
-usr/lib64/gconv/IBM1137.so
-usr/lib64/gconv/IBM1140.so
-usr/lib64/gconv/IBM1141.so
-usr/lib64/gconv/IBM1142.so
-usr/lib64/gconv/IBM1143.so
-usr/lib64/gconv/IBM1144.so
-usr/lib64/gconv/IBM1145.so
-usr/lib64/gconv/IBM1146.so
-usr/lib64/gconv/IBM1147.so
-usr/lib64/gconv/IBM1148.so
-usr/lib64/gconv/IBM1149.so
-usr/lib64/gconv/IBM1153.so
-usr/lib64/gconv/IBM1154.so
-usr/lib64/gconv/IBM1155.so
-usr/lib64/gconv/IBM1156.so
-usr/lib64/gconv/IBM1157.so
-usr/lib64/gconv/IBM1158.so
-usr/lib64/gconv/IBM1160.so
-usr/lib64/gconv/IBM1161.so
-usr/lib64/gconv/IBM1162.so
-usr/lib64/gconv/IBM1163.so
-usr/lib64/gconv/IBM1164.so
-usr/lib64/gconv/IBM1166.so
-usr/lib64/gconv/IBM1167.so
-usr/lib64/gconv/IBM1364.so
-usr/lib64/gconv/IBM1371.so
-usr/lib64/gconv/IBM1388.so
-usr/lib64/gconv/IBM1390.so
-usr/lib64/gconv/IBM1399.so
-usr/lib64/gconv/IBM4517.so
-usr/lib64/gconv/IBM4899.so
-usr/lib64/gconv/IBM4909.so
-usr/lib64/gconv/IBM4971.so
-usr/lib64/gconv/IBM5347.so
-usr/lib64/gconv/IBM9030.so
-usr/lib64/gconv/IBM9066.so
usr/lib64/gconv/IBM9448.so
-usr/lib64/gconv/IBM12712.so
-usr/lib64/gconv/IBM16804.so
usr/lib64/gconv/IEC_P27-1.so
-usr/lib64/gconv/INIS.so
usr/lib64/gconv/INIS-8.so
usr/lib64/gconv/INIS-CYRILLIC.so
+usr/lib64/gconv/INIS.so
usr/lib64/gconv/ISIRI-3342.so
+usr/lib64/gconv/ISO-2022-CN-EXT.so
+usr/lib64/gconv/ISO-2022-CN.so
+usr/lib64/gconv/ISO-2022-JP-3.so
+usr/lib64/gconv/ISO-2022-JP.so
+usr/lib64/gconv/ISO-2022-KR.so
+usr/lib64/gconv/ISO-IR-197.so
+usr/lib64/gconv/ISO-IR-209.so
usr/lib64/gconv/ISO646.so
usr/lib64/gconv/ISO8859-1.so
+usr/lib64/gconv/ISO8859-10.so
+usr/lib64/gconv/ISO8859-11.so
+usr/lib64/gconv/ISO8859-13.so
+usr/lib64/gconv/ISO8859-14.so
+usr/lib64/gconv/ISO8859-15.so
+usr/lib64/gconv/ISO8859-16.so
usr/lib64/gconv/ISO8859-2.so
usr/lib64/gconv/ISO8859-3.so
usr/lib64/gconv/ISO8859-4.so
@@ -1213,40 +552,27 @@ usr/lib64/gconv/ISO8859-7.so
usr/lib64/gconv/ISO8859-8.so
usr/lib64/gconv/ISO8859-9.so
usr/lib64/gconv/ISO8859-9E.so
-usr/lib64/gconv/ISO8859-10.so
-usr/lib64/gconv/ISO8859-11.so
-usr/lib64/gconv/ISO8859-13.so
-usr/lib64/gconv/ISO8859-14.so
-usr/lib64/gconv/ISO8859-15.so
-usr/lib64/gconv/ISO8859-16.so
-usr/lib64/gconv/ISO-2022-CN.so
-usr/lib64/gconv/ISO-2022-CN-EXT.so
-usr/lib64/gconv/ISO-2022-JP.so
-usr/lib64/gconv/ISO-2022-JP-3.so
-usr/lib64/gconv/ISO-2022-KR.so
-usr/lib64/gconv/ISO-IR-197.so
-usr/lib64/gconv/ISO-IR-209.so
+usr/lib64/gconv/ISO_10367-BOX.so
+usr/lib64/gconv/ISO_11548-1.so
usr/lib64/gconv/ISO_2033.so
-usr/lib64/gconv/ISO_5427.so
usr/lib64/gconv/ISO_5427-EXT.so
+usr/lib64/gconv/ISO_5427.so
usr/lib64/gconv/ISO_5428.so
-usr/lib64/gconv/ISO_6937.so
usr/lib64/gconv/ISO_6937-2.so
-usr/lib64/gconv/ISO_10367-BOX.so
-usr/lib64/gconv/ISO_11548-1.so
+usr/lib64/gconv/ISO_6937.so
usr/lib64/gconv/JOHAB.so
+usr/lib64/gconv/KOI-8.so
usr/lib64/gconv/KOI8-R.so
usr/lib64/gconv/KOI8-RU.so
usr/lib64/gconv/KOI8-T.so
usr/lib64/gconv/KOI8-U.so
-usr/lib64/gconv/KOI-8.so
-usr/lib64/gconv/LATIN-GREEK.so
usr/lib64/gconv/LATIN-GREEK-1.so
-usr/lib64/gconv/MACINTOSH.so
+usr/lib64/gconv/LATIN-GREEK.so
usr/lib64/gconv/MAC-CENTRALEUROPE.so
usr/lib64/gconv/MAC-IS.so
usr/lib64/gconv/MAC-SAMI.so
usr/lib64/gconv/MAC-UK.so
+usr/lib64/gconv/MACINTOSH.so
usr/lib64/gconv/MIK.so
usr/lib64/gconv/NATS-DANO.so
usr/lib64/gconv/NATS-SEFI.so
@@ -1255,15 +581,15 @@ usr/lib64/gconv/RK1048.so
usr/lib64/gconv/SAMI-WS2.so
usr/lib64/gconv/SHIFT_JISX0213.so
usr/lib64/gconv/SJIS.so
+usr/lib64/gconv/T.61.so
usr/lib64/gconv/TCVN5712-1.so
usr/lib64/gconv/TIS-620.so
usr/lib64/gconv/TSCII.so
-usr/lib64/gconv/T.61.so
usr/lib64/gconv/UHC.so
usr/lib64/gconv/UNICODE.so
-usr/lib64/gconv/UTF-7.so
usr/lib64/gconv/UTF-16.so
usr/lib64/gconv/UTF-32.so
+usr/lib64/gconv/UTF-7.so
usr/lib64/gconv/VISCII.so
usr/lib64/gconv/gconv-modules
usr/lib64/gconv/gconv-modules.cache
@@ -1275,12 +601,13 @@ usr/lib64/gconv/libJIS.so
usr/lib64/gconv/libJISX0213.so
usr/lib64/gconv/libKSC.so
usr/lib64/gio/modules/libgiognomeproxy.so
-usr/lib64/gio/modules/libgiognutls.so
usr/lib64/gio/modules/libgiolibproxy.so
usr/lib64/girepository-1.0/GUdev-1.0.typelib
usr/lib64/girepository-1.0/GeocodeGlib-1.0.typelib
usr/lib64/girepository-1.0/Json-1.0.typelib
@rmtry usr/lib64/gio/modules/giomodule.cache
+usr/lib64/girepository-1.0/Soup-2.4.typelib
+usr/lib64/girepository-1.0/SoupGNOME-2.4.typelib
usr/lib64/krb5/plugins/preauth/spake.so
usr/lib64/krb5/plugins/tls/k5tls.so
usr/lib64/libBrokenLocale.so.1
@@ -1292,6 +619,12 @@ usr/lib64/libattr.so.1
usr/lib64/libattr.so.1.1.2501
usr/lib64/libblkid.so.1
usr/lib64/libblkid.so.1.1.0
+usr/lib64/libbrotlicommon.so.1
+usr/lib64/libbrotlicommon.so.1.0.9
+usr/lib64/libbrotlidec.so.1
+usr/lib64/libbrotlidec.so.1.0.9
+usr/lib64/libbrotlienc.so.1
+usr/lib64/libbrotlienc.so.1.0.9
usr/lib64/libbz2.so.1
usr/lib64/libbz2.so.1.0.8
usr/lib64/libc.so.6
@@ -1355,6 +688,8 @@ usr/lib64/libgudev-1.0.so.0
usr/lib64/libgudev-1.0.so.0.3.0
usr/lib64/libhistory.so.8
usr/lib64/libhistory.so.8.1
+usr/lib64/libidn2.so.0
+usr/lib64/libidn2.so.0.3.7
usr/lib64/libjson-glib-1.0.so.0
usr/lib64/libjson-glib-1.0.so.0.600.6
usr/lib64/libk5crypto.so.3
@@ -1400,22 +735,24 @@ usr/lib64/libpcre.so.1
usr/lib64/libpcre.so.1.2.12
usr/lib64/libpcre16.so.0
usr/lib64/libpcre16.so.0.2.12
-usr/lib64/libpcre32.so.0
-usr/lib64/libpcre32.so.0.0.12
-usr/lib64/libpcreposix.so.0
-usr/lib64/libpcreposix.so.0.0.7
-usr/lib64/libpcre2-8.so.0
-usr/lib64/libpcre2-8.so.0.11.0
usr/lib64/libpcre2-16.so.0
usr/lib64/libpcre2-16.so.0.11.0
usr/lib64/libpcre2-32.so.0
usr/lib64/libpcre2-32.so.0.11.0
+usr/lib64/libpcre2-8.so.0
+usr/lib64/libpcre2-8.so.0.11.0
usr/lib64/libpcre2-posix.so.3
usr/lib64/libpcre2-posix.so.3.0.2
+usr/lib64/libpcre32.so.0
+usr/lib64/libpcre32.so.0.0.12
+usr/lib64/libpcreposix.so.0
+usr/lib64/libpcreposix.so.0.0.7
usr/lib64/libpopt.so.0
usr/lib64/libpopt.so.0.0.1
usr/lib64/libproxy.so.1
usr/lib64/libproxy.so.1.0.0
+usr/lib64/libpsl.so.5
+usr/lib64/libpsl.so.5.3.3
usr/lib64/libpsx.so.2
usr/lib64/libpsx.so.2.48
usr/lib64/libpthread.so.0
@@ -1431,6 +768,12 @@ usr/lib64/libslang.so.2
usr/lib64/libslang.so.2.3.2
usr/lib64/libsmartcols.so.1
usr/lib64/libsmartcols.so.1.1.0
+usr/lib64/libsoup-2.4.so.1
+usr/lib64/libsoup-2.4.so.1.11.0
+usr/lib64/libsoup-gnome-2.4.so.1
+usr/lib64/libsoup-gnome-2.4.so.1.11.0
+usr/lib64/libsqlite3.so.0
+usr/lib64/libsqlite3.so.0.8.6
usr/lib64/libssl.so.3
usr/lib64/libssl.so.3.2.2
usr/lib64/libstdc++.so.6
@@ -1442,6 +785,8 @@ usr/lib64/libtinfo.so.6
usr/lib64/libtinfo.so.6.2
usr/lib64/libulockmgr.so.1
usr/lib64/libulockmgr.so.1.0.1
+usr/lib64/libunistring.so.2
+usr/lib64/libunistring.so.2.1.0
usr/lib64/libutil.so.1
usr/lib64/libuuid.so.1
usr/lib64/libuuid.so.1.3.0
@@ -1450,7 +795,7 @@ usr/lib64/libverto.so.1.0.0
usr/lib64/libz.so.1
usr/lib64/libz.so.1.2.11
usr/lib64/libzstd.so.1
-usr/lib64/libzstd.so.1.5.1
+usr/lib64/libzstd.so.1.5.5
usr/lib64/ossl-modules/fips.so
usr/lib64/ossl-modules/legacy.so
usr/lib64/security/pam_cap.so
@@ -1712,11 +1057,20 @@ usr/share/dbus-1/services/org.gtk.GLib.PACRunner.service
%%PORTDOCS%%usr/share/doc/libevdev/COPYING
%%PORTDOCS%%usr/share/doc/libffi/README.md
%%PORTDOCS%%usr/share/doc/libgudev/NEWS
+%%PORTDOCS%%usr/share/doc/libidn2/AUTHORS
+%%PORTDOCS%%usr/share/doc/libidn2/NEWS
+%%PORTDOCS%%usr/share/doc/libidn2/README.md
%%PORTDOCS%%usr/share/doc/libproxy/AUTHORS
%%PORTDOCS%%usr/share/doc/libproxy/README
%%PORTDOCS%%usr/share/doc/libsigsegv/AUTHORS
%%PORTDOCS%%usr/share/doc/libsigsegv/NEWS
%%PORTDOCS%%usr/share/doc/libsigsegv/README
+%%PORTDOCS%%usr/share/doc/libsoup/AUTHORS
+%%PORTDOCS%%usr/share/doc/libsoup/NEWS
+%%PORTDOCS%%usr/share/doc/libsoup/README
+%%PORTDOCS%%usr/share/doc/libunistring/AUTHORS
+%%PORTDOCS%%usr/share/doc/libunistring/NEWS
+%%PORTDOCS%%usr/share/doc/libunistring/README
%%PORTDOCS%%usr/share/doc/libverto/AUTHORS
%%PORTDOCS%%usr/share/doc/libverto/ChangeLog
%%PORTDOCS%%usr/share/doc/libverto/NEWS
@@ -1737,12 +1091,12 @@ usr/share/dbus-1/services/org.gtk.GLib.PACRunner.service
%%PORTDOCS%%usr/share/doc/ncurses/NEWS.xz
%%PORTDOCS%%usr/share/doc/ncurses/README
%%PORTDOCS%%usr/share/doc/ncurses/TO-DO
-%%PORTDOCS%%usr/share/doc/pcre/AUTHORS
-%%PORTDOCS%%usr/share/doc/pcre/NEWS
%%PORTDOCS%%usr/share/doc/pcre-utf16/AUTHORS
%%PORTDOCS%%usr/share/doc/pcre-utf16/NEWS
%%PORTDOCS%%usr/share/doc/pcre-utf32/AUTHORS
%%PORTDOCS%%usr/share/doc/pcre-utf32/NEWS
+%%PORTDOCS%%usr/share/doc/pcre/AUTHORS
+%%PORTDOCS%%usr/share/doc/pcre/NEWS
%%PORTDOCS%%usr/share/doc/popt/CHANGES
%%PORTDOCS%%usr/share/doc/rocky-release/COMMUNITY-CHARTER
%%PORTDOCS%%usr/share/doc/rocky-release/Contributors
@@ -1756,6 +1110,7 @@ usr/share/dbus-1/services/org.gtk.GLib.PACRunner.service
%%PORTDOCS%%usr/share/doc/setserial/rc.serial
%%PORTDOCS%%usr/share/doc/setup/uidgid
%%PORTDOCS%%usr/share/doc/slang/NEWS
+%%PORTDOCS%%usr/share/doc/sqlite-libs/README.md
%%PORTDOCS%%usr/share/doc/util-linux/AUTHORS
%%PORTDOCS%%usr/share/doc/util-linux/NEWS
%%PORTDOCS%%usr/share/doc/util-linux/README
@@ -1832,6 +1187,7 @@ usr/share/licenses/keyutils/LICENCE.GPL
usr/share/licenses/krb5-libs/LICENSE
usr/share/licenses/less/COPYING
usr/share/licenses/less/LICENSE
+usr/share/licenses/libbrotli/LICENSE
usr/share/licenses/libcap/License
usr/share/licenses/libcom_err/NOTICE
usr/share/licenses/libdatrie/COPYING
@@ -1847,15 +1203,23 @@ usr/share/licenses/libgcc/COPYING.RUNTIME
usr/share/licenses/libgcc/COPYING3
usr/share/licenses/libgcc/COPYING3.LIB
usr/share/licenses/libgudev/COPYING
+usr/share/licenses/libidn2/COPYING
+usr/share/licenses/libidn2/COPYING.LESSERv3
+usr/share/licenses/libidn2/COPYING.unicode
+usr/share/licenses/libidn2/COPYINGv2
usr/share/licenses/libmount/COPYING
usr/share/licenses/libmount/COPYING.LGPL-2.1-or-later
usr/share/licenses/libproxy/COPYING
usr/share/licenses/libproxy/Copyright.txt
+usr/share/licenses/libpsl/COPYING
usr/share/licenses/libselinux/LICENSE
usr/share/licenses/libsepol/LICENSE
usr/share/licenses/libsigsegv/COPYING
usr/share/licenses/libsmartcols/COPYING
usr/share/licenses/libsmartcols/COPYING.LGPL-2.1-or-later
+usr/share/licenses/libsoup/COPYING
+usr/share/licenses/libunistring/COPYING
+usr/share/licenses/libunistring/COPYING.LIB
usr/share/licenses/libuuid/COPYING
usr/share/licenses/libuuid/COPYING.BSD-3-Clause
usr/share/licenses/libverto/COPYING
@@ -1868,12 +1232,12 @@ usr/share/licenses/mpfr/COPYING
usr/share/licenses/mpfr/COPYING.LESSER
usr/share/licenses/ncurses-base/COPYING
usr/share/licenses/openssl-libs/LICENSE.txt
-usr/share/licenses/pcre/COPYING
-usr/share/licenses/pcre/LICENCE
usr/share/licenses/pcre-utf16/COPYING
usr/share/licenses/pcre-utf16/LICENCE
usr/share/licenses/pcre-utf32/COPYING
usr/share/licenses/pcre-utf32/LICENCE
+usr/share/licenses/pcre/COPYING
+usr/share/licenses/pcre/LICENCE
usr/share/licenses/popt/COPYING
usr/share/licenses/readline/COPYING
usr/share/licenses/readline/USAGE
@@ -1897,11 +1261,13 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/am/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/an/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/an/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/an/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ar/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ar/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/as/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/as/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/as/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/as/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ast/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ast/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/az/LC_MESSAGES/glib20.mo
@@ -1911,6 +1277,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/be/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/be/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/be/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/be/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/be@latin/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/bg/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/bg/LC_MESSAGES/diffutils.mo
@@ -1920,14 +1287,17 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/bg/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/bg/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/bg/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/bg/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/bg/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/bn/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/bn_IN/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/bn_IN/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/bn_IN/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/bn_IN/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/bs/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/bs/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/bs/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/bs/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/e2fsprogs.mo
@@ -1937,11 +1307,13 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ca/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/ca/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/ca@valencia/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ca@valencia/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ca@valencia/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ca@valencia/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/e2fsprogs.mo
@@ -1951,6 +1323,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/cs/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/cs/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/cs/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/util-linux.mo
@@ -1964,6 +1338,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/da/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/da/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/da/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/da/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/da/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/da/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/da/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/da/LC_MESSAGES/util-linux.mo
@@ -1976,6 +1352,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/de/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/de/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/de/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/de/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/de/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/de/LC_MESSAGES/mit-krb5.mo
%%NLS%%usr/share/locale/de/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/de/LC_MESSAGES/sed.mo
@@ -1989,6 +1367,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/el/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/el/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/el/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/el/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/el/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/en@boldquot/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/en@quot/LC_MESSAGES/bash.mo
@@ -1999,6 +1378,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/en_GB/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/en_GB/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/en_GB/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/en_GB/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/en_US/LC_MESSAGES/mit-krb5.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/diffutils.mo
@@ -2009,6 +1389,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/eo/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/eo/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/eo/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/bash.mo
@@ -2020,6 +1402,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/es/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/es/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/es/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/util-linux.mo
@@ -2029,16 +1413,19 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/et/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/et/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/et/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/et/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/et/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/et/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/eu/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/fa/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/fa/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/fa/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/e2fsprogs.mo
@@ -2047,6 +1434,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/fi/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/fi/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/fi/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/util-linux.mo
@@ -2059,12 +1448,16 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/fr/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/fr/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/fr/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/fr/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/fr/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/fr/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/fr/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/fr/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/fur/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/fur/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/fur/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/fur/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/fur/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ga/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/ga/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/ga/LC_MESSAGES/findutils.mo
@@ -2074,6 +1467,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ga/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/gd/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/gd/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/gd/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/findutils.mo
@@ -2082,20 +1476,24 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/gl/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/gl/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/gu/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/gu/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/gu/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/he/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/hi/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/hi/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/hi/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/hi/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/findutils.mo
@@ -2104,6 +1502,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/hr/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/hr/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/hr/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/bash.mo
@@ -2115,6 +1515,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/hu/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/hu/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/hu/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/util-linux.mo
@@ -2129,6 +1531,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/id/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/id/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/id/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/id/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/id/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/id/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/id/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/id/LC_MESSAGES/util-linux.mo
@@ -2143,6 +1547,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/it/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/it/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/it/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/it/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/it/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/it/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/it/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/it/LC_MESSAGES/util-linux.mo
@@ -2154,6 +1560,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ja/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/ja/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/ja/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/ja/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/ja/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ja/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/ja/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/ja/LC_MESSAGES/util-linux.mo
@@ -2164,6 +1572,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/km/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/kn/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/kn/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/kn/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/findutils.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/glib-networking.mo
@@ -2171,6 +1580,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ko/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/ko/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/ku/LC_MESSAGES/glib20.mo
@@ -2185,10 +1595,12 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/lt/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/lt/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/lt/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/lt/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/lv/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/lv/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/lv/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/lv/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/lv/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/lv/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/mai/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/mg/LC_MESSAGES/glib20.mo
@@ -2196,15 +1608,18 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ml/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ml/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ml/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ml/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/mn/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/mr/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/mr/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/mr/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/e2fsprogs.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/findutils.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ms/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/findutils.mo
@@ -2213,12 +1628,14 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/nb/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/nb/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/nds/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ne/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ne/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ne/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ne/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/e2fsprogs.mo
@@ -2228,6 +1645,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/nl/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/nl/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/nl/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/util-linux.mo
@@ -2235,13 +1654,16 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/oc/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/oc/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/oc/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/oc/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/or/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/or/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/or/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/or/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/pa/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/pa/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/pa/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/pa/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/pa/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/e2fsprogs.mo
@@ -2251,6 +1673,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/pl/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/pl/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/pl/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/util-linux.mo
@@ -2264,6 +1688,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/pt/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/pt/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/pt/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/pt/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/pt/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/pt/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/pt/LC_MESSAGES/util-linux.mo
@@ -2275,6 +1700,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/ro/LC_MESSAGES/bash.mo
@@ -2284,6 +1711,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ro/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ro/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/ro/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ro/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/ro/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ro/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/ro/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/bash.mo
@@ -2294,6 +1723,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ru/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/ru/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/ru/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/util-linux.mo
@@ -2307,6 +1738,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/sk/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/sk/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/sk/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/sk/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/sk/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/sk/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/bash.mo
@@ -2316,6 +1748,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/sl/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/sl/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/util-linux.mo
@@ -2329,11 +1762,14 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/sr/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/sr/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/sr/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/sr/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/sr/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/sr/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/sr@ije/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/sr@latin/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/sr@latin/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/sr@latin/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/sr@latin/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/e2fsprogs.mo
@@ -2343,20 +1779,26 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/sv/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/sv/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/sv/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/ta/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ta/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/ta/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/te/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/te/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/te/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/te/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/tg/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/tg/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/tg/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/tg/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/th/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/th/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/th/LC_MESSAGES/grep.mo
+%%NLS%%usr/share/locale/th/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/th/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/tl/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/bash.mo
@@ -2368,6 +1810,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/tr/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/tr/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/util-linux.mo
@@ -2375,6 +1818,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ug/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ug/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ug/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ug/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/e2fsprogs.mo
@@ -2384,9 +1828,12 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/uk/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/uk/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/uk/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/util-linux.mo
+%%NLS%%usr/share/locale/uz@cyrillic/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/e2fsprogs.mo
@@ -2396,6 +1843,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/vi/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/vi/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/vi/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/util-linux.mo
@@ -2412,12 +1861,15 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/zh_HK/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/zh_HK/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/zh_HK/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/zh_HK/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/findutils.mo
@@ -2426,6 +1878,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/util-linux.mo
@@ -2557,6 +2010,7 @@ usr/share/man/man1/sh.1.gz
usr/share/man/man1/shift.1.gz
usr/share/man/man1/shopt.1.gz
usr/share/man/man1/source.1.gz
+usr/share/man/man1/sqlite3.1.gz
usr/share/man/man1/su.1.gz
usr/share/man/man1/suspend.1.gz
usr/share/man/man1/tabs.1.gz
@@ -2876,7 +2330,6 @@ var/mail
@dir etc/yum.repos.d
@dir opt
@dir srv
-@dir usr/lib64/gio/modules
@dir var/adm
@dir var/cache/bpf
@dir var/cache/ldconfig
diff --git a/emulators/linux_base-rl9/pkg-plist.amd64 b/emulators/linux_base-rl9/pkg-plist.amd64
index 8cb78167bdfa..f47b7a4aa1e6 100644
--- a/emulators/linux_base-rl9/pkg-plist.amd64
+++ b/emulators/linux_base-rl9/pkg-plist.amd64
@@ -142,6 +142,7 @@ usr/bin/getent
usr/bin/getopt
usr/bin/getopts
usr/bin/gio
+usr/bin/gio-querymodules-32
usr/bin/gio-querymodules-64
usr/bin/glib-compile-schemas
usr/bin/grep
@@ -241,6 +242,7 @@ usr/bin/sort
usr/bin/sotruss
usr/bin/split
usr/bin/sprof
+usr/bin/sqlite3
usr/bin/stat
usr/bin/stdbuf
usr/bin/stty
@@ -293,1065 +295,6 @@ usr/bin/x86_64
usr/bin/xargs
usr/bin/yes
usr/bin/zdump
-usr/bin/gio-querymodules-32
-usr/lib/.build-id/00/9b48d5cb84a9cdd20e8d9cb6f4503a6f94b2ee
-usr/lib/.build-id/01/201b981f51b64cfb0e07db34a8252a31353426
-usr/lib/.build-id/02/603e4246c063d1c34cd9fbbd2721fc1be4c049
-usr/lib/.build-id/02/86ab2bbba17240d53eaf82c32695d971e46c86
-usr/lib/.build-id/02/d217bb279662aa8deb8aa69a855365bf030e8e
-usr/lib/.build-id/02/d409ecc45523a36fcfae2ca5edc7f2f5d5d5de
-usr/lib/.build-id/02/f091863382147c7bbc959a3990af53fccde1d3
-usr/lib/.build-id/03/062287a83b8a02758757eb5faa50eca18b9a67
-usr/lib/.build-id/03/16d79b382abb8deba8acefeb2099203d9d9492
-usr/lib/.build-id/03/5397d794a2e2357120e37f842bf8b292b9bf9e
-usr/lib/.build-id/03/6e9719c32ed3cd88b2f89eddd06415ba5ce7c6
-usr/lib/.build-id/03/9385093a26e86647a6c9323e0d863be2fcd965
-usr/lib/.build-id/03/c3a8ca9bc5a41b1f0cff56749add9fd16d511e
-usr/lib/.build-id/03/f27794d098ed66b2fc6bea6abf8901dd2f128a
-usr/lib/.build-id/04/0c4605d103e0dd364c95dec2b047787e472024
-usr/lib/.build-id/04/220b5e9381dfa16798b371d71990945971aac7
-usr/lib/.build-id/04/67d718ac7b0e931394da3df929d94c8135cb81
-usr/lib/.build-id/04/6e0c6c02d81e2fe834d7153ac571fc23d5e5e9
-usr/lib/.build-id/04/a1e29956fd714c494aace0710f7e63a5ffe849
-usr/lib/.build-id/04/a2b622d97e62f8963491f4f522087eacdfdc59
-usr/lib/.build-id/04/c564e1d028792291cb6c7fbdef662e3a063c36
-usr/lib/.build-id/04/ce1b9f02dd35786a2a43a51c0a5deda750ccc8
-usr/lib/.build-id/05/06bf6451812b3f340946fcb6b7fe92129c39a2
-usr/lib/.build-id/05/2b3c0efa00d425d1d8d4d1f9b8d5c90f5aec4a
-usr/lib/.build-id/05/439c543395d1136d16b6bc12999aae5651ea4c
-usr/lib/.build-id/05/7d7194233570202972f8ca1a0212ea2d1d925e
-usr/lib/.build-id/05/b8339e3eb56f73fc5ba51f2a657356e51a1350
-usr/lib/.build-id/06/37f16913d1372ef9ff7fe7146cb3c767f01324
-usr/lib/.build-id/06/4101991e2ce488e6ce50a466151dd581da8286
-usr/lib/.build-id/06/4def25b6799a475799b7169c05d676f5acfcaf
-usr/lib/.build-id/06/68831ab28fd5a6801a8dbc0e7f85af12065e3b
-usr/lib/.build-id/06/b1642cbf7c5b8579240a3f30b10447c399dcbc
-usr/lib/.build-id/07/177b20d9cc92b5d2efd1b676101479a7e0f792
-usr/lib/.build-id/07/364ae680ca15c23aaa22d1bb7898f4b3cca433
-usr/lib/.build-id/07/4afdcce33254270af0e2193f9d37bbf560830d
-usr/lib/.build-id/07/52fb9dc0a7f786f019b884b6b1585ce341507e
-usr/lib/.build-id/07/c2f4cab4509892360abc52650b2548f1d0e2ee
-usr/lib/.build-id/07/d7230d562e99284e7da17928b6ea8ea43f1f61
-usr/lib/.build-id/08/3f7cceb6cb05a1ed1d6ce5bd07fcfc2523b28b
-usr/lib/.build-id/08/506448a1c1355fd65b579cde2e90bd45a7d4fd
-usr/lib/.build-id/08/6d288f6ad3991af642ae4374601a660984b991
-usr/lib/.build-id/08/6f6f995a6e1c297267d796fbda20bbf4e684cd
-usr/lib/.build-id/08/a83f7542848dd168d6b1581b897aef0397a87d
-usr/lib/.build-id/08/c2d78ca1d752a6b422812fdff07589e0cd4440
-usr/lib/.build-id/09/2c3eeef149754537800950a044d8027c8ee279
-usr/lib/.build-id/09/ade426a0f0d95a968c7c334fca0d7d92ef6f7b
-usr/lib/.build-id/09/e916f1d06781c9877666aad8e80757a9cd13f9
-usr/lib/.build-id/0a/47fead2b5d45d6d43e4313ce68ae67bbc7e051
-usr/lib/.build-id/0a/62cb1e0a6e041922acb7e0cfdcab148ea7dbfb
-usr/lib/.build-id/0a/66b40b9fcc71d5984fd80121dbf28156a122a6
-usr/lib/.build-id/0a/8d9d48119c75ff6b732436bb51968844e49093
-usr/lib/.build-id/0a/ecc3bb2562cc7be4dd38b029b1da10c6992c9c
-usr/lib/.build-id/0a/ed4fe4432a4f41efb80c0eaf4045282b7eca14
-usr/lib/.build-id/0b/e639b952fb9f808211717faa02779a11cf579a
-usr/lib/.build-id/0c/0502bcc3c0505c450f566ab26fa0a351100d6c
-usr/lib/.build-id/0c/1fb29e44ffedfc03fe04edb425c3c10ddd50e4
-usr/lib/.build-id/0c/331b968ebbc6757277334ad1d715d62cda2b3e
-usr/lib/.build-id/0c/447c3cd1f62c711bee115ad4ea10ced1a73a1d
-usr/lib/.build-id/0c/e90498e8909bac8c1be7e54156d557897db045
-usr/lib/.build-id/0d/1ff2e1036f0599c76d625ae462995fb476c5d9
-usr/lib/.build-id/0d/617cf4757dc9c4d26d258d569d87fe9d5f2dd1
-usr/lib/.build-id/0d/68de3287952a29e179b69a7a10ab8942d73835
-usr/lib/.build-id/0d/77efbdc6cebad15c79e6d67b894e87d9b11ba6
-usr/lib/.build-id/0d/87305c724b6f99adc6ae43fb712d214193400e
-usr/lib/.build-id/0d/c5842ce84ffbe90bdbf2a26f95df2a7ef541a2
-usr/lib/.build-id/0d/d5d1e96ee5e5221acec0d0d679fce140a8870a
-usr/lib/.build-id/0e/5504419054f87c060a2f8a42329db0efcc1f74
-usr/lib/.build-id/0e/b696ed41bbb6340f02e51ac2ff911a3914913a
-usr/lib/.build-id/0f/10bbf5b58079746d984ca5d507abc397d1e726
-usr/lib/.build-id/0f/aa1f58f643f887684769f00926672cab2b4d1c
-usr/lib/.build-id/0f/d15b020669fff3a9139c2e0ecf6c0f28fea964
-usr/lib/.build-id/0f/d4ad8c5bfe16a4c56d019bfe873400089656c0
-usr/lib/.build-id/10/e67e54d514e889112e55451593f41e272151e2
-usr/lib/.build-id/11/911eb584a6fc3bc6ad5c273c013f0e3b0cb750
-usr/lib/.build-id/11/be5274782dc2d71a17a15593a87c8b2765a272
-usr/lib/.build-id/11/d44db5144a78924cb899c406d13005b0db14e2
-usr/lib/.build-id/11/e14f70384d58523b5a212ba2314d0d82564aff
-usr/lib/.build-id/12/1ec78d27505e9eecb3c3855fe6cbd46e5ad8b9
-usr/lib/.build-id/12/4d1817758a962a625176da9162fd4e24fd42ec
-usr/lib/.build-id/12/617edffb869e15bbc2cfb4293881c2ab174e02
-usr/lib/.build-id/12/d66c4f7bd57543eb79b930030468052706a913
-usr/lib/.build-id/12/e6d259b4e2f56fe4ecef95c4125d671cb12fe7
-usr/lib/.build-id/13/4d72b9d34e340386abf7993638f06183ded311
-usr/lib/.build-id/13/7984e6ccb42ed823e65c7b60076bb12029cb58
-usr/lib/.build-id/13/f00cf4467e44d7ab133fe8348091766c4e0047
-usr/lib/.build-id/14/19c287fbedfecb3b0a47276cce4b4d01102f9a
-usr/lib/.build-id/14/2b832e9c52420d06a784d79883ccaa49aae8b9
-usr/lib/.build-id/14/507a78057c144fc3e03f754a95d0264b00eb6e
-usr/lib/.build-id/14/ba44d98dc5c53be4e0c9779daac3236539303d
-usr/lib/.build-id/14/cb06b5cbf54a1abd57a200c79804a227aaf622
-usr/lib/.build-id/15/166b0b3fdee269bac2ca282ca3aae38f1bf7f9
-usr/lib/.build-id/15/3a0afe684399893b9d6b87892112ba0079287d
-usr/lib/.build-id/15/7a13cb06ec55fd0d269ce803f61b9ef82a4b78
-usr/lib/.build-id/16/14c986f49425ffa721e2e4fb89ce93cbe55161
-usr/lib/.build-id/16/37fc992cd8a1386674815a47b40fd0be601266
-usr/lib/.build-id/16/47e6c1ec7d06fe6883562165f2ae6635d9f7c4
-usr/lib/.build-id/16/4eaaa145d567edd6d609552872bff37e062fdf
-usr/lib/.build-id/16/79889bb0661d4cb993be96851596941f4bce0a
-usr/lib/.build-id/16/7a6c45aec35d49296e7516a67ec2ba904dd5e8
-usr/lib/.build-id/16/8c1b5cbb5b0d24da1a86bd58d9b3468983f22c
-usr/lib/.build-id/16/9d7744cff9529ed9e27c2407e89ff78ffd717d
-usr/lib/.build-id/16/d27cd949ba654c0f950d677ef4ad62ed710e71
-usr/lib/.build-id/16/d75a2180d07f8f2c0a2437e42c902b3f27298e
-usr/lib/.build-id/16/df1257f952199714091bcde5901591b8da75bb
-usr/lib/.build-id/17/8dbb548216a6c622d775047241a88fbbdc3d9c
-usr/lib/.build-id/17/992b8ae248be7aa0564b8ee4672e47305e8ff9
-usr/lib/.build-id/17/d7b517501f82efb533812f68bb2c37b0509d62
-usr/lib/.build-id/17/e18c891b2ef433be8de522d1f520b062732351
-usr/lib/.build-id/18/3f6a3902997fd73232226905a4ff481489b61e
-usr/lib/.build-id/18/501cdca644b8daef36b94eb324cebf28060440
-usr/lib/.build-id/19/768950eb8f77b9a0872d4c605a23fb23cbfa32
-usr/lib/.build-id/19/8bdc74d716c5d62fe8837667f9201ad797edf8
-usr/lib/.build-id/1a/222a088cdae970ee38feac0f694290ac5819fa
-usr/lib/.build-id/1a/fdd52081d4b8b631f2986e26e69e0b275e159c
-usr/lib/.build-id/1b/435c03d0bc17ce5a32f02322d93e67a18ec9f8
-usr/lib/.build-id/1b/a3d01fecd560ac4d815bdd8c5f34ccd463daa6
-usr/lib/.build-id/1b/dc46d11b04765bc149e374dd80650ce36b04ed
-usr/lib/.build-id/1c/1474e035d147524ca893caca4930b5b83cb300
-usr/lib/.build-id/1c/619a9d7e8211c33b37941b4ff4bb2470c082ee
-usr/lib/.build-id/1c/6c9c6a471b0cecf138ebed4b82ec09f21f5781
-usr/lib/.build-id/1c/c185303ead50b30b1b3196a373af94e1341063
-usr/lib/.build-id/1c/ffe6225840cffffe9b53b214c34d9596f16660
-usr/lib/.build-id/1d/80840ca029e24a485f5d927235be6d7f033443
-usr/lib/.build-id/1d/8806a634247fc5e9f94e8ad300be792393d093
-usr/lib/.build-id/1e/aa00f32b11667b98f2133a50d637a344a4ea33
-usr/lib/.build-id/1e/c1cc5cb1f3bbca7d9ad0efee379dbc3e357f57
-usr/lib/.build-id/1e/ea9f03a47141c816966c43b3b60ecf34450a37
-usr/lib/.build-id/1f/023413a08dc91ac12b572b134ae1db890df9fb
-usr/lib/.build-id/1f/0f7445c7f6a1c61907ea8209bddabb20c12b2d
-usr/lib/.build-id/1f/4fc7586d64292e52862d181dfd01c747dca170
-usr/lib/.build-id/1f/b0c1325053c38efc5f5b08c41033c80063cd2d
-usr/lib/.build-id/1f/d21a63dfce9da882b4a1b9846e7191439d1262
-usr/lib/.build-id/1f/d95cdc1df286938a613c8a5aa9e1af2db9825e
-usr/lib/.build-id/20/5cffad0f813924c786d5d2060878a166666266
-usr/lib/.build-id/20/a839a93a5de52e70917ce96ed81baf4f96813e
-usr/lib/.build-id/20/e14f4d24b0764a19c0174e41797c67deefea44
-usr/lib/.build-id/20/ffcd4b18e66ee4a5e162eef9874234275a9587
-usr/lib/.build-id/21/2fd015d1c4ad4765a63d668a6056e5a1d9fa8c
-usr/lib/.build-id/21/5fa1e676ded39ddb636f46d060d7ca434f5572
-usr/lib/.build-id/21/d1bda9764072e1208e7df64bb131dd491f7b8e
-usr/lib/.build-id/22/00130affc9d911b7feb6094eed3cf89f220627
-usr/lib/.build-id/22/2d5960bd543161135ee0af1de949b6589bde28
-usr/lib/.build-id/22/7632cb0ce62a4c762a54d57174d539763f1968
-usr/lib/.build-id/23/4f960a326f00e4fe81daa9e3e854031b7296b7
-usr/lib/.build-id/23/5ad5379c9648c80188041abb97894713885f13
-usr/lib/.build-id/23/6188e8040f520c2b1ab560ddebfb56baae5159
-usr/lib/.build-id/23/b3fcdd360ad3d7cdca4051a7139ddca68ce3fc
-usr/lib/.build-id/24/14f0bbbebe7e315d9c282efc4acfe1ebdb09ad
-usr/lib/.build-id/24/16ea4246da4b547271112a459c84b085c28ced
-usr/lib/.build-id/24/26f958c9bdd6adb34c8c53f31d45b487be18c5
-usr/lib/.build-id/24/4eec2014bef8c0f990f319d7d70c967aa2b6c1
-usr/lib/.build-id/24/88284c48975afc3d0378e2f0cf7ee0a84c4f7d
-usr/lib/.build-id/24/8ae7e8de1d7500f3f7b1e051f363a5405eb060
-usr/lib/.build-id/24/ce29bd8e77a973abcc485e55c03da87ea872ee
-usr/lib/.build-id/24/e371893b0c7c1640748977809bcd2dd4b3e50d
-usr/lib/.build-id/25/28c02e46dd8c38ce3608fc0374b818e3fb719f
-usr/lib/.build-id/25/2dd4e41e79de2ad12d2b38820b759ddc022ebc
-usr/lib/.build-id/25/497b6840cc7e39f69f06948e40bcbaf3a4374b
-usr/lib/.build-id/25/6e6f7b6763f0cbfd6d86a37ca732355ab2aeb2
-usr/lib/.build-id/25/7b5e1bc5a05f69ffcf4e62761479bfce6f6595
-usr/lib/.build-id/25/b03ef02064391339f3b6b9f5552d2172e3257e
-usr/lib/.build-id/26/0089a28a7a472785094b5f1300c54cf765c1fc
-usr/lib/.build-id/26/0e0e5bcef926258b70b96d6a3dbe3ea48bd805
-usr/lib/.build-id/26/52926db8a4e657316e89317abe73d46139bdf8
-usr/lib/.build-id/26/5e868cd577dd221569f97b7859f93a567bdf23
-usr/lib/.build-id/27/ce3fb7eb5e2fff2baf9547af07b297bd1dabd6
-usr/lib/.build-id/28/38b2989eb5ab64daaad09897a14edca2738af2
-usr/lib/.build-id/28/473f458848741ae8309d500ceff30c47ab07ec
-usr/lib/.build-id/28/a8886b4f45b97b8ca274e4b43cb6e60f7683a6
-usr/lib/.build-id/28/aed38833551909c33c1cfe4541305be86a1cf0
-usr/lib/.build-id/28/ba95acc559b5658e7efd450fbd6e6ab1b7cfc9
-usr/lib/.build-id/28/c02c0bcbbed3cea52d5346be581c25df621490
-usr/lib/.build-id/28/d0c126740a5c73b5c74afa5961423f5a35d893
-usr/lib/.build-id/29/c8af889a69598556c7a771818108360551771c
-usr/lib/.build-id/29/e21b11c114ff95151f13164087d268a82cdfa5
-usr/lib/.build-id/29/ef50d614d86024c6de685ba17e66a61e1ac6d5
-usr/lib/.build-id/2a/43011d91d3b5e159f3d998ddb16b2b7f6e7eac
-usr/lib/.build-id/2a/8c710a0c5a8f9914c97b4dc7a9b57476faea9a
-usr/lib/.build-id/2a/d5bd6053f51b8d184aa851525c3bf5ebdc8720
-usr/lib/.build-id/2a/fe89c4c905efa73df8bda6e4f842fa8b831c66
-usr/lib/.build-id/2b/19a01be99cf3a522aa381e7ca6b4d86b5a7ffc
-usr/lib/.build-id/2b/1b8d5c4986ba6ac748b48fa4a1a46b88b748e6
-usr/lib/.build-id/2b/4f81148e03cffd18204543db195b6bbf00c4ca
-usr/lib/.build-id/2b/65d4f00729b94cc4d6e2bd0f1e0b6195190588
-usr/lib/.build-id/2b/78ebf119aee2b429d59df3b2a91042a282d0e6
-usr/lib/.build-id/2b/bfe14bbb7bb83eb84865b863f9a93b773c0348
-usr/lib/.build-id/2c/60bc7dc51c28174c0ad67b250437efd334a8b2
-usr/lib/.build-id/2c/8a1b04ea282ab9267d6e8df109892871e5125d
-usr/lib/.build-id/2c/c7914158d0dbfd873a9d4eed4abc8c6fde5e73
-usr/lib/.build-id/2c/dade33efa0097beb3ac42c877098f63add5806
-usr/lib/.build-id/2c/ee9a36e606c340cf3507085d30b46bf04e1e63
-usr/lib/.build-id/2d/172346a2410deb41811cdecc70ac1971e29ffa
-usr/lib/.build-id/2d/17b84063aee726ff5c194620cf62a003145e43
-usr/lib/.build-id/2d/4fa836c53551b53d08f44c5e32ef322a792216
-usr/lib/.build-id/2d/60674cd25fb10f5a95aaba0d5dc10e2c9ad532
-usr/lib/.build-id/2d/754e4c2db42564146d024425dd15c680b2598b
-usr/lib/.build-id/2d/ae2a9b3bb62eac2a6095b4d1faaaebaa689f0a
-usr/lib/.build-id/2d/e6d1a8cdbae5bab780876ec29852a0848a05fb
-usr/lib/.build-id/2d/ee3c96998d9989214e218b82fbed50b36d6f20
-usr/lib/.build-id/2e/074a7253e75d943a188602c92a97dd62939739
-usr/lib/.build-id/2e/3fe23f9a6a9e40cb80be90ff6ae14f7a2c0520
-usr/lib/.build-id/2e/6af17020caef00d163c1303e507daf66f360e3
-usr/lib/.build-id/2e/dfb7fec9ce44253bd9a8f8242faf21b5125139
-usr/lib/.build-id/2f/89ff0c6a7702e786f0a6a6042213eae8c3c65c
-usr/lib/.build-id/2f/bf0333ce72ed095f6631a257303c8256d883c6
-usr/lib/.build-id/2f/cb8ee41a62a927ca37d919d7d0150583c88bee
-usr/lib/.build-id/2f/f971b8e527fb547fc3133dff1fca1a26109cd4
-usr/lib/.build-id/30/3488fd485a6e642422b3c2bafafe58ad797e7c
-usr/lib/.build-id/30/7789b8a82a4466a0aca6b3a13d9d466811e7e8
-usr/lib/.build-id/30/e6cc1800c6272775f23976f97c43bf217f4dd7
-usr/lib/.build-id/31/79dba8ce63f373162f78dd3ae023144efb319a
-usr/lib/.build-id/31/89ec95cc77eb74883ff1588e2c8fb7013475ad
-usr/lib/.build-id/32/4845a206fe5bd927c6bb1b0421938cff415a9b
-usr/lib/.build-id/32/69643ecb69d55368cdcf559e5c43be7a761208
-usr/lib/.build-id/32/f19d02baa2b4db8dce4640d652ac41655c6ee2
-usr/lib/.build-id/33/0eb2fe0769e5466e2e0ac1b158e1e8452738c9
-usr/lib/.build-id/33/72acac67d8bb011c524331e39d851313c1403a
-usr/lib/.build-id/33/a375bba365103b26935b8b9938f0c1f65b4bf7
-usr/lib/.build-id/33/dbe6f6382d838a8dcf13e879de96da6ce94d30
-usr/lib/.build-id/34/076457399cf4f107d985d3b513a115d8c329ec
-usr/lib/.build-id/34/0f42758119d3cd45eb79e8ceafd89dcb34e8d0
-usr/lib/.build-id/34/2953310e9ed38e5e8c46fbc4acb14988473517
-usr/lib/.build-id/34/46712c07e22f5b4ce8f480e2cd7c35b34bec00
-usr/lib/.build-id/34/6b006d5914caed4742b741eeb95c0507e1ad9d
-usr/lib/.build-id/34/abb974a72680be6aac83d6803f76396b49142d
-usr/lib/.build-id/35/19023de67c7b48e6148bbe10e0fe60d87ee3e3
-usr/lib/.build-id/35/31417f06743e7be1b8e499688182ecfd159fbf
-usr/lib/.build-id/35/31aff32ce3e8977feeeb1a74cc6a02e0f70a62
-usr/lib/.build-id/35/45c9ddce2756d9cfb7c1e9364045aa70ea3f40
-usr/lib/.build-id/35/55ce26f6067927d3cd6cf3b4236273f68dd7ad
-usr/lib/.build-id/35/6c30fe5c10b93b44fa43a409ffffcd47c17a46
-usr/lib/.build-id/35/c573664af9e7006cfdf2f34d29d3c27d04c6b7
-usr/lib/.build-id/35/e669a9ab52556a4e1785953674f8d967d7f46c
-usr/lib/.build-id/36/04e280efd030e778e56849c37137e4f8f44d4d
-usr/lib/.build-id/36/63e07ce96098a90871cfb343db397d03faadc2
-usr/lib/.build-id/36/e450e3e137a48aedd6005c0f624cee6f6e7dec
-usr/lib/.build-id/37/07e8e3291c47f45a7329d9d648fced7358a540
-usr/lib/.build-id/37/71eabfefea7f6c46964e5877be2ee331b02276
-usr/lib/.build-id/37/eeaed8ba1de87af6c1bab38d60004d6981348e
-usr/lib/.build-id/38/2d079775ef7ffc4763a0eb6ccde192aa16b2fc
-usr/lib/.build-id/38/ad24fb97b180069b53ec7caa5cb9edbf318047
-usr/lib/.build-id/38/b52d57cb41682da851921d0f3e0a2a398e8701
-usr/lib/.build-id/38/c8340b8331ac198c4b1607963161d62332cbaf
-usr/lib/.build-id/39/037426720c32f039bddfe8b2080b477215a7eb
-usr/lib/.build-id/39/96a8758741c02a809e985828d3da8b7c5ce2b4
-usr/lib/.build-id/39/acaa5afd619b85e7e291b426e08ef141cd440b
-usr/lib/.build-id/39/edf0feded78519191369c3977bbbfc0c87769a
-usr/lib/.build-id/39/ff827efadbb14ff6e67e76b153b36c9e8899f4
-usr/lib/.build-id/3a/0fc075029d3fc1919a6be940b00bbeff17527e
-usr/lib/.build-id/3a/158e17fc85443ddbf8a50ed38431fa7a4895e1
-usr/lib/.build-id/3a/22271b885b13c3227c8bbabb28e944549c9252
-usr/lib/.build-id/3b/69b2c0981ee9210e538463bf0edf5b1e54fc01
-usr/lib/.build-id/3b/8f06d66836c2d7c79bf5c6e90bea84c587f93a
-usr/lib/.build-id/3b/9e0c93ae119d0f124df5eec088e953dae1e05f
-usr/lib/.build-id/3b/9eb77b4d6884ef5c0478e0d505392077c8d4d5
-usr/lib/.build-id/3b/da1e7983c21cf2bc81ab758b8b2932ae08c665
-usr/lib/.build-id/3c/24d031b256528ca43f00b856ccf94195f122d5
-usr/lib/.build-id/3c/a0b27bd7f314abc8c87c88ac6c25d4412d9d79
-usr/lib/.build-id/3c/d04f7b4a78499cf7aefdc4be419fd508db7e72
-usr/lib/.build-id/3d/3129ff44af70e1cf435609307fed0677784fc7
-usr/lib/.build-id/3d/74bc0156fb37a2b5a273277ce81c1765fcd9d2
-usr/lib/.build-id/3d/829b238137efcf6c3b8e51339866d6c6fd5bb8
-usr/lib/.build-id/3e/4ca89ad898a819230b8627b8a9b224b7e8822f
-usr/lib/.build-id/3e/b11ab58ac1dffc204c6ffc06f7eaa658ed23ce
-usr/lib/.build-id/3e/b74844b19744bab47a845aef84e3d710528bb2
-usr/lib/.build-id/3f/e28c90619c1c8b8cdc109408f82ff8e0b5c018
-usr/lib/.build-id/3f/e3a3b39b04594f51b653533fab5645284954e6
-usr/lib/.build-id/40/2dfd48b743057d0227f5dbd6e7a28c672ac749
-usr/lib/.build-id/40/4b4faef8a12bbd4b065b5c46233ed4c13a146e
-usr/lib/.build-id/40/b5cff5fd5f36660b638da8ffcfce3831e8265d
-usr/lib/.build-id/40/be2400cbdf17b0ceea6af996cf7b0cf5118848
-usr/lib/.build-id/41/247447abfaac7e615f28bce995ddc84b3b083b
-usr/lib/.build-id/41/5d19a7bdbe26b352c0391f7200dd9b8c0eabf8
-usr/lib/.build-id/41/6d3603a3a4416ca0e2da2ba1803734669b023a
-usr/lib/.build-id/41/d733eb930bc4db53541cfe4c84a3e82db4a523
-usr/lib/.build-id/41/da7e13ca2c57f04bcd75dab8dc9c601deabeee
-usr/lib/.build-id/41/e9da7ddd609eec33dc85a5d8e603f9897aa00a
-usr/lib/.build-id/42/2270916cdff731c68ddb05a9167fc2eb7daea7
-usr/lib/.build-id/42/779344e881f4e90a88cab86ac55604fd16b6e8
-usr/lib/.build-id/43/1726e417e84477d21112b033c171506954c6f3
-usr/lib/.build-id/43/288b1feba114c85f50774164d77497e12a2d25
-usr/lib/.build-id/43/5b8ef08c4e844ae705d0bd223af4b8081af723
-usr/lib/.build-id/43/709467b9d7ad5a1180464902c0ffdcc28a40cb
-usr/lib/.build-id/43/8fae1ca6506e99610b2b61cf43bae7b25f975c
-usr/lib/.build-id/43/c2cc269f54d42bdf554daf38d8068d9cea0078
-usr/lib/.build-id/43/cc909d67a7573957be572f25a1bda51b9d72d6
-usr/lib/.build-id/44/0f5c8bd4d05905bc8ffd0265d9de798bf37cc8
-usr/lib/.build-id/44/1295ed429ed097c0733db5de78ca631a943971
-usr/lib/.build-id/44/28d833e57048bdc5c4074f794e7341c721533c
-usr/lib/.build-id/44/2b073905f1137930d40e334651e48251fa1af9
-usr/lib/.build-id/44/a42a89f541d098fe9eda3220525a65cb3c172c
-usr/lib/.build-id/44/ac8888c8f6ce558e40e52e188b0758c8ae377f
-usr/lib/.build-id/45/3f1c9295e007a5e39e0b452c98602954fb650d
-usr/lib/.build-id/45/62c0cbb71f72f0ab95bb5593967214c3976ef5
-usr/lib/.build-id/45/9309e61ef551c6551d8333576c113ddc30f126
-usr/lib/.build-id/45/eb8312f0f2732f1b9bdf9f9a5b06dd1a13cb57
-usr/lib/.build-id/46/224d6b3c5ec6dee17f48e0eec4240aed3c0305
-usr/lib/.build-id/46/6da8f72dca0d750ca0913d75ef7e11ed25596a
-usr/lib/.build-id/46/97981adb0ffdddf2e4f02df36b8ce85dcaeb96
-usr/lib/.build-id/46/c287568283b5b7b8b32324f83d455ca36e6d64
-usr/lib/.build-id/47/cabe6cbfc6209e3e1b7b5c098862d99a4ae95e
-usr/lib/.build-id/47/fc10ede2f35e8b5d1def40978736b15559f7c0
-usr/lib/.build-id/49/0ab19ab6058a0c489c441b93850ffbec0e6cd8
-usr/lib/.build-id/49/26fda2d19b787534508f2064b44e6668e7bc47
-usr/lib/.build-id/49/60c104b0bf2f2337b6e8bae8e1a0b7efb1da33
-usr/lib/.build-id/4a/0dc8909f74931e763f2ffb3b7dfdd2a174ee7d
-usr/lib/.build-id/4a/1913b445b40bdf12435113865314a7b313a3b7
-usr/lib/.build-id/4a/7d37200f86fb73e9adc67b3e402d06c6d7faf7
-usr/lib/.build-id/4a/eb7b8f3a598852867920d3ee347ce0aa434b9c
-usr/lib/.build-id/4b/17d2f7436aeef57c753585f117d2c86a538ade
-usr/lib/.build-id/4b/69cabcd0f183b0398eaf315ab7f189fb123fbb
-usr/lib/.build-id/4b/b525a876b4a1b998bfd8974883eb24c58b6037
-usr/lib/.build-id/4b/e88b7186256c7f79de0e86e872ece8b53a1087
-usr/lib/.build-id/4c/2a4c60e84137c24446af2f9a45c66f63024b2a
-usr/lib/.build-id/4c/aa1cbf3324d8c99dcb6cd0655f4998f2e4b04c
-usr/lib/.build-id/4c/fcec89fb655c8b0c82c0f72bf7903ef1ad0662
-usr/lib/.build-id/4d/35695ef0e42a24fe42b83743b0c6777e5d4849
-usr/lib/.build-id/4d/35a76cbad5ee968f90c3288260ff68f21a0a66
-usr/lib/.build-id/4e/2e5ead21777d007585882d5a16eec9dec0c81d
-usr/lib/.build-id/4e/3c5718f36867dcc55b17255f3a3b19d5e6cd14
-usr/lib/.build-id/4e/da7771a125344cf362d9964c68ae0bceb5319a
-usr/lib/.build-id/4f/5deea12b421879216fac18e9bb60de4ac9fb0f
-usr/lib/.build-id/4f/66748c61c17fc9b7bc3a7248c9ca7d8f86699c
-usr/lib/.build-id/4f/97c1cf9935cdbd1dc36267ddbc8890578615cb
-usr/lib/.build-id/4f/bd40d274a792d3214cd6da5e9274c16942235c
-usr/lib/.build-id/4f/e712f7d9d854c5c140b7599d8e64a0e0de647a
-usr/lib/.build-id/50/01ba7a11dc5c3aa45478ed5f9294e5256f2d47
-usr/lib/.build-id/50/60d940577ea597058faa1a36611afd8b0d658c
-usr/lib/.build-id/50/695f23da4647a1b765e512c6bc0b3b91e8af97
-usr/lib/.build-id/50/844834aa33e0d8d245cd2d19ac41e86e89de8a
-usr/lib/.build-id/50/fa583d292a9985ba8aa9b4584fe48146174473
-usr/lib/.build-id/51/5f683ec1b7a3d4f6f40216e077d3fca77818b7
-usr/lib/.build-id/51/673dac30aa14a615e03a50ac6853b1540a0104
-usr/lib/.build-id/51/badb6f16c429f76bf1250bc7ddeeb5629b0164
-usr/lib/.build-id/52/1a4729b3f5f5c16d71b99ce42e95a5f91d7de4
-usr/lib/.build-id/52/2125b6594a50582cab344ee8bf9abfcd487445
-usr/lib/.build-id/52/2f62c83fa9161d2c199b914e9096ed785a19bf
-usr/lib/.build-id/52/512c9969331362cbd4ce77a1e4e3a3019b4b42
-usr/lib/.build-id/52/90a3fc9a71fa6b4296638c9c2a57143f7c4a8b
-usr/lib/.build-id/52/9c76869e6990af735d33e9d135376b57b04e64
-usr/lib/.build-id/53/4d18135bfb3e04a0341160e107aa13a22ec6f3
-usr/lib/.build-id/53/8b08d13ccb8685680153c64221a5a225b5239b
-usr/lib/.build-id/53/c8858d0009958ec30aacd2fe6dbbb405b973e4
-usr/lib/.build-id/54/577da2136d945ca6760f973d2825614a99ae8c
-usr/lib/.build-id/54/5b849f56e86ebfd8e3af8912e73385d1e49725
-usr/lib/.build-id/54/900d6303fe1a016dd9ad0593c4ca3559c6a47e
-usr/lib/.build-id/54/f89ec05da34d5e9f53e91bc26ed5d938fe2313
-usr/lib/.build-id/56/710ad4beb4461457be62b64e65f328d46502a0
-usr/lib/.build-id/56/80f884c707256a2a85e21b4bf0b6805c1a6914
-usr/lib/.build-id/56/81365aaebd39bab636dd671c68b358da98bb96
-usr/lib/.build-id/56/87823a18f153cd5e6d45cbac9b3c06af221380
-usr/lib/.build-id/56/d4af62456d823067b7cf0b813a85e410ea073f
-usr/lib/.build-id/57/59e44385dd4a81a0fc7b56fc756cadbe87a331
-usr/lib/.build-id/57/b46cf1d5ba66e7eeb9a566843a144e2ce73989
-usr/lib/.build-id/58/32aa17cb6e5e27d6110fb69e71cafa3dbaf554
-usr/lib/.build-id/58/5ff3833574647a623ae848d8b8031fec46c4da
-usr/lib/.build-id/58/b6d55941506ea060d1200aa7ab73c6ad1b538e
-usr/lib/.build-id/58/bb916f28a8bafb0c2cf57d9c280d3e10735d7a
-usr/lib/.build-id/58/f8adf08b4a81ec891424357a87cd3c16b82a59
-usr/lib/.build-id/59/42d2377730d1edd2b952b7ab6c5218e1d4e8fd
-usr/lib/.build-id/59/a68e56d5456df11d1339f57f6e91a3af7581f2
-usr/lib/.build-id/59/cd703a329ea5fe4287d43cec700f147524da95
-usr/lib/.build-id/59/d80c810d74964488e2a8ae54288d9e51026c60
-usr/lib/.build-id/5a/0493fb786bd9276d6973bd2b053d9279eff4e4
-usr/lib/.build-id/5a/d82e5076fc9c5315539716faaf9ad57e9caf3f
-usr/lib/.build-id/5b/c59605a701ac9a370ff6c955767c23c97ab250
-usr/lib/.build-id/5c/5cd466c46ecc7551e08fb5f615e037f9ed033c
-usr/lib/.build-id/5c/7cb28c9c22916ce344083275d9150e0811def2
-usr/lib/.build-id/5c/8c3a430a8a9c7680ff920b9b5f2ce05c4c507a
-usr/lib/.build-id/5c/d5496ac1c8ca089476c63e1ef5104a491c3b90
-usr/lib/.build-id/5c/d682a041f9a9118c546034b8bcb6ee36c0c1c8
-usr/lib/.build-id/5c/ddaee0f95aee615fe5b8da32156e0d0f161e54
-usr/lib/.build-id/5d/68c0b5a06cf9aa0c45967421fb1eeabe61d548
-usr/lib/.build-id/5d/7045cd456afcb8d095fdf7e39e7dd8164c9840
-usr/lib/.build-id/5d/73a42d0a85c6f9a6a53f2cbb310511f5b84619
-usr/lib/.build-id/5d/addeaefe2b21fdbb7fd698bf25fe9f7654f022
-usr/lib/.build-id/5e/2707aea4c6695fa2aca5169bb6d53991aa87bc
-usr/lib/.build-id/5e/3f19ec7e492f44ff5ba61a159a47cf4cad6251
-usr/lib/.build-id/5e/c40020a7ef7879d43a0788143f960cee5bc1ab
-usr/lib/.build-id/5e/f3af806098e612525f6380609cadaf07907c01
-usr/lib/.build-id/5f/0500a9a923b26865877cc03e493c351e0752ce
-usr/lib/.build-id/5f/974be838845545e23b6397dd0d25b7ff701412
-usr/lib/.build-id/5f/99772d9718c44bdc5c1d8869234efbd220f618
-usr/lib/.build-id/5f/9a6ed3e2c62a3193f58ff7657e6053e91b4cad
-usr/lib/.build-id/5f/af6c98c9354819622ac8869a8466ccd98b0d85
-usr/lib/.build-id/5f/d4562b6deecd1b8f633ac4f33a8c1e502546ff
-usr/lib/.build-id/60/2562843d5b10446348e7624aa8341cfc5c3ebf
-usr/lib/.build-id/60/400bd3c6ba4a0207c4e5951f42c846acc52bc9
-usr/lib/.build-id/60/4155eb331a13112ecbdd6a936195c1e41ce54e
-usr/lib/.build-id/60/51d147bd6f6eddcb06e9bf48b4796284310227
-usr/lib/.build-id/60/63d663dfc10dcb87857f4032f403b7460e68b6
-usr/lib/.build-id/60/bf8bb1e00c7e4ccd8def383688a1e8a12e3fcf
-usr/lib/.build-id/61/1d21660219be5e13b322396cc7828a62d981e9
-usr/lib/.build-id/61/501b10afd6dc3230b1c51dc720b3884c7c5268
-usr/lib/.build-id/61/a62f876e8860582e6aa8f080e386922861b98b
-usr/lib/.build-id/61/d1a397d615dc216e1bc934cde9d35b30adbb05
-usr/lib/.build-id/62/015d86faf73e594886bf037f409cc98f47a8ea
-usr/lib/.build-id/62/054854b8430ab5543432847cd3fd43245ceda9
-usr/lib/.build-id/62/11892b718b8e5081985684c401bca3ac28e4a0
-usr/lib/.build-id/62/218a0846867cd7077ffcd14b4b5445edb9f32b
-usr/lib/.build-id/62/593355e1c5597adf0833d6d2581beefdbd69ef
-usr/lib/.build-id/62/98520010e619d3873b5a9e1e892799c3231a40
-usr/lib/.build-id/63/21a194fffeaba48a14f3cc2e0ac43b2923547e
-usr/lib/.build-id/63/3664f69850fddbbd6cd7ad2cc732b11ec643ae
-usr/lib/.build-id/63/b65e9f026c70c67da02e5f0361a2c8e8e40245
-usr/lib/.build-id/64/200eafd1beeba14a1d61584c1ac96e9f9015b7
-usr/lib/.build-id/64/c7833a12471ed8d44e34d3e07f5384478b5128
-usr/lib/.build-id/64/f7848246fad49da74c3985e72c00e5d11950b1
-usr/lib/.build-id/65/34d973d12c4ab7e6bfb2c7d7530d5a954ca33f
-usr/lib/.build-id/65/a74bab62ceb0bd4b01da0330a272003b7b47b0
-usr/lib/.build-id/65/bf3dad8dc868baa3d348c66e8733018f0d22a2
-usr/lib/.build-id/65/e6e3e54d790b580026e4ca146a54c1ddb3d642
-usr/lib/.build-id/66/387939f3d78bca05a3e61e02c3e3bce593455c
-usr/lib/.build-id/66/6cb362ce3a837e3bdad74e38cea6c595e7efbf
-usr/lib/.build-id/66/7c163e5ba26365a303a6a953a459af58cf0628
-usr/lib/.build-id/66/c69e25e48242ab7101afb037425a7705c86008
-usr/lib/.build-id/66/e53686abfc4289726db40f122ea3d9928ca42e
-usr/lib/.build-id/67/16744f4a89a11ca8402520b6c45accb7491ad1
-usr/lib/.build-id/67/16744f4a89a11ca8402520b6c45accb7491ad1.1
-usr/lib/.build-id/67/228fce3d6418ac3712e70518ad0e1e7be0a51b
-usr/lib/.build-id/67/a0e66569da3105f6cfc63106392c71f7ff037b
-usr/lib/.build-id/68/04f5abe303b6d5c5a3b06f892c9d7cf3aca73d
-usr/lib/.build-id/68/1878a0761abc8e3a9bdd403b20d59b3c7f0b76
-usr/lib/.build-id/68/3d4607162968e3cc73c3209ae8a10fa79fae33
-usr/lib/.build-id/68/aaf9a40f6873a9d97d64ff828db49ccf262f1c
-usr/lib/.build-id/69/27eae5ee8ac5df4441e577be434d7b07d05394
-usr/lib/.build-id/69/75f7085e57230b80492f7fbb9a5e9739f3bb61
-usr/lib/.build-id/69/a8ef887b713af7b6e4a695901905c00c2b953b
-usr/lib/.build-id/69/f0231c4c007b6438098b7fcbd0be357b50e83e
-usr/lib/.build-id/6a/456f31ac3d34b4931e5d019ce14aeca4509079
-usr/lib/.build-id/6a/a9bcfba0b2814b674ec17cde2d40bf0cb7e524
-usr/lib/.build-id/6a/c651fdb605b539d773a583f32cc1569faab4b4
-usr/lib/.build-id/6a/e22b3b0995a6651af879e2afbd861b0d5fc3ec
-usr/lib/.build-id/6a/eb0d7d71f67aa91762188ec9d906e9b7639fe8
-usr/lib/.build-id/6a/fbaa6948c26f376eb77c2c1ea0547feaf1df28
-usr/lib/.build-id/6b/3fc4f3652ed7021b9bde3f9ecb04f7adffbf62
-usr/lib/.build-id/6b/5e8399f9806d8e8608e29c88ab02ae250cb433
-usr/lib/.build-id/6b/8d88623cda0a9feab482117f589fa392f7c5ea
-usr/lib/.build-id/6b/9d357635817bb19f7d6499c333aaa3b34242b4
-usr/lib/.build-id/6b/ad864e3d7d194a34ab4455539402810178ab6a
-usr/lib/.build-id/6b/d62dab6f7e1a3bf42fcdef417b2218b4f4003d
-usr/lib/.build-id/6b/f63c1eb8c54694140375a8ccacbbfdc98f7bdd
-usr/lib/.build-id/6c/4f63aa651798e01cb5fbcd5464207b3203c3f3
-usr/lib/.build-id/6c/9e5389056ab1181031c341f6539d8cd69e7332
-usr/lib/.build-id/6c/b8083b7c52ef6075e2ae44f9b51efe63628282
-usr/lib/.build-id/6c/ee061b146f1356a81c2f8c80928192e3960ee2
-usr/lib/.build-id/6d/60b18c387742ae3394b8d4ca96c9226c3806cd
-usr/lib/.build-id/6e/665bce394f302d74cad544801828ab9833e23a
-usr/lib/.build-id/6e/d0034e5150950458d4e9e0b9d22432379e5e2f
-usr/lib/.build-id/6f/d4747c0832366888eb7cbd976de5dad4a219bd
-usr/lib/.build-id/70/02e7e58805e5529d91f267279d56aa5800ba45
-usr/lib/.build-id/70/40ffb15f2551653e448ce0267d46bfca7a7861
-usr/lib/.build-id/70/e0253b7868401893c741d9f49603a8073e144a
-usr/lib/.build-id/71/27d326f4d344bf0eb270b75ec09fbacd60cfbd
-usr/lib/.build-id/71/7f0e634b01a39c01e6605d58bc2b7635ebbc0b
-usr/lib/.build-id/71/87c398556fdd58a97e82d4400edea8743c83db
-usr/lib/.build-id/72/0b534c560012f218a86ab308f031f1f8c13f0d
-usr/lib/.build-id/72/d7bf1f45e722afc8d32660368e2169257bacba
-usr/lib/.build-id/73/2dddcf3178120f876ab83c37c1e3a1404e34ff
-usr/lib/.build-id/73/405acadf75ca5a6fbbfcea4b00cace7b3184a6
-usr/lib/.build-id/73/6f12e5b7bc726c9bd30de780505ba86aebfdf5
-usr/lib/.build-id/73/8f149c2491e64004db5109fabb5ecf08c4b889
-usr/lib/.build-id/73/b1f2f5adeca0dad6fdcce48543c631fb28d232
-usr/lib/.build-id/73/fe106c0f38ea3a2e68d94077fac8b0d84b65ef
-usr/lib/.build-id/74/0df787ba13208b5a0a373f9892e6060c419c90
-usr/lib/.build-id/74/b7cfb3ce0b7570c13047a0688b4a3f0c121528
-usr/lib/.build-id/74/ed73e39bcdd0f7999570e6ed5461d2aee8cc9e
-usr/lib/.build-id/75/0c33ddfb39517cc96f36394df6825d06ea932e
-usr/lib/.build-id/75/37f2192f64059f51bc554318d336ff7b2df5a2
-usr/lib/.build-id/75/8c1401f19799ab07b1703d4772a65554cb3ed5
-usr/lib/.build-id/75/a0bcfa041a465d4f6f1fba768304c4f6317b77
-usr/lib/.build-id/75/adfb163d1796466ce81f08cf2248847415b77d
-usr/lib/.build-id/76/72b4cd54f2c48ea4e48ac8ed271389ab61cd5b
-usr/lib/.build-id/76/c823f4f8d714997cf7d6ef2b986b26a365c46e
-usr/lib/.build-id/76/e75e0d8b09f3e897633c6508431fbdce3e8908
-usr/lib/.build-id/77/a11610b4a142145bb8476ce43c2e1e54740d6f
-usr/lib/.build-id/77/ea098a6385770eab758b6372e10254c0613563
-usr/lib/.build-id/77/f2dbb5800da9cbc766b9bba3b529d71517d661
-usr/lib/.build-id/77/f57e1407c76f822168495c6f8c6b907c9dc9c2
-usr/lib/.build-id/78/2eda7ba39f0904a39d540f6c724336f1ee7705
-usr/lib/.build-id/78/43623017b58b79af0a49614101e1d14623b940
-usr/lib/.build-id/78/45e91968137653bcfbf746c3d523435f204528
-usr/lib/.build-id/78/8ca4eccb689af0d2c9d7103b69a579bb251029
-usr/lib/.build-id/79/01b85e2fa79d15b110f3c4a5e08c0f2de279e7
-usr/lib/.build-id/79/0fca7de5261fcb803a3809480903f29b557f97
-usr/lib/.build-id/79/6fa2186dc9d0bc96aed18088a6ff23c8b0e9d4
-usr/lib/.build-id/79/8c5778f5e06ae917492cde88880764894f15d3
-usr/lib/.build-id/79/dbc8d21e16b951bec0e74ddd2655d1c693cd57
-usr/lib/.build-id/79/e8e93fc7b049551b54f22d806c2437d6f895d3
-usr/lib/.build-id/7b/21deaf8238308d6f6a837fed9a8c0a315ba898
-usr/lib/.build-id/7b/2e9c94c1345db483e9b43f44c3ae1ccb93b519
-usr/lib/.build-id/7b/329f12f7ce1daa438db842da103daa874d6fe7
-usr/lib/.build-id/7b/6a4b2b509fa003f51ad6aa00c1031726878032
-usr/lib/.build-id/7b/8d8b616f5d290e3d27a1e440286e5581e3ec6f
-usr/lib/.build-id/7b/f934707ecb43845b1a8c8a160dca466378f37b
-usr/lib/.build-id/7c/49f1e34ae5c9e22fc5a4c90427a2c764c3db9d
-usr/lib/.build-id/7c/5344c7a172faf96b8de710055ab84ac5882582
-usr/lib/.build-id/7c/8ce369851fe3df1bf0a2cbc98fae78f1777767
-usr/lib/.build-id/7c/ae178c523c7646b44c8c329dfd77157c9031da
-usr/lib/.build-id/7c/da9320266c918c6f1a78af8bc8d496a3b223ad
-usr/lib/.build-id/7c/f0aa1ca21596ba7ffcfbcb0129f521aaf29c57
-usr/lib/.build-id/7c/f84880736a34fdec6d71132e0fac0a6191bdae
-usr/lib/.build-id/7d/14681b3e8c8db168b33b696b247d95417ed5b5
-usr/lib/.build-id/7d/20d81f868562e66d084d12de749089a5f2bd0a
-usr/lib/.build-id/7d/7af2405c8c34bb8a56935d1674fa41a830558a
-usr/lib/.build-id/7d/9a34ba0ea25d233e03d2a1b5fa200d9eb60ac1
-usr/lib/.build-id/7e/4cfa81ecd4c6fc2044bf8f47f2423adcaaf306
-usr/lib/.build-id/7e/4cfa81ecd4c6fc2044bf8f47f2423adcaaf306.1
-usr/lib/.build-id/7e/4cfa81ecd4c6fc2044bf8f47f2423adcaaf306.2
-usr/lib/.build-id/7e/4cfa81ecd4c6fc2044bf8f47f2423adcaaf306.3
-usr/lib/.build-id/7e/4cfa81ecd4c6fc2044bf8f47f2423adcaaf306.4
-usr/lib/.build-id/7e/4cfa81ecd4c6fc2044bf8f47f2423adcaaf306.5
-usr/lib/.build-id/7f/ddb97efc78cacae6dc06a2ba98aa730c83b833
-usr/lib/.build-id/7f/e2062321b909bbd666fc91211462aa3333a62a
-usr/lib/.build-id/80/55e8dc692062721717364437686016bcd617c3
-usr/lib/.build-id/80/e228c7c2064b641b8c4aeadc0629d212c9a75e
-usr/lib/.build-id/81/1263addacc122923afb52b14d7dcbae540b04f
-usr/lib/.build-id/81/36dbcf9653da9e1b6111fd546b0eae14d16d89
-usr/lib/.build-id/81/432c2da5c313f088ca24e3c20b1691f666beb2
-usr/lib/.build-id/81/848d9f24c9632b23886894b09449656e4308a4
-usr/lib/.build-id/81/90d3f66418325d305777b436f0b2e38e6a42a1
-usr/lib/.build-id/81/b43af15cc364d8537f0698e8c7bd1cf0d54ca0
-usr/lib/.build-id/81/ce32e9132d0fbbe545f5ebe26f5e6a880b08ff
-usr/lib/.build-id/81/dd63f2c8460c6a28884b7289c17997eb342525
-usr/lib/.build-id/81/e60f144433fc8128127dc5d7e37dce2f677161
-usr/lib/.build-id/81/e9543fd391b19eb11b18d3a049e4b2e25cd7f0
-usr/lib/.build-id/82/2746af6d3d854f6ba3bebbe8759d1637faa43e
-usr/lib/.build-id/82/b4315c0b20cdc8f884c76cee57bf92d88750f7
-usr/lib/.build-id/82/fa01a9561169a388240813d130a6a70ffd0c0f
-usr/lib/.build-id/83/ea38bdecf0e11f38eb3b3e68a7ebff8ca9fd6f
-usr/lib/.build-id/84/17fbf8880dbaa8749efc9dada8ffc122ac60ee
-usr/lib/.build-id/84/3e3ab2549df1d9397a4ef4797289fd485a4b33
-usr/lib/.build-id/84/9bb7cc1d1515503222043e7503294517e13b8e
-usr/lib/.build-id/85/2fba24ab65aa2f8db3643c0e3a7abe57670294
-usr/lib/.build-id/85/8570ea2ae7f8eb785ece0e50aa1a678b3aa664
-usr/lib/.build-id/85/9af4f52af6e749c4103b3e642d38c8243a4aaa
-usr/lib/.build-id/85/a78415bcd0b54bd2e6d0798803be4786a334b4
-usr/lib/.build-id/85/ec6b8bce4bb109302f14054f148aaeb22d09b1
-usr/lib/.build-id/86/5b1f284c495193224d8e277919012dc36e51f0
-usr/lib/.build-id/86/7006057ac8be939441030fac89db3d23cce48e
-usr/lib/.build-id/86/8490c186b84efc9962a169dca52558287a92db
-usr/lib/.build-id/86/91d08fef3d9f042028d462e5b4e17b78332215
-usr/lib/.build-id/86/c4252046f8529ab44ee90da35695a62006f8b4
-usr/lib/.build-id/86/cef162137533b8ecb35b7cd2c9af3ce74a99f6
-usr/lib/.build-id/88/4b3d9ea6af056916b0442a8deef60574c540f8
-usr/lib/.build-id/88/73a4c72ac6f08df9d2211f588d9e1496a37cd0
-usr/lib/.build-id/88/74f55db2e70222caa814a8dc3c6997ced3e11d
-usr/lib/.build-id/88/832c7cbdce766c57b6c5146b0b072388949998
-usr/lib/.build-id/88/e4843448778fd49d40e1da0b5a7305038825ab
-usr/lib/.build-id/89/08c0645605e4dbb927ca85211bf61545597cad
-usr/lib/.build-id/89/35586a81857523f3907c8052f8d248cf74a289
-usr/lib/.build-id/89/c537967306ac3f25592be4da176347076e4962
-usr/lib/.build-id/8a/3205a84d51e9b5ac741dc74889065461aa9a39
-usr/lib/.build-id/8a/42f62b3e766e3cbbe33c566cd7aca5d60b428e
-usr/lib/.build-id/8a/972b3a57e2c021eae569774320e6d209015c21
-usr/lib/.build-id/8a/d6ece459b100ff372a9cf898e306f1ed61c151
-usr/lib/.build-id/8a/fd8ce278d954fe8b901b3eed7e7748f387b300
-usr/lib/.build-id/8b/94594604a18ea2f63e1a5c70e876354cbdb3b6
-usr/lib/.build-id/8b/9cfc86256c4fefcc3ffb983722cce2f3e679c9
-usr/lib/.build-id/8b/e0fbea5edee960415e957793fd15926b80f494
-usr/lib/.build-id/8c/1081f37cf1e36a1ecf1f75b87092890d92f220
-usr/lib/.build-id/8c/1081f37cf1e36a1ecf1f75b87092890d92f220.1
-usr/lib/.build-id/8c/4f2b1570d1b12d82e28c5d679f8a106096e0d1
-usr/lib/.build-id/8c/86efc0db265fa05071dcedec6646841b253fa2
-usr/lib/.build-id/8c/9868a5868d4adf37a8e9d1d68e47a5341b659b
-usr/lib/.build-id/8d/a53546b3ae2c5beb3cf3c6494525063a5f54ac
-usr/lib/.build-id/8e/40935dc3e6a68cf299a74fdab501ef7da6861e
-usr/lib/.build-id/8e/4671b33951fe3a2ba6369dca0b959436cb4c77
-usr/lib/.build-id/8e/57338680e59ce4fca0af8760935fdd13b12a9d
-usr/lib/.build-id/8e/88671af55dbeea74ba0c352d352a93fe3bfe5b
-usr/lib/.build-id/8e/93637e2c2807527c16632ee09eab8bd7933f84
-usr/lib/.build-id/8e/cca1364d34d1da280fbfc9ee326f5c78346277
-usr/lib/.build-id/8f/a84f6a74f486188d439aeb5efd69c6db955412
-usr/lib/.build-id/8f/ad6870bd7edd4fe38fd1cfce3f1eeba3d096eb
-usr/lib/.build-id/8f/ea1662d8c14a67b758ea5673b88a404b1123ee
-usr/lib/.build-id/90/8a31447b4a2a595978b37d76083f779f320e42
-usr/lib/.build-id/90/a4ea155beff2ae04a02731e18aa8c1bc6903db
-usr/lib/.build-id/90/e8c48cdcb958fd676789e6ac6e5eafdf26c64e
-usr/lib/.build-id/91/0811dec34dcb1c7dedde473013505b92f70f46
-usr/lib/.build-id/91/409a68114f3b9d0d7f246323c54aea3b01ffe5
-usr/lib/.build-id/91/77f56b1889010304c17109173d5a82b9a052e7
-usr/lib/.build-id/91/d0cc4ed87c491336e5cc5b5056f82792235a4c
-usr/lib/.build-id/92/1ff39d37cd1549bb9222c61f1f7abb6137839b
-usr/lib/.build-id/92/505f4073a8a235f6e3dcaf46ad397d2adb4f18
-usr/lib/.build-id/92/79569e26de95d4b6e0ec10ca863e418042e73a
-usr/lib/.build-id/92/79569e26de95d4b6e0ec10ca863e418042e73a.1
-usr/lib/.build-id/92/79569e26de95d4b6e0ec10ca863e418042e73a.2
-usr/lib/.build-id/92/79569e26de95d4b6e0ec10ca863e418042e73a.3
-usr/lib/.build-id/92/ea47d37841ca86259455ba025e0cd52b1dc553
-usr/lib/.build-id/93/45dfeb5e8945f911ecd58e8b1d2a152e4baf3d
-usr/lib/.build-id/93/674b011480d831889552f20ec6ed5e0f437907
-usr/lib/.build-id/93/7b98871b78ac8e0013c346a8dbbd794817272b
-usr/lib/.build-id/93/8ff443d4127711f322efb86ab693d10e7930ec
-usr/lib/.build-id/94/ca912a89ac1f6edd945891b917fde2f1b5625e
-usr/lib/.build-id/94/f60a8116ac809252433fb51ec9e2ca14d5d38f
-usr/lib/.build-id/95/99c8aa8899f4d1feee7fb09ae78b3890f7461e
-usr/lib/.build-id/96/07c26251d85a17b1dddcea2d0e4980ff2431e8
-usr/lib/.build-id/96/246730dc288abc088cb67f5f09429ef270ecce
-usr/lib/.build-id/96/a902362c51d1f357a58183643fd7bdcee5fe35
-usr/lib/.build-id/96/dfb4f4c5456974279f8e27b2f75b06a9ef8de9
-usr/lib/.build-id/96/e110e8c4f3d13d6db6754ed4b3136e14fb3347
-usr/lib/.build-id/96/f7b1214efa81dce610806904ce64d47556b9bf
-usr/lib/.build-id/97/52db898c37cd55c2b9338dde8851a568b9883a
-usr/lib/.build-id/97/5f05938274f7189867032f565d7bdc0826e5f5
-usr/lib/.build-id/97/783782421dae1b5e724e43252ddf2c58fcba39
-usr/lib/.build-id/97/ab61718b43032e37b69cf43be9b1711ae8e940
-usr/lib/.build-id/97/af3ced2febb1c77cef0922595e63709df6a1d7
-usr/lib/.build-id/98/0381c3ac52e3b99ac5245bacae48792a3ee7bf
-usr/lib/.build-id/98/6d5d76dd634b8f800f68595794b886b4a755e8
-usr/lib/.build-id/98/b6ee5197f95a0bece49c53f27b2f6af25f9254
-usr/lib/.build-id/98/e2f63b351351418546cfa58fc02dde4735c6b1
-usr/lib/.build-id/98/fe59e5531e0207a3b26340023413bdfc3ac866
-usr/lib/.build-id/99/43248c382f3203a9b2b40599ed609ee78d7582
-usr/lib/.build-id/99/4c1869b0cb09376e3903edab0865c4a0f28511
-usr/lib/.build-id/9a/23c951e336a915679cd9024cad86ab3f2847a6
-usr/lib/.build-id/9a/3c1315f04e3c3f5429b55729668409b9cfe2fe
-usr/lib/.build-id/9a/9a6ba3723329523390a8a33a55345415bb477b
-usr/lib/.build-id/9a/de86dfec28f8ee98fd984bc90a6613d4ea7315
-usr/lib/.build-id/9b/12d4c26078c8945ec1e4cd4d04ece3c4a506a8
-usr/lib/.build-id/9b/665b2fd9375774245bdb4f47c5ee8c0a08adc8
-usr/lib/.build-id/9b/8bae872cd65bc334635170c5f959f1ef8d3ef1
-usr/lib/.build-id/9b/e9277ba5651885f66a444d6bdde84a80f7dcfe
-usr/lib/.build-id/9b/fc4c71a06b0be9ee73a993f3c9f7a3af131482
-usr/lib/.build-id/9c/09a89fbd6e168c0f9ae514fcde5a92dc41c34c
-usr/lib/.build-id/9c/0eecc52d0b8a4bd75683b8ab6d301ce1ddd6de
-usr/lib/.build-id/9c/260fabda23bfa76848f34dc87a2606d96ed3f0
-usr/lib/.build-id/9c/853258a524f22d94cdb71dca4a747b4778fb31
-usr/lib/.build-id/9c/c4bdf73b7b214832345b1835bee877a8aee317
-usr/lib/.build-id/9d/33eeef685841d5162fd71c00fe9242c804f5bf
-usr/lib/.build-id/9d/8fee9f9084bc756f35b11dcc2e94474eac89f4
-usr/lib/.build-id/9e/0d29f3c0cb8bcee1ea92ce28f6700bf5276191
-usr/lib/.build-id/9e/51ca94596fd497a980a831e86847d4be38249d
-usr/lib/.build-id/9e/54edb2f329e8696f91a72bc7680743eeb07a25
-usr/lib/.build-id/9e/8ddb70f53dcb66acaacc8b04a902b27441245b
-usr/lib/.build-id/9e/a54c87c0fbbc7f0d0d0da20fd4c3df0c7f26c3
-usr/lib/.build-id/9e/bcbc82d7d1c4e30c9a0e2c73d2455e2eed9ef8
-usr/lib/.build-id/9e/c3458e3f8d8307e9fde43ea2d645c713fd6561
-usr/lib/.build-id/9f/2f106621f179a8f1f3ac4df9985e68fad7a255
-usr/lib/.build-id/9f/31c010d936621c0c85237d4cee0b9a4aac0144
-usr/lib/.build-id/9f/3aa342b304d745fcee9adfb0064a4f9daaf05c
-usr/lib/.build-id/9f/a421eec167c98a3637e09c494f7ee1ffe4db1a
-usr/lib/.build-id/a0/499878f0209918acffcf15078960b75cfb9f79
-usr/lib/.build-id/a0/63611bbb9d4ab9b137fdddfc9128f3ac80b461
-usr/lib/.build-id/a1/06353ded26bf376234fd5b04d0e5952bd52ad1
-usr/lib/.build-id/a1/4292ccd0d447e24cf0a17aeb03c0a2179ed7a8
-usr/lib/.build-id/a2/94dc67b0211fa7a4ae51d31115f9f021710083
-usr/lib/.build-id/a2/9f34c67b668ceb72c11d25b91e83a5234d791c
-usr/lib/.build-id/a2/db163308bcb09f1c996ee13678480474f5a377
-usr/lib/.build-id/a3/258273512458334cbc24ce2f2cf9609f0b9909
-usr/lib/.build-id/a3/6ab4f7a6464d01bd7ea1b9542fbebc39237796
-usr/lib/.build-id/a3/b1812b4f406e555c74ea09726d7f7c46c3c99c
-usr/lib/.build-id/a3/baffd1c21922de3b0e92d6e608332c8064da0b
-usr/lib/.build-id/a4/053e13ae8464b0fac21455c7cc604411c3cace
-usr/lib/.build-id/a4/091b6bcb744cf6c3edf445a3d3813e946dd734
-usr/lib/.build-id/a4/2ef1c78e170a1d1d55cfb1dfa60428a298650e
-usr/lib/.build-id/a4/987b4cf78c632393ef2453308b0a3803d7eec2
-usr/lib/.build-id/a4/c9d4e3dbb904d92d858c9829bba67943c22bde
-usr/lib/.build-id/a4/dda759853add945edfe690262305cc1c90bdce
-usr/lib/.build-id/a4/f6a29b5aa0e965e9c61324ef1457dd75208f8b
-usr/lib/.build-id/a5/122452f2f956f492396bf64e82d12cc2b635ce
-usr/lib/.build-id/a5/2fc1db31e2c9d6c2bca255984692c20f747bc9
-usr/lib/.build-id/a5/48430b7c152e3dfc6e3f398487cc5eae2c4f52
-usr/lib/.build-id/a5/591fcc120fee79242fb773b8ea83f2b06c9891
-usr/lib/.build-id/a5/80b49e5b0e1db63103565a9c22ec8a1e2097c8
-usr/lib/.build-id/a5/97c5f31a4974fc5e3e1a2452c12fb211b26dd6
-usr/lib/.build-id/a5/a1d56ae6739d81cce21f67d1d5910c5a0e9609
-usr/lib/.build-id/a5/e103868627a26f653dbf93e6d6ed56f081f125
-usr/lib/.build-id/a6/0c4da09db0188c032dc9b18ec8c09b997c66bd
-usr/lib/.build-id/a6/c09ea22691158c488026540acab9f5675f675e
-usr/lib/.build-id/a6/d10687dc0f44bce6d5ebea74cbbefd77a3535b
-usr/lib/.build-id/a7/5f584f89a67983fc50e86b37d2d3e58e8f678b
-usr/lib/.build-id/a7/a3e66158ee7e81881f791779699792cb8b5126
-usr/lib/.build-id/a8/31937da80fc09ff65d9fd3817afa648f854895
-usr/lib/.build-id/a8/c25c9d96859f17a91b87fffdb24cccdc0b5f7b
-usr/lib/.build-id/a8/de1343fbd9d95b05e5a2d1c89cebca098178da
-usr/lib/.build-id/a9/16ea80741920b540705a766848a73d1b0c385d
-usr/lib/.build-id/a9/76a9976ddc75db335d744f37579e38690cbede
-usr/lib/.build-id/a9/84bfee4df4cfe2d1956dac3cc10f4d55e83316
-usr/lib/.build-id/a9/959750f4da8411a75d2fb511cabddfd876a4e6
-usr/lib/.build-id/a9/a2d4cca5b2f7edcf41a8fe85571f99e5222ae3
-usr/lib/.build-id/a9/ac1b8d71f9f6f29c7486563376e295e17585d6
-usr/lib/.build-id/a9/ad071f1d9a3b29acef392735bef99610c6390e
-usr/lib/.build-id/a9/e118f6e8615748c17332535b146030fc181a81
-usr/lib/.build-id/aa/280855835ab01ad2944d6e07bbb326807f4e02
-usr/lib/.build-id/aa/84dd42c5424413fa075dff9a0982acaf74df96
-usr/lib/.build-id/aa/967c83cd29f89a1f5f729a8a0720f81e3f7746
-usr/lib/.build-id/aa/e3b6a50fab84dd1f68f49c7345e17eca0a2d6a
-usr/lib/.build-id/ab/1fbd96602c83ca1eec4eb6207a3c5d8c63f6c1
-usr/lib/.build-id/ab/c6a6a835e6371c621f0a08991bfaf3d078b1f1
-usr/lib/.build-id/ab/e85d6ed328ca087dfa4db3d1e20bb046f8896c
-usr/lib/.build-id/ab/fb165368b55b4425e0d77d7da0a830c7fc4480
-usr/lib/.build-id/ac/407d6675dc2c9d4a078d33d56e0bcfa9dd449c
-usr/lib/.build-id/ac/5155179b2793b388b2d099e669e9c7533db3a9
-usr/lib/.build-id/ac/9b1dd6ab73a396e56943db51ccfc08657de34a
-usr/lib/.build-id/ac/9b4d120b2a461156c79a66babc15da0a69bbe2
-usr/lib/.build-id/ac/f62677c4a5177ce6501f6e62a6607cd3576dcf
-usr/lib/.build-id/ad/00edd277873eb18631c5b3ce37f0e21f7f87c4
-usr/lib/.build-id/ad/a2334714f8653977a4926c4a7f3450d574c98a
-usr/lib/.build-id/ad/abd6660433b2029a6e1010a2ead1617b0995f9
-usr/lib/.build-id/ad/b9f79ebe950148e4abfcdc6df751e06f2e4da5
-usr/lib/.build-id/ae/62833d903d8c583e429769bc1b138e12d1a56a
-usr/lib/.build-id/af/283c28bbaf5f173899cb4c5c6b41682dbc315b
-usr/lib/.build-id/af/2bcd903f115d5aa6b418862b1b20ae83565738
-usr/lib/.build-id/af/9d89f708fecc6390a915692edce3b5f5783e8f
-usr/lib/.build-id/af/adf8efc64cc1a1356becb7e12bd9c4c519a086
-usr/lib/.build-id/b0/5846a0c34d2df2564d80213722984bb11f2071
-usr/lib/.build-id/b0/d37a5729b62304aba087b4cd7bb6f3c51a3438
-usr/lib/.build-id/b1/73c2269bb0d5efc7cce3c76d1b4dfdf7e9f944
-usr/lib/.build-id/b2/1ad70f94c08ad8c509e607d6094c5e042d5d1e
-usr/lib/.build-id/b2/2d63c1bf09e6b0285aca929aa08bcfb181fffd
-usr/lib/.build-id/b2/81a4ad3157172f472577082f6a66fa28bf1af9
-usr/lib/.build-id/b2/9b1fc39017fd2e92a1da94ac68cd88a170bd9a
-usr/lib/.build-id/b3/051d5e4936b54c88cf35cee924ff09a064a065
-usr/lib/.build-id/b3/bbd514914024d9bf72859640a8cada72df0ddd
-usr/lib/.build-id/b4/7553159357fe9f067968a9da5591bd5456bccb
-usr/lib/.build-id/b4/84173a1894f156548a8cf428a1bdc21d86415d
-usr/lib/.build-id/b4/97432156d3b35d15b1177c85fff452efc2363d
-usr/lib/.build-id/b4/cebdd7b4c9aba923ed6a8f9a6fc479042ddf5c
-usr/lib/.build-id/b5/136094a881789ec0ffbec5837fe95c4daf35bd
-usr/lib/.build-id/b5/7bb61fdb1f7c3a1a3c8e409cb33980e845e364
-usr/lib/.build-id/b5/7e2d3e835c6c6f29cfcad77499bf65084c9c25
-usr/lib/.build-id/b5/9a40ffdbe35bdb82b95dba55c5be90ef010631
-usr/lib/.build-id/b5/fdcfe4fbbcb34d72b0be46cb32d8ceab33ca9c
-usr/lib/.build-id/b6/2e1dea468148ef6821897489edd822e30f9ce1
-usr/lib/.build-id/b6/3a3c47eeaa75b6ac2849868efe07b01da2ba3d
-usr/lib/.build-id/b6/58687790fa3a31aada72c8b3858041e076d74b
-usr/lib/.build-id/b6/d5c4bb60e3060eb879d4153e68df0336c0da45
-usr/lib/.build-id/b7/038cacc0040413c2ec6375e34dbf021311fb23
-usr/lib/.build-id/b7/06398164d8df2c0f9e7ab8b727d3164de96e79
-usr/lib/.build-id/b7/420fb6af73efcec9d82632598d384b6f892b94
-usr/lib/.build-id/b7/459d01f70c3399dcf1611837f166914ba0cea9
-usr/lib/.build-id/b7/a2c605645efad44843cd6b8849dac92d17eca2
-usr/lib/.build-id/b7/aff522f4d65a9992c2e6c890b4e4afa38c9b6e
-usr/lib/.build-id/b8/3a59349f9f4d309d74851cda0b34985e5a63ee
-usr/lib/.build-id/b8/9a347816dcb53bd0bee07adb2949f0bf66e3a8
-usr/lib/.build-id/b8/a951cabbb0b5bed2bd5411434f96b9396173d6
-usr/lib/.build-id/b8/ab5f4aea724a861c6894130f367ba713ea2b8d
-usr/lib/.build-id/b9/339800015bc78b353b73175e4504db3b912184
-usr/lib/.build-id/b9/84429a968c823424bbfa8d34f191b4a357d509
-usr/lib/.build-id/b9/f57906bc9abf2ac8f98d8305fbd4a2979279ce
-usr/lib/.build-id/ba/9e652df50099e9ce590361dd4136efe6906c7b
-usr/lib/.build-id/ba/d38b11e988233132340bd8e4c940a305ae1a3e
-usr/lib/.build-id/bb/1ac1fe00b0b31f758812da72057fd7372acbc7
-usr/lib/.build-id/bb/6d0c4138d5babda51b78f2df9952610d0e220f
-usr/lib/.build-id/bb/a190d81dc0570b1c1b22cddf0e022161d4dac1
-usr/lib/.build-id/bb/cecd2f3830dc81dc12e1c263f32bf876886aa5
-usr/lib/.build-id/bb/f350c37617c73e29a5ab6f78b14c97a5c09092
-usr/lib/.build-id/bb/fd288c3035b18c6f0ac291f28ca2527d7a448a
-usr/lib/.build-id/bc/181132be929ba4d551c2d56d44210579f36650
-usr/lib/.build-id/bc/995af1c7722691ca92b24ea8a48d74609fbe74
-usr/lib/.build-id/bc/fa8195639305890e3f21a116adda6ddc8c163c
-usr/lib/.build-id/bd/2a40bccee31324ec5226263cc59edcf4071e2a
-usr/lib/.build-id/bd/56eb18a23799b3a60bf316a453db7250026a11
-usr/lib/.build-id/bd/68fc3a253a847f1d627460fba65b51332c5270
-usr/lib/.build-id/bd/b0731dcf251c2bffa44849b90f11b4e84cebb5
-usr/lib/.build-id/bd/e58488c3c26d88abb774b24eb46a84ad443564
-usr/lib/.build-id/be/42d39bfb309c98d6cecb0deddb8074e00d412c
-usr/lib/.build-id/be/83223e141d9963545ef188af72f94dca92d5aa
-usr/lib/.build-id/be/ae3eb7a9e1556e67d8121633a56456141e1270
-usr/lib/.build-id/be/b0e4b811efdd066eb78337bdc255e3a78e573c
-usr/lib/.build-id/be/c4bcdf038ca51bf2dacb0461fdbbf8d250806f
-usr/lib/.build-id/be/cf156e5c0cc2a28a81fc514132422c45e89e87
-usr/lib/.build-id/bf/0aed0e8032b776d14d49f64c28ccda3f4de369
-usr/lib/.build-id/bf/ba81bb7ef95a64a9cb5a9cb9cf50db57cfc162
-usr/lib/.build-id/c0/a65afc039f74306a0209caf95fe793e5ac343c
-usr/lib/.build-id/c0/dbe15a8e45f30799d193277d176063a58b7755
-usr/lib/.build-id/c0/e699ad81a71a94dbaf2ad438bc58ef9df9a1f5
-usr/lib/.build-id/c0/f7d07b6f8e8ff53f61be32e1fc10e7e43a957e
-usr/lib/.build-id/c1/7f9db1aca8b33846684bc3e45448fd36a9882d
-usr/lib/.build-id/c1/ab465634fcd5710b0eace2ef6f1a178e9d997e
-usr/lib/.build-id/c1/eeaca3f4e2300b90d63a0609c9915af67c639b
-usr/lib/.build-id/c2/0c3b7f4cdf5171113e064f7774c2876216de59
-usr/lib/.build-id/c2/40fc71b17631b401747a59c4b259016073b984
-usr/lib/.build-id/c2/75f5d3b57b52beb2e9c03fb3353c1d8b91ff22
-usr/lib/.build-id/c2/a83d7049dbcb141558aa8b5f52c6c2c321203b
-usr/lib/.build-id/c2/acc4c92e65a9c39e113465b878ddadf6098d16
-usr/lib/.build-id/c2/c48405609a4928984382e4eb00b27038cc4e5a
-usr/lib/.build-id/c3/45029a807e88ac202d8f16ca0e7846e75444af
-usr/lib/.build-id/c3/bf62dd9df37f84cac5e00335ac6034ec5b112a
-usr/lib/.build-id/c3/caacb8df730e5a1b1bf9bd58a7db4fa559f05c
-usr/lib/.build-id/c4/1fd647d5f4a9067b287a1d88bd51d4c0a08b24
-usr/lib/.build-id/c4/384405c11f65665446337e271d1af591b07f87
-usr/lib/.build-id/c4/42279bde281cf21c8283fa45a7abde17d018b9
-usr/lib/.build-id/c4/6699f3851553bd6aa181321cbd03b9e0addfa3
-usr/lib/.build-id/c4/78c694afccd3fb0f2831f5a61c40025eba23e9
-usr/lib/.build-id/c4/e0a7a4f18e3fa222d3664e39e85a0f0b984291
-usr/lib/.build-id/c5/042c4086cce02570e41e355dee7dd79ccce20f
-usr/lib/.build-id/c5/2d447faca8e767ebe181b78a85c09ea0b45d6b
-usr/lib/.build-id/c5/2d447faca8e767ebe181b78a85c09ea0b45d6b.1
-usr/lib/.build-id/c5/2d447faca8e767ebe181b78a85c09ea0b45d6b.2
-usr/lib/.build-id/c5/2d447faca8e767ebe181b78a85c09ea0b45d6b.3
-usr/lib/.build-id/c5/9c9728a1768bd0d9a21557844b42159b83bd67
-usr/lib/.build-id/c5/e5e8e5ffa97ac3889c352b0789d28df4cb318d
-usr/lib/.build-id/c6/3d118c87bc148a5585d8981bc1b275e130a707
-usr/lib/.build-id/c6/558c073e0b206524d4b3583ed070e93fc446db
-usr/lib/.build-id/c6/a6f4af2c27466c51cbc9586ce005158b304b12
-usr/lib/.build-id/c6/c1fdbeb663ef2774f5eff886fba860bf33f3ec
-usr/lib/.build-id/c6/eb823d1c459cb6287ecae08b8ab05b47c3953d
-usr/lib/.build-id/c7/1428b2f746916f8cd2ed58e1ae17de9640cdc7
-usr/lib/.build-id/c7/4af666d3e2be27f503f53e08e8d2dc07ff9b11
-usr/lib/.build-id/c7/8470aa2713df4416fcc65a174ea0f745eb6404
-usr/lib/.build-id/c7/8b941c6cb4b6790887e430352b82a0c045e6a4
-usr/lib/.build-id/c7/8fc9ac5675480831d2e5481f4c92ac40d60c34
-usr/lib/.build-id/c7/919c5fe2a8b32eb1a3d5422912707020f3b67b
-usr/lib/.build-id/c7/abc241a6b77797795d381ba7c765fbd7545f26
-usr/lib/.build-id/c8/1ba8b365aa6cc85dbc556c0427a9f18568ade2
-usr/lib/.build-id/c8/44f4d9260557c08f121d5c00c199a5bc2bebe1
-usr/lib/.build-id/c8/7bb1b9128020dd181400e84d1c2d074a49bb60
-usr/lib/.build-id/c8/7f0478fa7dd2348ae45909be7666a10ac41a6b
-usr/lib/.build-id/c8/97e3670070b285a54252317839653e52ba3095
-usr/lib/.build-id/c8/abe211cc9f1e9c85f3a56b785233dbc1da3b41
-usr/lib/.build-id/c8/c917976f665d3faaf4bbe9dc97ffa56219cf3b
-usr/lib/.build-id/c9/951de227dac88cc52c83ad7248b8efb4a0c593
-usr/lib/.build-id/c9/c56b7879a31732674b426d2e1ff9c7459a7e3a
-usr/lib/.build-id/ca/353d90367ce99faf3c73891ecd318b6011e908
-usr/lib/.build-id/ca/4d6962ee588d4cfc6059aba80546f1bfb1a6c9
-usr/lib/.build-id/ca/4fc53db044ceb422a140eb3435360e233587eb
-usr/lib/.build-id/ca/c5eb79ac5312d867b249928aa4ff6c5c31c3dc
-usr/lib/.build-id/ca/e6bf871dd800a2b67bca723dfe8a31e95865c2
-usr/lib/.build-id/cb/780ab7145146941ebc192fb56855b860a7f0db
-usr/lib/.build-id/cb/ddd352a6ecf2f3409ba9e24fa1c7635db2c8d7
-usr/lib/.build-id/cc/10b69b1b0fc6a42c83cfa91d47bc01d9fae6a3
-usr/lib/.build-id/cc/a875d625c2dfbe293f76d20507edc4885fd175
-usr/lib/.build-id/cc/ae9dde72c2b19bb4177be8ae3af0b2d560c123
-usr/lib/.build-id/cd/4b8582a529ed5c9aaf4c7b1eb2087355607e27
-usr/lib/.build-id/cd/75bb36337773313710b38baeac9f9efa3abd1d
-usr/lib/.build-id/cd/7934b890b08e2eca890bae05e649dc67b2a869
-usr/lib/.build-id/cd/8ebe30acca7cb8c052b4fcd85858fff5325101
-usr/lib/.build-id/cd/c742ccdc79dd24dc5826263c5a15a8c4cde22a
-usr/lib/.build-id/ce/0dea7d34046f965fcda9b83e55aa18c0561a7d
-usr/lib/.build-id/ce/27d457e75aa31d1dc467e28f8b8c6fb1e33918
-usr/lib/.build-id/ce/8af4bddc4303bc352403c04db4fb520a139f0c
-usr/lib/.build-id/ce/bc6febb40d126807e80ee76e88c0f905da346d
-usr/lib/.build-id/cf/2734ac59ed72afa2e7aaa4bfe15bb5ecf50dab
-usr/lib/.build-id/cf/459a4a048d181047eb8e7802261b9d7064fc13
-usr/lib/.build-id/cf/c0e1c2c0133d96cbb42c2b26d36468e6e1e3f0
-usr/lib/.build-id/cf/efb65631635284352ed39afa4de671707fe35e
-usr/lib/.build-id/d0/9a307b6443cbf9a8d19e4aa8699c57008de8c4
-usr/lib/.build-id/d0/b2ab66a180f4f3732f9578382211d99d6864cf
-usr/lib/.build-id/d0/b3a2311328fcb22f693d7c80935f307b0d8e0e
-usr/lib/.build-id/d1/19b63d031946f6e72e9ab0ca3e41e54e2ee0bf
-usr/lib/.build-id/d1/23a489b5bd39195aa6982148894799f28d5864
-usr/lib/.build-id/d1/2587a6d9633158cbc7001b3062a416305387ca
-usr/lib/.build-id/d1/3dfd185cc351a3261ccbc6de2cd87150c51422
-usr/lib/.build-id/d1/50bd51a517b543151d4f93fe21c2c6e63666a9
-usr/lib/.build-id/d1/6bbee941dfd932f0c5a2c7afbaec80b4b4b400
-usr/lib/.build-id/d1/81662b61979d8c371d1e9ae65540b536cb7fa2
-usr/lib/.build-id/d1/dcb91f301e68ce76818145c9701bb72238f01d
-usr/lib/.build-id/d2/30e6e431149812ee80c2821a400f7a31407cbb
-usr/lib/.build-id/d2/952d9403697ce8b6888a7436d6e2e3eb1a6ce6
-usr/lib/.build-id/d2/a4b635d755e4deacdae3535e3e48604750f9da
-usr/lib/.build-id/d2/c21314cde1b8d1b1dc3d756904138e3e73faf5
-usr/lib/.build-id/d2/c97657d76d8b34d612efdc73b129b3b18c7e81
-usr/lib/.build-id/d2/ced3581682f0b3dd188028290922a953e9c53f
-usr/lib/.build-id/d2/cf01578d8bc2a0f7d3cb1a3cdb4ed5b765b719
-usr/lib/.build-id/d3/5722ad8fdc3431f5d9b46aa5687c4f8925805b
-usr/lib/.build-id/d3/7138f364076671b8f2f2c47b5b5d2e8d0cb7fd
-usr/lib/.build-id/d3/775deee4fad681c5a91e459229a79c7ecea17e
-usr/lib/.build-id/d3/81ab70a09508e5c72c18fd107595f53bd6aaa7
-usr/lib/.build-id/d3/9e4e10709bd393ac465b8813b66971e762ec75
-usr/lib/.build-id/d4/1b8af3544284872a8b4ae37dfb72d5633901fe
-usr/lib/.build-id/d4/20048a580b8891fb3a7449576b918b98fe2aa0
-usr/lib/.build-id/d4/2114ee3accab3597ec06b21cf2c2dae272be33
-usr/lib/.build-id/d4/7cc9c57c67e32b21c1836472c52947e7e4a1b0
-usr/lib/.build-id/d4/9eb72d1a52b3db0f0b57f92433eba15dcd41e5
-usr/lib/.build-id/d5/cb36cf68a112a6157bb98652678d125b609e24
-usr/lib/.build-id/d6/9767645c25e0ffec0cad6bbc4798dc3c6a1cb8
-usr/lib/.build-id/d6/adc564042c9e89b0c00cf3c89202998b604dbe
-usr/lib/.build-id/d6/f9af2fd60fdbc5f427c301833969b8c9e1675f
-usr/lib/.build-id/d7/355fc24a072f82751059753e402ad560198a60
-usr/lib/.build-id/d7/64d0b14f543b32c631502d022d31dc73605b99
-usr/lib/.build-id/d7/70497826bad0b9e8e5179274010291b044d9e5
-usr/lib/.build-id/d7/9f6e7527270cd0db13e99d96a2d19b37d3d609
-usr/lib/.build-id/d7/d74c354ae09a3b9f6d092a569c0db3b6198d18
-usr/lib/.build-id/d7/eef20ca6dc50d5b7592c336ca0b4a780f35202
-usr/lib/.build-id/d8/214e54fbc4a7bc6533fdd2eee362feb850e32e
-usr/lib/.build-id/d8/642dae30f14fb46fe2eaab75ea3afb58821062
-usr/lib/.build-id/d8/b21e63ecd8f6b4a606b34ac79dd6c0d01cc6e5
-usr/lib/.build-id/d8/d8a4ed14c07fb2e6ed716401f0ae63f6a0501d
-usr/lib/.build-id/d8/dbf71e3e7037680297831da366676c4ca09d7f
-usr/lib/.build-id/d9/49b804415bbcf9e70e533417f7dd8f626307a2
-usr/lib/.build-id/d9/ca8c58c171f665c894ff48ef2c0d81d036c700
-usr/lib/.build-id/d9/f65a51abb58e67bee19e8c833c0d32fec78da2
-usr/lib/.build-id/da/94bcc8b3bbec0a4c190cdf82913f8c678542bc
-usr/lib/.build-id/da/ed8218dfe6c6839d3f5fc1a34903ab35802a89
-usr/lib/.build-id/db/0fb0cc9ac7495365c9e665d9d562dc909e92a4
-usr/lib/.build-id/db/6cefd53bb91e9a5e82cf17a8c0edd792ab57ac
-usr/lib/.build-id/dc/3aac56c3c2a8b6378eaed0f07ea40a6af30768
-usr/lib/.build-id/dc/6c919a45d4cdcc1e9aa671ba513dfc1350d776
-usr/lib/.build-id/dc/8fb4bc44b44001849568ea8fbb43644780747b
-usr/lib/.build-id/dc/b62c90f48e0feafcfc72f2e8153cd4fafbb1ed
-usr/lib/.build-id/dc/c8f48f61fb1089fe044441df31e0faa1c1185a
-usr/lib/.build-id/dc/e36e3728dda8894bcae875a31705f9694401bc
-usr/lib/.build-id/dc/e969f26b418b3ee4a099d207a7b3f4a3fe566c
-usr/lib/.build-id/dc/f85620eeb3cb37337c2523e0f8fa69f0001f12
-usr/lib/.build-id/dd/0e01313179969d8991222d262c4fb98775937a
-usr/lib/.build-id/dd/5df23d7cef85d580a84f3c9b6968101ab55ac7
-usr/lib/.build-id/de/09cf9415ff2b70670451aa53d155a314eab054
-usr/lib/.build-id/de/5042b23edb0b522033a9a71226262f26231c36
-usr/lib/.build-id/de/58f30b81f953639fc9e83b50b9c19ae2c64cba
-usr/lib/.build-id/de/b23dd76d8c542d2e73e29d68b3439d3f8640dd
-usr/lib/.build-id/de/b65148f5599f0310157f4259fb34321d776219
-usr/lib/.build-id/de/eb18792181b16453f40666d03f9bc4afc133c6
-usr/lib/.build-id/df/1a1e7738925d227c99bc6ccaa0d74937664e50
-usr/lib/.build-id/df/4f40111340999be168e8bc178af67b710b2871
-usr/lib/.build-id/df/fd700871bf2393e634f8b0b10af086a0b73c3b
-usr/lib/.build-id/e0/022df89ba27bc2c23c880594c280cef7314441
-usr/lib/.build-id/e0/a1dc5d2edbafb443e1717a6ec62e98f274ddcc
-usr/lib/.build-id/e0/e8e0f1076aa84d34d8aad21d85e932216ba64e
-usr/lib/.build-id/e1/238f104b7c387d75de3fda0889d105c1fa1cba
-usr/lib/.build-id/e1/8749e5654dd37408b1fdc84adb24a443b9d10c
-usr/lib/.build-id/e1/ace2b0b8c0e1214c1f3d2fa11a4d8d93078e5a
-usr/lib/.build-id/e2/035980162a13d606e1bdf93c778eb6312209d9
-usr/lib/.build-id/e2/0c01c431383a8c53534996f54e25724517d2ca
-usr/lib/.build-id/e2/4098c207c166ee8a07cd50704df6f984018d75
-usr/lib/.build-id/e2/72ed553c94d586c58d66066aab6670fddfe1d7
-usr/lib/.build-id/e2/a16fef2908a8017ca5366f03b359275d7cc5dd
-usr/lib/.build-id/e2/d0dafcb37ade303866148cf0ecefbda0096b67
-usr/lib/.build-id/e2/d235919399bc6615db6e1e08dd44592281c942
-usr/lib/.build-id/e2/f5cc13be512ec5e730cc4b5fc4475dda1c6558
-usr/lib/.build-id/e2/fd492bc7ae4663e6abc70165afdbfbfab1528f
-usr/lib/.build-id/e3/328a2c11dc330644928bacdc5896b1461664da
-usr/lib/.build-id/e3/7ac603fbbf2bb2fca7adbc2da46e01f2a85812
-usr/lib/.build-id/e3/b32800823baad56d37784c59b9306eca1b9cf1
-usr/lib/.build-id/e4/2decc13c8548363d23ce48d1a99620e08b7102
-usr/lib/.build-id/e4/83e20f8388f8984e6b151781838d7d7fe360dc
-usr/lib/.build-id/e4/9e9d3b68f0940f57e97cbac261d21f59b601aa
-usr/lib/.build-id/e4/a0247e832a7a033b8da09da9e99cf6d64fe566
-usr/lib/.build-id/e4/e2e94fabd274944aff51cbb268b7eb12779d52
-usr/lib/.build-id/e4/ed426d5a87a427827dafaf8e51e39fcadbd05b
-usr/lib/.build-id/e5/054774f999b03e59f5fa18480142b4bd445534
-usr/lib/.build-id/e5/65571ac985cb0f3eda66c755d93033112924be
-usr/lib/.build-id/e5/ed05ccb272002e79e69c717f5f32f5e00bfd15
-usr/lib/.build-id/e6/0daf16a76f895097072f10feb286638bdfb392
-usr/lib/.build-id/e6/294450e099a384e6094333e0881bac019800b1
-usr/lib/.build-id/e6/2ac6fdb82a54f40b51b65a3ed8c47004b1a260
-usr/lib/.build-id/e6/ae2a78a7ec4b56ada56bef67fa34ff70390f67
-usr/lib/.build-id/e7/16b845f49e39e752f68f666ebb0aa131f721d2
-usr/lib/.build-id/e7/278e39a80eac13e9d97a6feccb428cc1a848a8
-usr/lib/.build-id/e7/49493a0b93a34e1bfc54680e256a152314d4b2
-usr/lib/.build-id/e7/ef3e58b665690735e628cf0d4a55f3726a995c
-usr/lib/.build-id/e8/3990cd4d77efef26c7b77d5b9bc9cfff9d74d5
-usr/lib/.build-id/e8/3aaf70ea62fc4206c5ee4fc9bcfa98b72e578a
-usr/lib/.build-id/e8/4082689c7b23eed0a36c5a48fe85359eaea48d
-usr/lib/.build-id/e8/549c431b288e2c35ab282c3374c29ebd300f53
-usr/lib/.build-id/e8/5cf228e9f4d13ac6b036c17f5020a4558373e5
-usr/lib/.build-id/e8/9895d97390926da1c925f1b0e3dc00cdcbe89b
-usr/lib/.build-id/e8/d012b5add013f7d0647a78c8c2f759996aea4a
-usr/lib/.build-id/e9/09c9f3c001f6d1e06f822e7b82cf524d171f32
-usr/lib/.build-id/e9/3c3d4fb7bb7a922cbb8040129c54b8f9a2a642
-usr/lib/.build-id/e9/52641ef7d21809955a14873002f047b85952ed
-usr/lib/.build-id/e9/79fc7b5be61e327368385f4db3f5a3df98ef28
-usr/lib/.build-id/e9/9b83df5a8e1443c376dcdebee69cf08e29617e
-usr/lib/.build-id/e9/c3e366752d07406d46cbccb22b27ed97dde3a7
-usr/lib/.build-id/ea/055dd368ec90891c293c0288718af02a8aac84
-usr/lib/.build-id/ea/0fa5eb2d08dacb3e00e5531393d545ccd4a91c
-usr/lib/.build-id/ea/34dd0b6efe116e87162890440d2b9b9df879ff
-usr/lib/.build-id/ea/a2faf8e6b92caf63ac7f3b1f104a76c6d3d17c
-usr/lib/.build-id/ea/b169baa518fe6dcf517252ef2ea4ed02543578
-usr/lib/.build-id/eb/92030a526c1206cad525804fb04ef87de5e69f
-usr/lib/.build-id/eb/b244b565262029f0272813afe4b16b2b7133a3
-usr/lib/.build-id/eb/b8de6c9ad08c136734936fc49cc51779f61b08
-usr/lib/.build-id/eb/cca458e7129367895ec62cf42750b9a533000a
-usr/lib/.build-id/eb/d1a5d2180df97ba2863d4c5026f3c0f9c342e3
-usr/lib/.build-id/eb/fd75a34e643ef8b64cc1f5225486681e214b4e
-usr/lib/.build-id/ec/6587d9214bf908dd5d5ee3c95ae5e3be7330db
-usr/lib/.build-id/ec/673f7c63e58dc60e5aac6aca90a9e2d064c10f
-usr/lib/.build-id/ec/81712cd61ee36d7f4a28675b921fb40d855500
-usr/lib/.build-id/ec/9ac6b6351319335a2327260490d9b0b176ca19
-usr/lib/.build-id/ed/3e7dc9521e003840c63d3495620242d9d7ed53
-usr/lib/.build-id/ed/51ad6a5882c6f2a73240bf5a901326347bebbc
-usr/lib/.build-id/ed/76fd5c01115f708b20aa4286513c889e707143
-usr/lib/.build-id/ed/83cc97d4c1a7a03302c6da3bc8252dd6052936
-usr/lib/.build-id/ed/e4ce6a9a3abfb2c8808b20c451f1d41443a2cc
-usr/lib/.build-id/ed/fb93f83d981c2581055e50d31b8c6725259bca
-usr/lib/.build-id/ee/a905ae972073934f747f732891abb38da6596a
-usr/lib/.build-id/ee/aa4758ab678957f348c482bf1e4b1cd8dae956
-usr/lib/.build-id/ee/f801abd3cb9aebb971ebebfaea48424e705428
-usr/lib/.build-id/ef/345ecf247e01022dc8ce4ee0f02d1b8432f0fd
-usr/lib/.build-id/ef/36913c69ac46042e073f45b2a25461a580686d
-usr/lib/.build-id/ef/55a1e1729fd6ac859ca7c25898e3314e1cb69c
-usr/lib/.build-id/ef/892035f0f947ac78c4ef86ce9f30687fedc936
-usr/lib/.build-id/ef/8ef837eafca150b87e55412b4d330cd29c293c
-usr/lib/.build-id/f0/a4107f43bb9c15e94c53f77b4d4c5dfcf1b27a
-usr/lib/.build-id/f0/e2cb92583b02ea8de5b1452d9ba4efac2a12cb
-usr/lib/.build-id/f1/726e7069560ee3cdd5241ace1793c250e7e95e
-usr/lib/.build-id/f1/79a154c8664be4575fa61bdaaa050893519abe
-usr/lib/.build-id/f1/90910a69fc724163c73b1d40eb59f516bb72b5
-usr/lib/.build-id/f1/f9015ba756067068369afe4e996ced0f86a534
-usr/lib/.build-id/f2/388b491804c1bc6e9bc1fc3eaf29c41839cd7c
-usr/lib/.build-id/f2/914d2d66a063d3105b0176b74d43b699922809
-usr/lib/.build-id/f2/d7fa0533d029e04f9cc4a2348d6c4e102fe1ab
-usr/lib/.build-id/f3/4f78d0e6a8b73976834cdb59da1e8d507446b9
-usr/lib/.build-id/f3/6a7ca383bc94d566210be98905026ce99876c5
-usr/lib/.build-id/f3/9056d30357891f9ba337bcdcbc1068b483d235
-usr/lib/.build-id/f3/925fc1a485ae1780f78e4237402bbbfd018258
-usr/lib/.build-id/f5/08944db00d93f12c97a44925881ef73683fdc2
-usr/lib/.build-id/f5/17ce9229f80341efd5c61a6512ca8ad03ecf1f
-usr/lib/.build-id/f5/341a851208b4777e733b437721402a915afdd1
-usr/lib/.build-id/f5/52533ba8e8aead6e3112b3e7c8239d09a777fc
-usr/lib/.build-id/f5/ee9abfcc54928242b3c39ddff3d7efd9521be8
-usr/lib/.build-id/f6/e885e08d6f84009205cb1ce05df58cbcea8f9b
-usr/lib/.build-id/f7/645895047cb787dbc752fc370baa8ea0a34b9d
-usr/lib/.build-id/f7/846f2d4dbdb690a70d8bcd1f391f4a6257b490
-usr/lib/.build-id/f7/d649d46e7c7697be446f1d5700a4b2af70855f
-usr/lib/.build-id/f8/55dca56f03d5fd212c041db38d8a1474c4964f
-usr/lib/.build-id/f8/dbf760a337a5a2795b652311abd64b0c42aafa
-usr/lib/.build-id/f8/f7c2a36257162faada68d4ff33d04873c17de2
-usr/lib/.build-id/f8/f7c2a36257162faada68d4ff33d04873c17de2.1
-usr/lib/.build-id/f8/f7c2a36257162faada68d4ff33d04873c17de2.2
-usr/lib/.build-id/f8/f7c2a36257162faada68d4ff33d04873c17de2.3
-usr/lib/.build-id/f9/2f6282678e59a4c7415e69d91b74ada971586e
-usr/lib/.build-id/f9/4c94e14da8c451744360bc650700dc61514069
-usr/lib/.build-id/f9/5ff3c13355fa8366502fcf3b084afcc58c1d69
-usr/lib/.build-id/f9/97c75976df0d4202ab874fcc7e3058723b570a
-usr/lib/.build-id/f9/aaacf08c459641b1e24abeab8564120e07d819
-usr/lib/.build-id/f9/da100606a9d100aac0427b1058d2393f83d2ba
-usr/lib/.build-id/f9/e024d01a5c7087fe71b7193c25f26d06860b36
-usr/lib/.build-id/f9/ee92f2c778d6bcfa3a4af28d752c153efc61c8
-usr/lib/.build-id/fa/4c021ec8cfeb7c8dcaa85ab4f0f7577a44102b
-usr/lib/.build-id/fa/576b2c31e2e135022c36787ca19a4df9e3556e
-usr/lib/.build-id/fa/5795a6dcf5de2bf3bf684eb72c9346883de159
-usr/lib/.build-id/fa/7a291c8b5fbed49e1755d77d27432e82d5ad0b
-usr/lib/.build-id/fa/864a993490e7615df0010f3a2a59eea18c27c4
-usr/lib/.build-id/fa/88cf5fdc9637c4ba3655774d1e73c3c8eb91f5
-usr/lib/.build-id/fb/5e8db26cddcb34abbb961838fcd97dd62ff2fb
-usr/lib/.build-id/fb/8fbdf48342b351bdeac167161806e44ae711fc
-usr/lib/.build-id/fb/ae37bf50cf95a279b809d54ed7e78de6ab860b
-usr/lib/.build-id/fb/dd2cd0c0f13215c41be0569cee27a522de896d
-usr/lib/.build-id/fc/23007c5ed2db91aa9c11730e154f683517ba69
-usr/lib/.build-id/fc/2b1c316fe57d2dcae9651ee61287357d4f4fe8
-usr/lib/.build-id/fc/351d39140bf9912b654cdd6cb58df71d149b61
-usr/lib/.build-id/fc/46bc419367003d0e4e399cbe22aade4a1ee7be
-usr/lib/.build-id/fc/bec24a27da2c1022ed92f3448c6bbd5e0831db
-usr/lib/.build-id/fc/d288d8ac4bc587f5b05a2c87d6fb62b02ddcb3
-usr/lib/.build-id/fc/d75217e2740c5f63d748f87369ca66342109b2
-usr/lib/.build-id/fc/e9182f29619841dbfa010140c23a0821ab56a9
-usr/lib/.build-id/fd/56b043ce47cb4f41be9f3bed51dffbe36f6a24
-usr/lib/.build-id/fd/7d5cb1e4753bc54cacc836c4619af447db8b70
-usr/lib/.build-id/fd/838ec0d77e8b6d206c62045352af83ed7f5df5
-usr/lib/.build-id/fd/8d1f5ff969c9fd4bfc1011fd1d199c4fa933dd
-usr/lib/.build-id/fd/a968165e7057412c25aac6a072e0c79c60ffdf
-usr/lib/.build-id/fd/e30e7b72e074322e253308b1510e7fc30f3a95
-usr/lib/.build-id/fd/eb44dab416cb9bb521da086ebc8d1a7a24793a
-usr/lib/.build-id/fd/ee3cb0a79105f9aee6e8f5cbcb3b97fe227c26
-usr/lib/.build-id/fe/0727eb33f51a6b2a505984938dc862b561f387
-usr/lib/.build-id/fe/3365699995eb323d015d38abb79135902bb4c6
-usr/lib/.build-id/fe/84cf66af8f613d10cf5aef3dcaf96f182cf3b3
-usr/lib/.build-id/fe/8903ee76261ccca26c0f75daa1da637a93f37b
-usr/lib/.build-id/fe/9d372cc4bd5146afb2c70ab9bed7af43b1a118
-usr/lib/.build-id/fe/b4086af6091e61dc75e4ede3c28058d2ac8e63
-usr/lib/.build-id/fe/d1b1f776bdea5a954e065e9d120b2f483da3c8
-usr/lib/.build-id/fe/e136153b4475983e66c5b56561d4ffb17e9e92
-usr/lib/.build-id/ff/4e6a6a9dff6649d9d98a79ce2a2ba5bea74c35
-usr/lib/.build-id/ff/5ce98065bd719acf94b749c1d7ce08cef7f954
-usr/lib/.build-id/ff/7f83ad7098ce78fa7b5b11dfafd3ca39e6bd7d
-usr/lib/.build-id/ff/c6ae65e93b1b44c35c34dcfa80e69bc9515b53
-usr/lib/.build-id/ff/fedf745ffddf06d62b2d322d1bffaa3a8a30d1
usr/lib/.libgmp.so.10.4.0.hmac
usr/lib/.libgmp.so.10.hmac
usr/lib/audit/sotruss-lib.so
@@ -1369,14 +312,7 @@ usr/lib/gconv/ASMO_449.so
usr/lib/gconv/BIG5.so
usr/lib/gconv/BIG5HKSCS.so
usr/lib/gconv/BRF.so
-usr/lib/gconv/CP737.so
-usr/lib/gconv/CP770.so
-usr/lib/gconv/CP771.so
-usr/lib/gconv/CP772.so
-usr/lib/gconv/CP773.so
-usr/lib/gconv/CP774.so
-usr/lib/gconv/CP775.so
-usr/lib/gconv/CP932.so
+usr/lib/gconv/CP10007.so
usr/lib/gconv/CP1125.so
usr/lib/gconv/CP1250.so
usr/lib/gconv/CP1251.so
@@ -1387,20 +323,27 @@ usr/lib/gconv/CP1255.so
usr/lib/gconv/CP1256.so
usr/lib/gconv/CP1257.so
usr/lib/gconv/CP1258.so
-usr/lib/gconv/CP10007.so
+usr/lib/gconv/CP737.so
+usr/lib/gconv/CP770.so
+usr/lib/gconv/CP771.so
+usr/lib/gconv/CP772.so
+usr/lib/gconv/CP773.so
+usr/lib/gconv/CP774.so
+usr/lib/gconv/CP775.so
+usr/lib/gconv/CP932.so
usr/lib/gconv/CSN_369103.so
usr/lib/gconv/CWI.so
usr/lib/gconv/DEC-MCS.so
-usr/lib/gconv/EBCDIC-AT-DE.so
usr/lib/gconv/EBCDIC-AT-DE-A.so
+usr/lib/gconv/EBCDIC-AT-DE.so
usr/lib/gconv/EBCDIC-CA-FR.so
-usr/lib/gconv/EBCDIC-DK-NO.so
usr/lib/gconv/EBCDIC-DK-NO-A.so
-usr/lib/gconv/EBCDIC-ES.so
+usr/lib/gconv/EBCDIC-DK-NO.so
usr/lib/gconv/EBCDIC-ES-A.so
usr/lib/gconv/EBCDIC-ES-S.so
-usr/lib/gconv/EBCDIC-FI-SE.so
+usr/lib/gconv/EBCDIC-ES.so
usr/lib/gconv/EBCDIC-FI-SE-A.so
+usr/lib/gconv/EBCDIC-FI-SE.so
usr/lib/gconv/EBCDIC-FR.so
usr/lib/gconv/EBCDIC-IS-FRISS.so
usr/lib/gconv/EBCDIC-IT.so
@@ -1410,8 +353,8 @@ usr/lib/gconv/EBCDIC-US.so
usr/lib/gconv/ECMA-CYRILLIC.so
usr/lib/gconv/EUC-CN.so
usr/lib/gconv/EUC-JISX0213.so
-usr/lib/gconv/EUC-JP.so
usr/lib/gconv/EUC-JP-MS.so
+usr/lib/gconv/EUC-JP.so
usr/lib/gconv/EUC-KR.so
usr/lib/gconv/EUC-TW.so
usr/lib/gconv/GB18030.so
@@ -1421,9 +364,9 @@ usr/lib/gconv/GBK.so
usr/lib/gconv/GEORGIAN-ACADEMY.so
usr/lib/gconv/GEORGIAN-PS.so
usr/lib/gconv/GOST_19768-74.so
-usr/lib/gconv/GREEK7.so
-usr/lib/gconv/GREEK7-OLD.so
usr/lib/gconv/GREEK-CCITT.so
+usr/lib/gconv/GREEK7-OLD.so
+usr/lib/gconv/GREEK7.so
usr/lib/gconv/HP-GREEK8.so
usr/lib/gconv/HP-ROMAN8.so
usr/lib/gconv/HP-ROMAN9.so
@@ -1431,6 +374,53 @@ usr/lib/gconv/HP-THAI8.so
usr/lib/gconv/HP-TURKISH8.so
usr/lib/gconv/IBM037.so
usr/lib/gconv/IBM038.so
+usr/lib/gconv/IBM1004.so
+usr/lib/gconv/IBM1008.so
+usr/lib/gconv/IBM1008_420.so
+usr/lib/gconv/IBM1025.so
+usr/lib/gconv/IBM1026.so
+usr/lib/gconv/IBM1046.so
+usr/lib/gconv/IBM1047.so
+usr/lib/gconv/IBM1097.so
+usr/lib/gconv/IBM1112.so
+usr/lib/gconv/IBM1122.so
+usr/lib/gconv/IBM1123.so
+usr/lib/gconv/IBM1124.so
+usr/lib/gconv/IBM1129.so
+usr/lib/gconv/IBM1130.so
+usr/lib/gconv/IBM1132.so
+usr/lib/gconv/IBM1133.so
+usr/lib/gconv/IBM1137.so
+usr/lib/gconv/IBM1140.so
+usr/lib/gconv/IBM1141.so
+usr/lib/gconv/IBM1142.so
+usr/lib/gconv/IBM1143.so
+usr/lib/gconv/IBM1144.so
+usr/lib/gconv/IBM1145.so
+usr/lib/gconv/IBM1146.so
+usr/lib/gconv/IBM1147.so
+usr/lib/gconv/IBM1148.so
+usr/lib/gconv/IBM1149.so
+usr/lib/gconv/IBM1153.so
+usr/lib/gconv/IBM1154.so
+usr/lib/gconv/IBM1155.so
+usr/lib/gconv/IBM1156.so
+usr/lib/gconv/IBM1157.so
+usr/lib/gconv/IBM1158.so
+usr/lib/gconv/IBM1160.so
+usr/lib/gconv/IBM1161.so
+usr/lib/gconv/IBM1162.so
+usr/lib/gconv/IBM1163.so
+usr/lib/gconv/IBM1164.so
+usr/lib/gconv/IBM1166.so
+usr/lib/gconv/IBM1167.so
+usr/lib/gconv/IBM12712.so
+usr/lib/gconv/IBM1364.so
+usr/lib/gconv/IBM1371.so
+usr/lib/gconv/IBM1388.so
+usr/lib/gconv/IBM1390.so
+usr/lib/gconv/IBM1399.so
+usr/lib/gconv/IBM16804.so
usr/lib/gconv/IBM256.so
usr/lib/gconv/IBM273.so
usr/lib/gconv/IBM274.so
@@ -1447,7 +437,12 @@ usr/lib/gconv/IBM420.so
usr/lib/gconv/IBM423.so
usr/lib/gconv/IBM424.so
usr/lib/gconv/IBM437.so
+usr/lib/gconv/IBM4517.so
+usr/lib/gconv/IBM4899.so
+usr/lib/gconv/IBM4909.so
+usr/lib/gconv/IBM4971.so
usr/lib/gconv/IBM500.so
+usr/lib/gconv/IBM5347.so
usr/lib/gconv/IBM803.so
usr/lib/gconv/IBM850.so
usr/lib/gconv/IBM851.so
@@ -1475,8 +470,10 @@ usr/lib/gconv/IBM891.so
usr/lib/gconv/IBM901.so
usr/lib/gconv/IBM902.so
usr/lib/gconv/IBM903.so
+usr/lib/gconv/IBM9030.so
usr/lib/gconv/IBM904.so
usr/lib/gconv/IBM905.so
+usr/lib/gconv/IBM9066.so
usr/lib/gconv/IBM918.so
usr/lib/gconv/IBM921.so
usr/lib/gconv/IBM922.so
@@ -1487,68 +484,27 @@ usr/lib/gconv/IBM935.so
usr/lib/gconv/IBM937.so
usr/lib/gconv/IBM939.so
usr/lib/gconv/IBM943.so
-usr/lib/gconv/IBM1004.so
-usr/lib/gconv/IBM1008.so
-usr/lib/gconv/IBM1008_420.so
-usr/lib/gconv/IBM1025.so
-usr/lib/gconv/IBM1026.so
-usr/lib/gconv/IBM1046.so
-usr/lib/gconv/IBM1047.so
-usr/lib/gconv/IBM1097.so
-usr/lib/gconv/IBM1112.so
-usr/lib/gconv/IBM1122.so
-usr/lib/gconv/IBM1123.so
-usr/lib/gconv/IBM1124.so
-usr/lib/gconv/IBM1129.so
-usr/lib/gconv/IBM1130.so
-usr/lib/gconv/IBM1132.so
-usr/lib/gconv/IBM1133.so
-usr/lib/gconv/IBM1137.so
-usr/lib/gconv/IBM1140.so
-usr/lib/gconv/IBM1141.so
-usr/lib/gconv/IBM1142.so
-usr/lib/gconv/IBM1143.so
-usr/lib/gconv/IBM1144.so
-usr/lib/gconv/IBM1145.so
-usr/lib/gconv/IBM1146.so
-usr/lib/gconv/IBM1147.so
-usr/lib/gconv/IBM1148.so
-usr/lib/gconv/IBM1149.so
-usr/lib/gconv/IBM1153.so
-usr/lib/gconv/IBM1154.so
-usr/lib/gconv/IBM1155.so
-usr/lib/gconv/IBM1156.so
-usr/lib/gconv/IBM1157.so
-usr/lib/gconv/IBM1158.so
-usr/lib/gconv/IBM1160.so
-usr/lib/gconv/IBM1161.so
-usr/lib/gconv/IBM1162.so
-usr/lib/gconv/IBM1163.so
-usr/lib/gconv/IBM1164.so
-usr/lib/gconv/IBM1166.so
-usr/lib/gconv/IBM1167.so
-usr/lib/gconv/IBM1364.so
-usr/lib/gconv/IBM1371.so
-usr/lib/gconv/IBM1388.so
-usr/lib/gconv/IBM1390.so
-usr/lib/gconv/IBM1399.so
-usr/lib/gconv/IBM4517.so
-usr/lib/gconv/IBM4899.so
-usr/lib/gconv/IBM4909.so
-usr/lib/gconv/IBM4971.so
-usr/lib/gconv/IBM5347.so
-usr/lib/gconv/IBM9030.so
-usr/lib/gconv/IBM9066.so
usr/lib/gconv/IBM9448.so
-usr/lib/gconv/IBM12712.so
-usr/lib/gconv/IBM16804.so
usr/lib/gconv/IEC_P27-1.so
-usr/lib/gconv/INIS.so
usr/lib/gconv/INIS-8.so
usr/lib/gconv/INIS-CYRILLIC.so
+usr/lib/gconv/INIS.so
usr/lib/gconv/ISIRI-3342.so
+usr/lib/gconv/ISO-2022-CN-EXT.so
+usr/lib/gconv/ISO-2022-CN.so
+usr/lib/gconv/ISO-2022-JP-3.so
+usr/lib/gconv/ISO-2022-JP.so
+usr/lib/gconv/ISO-2022-KR.so
+usr/lib/gconv/ISO-IR-197.so
+usr/lib/gconv/ISO-IR-209.so
usr/lib/gconv/ISO646.so
usr/lib/gconv/ISO8859-1.so
+usr/lib/gconv/ISO8859-10.so
+usr/lib/gconv/ISO8859-11.so
+usr/lib/gconv/ISO8859-13.so
+usr/lib/gconv/ISO8859-14.so
+usr/lib/gconv/ISO8859-15.so
+usr/lib/gconv/ISO8859-16.so
usr/lib/gconv/ISO8859-2.so
usr/lib/gconv/ISO8859-3.so
usr/lib/gconv/ISO8859-4.so
@@ -1558,40 +514,27 @@ usr/lib/gconv/ISO8859-7.so
usr/lib/gconv/ISO8859-8.so
usr/lib/gconv/ISO8859-9.so
usr/lib/gconv/ISO8859-9E.so
-usr/lib/gconv/ISO8859-10.so
-usr/lib/gconv/ISO8859-11.so
-usr/lib/gconv/ISO8859-13.so
-usr/lib/gconv/ISO8859-14.so
-usr/lib/gconv/ISO8859-15.so
-usr/lib/gconv/ISO8859-16.so
-usr/lib/gconv/ISO-2022-CN.so
-usr/lib/gconv/ISO-2022-CN-EXT.so
-usr/lib/gconv/ISO-2022-JP.so
-usr/lib/gconv/ISO-2022-JP-3.so
-usr/lib/gconv/ISO-2022-KR.so
-usr/lib/gconv/ISO-IR-197.so
-usr/lib/gconv/ISO-IR-209.so
+usr/lib/gconv/ISO_10367-BOX.so
+usr/lib/gconv/ISO_11548-1.so
usr/lib/gconv/ISO_2033.so
-usr/lib/gconv/ISO_5427.so
usr/lib/gconv/ISO_5427-EXT.so
+usr/lib/gconv/ISO_5427.so
usr/lib/gconv/ISO_5428.so
-usr/lib/gconv/ISO_6937.so
usr/lib/gconv/ISO_6937-2.so
-usr/lib/gconv/ISO_10367-BOX.so
-usr/lib/gconv/ISO_11548-1.so
+usr/lib/gconv/ISO_6937.so
usr/lib/gconv/JOHAB.so
+usr/lib/gconv/KOI-8.so
usr/lib/gconv/KOI8-R.so
usr/lib/gconv/KOI8-RU.so
usr/lib/gconv/KOI8-T.so
usr/lib/gconv/KOI8-U.so
-usr/lib/gconv/KOI-8.so
-usr/lib/gconv/LATIN-GREEK.so
usr/lib/gconv/LATIN-GREEK-1.so
-usr/lib/gconv/MACINTOSH.so
+usr/lib/gconv/LATIN-GREEK.so
usr/lib/gconv/MAC-CENTRALEUROPE.so
usr/lib/gconv/MAC-IS.so
usr/lib/gconv/MAC-SAMI.so
usr/lib/gconv/MAC-UK.so
+usr/lib/gconv/MACINTOSH.so
usr/lib/gconv/MIK.so
usr/lib/gconv/NATS-DANO.so
usr/lib/gconv/NATS-SEFI.so
@@ -1600,15 +543,15 @@ usr/lib/gconv/RK1048.so
usr/lib/gconv/SAMI-WS2.so
usr/lib/gconv/SHIFT_JISX0213.so
usr/lib/gconv/SJIS.so
+usr/lib/gconv/T.61.so
usr/lib/gconv/TCVN5712-1.so
usr/lib/gconv/TIS-620.so
usr/lib/gconv/TSCII.so
-usr/lib/gconv/T.61.so
usr/lib/gconv/UHC.so
usr/lib/gconv/UNICODE.so
-usr/lib/gconv/UTF-7.so
usr/lib/gconv/UTF-16.so
usr/lib/gconv/UTF-32.so
+usr/lib/gconv/UTF-7.so
usr/lib/gconv/VISCII.so
usr/lib/gconv/gconv-modules
usr/lib/gconv/gconv-modules.cache
@@ -1620,15 +563,18 @@ usr/lib/gconv/libJIS.so
usr/lib/gconv/libJISX0213.so
usr/lib/gconv/libKSC.so
usr/lib/gio/modules/libgiognomeproxy.so
-usr/lib/gio/modules/libgiognutls.so
usr/lib/gio/modules/libgiolibproxy.so
@rmtry usr/lib/gio/modules/giomodule.cache
-usr/lib/girepository-1.0/GeocodeGlib-1.0.typelib
usr/lib/girepository-1.0/GUdev-1.0.typelib
+usr/lib/girepository-1.0/GeocodeGlib-1.0.typelib
usr/lib/girepository-1.0/Json-1.0.typelib
+usr/lib/girepository-1.0/Soup-2.4.typelib
+usr/lib/girepository-1.0/SoupGNOME-2.4.typelib
usr/lib/krb5/plugins/preauth/spake.so
usr/lib/krb5/plugins/tls/k5tls.so
usr/lib/ld-linux.so.2
+usr/lib/libBrokenLocale.so.1
+usr/lib/libSegFault.so
usr/lib/libacl.so.1
usr/lib/libacl.so.1.1.2301
usr/lib/libanl.so.1
@@ -1636,11 +582,16 @@ usr/lib/libattr.so.1
usr/lib/libattr.so.1.1.2501
usr/lib/libblkid.so.1
usr/lib/libblkid.so.1.1.0
-usr/lib/libBrokenLocale.so.1
+usr/lib/libbrotlicommon.so.1
+usr/lib/libbrotlicommon.so.1.0.9
+usr/lib/libbrotlidec.so.1
+usr/lib/libbrotlidec.so.1.0.9
+usr/lib/libbrotlienc.so.1
+usr/lib/libbrotlienc.so.1.0.9
usr/lib/libbz2.so.1
usr/lib/libbz2.so.1.0.8
-usr/lib/libc_malloc_debug.so.0
usr/lib/libc.so.6
+usr/lib/libc_malloc_debug.so.0
usr/lib/libcap.so.2
usr/lib/libcap.so.2.48
usr/lib/libcom_err.so.2
@@ -1674,10 +625,10 @@ usr/lib/libfuse.so.2
usr/lib/libfuse.so.2.9.9
usr/lib/libgcc_s-11-20240719.so.1
usr/lib/libgcc_s.so.1
-usr/lib/libgdbm_compat.so.4
-usr/lib/libgdbm_compat.so.4.0.0
usr/lib/libgdbm.so.6
usr/lib/libgdbm.so.6.0.0
+usr/lib/libgdbm_compat.so.4
+usr/lib/libgdbm_compat.so.4.0.0
usr/lib/libgeocode-glib.so.0
usr/lib/libgeocode-glib.so.0.0.0
usr/lib/libgio-2.0.so.0
@@ -1700,6 +651,8 @@ usr/lib/libgudev-1.0.so.0
usr/lib/libgudev-1.0.so.0.3.0
usr/lib/libhistory.so.8
usr/lib/libhistory.so.8.1
+usr/lib/libidn2.so.0
+usr/lib/libidn2.so.0.3.7
usr/lib/libjson-glib-1.0.so.0
usr/lib/libjson-glib-1.0.so.0.600.6
usr/lib/libk5crypto.so.3
@@ -1745,22 +698,24 @@ usr/lib/libpcre.so.1
usr/lib/libpcre.so.1.2.12
usr/lib/libpcre16.so.0
usr/lib/libpcre16.so.0.2.12
-usr/lib/libpcre32.so.0
-usr/lib/libpcre32.so.0.0.12
-usr/lib/libpcreposix.so.0
-usr/lib/libpcreposix.so.0.0.7
-usr/lib/libpcre2-8.so.0
-usr/lib/libpcre2-8.so.0.11.0
usr/lib/libpcre2-16.so.0
usr/lib/libpcre2-16.so.0.11.0
usr/lib/libpcre2-32.so.0
usr/lib/libpcre2-32.so.0.11.0
+usr/lib/libpcre2-8.so.0
+usr/lib/libpcre2-8.so.0.11.0
usr/lib/libpcre2-posix.so.3
usr/lib/libpcre2-posix.so.3.0.2
+usr/lib/libpcre32.so.0
+usr/lib/libpcre32.so.0.0.12
+usr/lib/libpcreposix.so.0
+usr/lib/libpcreposix.so.0.0.7
usr/lib/libpopt.so.0
usr/lib/libpopt.so.0.0.1
usr/lib/libproxy.so.1
usr/lib/libproxy.so.1.0.0
+usr/lib/libpsl.so.5
+usr/lib/libpsl.so.5.3.3
usr/lib/libpsx.so.2
usr/lib/libpsx.so.2.48
usr/lib/libpthread.so.0
@@ -1768,7 +723,6 @@ usr/lib/libreadline.so.8
usr/lib/libreadline.so.8.1
usr/lib/libresolv.so.2
usr/lib/librt.so.1
-usr/lib/libSegFault.so
usr/lib/libselinux.so.1
usr/lib/libsepol.so.2
usr/lib/libsigsegv.so.2
@@ -1777,6 +731,12 @@ usr/lib/libslang.so.2
usr/lib/libslang.so.2.3.2
usr/lib/libsmartcols.so.1
usr/lib/libsmartcols.so.1.1.0
+usr/lib/libsoup-2.4.so.1
+usr/lib/libsoup-2.4.so.1.11.0
+usr/lib/libsoup-gnome-2.4.so.1
+usr/lib/libsoup-gnome-2.4.so.1.11.0
+usr/lib/libsqlite3.so.0
+usr/lib/libsqlite3.so.0.8.6
usr/lib/libssl.so.3
usr/lib/libssl.so.3.2.2
usr/lib/libstdc++.so.6
@@ -1788,6 +748,8 @@ usr/lib/libtinfo.so.6
usr/lib/libtinfo.so.6.2
usr/lib/libulockmgr.so.1
usr/lib/libulockmgr.so.1.0.1
+usr/lib/libunistring.so.2
+usr/lib/libunistring.so.2.1.0
usr/lib/libutil.so.1
usr/lib/libuuid.so.1
usr/lib/libuuid.so.1.3.0
@@ -1796,7 +758,7 @@ usr/lib/libverto.so.1.0.0
usr/lib/libz.so.1
usr/lib/libz.so.1.2.11
usr/lib/libzstd.so.1
-usr/lib/libzstd.so.1.5.1
+usr/lib/libzstd.so.1.5.5
usr/lib/locale/C.utf8/LC_ADDRESS
usr/lib/locale/C.utf8/LC_COLLATE
usr/lib/locale/C.utf8/LC_CTYPE
@@ -1857,14 +819,7 @@ usr/lib64/gconv/ASMO_449.so
usr/lib64/gconv/BIG5.so
usr/lib64/gconv/BIG5HKSCS.so
usr/lib64/gconv/BRF.so
-usr/lib64/gconv/CP737.so
-usr/lib64/gconv/CP770.so
-usr/lib64/gconv/CP771.so
-usr/lib64/gconv/CP772.so
-usr/lib64/gconv/CP773.so
-usr/lib64/gconv/CP774.so
-usr/lib64/gconv/CP775.so
-usr/lib64/gconv/CP932.so
+usr/lib64/gconv/CP10007.so
usr/lib64/gconv/CP1125.so
usr/lib64/gconv/CP1250.so
usr/lib64/gconv/CP1251.so
@@ -1875,20 +830,27 @@ usr/lib64/gconv/CP1255.so
usr/lib64/gconv/CP1256.so
usr/lib64/gconv/CP1257.so
usr/lib64/gconv/CP1258.so
-usr/lib64/gconv/CP10007.so
+usr/lib64/gconv/CP737.so
+usr/lib64/gconv/CP770.so
+usr/lib64/gconv/CP771.so
+usr/lib64/gconv/CP772.so
+usr/lib64/gconv/CP773.so
+usr/lib64/gconv/CP774.so
+usr/lib64/gconv/CP775.so
+usr/lib64/gconv/CP932.so
usr/lib64/gconv/CSN_369103.so
usr/lib64/gconv/CWI.so
usr/lib64/gconv/DEC-MCS.so
-usr/lib64/gconv/EBCDIC-AT-DE.so
usr/lib64/gconv/EBCDIC-AT-DE-A.so
+usr/lib64/gconv/EBCDIC-AT-DE.so
usr/lib64/gconv/EBCDIC-CA-FR.so
-usr/lib64/gconv/EBCDIC-DK-NO.so
usr/lib64/gconv/EBCDIC-DK-NO-A.so
-usr/lib64/gconv/EBCDIC-ES.so
+usr/lib64/gconv/EBCDIC-DK-NO.so
usr/lib64/gconv/EBCDIC-ES-A.so
usr/lib64/gconv/EBCDIC-ES-S.so
-usr/lib64/gconv/EBCDIC-FI-SE.so
+usr/lib64/gconv/EBCDIC-ES.so
usr/lib64/gconv/EBCDIC-FI-SE-A.so
+usr/lib64/gconv/EBCDIC-FI-SE.so
usr/lib64/gconv/EBCDIC-FR.so
usr/lib64/gconv/EBCDIC-IS-FRISS.so
usr/lib64/gconv/EBCDIC-IT.so
@@ -1898,8 +860,8 @@ usr/lib64/gconv/EBCDIC-US.so
usr/lib64/gconv/ECMA-CYRILLIC.so
usr/lib64/gconv/EUC-CN.so
usr/lib64/gconv/EUC-JISX0213.so
-usr/lib64/gconv/EUC-JP.so
usr/lib64/gconv/EUC-JP-MS.so
+usr/lib64/gconv/EUC-JP.so
usr/lib64/gconv/EUC-KR.so
usr/lib64/gconv/EUC-TW.so
usr/lib64/gconv/GB18030.so
@@ -1909,9 +871,9 @@ usr/lib64/gconv/GBK.so
usr/lib64/gconv/GEORGIAN-ACADEMY.so
usr/lib64/gconv/GEORGIAN-PS.so
usr/lib64/gconv/GOST_19768-74.so
-usr/lib64/gconv/GREEK7.so
-usr/lib64/gconv/GREEK7-OLD.so
usr/lib64/gconv/GREEK-CCITT.so
+usr/lib64/gconv/GREEK7-OLD.so
+usr/lib64/gconv/GREEK7.so
usr/lib64/gconv/HP-GREEK8.so
usr/lib64/gconv/HP-ROMAN8.so
usr/lib64/gconv/HP-ROMAN9.so
@@ -1919,6 +881,53 @@ usr/lib64/gconv/HP-THAI8.so
usr/lib64/gconv/HP-TURKISH8.so
usr/lib64/gconv/IBM037.so
usr/lib64/gconv/IBM038.so
+usr/lib64/gconv/IBM1004.so
+usr/lib64/gconv/IBM1008.so
+usr/lib64/gconv/IBM1008_420.so
+usr/lib64/gconv/IBM1025.so
+usr/lib64/gconv/IBM1026.so
+usr/lib64/gconv/IBM1046.so
+usr/lib64/gconv/IBM1047.so
+usr/lib64/gconv/IBM1097.so
+usr/lib64/gconv/IBM1112.so
+usr/lib64/gconv/IBM1122.so
+usr/lib64/gconv/IBM1123.so
+usr/lib64/gconv/IBM1124.so
+usr/lib64/gconv/IBM1129.so
+usr/lib64/gconv/IBM1130.so
+usr/lib64/gconv/IBM1132.so
+usr/lib64/gconv/IBM1133.so
+usr/lib64/gconv/IBM1137.so
+usr/lib64/gconv/IBM1140.so
+usr/lib64/gconv/IBM1141.so
+usr/lib64/gconv/IBM1142.so
+usr/lib64/gconv/IBM1143.so
+usr/lib64/gconv/IBM1144.so
+usr/lib64/gconv/IBM1145.so
+usr/lib64/gconv/IBM1146.so
+usr/lib64/gconv/IBM1147.so
+usr/lib64/gconv/IBM1148.so
+usr/lib64/gconv/IBM1149.so
+usr/lib64/gconv/IBM1153.so
+usr/lib64/gconv/IBM1154.so
+usr/lib64/gconv/IBM1155.so
+usr/lib64/gconv/IBM1156.so
+usr/lib64/gconv/IBM1157.so
+usr/lib64/gconv/IBM1158.so
+usr/lib64/gconv/IBM1160.so
+usr/lib64/gconv/IBM1161.so
+usr/lib64/gconv/IBM1162.so
+usr/lib64/gconv/IBM1163.so
+usr/lib64/gconv/IBM1164.so
+usr/lib64/gconv/IBM1166.so
+usr/lib64/gconv/IBM1167.so
+usr/lib64/gconv/IBM12712.so
+usr/lib64/gconv/IBM1364.so
+usr/lib64/gconv/IBM1371.so
+usr/lib64/gconv/IBM1388.so
+usr/lib64/gconv/IBM1390.so
+usr/lib64/gconv/IBM1399.so
+usr/lib64/gconv/IBM16804.so
usr/lib64/gconv/IBM256.so
usr/lib64/gconv/IBM273.so
usr/lib64/gconv/IBM274.so
@@ -1935,7 +944,12 @@ usr/lib64/gconv/IBM420.so
usr/lib64/gconv/IBM423.so
usr/lib64/gconv/IBM424.so
usr/lib64/gconv/IBM437.so
+usr/lib64/gconv/IBM4517.so
+usr/lib64/gconv/IBM4899.so
+usr/lib64/gconv/IBM4909.so
+usr/lib64/gconv/IBM4971.so
usr/lib64/gconv/IBM500.so
+usr/lib64/gconv/IBM5347.so
usr/lib64/gconv/IBM803.so
usr/lib64/gconv/IBM850.so
usr/lib64/gconv/IBM851.so
@@ -1963,8 +977,10 @@ usr/lib64/gconv/IBM891.so
usr/lib64/gconv/IBM901.so
usr/lib64/gconv/IBM902.so
usr/lib64/gconv/IBM903.so
+usr/lib64/gconv/IBM9030.so
usr/lib64/gconv/IBM904.so
usr/lib64/gconv/IBM905.so
+usr/lib64/gconv/IBM9066.so
usr/lib64/gconv/IBM918.so
usr/lib64/gconv/IBM921.so
usr/lib64/gconv/IBM922.so
@@ -1975,68 +991,27 @@ usr/lib64/gconv/IBM935.so
usr/lib64/gconv/IBM937.so
usr/lib64/gconv/IBM939.so
usr/lib64/gconv/IBM943.so
-usr/lib64/gconv/IBM1004.so
-usr/lib64/gconv/IBM1008.so
-usr/lib64/gconv/IBM1008_420.so
-usr/lib64/gconv/IBM1025.so
-usr/lib64/gconv/IBM1026.so
-usr/lib64/gconv/IBM1046.so
-usr/lib64/gconv/IBM1047.so
-usr/lib64/gconv/IBM1097.so
-usr/lib64/gconv/IBM1112.so
-usr/lib64/gconv/IBM1122.so
-usr/lib64/gconv/IBM1123.so
-usr/lib64/gconv/IBM1124.so
-usr/lib64/gconv/IBM1129.so
-usr/lib64/gconv/IBM1130.so
-usr/lib64/gconv/IBM1132.so
-usr/lib64/gconv/IBM1133.so
-usr/lib64/gconv/IBM1137.so
-usr/lib64/gconv/IBM1140.so
-usr/lib64/gconv/IBM1141.so
-usr/lib64/gconv/IBM1142.so
-usr/lib64/gconv/IBM1143.so
-usr/lib64/gconv/IBM1144.so
-usr/lib64/gconv/IBM1145.so
-usr/lib64/gconv/IBM1146.so
-usr/lib64/gconv/IBM1147.so
-usr/lib64/gconv/IBM1148.so
-usr/lib64/gconv/IBM1149.so
-usr/lib64/gconv/IBM1153.so
-usr/lib64/gconv/IBM1154.so
-usr/lib64/gconv/IBM1155.so
-usr/lib64/gconv/IBM1156.so
-usr/lib64/gconv/IBM1157.so
-usr/lib64/gconv/IBM1158.so
-usr/lib64/gconv/IBM1160.so
-usr/lib64/gconv/IBM1161.so
-usr/lib64/gconv/IBM1162.so
-usr/lib64/gconv/IBM1163.so
-usr/lib64/gconv/IBM1164.so
-usr/lib64/gconv/IBM1166.so
-usr/lib64/gconv/IBM1167.so
-usr/lib64/gconv/IBM1364.so
-usr/lib64/gconv/IBM1371.so
-usr/lib64/gconv/IBM1388.so
-usr/lib64/gconv/IBM1390.so
-usr/lib64/gconv/IBM1399.so
-usr/lib64/gconv/IBM4517.so
-usr/lib64/gconv/IBM4899.so
-usr/lib64/gconv/IBM4909.so
-usr/lib64/gconv/IBM4971.so
-usr/lib64/gconv/IBM5347.so
-usr/lib64/gconv/IBM9030.so
-usr/lib64/gconv/IBM9066.so
usr/lib64/gconv/IBM9448.so
-usr/lib64/gconv/IBM12712.so
-usr/lib64/gconv/IBM16804.so
usr/lib64/gconv/IEC_P27-1.so
-usr/lib64/gconv/INIS.so
usr/lib64/gconv/INIS-8.so
usr/lib64/gconv/INIS-CYRILLIC.so
+usr/lib64/gconv/INIS.so
usr/lib64/gconv/ISIRI-3342.so
+usr/lib64/gconv/ISO-2022-CN-EXT.so
+usr/lib64/gconv/ISO-2022-CN.so
+usr/lib64/gconv/ISO-2022-JP-3.so
+usr/lib64/gconv/ISO-2022-JP.so
+usr/lib64/gconv/ISO-2022-KR.so
+usr/lib64/gconv/ISO-IR-197.so
+usr/lib64/gconv/ISO-IR-209.so
usr/lib64/gconv/ISO646.so
usr/lib64/gconv/ISO8859-1.so
+usr/lib64/gconv/ISO8859-10.so
+usr/lib64/gconv/ISO8859-11.so
+usr/lib64/gconv/ISO8859-13.so
+usr/lib64/gconv/ISO8859-14.so
+usr/lib64/gconv/ISO8859-15.so
+usr/lib64/gconv/ISO8859-16.so
usr/lib64/gconv/ISO8859-2.so
usr/lib64/gconv/ISO8859-3.so
usr/lib64/gconv/ISO8859-4.so
@@ -2046,40 +1021,27 @@ usr/lib64/gconv/ISO8859-7.so
usr/lib64/gconv/ISO8859-8.so
usr/lib64/gconv/ISO8859-9.so
usr/lib64/gconv/ISO8859-9E.so
-usr/lib64/gconv/ISO8859-10.so
-usr/lib64/gconv/ISO8859-11.so
-usr/lib64/gconv/ISO8859-13.so
-usr/lib64/gconv/ISO8859-14.so
-usr/lib64/gconv/ISO8859-15.so
-usr/lib64/gconv/ISO8859-16.so
-usr/lib64/gconv/ISO-2022-CN.so
-usr/lib64/gconv/ISO-2022-CN-EXT.so
-usr/lib64/gconv/ISO-2022-JP.so
-usr/lib64/gconv/ISO-2022-JP-3.so
-usr/lib64/gconv/ISO-2022-KR.so
-usr/lib64/gconv/ISO-IR-197.so
-usr/lib64/gconv/ISO-IR-209.so
+usr/lib64/gconv/ISO_10367-BOX.so
+usr/lib64/gconv/ISO_11548-1.so
usr/lib64/gconv/ISO_2033.so
-usr/lib64/gconv/ISO_5427.so
usr/lib64/gconv/ISO_5427-EXT.so
+usr/lib64/gconv/ISO_5427.so
usr/lib64/gconv/ISO_5428.so
-usr/lib64/gconv/ISO_6937.so
usr/lib64/gconv/ISO_6937-2.so
-usr/lib64/gconv/ISO_10367-BOX.so
-usr/lib64/gconv/ISO_11548-1.so
+usr/lib64/gconv/ISO_6937.so
usr/lib64/gconv/JOHAB.so
+usr/lib64/gconv/KOI-8.so
usr/lib64/gconv/KOI8-R.so
usr/lib64/gconv/KOI8-RU.so
usr/lib64/gconv/KOI8-T.so
usr/lib64/gconv/KOI8-U.so
-usr/lib64/gconv/KOI-8.so
-usr/lib64/gconv/LATIN-GREEK.so
usr/lib64/gconv/LATIN-GREEK-1.so
-usr/lib64/gconv/MACINTOSH.so
+usr/lib64/gconv/LATIN-GREEK.so
usr/lib64/gconv/MAC-CENTRALEUROPE.so
usr/lib64/gconv/MAC-IS.so
usr/lib64/gconv/MAC-SAMI.so
usr/lib64/gconv/MAC-UK.so
+usr/lib64/gconv/MACINTOSH.so
usr/lib64/gconv/MIK.so
usr/lib64/gconv/NATS-DANO.so
usr/lib64/gconv/NATS-SEFI.so
@@ -2088,15 +1050,15 @@ usr/lib64/gconv/RK1048.so
usr/lib64/gconv/SAMI-WS2.so
usr/lib64/gconv/SHIFT_JISX0213.so
usr/lib64/gconv/SJIS.so
+usr/lib64/gconv/T.61.so
usr/lib64/gconv/TCVN5712-1.so
usr/lib64/gconv/TIS-620.so
usr/lib64/gconv/TSCII.so
-usr/lib64/gconv/T.61.so
usr/lib64/gconv/UHC.so
usr/lib64/gconv/UNICODE.so
-usr/lib64/gconv/UTF-7.so
usr/lib64/gconv/UTF-16.so
usr/lib64/gconv/UTF-32.so
+usr/lib64/gconv/UTF-7.so
usr/lib64/gconv/VISCII.so
usr/lib64/gconv/gconv-modules
usr/lib64/gconv/gconv-modules.cache
@@ -2108,12 +1070,13 @@ usr/lib64/gconv/libJIS.so
usr/lib64/gconv/libJISX0213.so
usr/lib64/gconv/libKSC.so
usr/lib64/gio/modules/libgiognomeproxy.so
-usr/lib64/gio/modules/libgiognutls.so
usr/lib64/gio/modules/libgiolibproxy.so
usr/lib64/girepository-1.0/GUdev-1.0.typelib
usr/lib64/girepository-1.0/GeocodeGlib-1.0.typelib
usr/lib64/girepository-1.0/Json-1.0.typelib
@rmtry usr/lib64/gio/modules/giomodule.cache
+usr/lib64/girepository-1.0/Soup-2.4.typelib
+usr/lib64/girepository-1.0/SoupGNOME-2.4.typelib
usr/lib64/krb5/plugins/preauth/spake.so
usr/lib64/krb5/plugins/tls/k5tls.so
usr/lib64/ld-linux-x86-64.so.2
@@ -2126,6 +1089,12 @@ usr/lib64/libattr.so.1
usr/lib64/libattr.so.1.1.2501
usr/lib64/libblkid.so.1
usr/lib64/libblkid.so.1.1.0
+usr/lib64/libbrotlicommon.so.1
+usr/lib64/libbrotlicommon.so.1.0.9
+usr/lib64/libbrotlidec.so.1
+usr/lib64/libbrotlidec.so.1.0.9
+usr/lib64/libbrotlienc.so.1
+usr/lib64/libbrotlienc.so.1.0.9
usr/lib64/libbz2.so.1
usr/lib64/libbz2.so.1.0.8
usr/lib64/libc.so.6
@@ -2189,6 +1158,8 @@ usr/lib64/libgudev-1.0.so.0
usr/lib64/libgudev-1.0.so.0.3.0
usr/lib64/libhistory.so.8
usr/lib64/libhistory.so.8.1
+usr/lib64/libidn2.so.0
+usr/lib64/libidn2.so.0.3.7
usr/lib64/libjson-glib-1.0.so.0
usr/lib64/libjson-glib-1.0.so.0.600.6
usr/lib64/libk5crypto.so.3
@@ -2235,22 +1206,24 @@ usr/lib64/libpcre.so.1
usr/lib64/libpcre.so.1.2.12
usr/lib64/libpcre16.so.0
usr/lib64/libpcre16.so.0.2.12
-usr/lib64/libpcre32.so.0
-usr/lib64/libpcre32.so.0.0.12
-usr/lib64/libpcreposix.so.0
-usr/lib64/libpcreposix.so.0.0.7
-usr/lib64/libpcre2-8.so.0
-usr/lib64/libpcre2-8.so.0.11.0
usr/lib64/libpcre2-16.so.0
usr/lib64/libpcre2-16.so.0.11.0
usr/lib64/libpcre2-32.so.0
usr/lib64/libpcre2-32.so.0.11.0
+usr/lib64/libpcre2-8.so.0
+usr/lib64/libpcre2-8.so.0.11.0
usr/lib64/libpcre2-posix.so.3
usr/lib64/libpcre2-posix.so.3.0.2
+usr/lib64/libpcre32.so.0
+usr/lib64/libpcre32.so.0.0.12
+usr/lib64/libpcreposix.so.0
+usr/lib64/libpcreposix.so.0.0.7
usr/lib64/libpopt.so.0
usr/lib64/libpopt.so.0.0.1
usr/lib64/libproxy.so.1
usr/lib64/libproxy.so.1.0.0
+usr/lib64/libpsl.so.5
+usr/lib64/libpsl.so.5.3.3
usr/lib64/libpsx.so.2
usr/lib64/libpsx.so.2.48
usr/lib64/libpthread.so.0
@@ -2266,6 +1239,12 @@ usr/lib64/libslang.so.2
usr/lib64/libslang.so.2.3.2
usr/lib64/libsmartcols.so.1
usr/lib64/libsmartcols.so.1.1.0
+usr/lib64/libsoup-2.4.so.1
+usr/lib64/libsoup-2.4.so.1.11.0
+usr/lib64/libsoup-gnome-2.4.so.1
+usr/lib64/libsoup-gnome-2.4.so.1.11.0
+usr/lib64/libsqlite3.so.0
+usr/lib64/libsqlite3.so.0.8.6
usr/lib64/libssl.so.3
usr/lib64/libssl.so.3.2.2
usr/lib64/libstdc++.so.6
@@ -2277,6 +1256,8 @@ usr/lib64/libtinfo.so.6
usr/lib64/libtinfo.so.6.2
usr/lib64/libulockmgr.so.1
usr/lib64/libulockmgr.so.1.0.1
+usr/lib64/libunistring.so.2
+usr/lib64/libunistring.so.2.1.0
usr/lib64/libutil.so.1
usr/lib64/libuuid.so.1
usr/lib64/libuuid.so.1.3.0
@@ -2285,7 +1266,7 @@ usr/lib64/libverto.so.1.0.0
usr/lib64/libz.so.1
usr/lib64/libz.so.1.2.11
usr/lib64/libzstd.so.1
-usr/lib64/libzstd.so.1.5.1
+usr/lib64/libzstd.so.1.5.5
usr/lib64/ossl-modules/fips.so
usr/lib64/ossl-modules/legacy.so
usr/lib64/security/pam_cap.so
@@ -2553,11 +1534,20 @@ usr/share/dbus-1/services/org.gtk.GLib.PACRunner.service
%%PORTDOCS%%usr/share/doc/libevdev/COPYING
%%PORTDOCS%%usr/share/doc/libffi/README.md
%%PORTDOCS%%usr/share/doc/libgudev/NEWS
+%%PORTDOCS%%usr/share/doc/libidn2/AUTHORS
+%%PORTDOCS%%usr/share/doc/libidn2/NEWS
+%%PORTDOCS%%usr/share/doc/libidn2/README.md
%%PORTDOCS%%usr/share/doc/libproxy/AUTHORS
%%PORTDOCS%%usr/share/doc/libproxy/README
%%PORTDOCS%%usr/share/doc/libsigsegv/AUTHORS
%%PORTDOCS%%usr/share/doc/libsigsegv/NEWS
%%PORTDOCS%%usr/share/doc/libsigsegv/README
+%%PORTDOCS%%usr/share/doc/libsoup/AUTHORS
+%%PORTDOCS%%usr/share/doc/libsoup/NEWS
+%%PORTDOCS%%usr/share/doc/libsoup/README
+%%PORTDOCS%%usr/share/doc/libunistring/AUTHORS
+%%PORTDOCS%%usr/share/doc/libunistring/NEWS
+%%PORTDOCS%%usr/share/doc/libunistring/README
%%PORTDOCS%%usr/share/doc/libverto/AUTHORS
%%PORTDOCS%%usr/share/doc/libverto/ChangeLog
%%PORTDOCS%%usr/share/doc/libverto/NEWS
@@ -2578,12 +1568,12 @@ usr/share/dbus-1/services/org.gtk.GLib.PACRunner.service
%%PORTDOCS%%usr/share/doc/ncurses/NEWS.xz
%%PORTDOCS%%usr/share/doc/ncurses/README
%%PORTDOCS%%usr/share/doc/ncurses/TO-DO
-%%PORTDOCS%%usr/share/doc/pcre/AUTHORS
-%%PORTDOCS%%usr/share/doc/pcre/NEWS
%%PORTDOCS%%usr/share/doc/pcre-utf16/AUTHORS
%%PORTDOCS%%usr/share/doc/pcre-utf16/NEWS
%%PORTDOCS%%usr/share/doc/pcre-utf32/AUTHORS
%%PORTDOCS%%usr/share/doc/pcre-utf32/NEWS
+%%PORTDOCS%%usr/share/doc/pcre/AUTHORS
+%%PORTDOCS%%usr/share/doc/pcre/NEWS
%%PORTDOCS%%usr/share/doc/popt/CHANGES
%%PORTDOCS%%usr/share/doc/rocky-release/COMMUNITY-CHARTER
%%PORTDOCS%%usr/share/doc/rocky-release/Contributors
@@ -2597,6 +1587,7 @@ usr/share/dbus-1/services/org.gtk.GLib.PACRunner.service
%%PORTDOCS%%usr/share/doc/setserial/rc.serial
%%PORTDOCS%%usr/share/doc/setup/uidgid
%%PORTDOCS%%usr/share/doc/slang/NEWS
+%%PORTDOCS%%usr/share/doc/sqlite-libs/README.md
%%PORTDOCS%%usr/share/doc/util-linux/AUTHORS
%%PORTDOCS%%usr/share/doc/util-linux/NEWS
%%PORTDOCS%%usr/share/doc/util-linux/README
@@ -2676,6 +1667,7 @@ usr/share/licenses/keyutils/LICENCE.GPL
usr/share/licenses/krb5-libs/LICENSE
usr/share/licenses/less/COPYING
usr/share/licenses/less/LICENSE
+usr/share/licenses/libbrotli/LICENSE
usr/share/licenses/libcap/License
usr/share/licenses/libcom_err/NOTICE
usr/share/licenses/libdatrie/COPYING
@@ -2691,15 +1683,23 @@ usr/share/licenses/libgcc/COPYING.RUNTIME
usr/share/licenses/libgcc/COPYING3
usr/share/licenses/libgcc/COPYING3.LIB
usr/share/licenses/libgudev/COPYING
+usr/share/licenses/libidn2/COPYING
+usr/share/licenses/libidn2/COPYING.LESSERv3
+usr/share/licenses/libidn2/COPYING.unicode
+usr/share/licenses/libidn2/COPYINGv2
usr/share/licenses/libmount/COPYING
usr/share/licenses/libmount/COPYING.LGPL-2.1-or-later
usr/share/licenses/libproxy/COPYING
usr/share/licenses/libproxy/Copyright.txt
+usr/share/licenses/libpsl/COPYING
usr/share/licenses/libselinux/LICENSE
usr/share/licenses/libsepol/LICENSE
usr/share/licenses/libsigsegv/COPYING
usr/share/licenses/libsmartcols/COPYING
usr/share/licenses/libsmartcols/COPYING.LGPL-2.1-or-later
+usr/share/licenses/libsoup/COPYING
+usr/share/licenses/libunistring/COPYING
+usr/share/licenses/libunistring/COPYING.LIB
usr/share/licenses/libuuid/COPYING
usr/share/licenses/libuuid/COPYING.BSD-3-Clause
usr/share/licenses/libverto/COPYING
@@ -2712,12 +1712,12 @@ usr/share/licenses/mpfr/COPYING
usr/share/licenses/mpfr/COPYING.LESSER
usr/share/licenses/ncurses-base/COPYING
usr/share/licenses/openssl-libs/LICENSE.txt
-usr/share/licenses/pcre/COPYING
-usr/share/licenses/pcre/LICENCE
usr/share/licenses/pcre-utf16/COPYING
usr/share/licenses/pcre-utf16/LICENCE
usr/share/licenses/pcre-utf32/COPYING
usr/share/licenses/pcre-utf32/LICENCE
+usr/share/licenses/pcre/COPYING
+usr/share/licenses/pcre/LICENCE
usr/share/licenses/popt/COPYING
usr/share/licenses/readline/COPYING
usr/share/licenses/readline/USAGE
@@ -2741,11 +1741,13 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/am/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/an/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/an/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/an/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ar/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ar/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/as/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/as/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/as/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/as/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ast/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ast/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/az/LC_MESSAGES/glib20.mo
@@ -2755,6 +1757,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/be/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/be/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/be/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/be/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/be@latin/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/bg/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/bg/LC_MESSAGES/diffutils.mo
@@ -2764,14 +1767,17 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/bg/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/bg/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/bg/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/bg/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/bg/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/bn/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/bn_IN/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/bn_IN/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/bn_IN/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/bn_IN/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/bs/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/bs/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/bs/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/bs/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/e2fsprogs.mo
@@ -2781,11 +1787,13 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ca/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/ca/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/ca/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/ca@valencia/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ca@valencia/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ca@valencia/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ca@valencia/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/e2fsprogs.mo
@@ -2795,6 +1803,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/cs/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/cs/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/cs/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/cs/LC_MESSAGES/util-linux.mo
@@ -2808,6 +1818,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/da/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/da/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/da/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/da/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/da/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/da/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/da/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/da/LC_MESSAGES/util-linux.mo
@@ -2820,6 +1832,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/de/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/de/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/de/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/de/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/de/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/de/LC_MESSAGES/mit-krb5.mo
%%NLS%%usr/share/locale/de/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/de/LC_MESSAGES/sed.mo
@@ -2833,6 +1847,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/el/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/el/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/el/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/el/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/el/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/en@boldquot/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/en@quot/LC_MESSAGES/bash.mo
@@ -2843,6 +1858,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/en_GB/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/en_GB/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/en_GB/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/en_GB/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/en_US/LC_MESSAGES/mit-krb5.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/diffutils.mo
@@ -2853,6 +1869,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/eo/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/eo/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/eo/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/eo/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/bash.mo
@@ -2864,6 +1882,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/es/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/es/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/es/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/es/LC_MESSAGES/util-linux.mo
@@ -2873,16 +1893,19 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/et/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/et/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/et/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/et/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/et/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/et/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/eu/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/eu/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/fa/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/fa/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/fa/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/e2fsprogs.mo
@@ -2891,6 +1914,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/fi/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/fi/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/fi/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/fi/LC_MESSAGES/util-linux.mo
@@ -2903,12 +1928,16 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/fr/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/fr/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/fr/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/fr/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/fr/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/fr/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/fr/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/fr/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/fur/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/fur/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/fur/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/fur/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/fur/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ga/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/ga/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/ga/LC_MESSAGES/findutils.mo
@@ -2918,6 +1947,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ga/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/gd/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/gd/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/gd/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/findutils.mo
@@ -2926,20 +1956,24 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/gl/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/gl/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/gl/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/gu/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/gu/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/gu/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/he/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/he/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/hi/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/hi/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/hi/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/hi/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/findutils.mo
@@ -2948,6 +1982,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/hr/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/hr/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/hr/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/hr/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/bash.mo
@@ -2959,6 +1995,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/hu/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/hu/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/hu/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/hu/LC_MESSAGES/util-linux.mo
@@ -2973,6 +2011,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/id/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/id/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/id/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/id/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/id/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/id/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/id/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/id/LC_MESSAGES/util-linux.mo
@@ -2987,6 +2027,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/it/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/it/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/it/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/it/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/it/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/it/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/it/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/it/LC_MESSAGES/util-linux.mo
@@ -2998,6 +2040,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ja/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/ja/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/ja/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/ja/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/ja/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ja/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/ja/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/ja/LC_MESSAGES/util-linux.mo
@@ -3008,6 +2052,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/km/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/kn/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/kn/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/kn/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/findutils.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/glib-networking.mo
@@ -3015,6 +2060,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ko/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/ko/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/ko/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/ku/LC_MESSAGES/glib20.mo
@@ -3029,10 +2075,12 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/lt/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/lt/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/lt/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/lt/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/lv/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/lv/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/lv/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/lv/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/lv/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/lv/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/mai/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/mg/LC_MESSAGES/glib20.mo
@@ -3040,15 +2088,18 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ml/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ml/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ml/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ml/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/mn/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/mr/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/mr/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/mr/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/e2fsprogs.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/findutils.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ms/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ms/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/findutils.mo
@@ -3057,12 +2108,14 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/nb/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/nb/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/nb/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/nds/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ne/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ne/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ne/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ne/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/e2fsprogs.mo
@@ -3072,6 +2125,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/nl/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/nl/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/nl/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/nl/LC_MESSAGES/util-linux.mo
@@ -3079,13 +2134,16 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/oc/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/oc/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/oc/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/oc/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/or/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/or/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/or/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/or/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/pa/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/pa/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/pa/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/pa/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/pa/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/e2fsprogs.mo
@@ -3095,6 +2153,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/pl/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/pl/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/pl/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/pl/LC_MESSAGES/util-linux.mo
@@ -3108,6 +2168,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/pt/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/pt/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/pt/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/pt/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/pt/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/pt/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/pt/LC_MESSAGES/util-linux.mo
@@ -3119,6 +2180,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/pt_BR/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/ro/LC_MESSAGES/bash.mo
@@ -3128,6 +2191,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ro/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ro/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/ro/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ro/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/ro/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ro/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/ro/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/bash.mo
@@ -3138,6 +2203,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ru/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/ru/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/ru/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/ru/LC_MESSAGES/util-linux.mo
@@ -3151,6 +2218,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/sk/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/sk/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/sk/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/sk/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/sk/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/sk/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/bash.mo
@@ -3160,6 +2228,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/sl/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/sl/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/sl/LC_MESSAGES/util-linux.mo
@@ -3173,11 +2242,14 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/sr/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/sr/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/sr/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/sr/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/sr/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/sr/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/sr@ije/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/sr@latin/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/sr@latin/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/sr@latin/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/sr@latin/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/e2fsprogs.mo
@@ -3187,20 +2259,26 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/sv/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/sv/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/sv/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/sv/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/ta/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ta/LC_MESSAGES/glib20.mo
+%%NLS%%usr/share/locale/ta/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/te/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/te/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/te/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/te/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/tg/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/tg/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/tg/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/tg/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/th/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/th/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/th/LC_MESSAGES/grep.mo
+%%NLS%%usr/share/locale/th/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/th/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/tl/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/bash.mo
@@ -3212,6 +2290,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/tr/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/tr/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/tr/LC_MESSAGES/util-linux.mo
@@ -3219,6 +2298,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/ug/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/ug/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/ug/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/ug/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/e2fsprogs.mo
@@ -3228,9 +2308,12 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/uk/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/uk/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/uk/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/uk/LC_MESSAGES/util-linux.mo
+%%NLS%%usr/share/locale/uz@cyrillic/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/e2fsprogs.mo
@@ -3240,6 +2323,8 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/vi/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/vi/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/vi/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/vi/LC_MESSAGES/util-linux.mo
@@ -3256,12 +2341,15 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/libidn2.mo
+%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/zh_CN/LC_MESSAGES/util-linux.mo
%%NLS%%usr/share/locale/zh_HK/LC_MESSAGES/glib-networking.mo
%%NLS%%usr/share/locale/zh_HK/LC_MESSAGES/glib20.mo
%%NLS%%usr/share/locale/zh_HK/LC_MESSAGES/json-glib-1.0.mo
+%%NLS%%usr/share/locale/zh_HK/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/bash.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/diffutils.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/findutils.mo
@@ -3270,6 +2358,7 @@ usr/share/licenses/zlib/README
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/grep.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/json-glib-1.0.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/libc.mo
+%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/libsoup.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/popt.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/sed.mo
%%NLS%%usr/share/locale/zh_TW/LC_MESSAGES/util-linux.mo
@@ -3401,6 +2490,7 @@ usr/share/man/man1/sh.1.gz
usr/share/man/man1/shift.1.gz
usr/share/man/man1/shopt.1.gz
usr/share/man/man1/source.1.gz
+usr/share/man/man1/sqlite3.1.gz
usr/share/man/man1/su.1.gz
usr/share/man/man1/suspend.1.gz
usr/share/man/man1/tabs.1.gz
@@ -3722,7 +2812,6 @@ var/mail
@dir etc/yum.repos.d
@dir opt
@dir srv
-@dir usr/lib64/gio/modules
@dir var/adm
@dir var/cache/bpf
@dir var/cache/ldconfig
diff --git a/emulators/magia/Makefile b/emulators/magia/Makefile
index 2727b44605e3..81588293a169 100644
--- a/emulators/magia/Makefile
+++ b/emulators/magia/Makefile
@@ -1,7 +1,7 @@
PORTNAME= magia
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.0
-PORTREVISION= 25
+PORTREVISION= 27
CATEGORIES= emulators
MAINTAINER= ports@FreeBSD.org
diff --git a/emulators/mame/Makefile b/emulators/mame/Makefile
index 9d48f5c4bc2d..793f30a06ba3 100644
--- a/emulators/mame/Makefile
+++ b/emulators/mame/Makefile
@@ -1,9 +1,12 @@
PORTNAME= mame
-DISTVERSION= 0.274
+DISTVERSION= 0.277
PORTREVISION= 1
CATEGORIES= emulators games
-MAINTAINER= agh@riseup.net
+PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES= b4e1f5f1b50fd3402232dd0385cac021ba488db6.patch:-p1 # Only link asmjit if native DRCs are built.
+
+MAINTAINER= ports@FreeBSD.org
COMMENT= MAME: a multi-purpose emulation framework
WWW= https://mamedev.org/
@@ -44,7 +47,8 @@ USE_XORG= x11 xext xi xinerama xrender
MAKEFILE= makefile
MAKE_ARGS= SILENT= \
verbose=yes
-MAKE_ENV= NO_USE_PORTAUDIO=1 \
+MAKE_ENV= FORCE_DRC_C_BACKEND=1 \
+ NO_USE_PORTAUDIO=1 \
NO_USE_PULSEAUDIO=1 \
NOWERROR=1 \
OVERRIDE_AR="llvm-ar${LLVM_VERSION}" \
diff --git a/emulators/mame/distinfo b/emulators/mame/distinfo
index 800bd1db02f9..7a33b39a0b9d 100644
--- a/emulators/mame/distinfo
+++ b/emulators/mame/distinfo
@@ -1,3 +1,5 @@
-TIMESTAMP = 1739022645
-SHA256 (mamedev-mame-0.274-mame0274_GH0.tar.gz) = f8112eb0b175935cf6db93f708186dcaeec5a89400ecf3d5782fd2c0b94907c8
-SIZE (mamedev-mame-0.274-mame0274_GH0.tar.gz) = 209455618
+TIMESTAMP = 1748505208
+SHA256 (mamedev-mame-0.277-mame0277_GH0.tar.gz) = 60055b19fc96306927257c5ffc265ecebcbe5c944cf98113d4d78f6304556c67
+SIZE (mamedev-mame-0.277-mame0277_GH0.tar.gz) = 209399226
+SHA256 (b4e1f5f1b50fd3402232dd0385cac021ba488db6.patch) = 431ce0bf9dff15632f8ed176b6ea8245c74089439f1af766a26ea4a140db1f92
+SIZE (b4e1f5f1b50fd3402232dd0385cac021ba488db6.patch) = 2652
diff --git a/emulators/mame/files/mame.ini.in b/emulators/mame/files/mame.ini.in
index 714531c5981f..ff9ced826e72 100644
--- a/emulators/mame/files/mame.ini.in
+++ b/emulators/mame/files/mame.ini.in
@@ -27,8 +27,8 @@ swpath ~/.mame/software;%%DATADIR%%/software/
cfg_directory ~/.mame/cfg
nvram_directory ~/.mame/nvram
input_directory ~/.mame/inp
-state_directory ~/.mame/sta
-snapshot_directory ~/.mame/snap
+state_directory ~/.mame/state
+snapshot_directory ~/.mame/snapshot
diff_directory ~/.mame/diff
comment_directory ~/.mame/comments
share_directory ~/.mame/share
@@ -240,6 +240,7 @@ joystickprovider auto
# OSD DEBUGGING OPTIONS
#
debugger auto
+debugger_host localhost
debugger_port 23946
debugger_font auto
debugger_font_size 0
@@ -349,7 +350,7 @@ networkprovider auto
bgfx_path %%DATADIR%%/bgfx
bgfx_backend auto
bgfx_debug 0
-bgfx_screen_chains t
+bgfx_screen_chains default
bgfx_shadow_mask slot-mask.png
bgfx_lut lut-default.png
bgfx_avi_name auto
@@ -381,7 +382,9 @@ keymap_file keymap.dat
#
# SDL JOYSTICK MAPPING
#
+enable_touch 0
sixaxis 0
+dual_lightgun 0
#
# SDL LIGHTGUN MAPPING
diff --git a/emulators/mame/files/plugin.ini.in b/emulators/mame/files/plugin.ini.in
index 83b351fc8181..ebc16d5e426f 100644
--- a/emulators/mame/files/plugin.ini.in
+++ b/emulators/mame/files/plugin.ini.in
@@ -1,17 +1,17 @@
#
# PLUGINS OPTIONS
#
-hiscore 0
+autofire 0
cheat 0
-timecode 0
-dummy 0
-timer 0
cheatfind 0
+console 0
data 1
-inputmacro 0
-portname 0
discord 0
-console 0
-autofire 0
-layout 1
+dummy 0
gdbstub 0
+hiscore 0
+inputmacro 0
+layout 1
+portname 0
+timecode 0
+timer 0
diff --git a/emulators/mame/pkg-plist b/emulators/mame/pkg-plist
index 9eb86f30f866..7236f88f8a3e 100644
--- a/emulators/mame/pkg-plist
+++ b/emulators/mame/pkg-plist
@@ -833,8 +833,7 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/altos5.xml
%%MAMEDATA%%%%DATADIR%%/hash/altos586.xml
%%MAMEDATA%%%%DATADIR%%/hash/altos8600.xml
-%%MAMEDATA%%%%DATADIR%%/hash/amiga_a1000.xml
-%%MAMEDATA%%%%DATADIR%%/hash/amiga_a3000.xml
+%%MAMEDATA%%%%DATADIR%%/hash/amiga_amix.xml
%%MAMEDATA%%%%DATADIR%%/hash/amiga_apps.xml
%%MAMEDATA%%%%DATADIR%%/hash/amiga_cd.xml
%%MAMEDATA%%%%DATADIR%%/hash/amiga_demos.xml
@@ -1268,6 +1267,7 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/pc88va.xml
%%MAMEDATA%%%%DATADIR%%/hash/pc98.xml
%%MAMEDATA%%%%DATADIR%%/hash/pc98_cd.xml
+%%MAMEDATA%%%%DATADIR%%/hash/pc98_hdd.xml
%%MAMEDATA%%%%DATADIR%%/hash/pcd_flop.xml
%%MAMEDATA%%%%DATADIR%%/hash/pce.xml
%%MAMEDATA%%%%DATADIR%%/hash/pce_tourvision.xml
@@ -1288,6 +1288,7 @@ share/man/man1/MAME.1.gz
%%MAMEDATA%%%%DATADIR%%/hash/pet_quik.xml
%%MAMEDATA%%%%DATADIR%%/hash/pet_rom.xml
%%MAMEDATA%%%%DATADIR%%/hash/phc25_cass.xml
+%%MAMEDATA%%%%DATADIR%%/hash/photo_cd.xml
%%MAMEDATA%%%%DATADIR%%/hash/pi_storyreader_cart.xml
%%MAMEDATA%%%%DATADIR%%/hash/pi_storyreader_v2_cart.xml
%%MAMEDATA%%%%DATADIR%%/hash/picno.xml
diff --git a/emulators/mastergear/Makefile b/emulators/mastergear/Makefile
index c13c6d8ace4c..4f6545beabde 100644
--- a/emulators/mastergear/Makefile
+++ b/emulators/mastergear/Makefile
@@ -1,26 +1,30 @@
PORTNAME= mastergear
-PORTVERSION= 2.0
-PORTREVISION= 3
+DISTVERSION= 2.0
+PORTREVISION= 4
CATEGORIES= emulators
MASTER_SITES= http://fms.komkon.org/MG/
DISTNAME= MG20-FreeBSD-80x86-bin
-EXTRACT_SUFX= .tar.Z
MAINTAINER= ports@FreeBSD.org
COMMENT= SEGA Master System and Game Gear emulator for X
WWW= https://fms.komkon.org/MG/
-LIB_DEPENDS= libc.so.5:misc/compat5x
+# There is no mention of a license in the source code.
+# License has to be acquired from the author.
+LICENSE=NONE
-NO_WRKSUBDIR= yes
ONLY_FOR_ARCHS= i386
ONLY_FOR_ARCHS_REASON= is an i386 binary
-USES= xorg
+LIB_DEPENDS= libc.so.5:misc/compat5x
+
+USES= xorg tar:Z
USE_XORG= x11 xext
-NO_BUILD= yes
STRIP=
+NO_BUILD= yes
+
+NO_WRKSUBDIR= yes
OPTIONS_DEFINE= DOCS
diff --git a/emulators/mupen64plus-video-glide64mk2/Makefile b/emulators/mupen64plus-video-glide64mk2/Makefile
index ed00356a50f6..f07402c75ce3 100644
--- a/emulators/mupen64plus-video-glide64mk2/Makefile
+++ b/emulators/mupen64plus-video-glide64mk2/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 3
+PORTREVISION= 4
PKGNAMESUFFIX= -video-glide64mk2
COMMENT= Glide64mk2 video plugin for Mupen64Plus
diff --git a/emulators/open-vm-kmod/Makefile b/emulators/open-vm-kmod/Makefile
index 751955b440c3..a7c726caf9fe 100644
--- a/emulators/open-vm-kmod/Makefile
+++ b/emulators/open-vm-kmod/Makefile
@@ -1,5 +1,5 @@
PORTNAME= open-vm-kmod
-PORTVERSION= 12.5.0
+PORTVERSION= 12.5.2
DISTVERSIONPREFIX= stable-
PORTEPOCH= 2
CATEGORIES= emulators
diff --git a/emulators/open-vm-kmod/distinfo b/emulators/open-vm-kmod/distinfo
index 2f34cde2a8c0..884191452e52 100644
--- a/emulators/open-vm-kmod/distinfo
+++ b/emulators/open-vm-kmod/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1733928741
-SHA256 (vmware-open-vm-tools-stable-12.5.0_GH0.tar.gz) = a52182c7e6b5df41bb317625e9d8592ecdb9db814d1c2c9b7cdb91a77f8c0640
-SIZE (vmware-open-vm-tools-stable-12.5.0_GH0.tar.gz) = 3001944
+TIMESTAMP = 1750427304
+SHA256 (vmware-open-vm-tools-stable-12.5.2_GH0.tar.gz) = 9fa2ebda1aaf53c163a978832775d845378d9ce59032c07b1c63b84ba091610f
+SIZE (vmware-open-vm-tools-stable-12.5.2_GH0.tar.gz) = 3004283
diff --git a/emulators/open-vm-kmod/files/patch-vmmemctl_os.c b/emulators/open-vm-kmod/files/patch-vmmemctl_os.c
index d096f92236c3..d083ec453d4f 100644
--- a/emulators/open-vm-kmod/files/patch-vmmemctl_os.c
+++ b/emulators/open-vm-kmod/files/patch-vmmemctl_os.c
@@ -1,6 +1,22 @@
---- vmmemctl/os.c.orig 2024-10-10 15:05:07 UTC
+--- vmmemctl/os.c.orig 2025-05-15 19:16:07 UTC
+++ vmmemctl/os.c
-@@ -103,7 +103,11 @@ MALLOC_DEFINE(M_VMMEMCTL, BALLOON_NAME, "vmmemctl meta
+@@ -91,8 +91,13 @@ MALLOC_DEFINE(M_VMMEMCTL, BALLOON_NAME, "vmmemctl meta
+ /*
+ * FreeBSD specific MACROS
+ */
+-#define VM_PAGE_LOCK(page) vm_page_lock(page);
+-#define VM_PAGE_UNLOCK(page) vm_page_unlock(page)
++#if __FreeBSD_version < 1500046
++#define VM_PAGE_LOCK(page) vm_page_tryxbusy(page);
++#define VM_PAGE_UNLOCK(page) vm_page_xunbusy(page)
++#else
++#define VM_PAGE_LOCK(page) vm_page_tryxbusy(page);
++#define VM_PAGE_UNLOCK(page) vm_page_xunbusy(page)
++#endif
+
+ #define VM_OBJ_LOCK(object) VM_OBJECT_WLOCK(object)
+ #define VM_OBJ_UNLOCK(object) VM_OBJECT_WUNLOCK(object);
+@@ -103,7 +108,11 @@ MALLOC_DEFINE(M_VMMEMCTL, BALLOON_NAME, "vmmemctl meta
#define KVA_FREE(offset, size) kva_free(offset, size)
#define KMEM_ALLOC(size) kmem_malloc(size, M_WAITOK | M_ZERO)
@@ -13,7 +29,7 @@
/*
* Globals
-@@ -404,7 +408,7 @@ os_pmap_free(os_pmap *p) // IN
+@@ -404,7 +413,7 @@ os_pmap_free(os_pmap *p) // IN
static void
os_pmap_free(os_pmap *p) // IN
{
diff --git a/emulators/open-vm-tools/Makefile b/emulators/open-vm-tools/Makefile
index b1ce7d5ca7eb..845b3ee995b3 100644
--- a/emulators/open-vm-tools/Makefile
+++ b/emulators/open-vm-tools/Makefile
@@ -1,6 +1,5 @@
PORTNAME= open-vm-tools
-PORTVERSION= 12.5.0
-PORTREVISION= 1
+PORTVERSION= 12.5.2
DISTVERSIONPREFIX= stable-
PORTEPOCH= 2
CATEGORIES= emulators
diff --git a/emulators/open-vm-tools/distinfo b/emulators/open-vm-tools/distinfo
index 6c88a1a8f846..38b3f66a1081 100644
--- a/emulators/open-vm-tools/distinfo
+++ b/emulators/open-vm-tools/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1730460386
-SHA256 (vmware-open-vm-tools-stable-12.5.0_GH0.tar.gz) = a52182c7e6b5df41bb317625e9d8592ecdb9db814d1c2c9b7cdb91a77f8c0640
-SIZE (vmware-open-vm-tools-stable-12.5.0_GH0.tar.gz) = 3001944
+TIMESTAMP = 1750427284
+SHA256 (vmware-open-vm-tools-stable-12.5.2_GH0.tar.gz) = 9fa2ebda1aaf53c163a978832775d845378d9ce59032c07b1c63b84ba091610f
+SIZE (vmware-open-vm-tools-stable-12.5.2_GH0.tar.gz) = 3004283
diff --git a/emulators/pcsx2/Makefile b/emulators/pcsx2/Makefile
index ac607abce08e..886ef0e69fed 100644
--- a/emulators/pcsx2/Makefile
+++ b/emulators/pcsx2/Makefile
@@ -1,6 +1,5 @@
PORTNAME= pcsx2
-PORTVERSION= 2.3.9
-PORTREVISION= 2
+PORTVERSION= 2.3.212
DISTVERSIONPREFIX= v
CATEGORIES= emulators
@@ -42,7 +41,7 @@ USE_GITHUB= yes
GH_PROJECT= pcsx2
USE_GL= egl
-USE_SDL= sdl2
+USE_SDL= sdl3
USE_XORG= ice x11 xcb xext xpm xrandr xrender
USE_QT= base tools
ELF_FEATURES= +wxneeded:bin/pcsx2-qt
@@ -58,17 +57,13 @@ EXTRA_PATCHES= ${PATCHDIR}/extra-patch-no-march-minimum-req
.endif
# See: cmake/BuildParameters.cmake
-# XXX Vulkan support needs libshaderc_shared.so:graphics/shaderc but
-# Pcsx2 embeds its own -patched/incompatible- version
-# (see: .github/workflows/scripts/common/shaderc-changes.patch) so we just
-# disable it for now.
+# XXX Vulkan comes from 3rdparty/
CMAKE_ARGS+= \
-DCMAKE_REQUIRED_INCLUDES:STRING=${LOCALBASE}/include/ \
-DPCSX2_RESOURCES_PATH:STRING=${DATADIR}/resources \
-DUSE_VTUNE:BOOL=OFF \
-DWAYLAND_API=OFF \
- -DENABLE_TESTS:BOOL=OFF \
- -DUSE_VULKAN:BOOL=OFF
+ -DENABLE_TESTS:BOOL=OFF
OPTIONS_DEFINE= DOCS
PORTDOCS= Debugger.pdf GameIndex.pdf
diff --git a/emulators/pcsx2/distinfo b/emulators/pcsx2/distinfo
index 44d930ca0c86..7ad172abe331 100644
--- a/emulators/pcsx2/distinfo
+++ b/emulators/pcsx2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1731685315
-SHA256 (pcsx2-pcsx2-v2.3.9_GH0.tar.gz) = e5daaa396b02f0617c8f65eb12d7f2084ba60d995694759611769d293785ac08
-SIZE (pcsx2-pcsx2-v2.3.9_GH0.tar.gz) = 17112802
+TIMESTAMP = 1749583437
+SHA256 (pcsx2-pcsx2-v2.3.212_GH0.tar.gz) = 4f4de87d324501818af0805f54f3fafe3be036badcdec86b93ac7895a2155fdb
+SIZE (pcsx2-pcsx2-v2.3.212_GH0.tar.gz) = 20115629
diff --git a/emulators/pcsx2/files/patch-pcsx2-qt-AutoUpdaterDialog.cpp b/emulators/pcsx2/files/patch-pcsx2-qt-AutoUpdaterDialog.cpp
new file mode 100644
index 000000000000..65743dc02ce9
--- /dev/null
+++ b/emulators/pcsx2/files/patch-pcsx2-qt-AutoUpdaterDialog.cpp
@@ -0,0 +1,11 @@
+--- pcsx2-qt/AutoUpdaterDialog.cpp.orig 2025-06-11 12:23:15 UTC
++++ pcsx2-qt/AutoUpdaterDialog.cpp
+@@ -53,6 +53,8 @@ static constexpr u32 HTTP_POLL_INTERVAL = 10;
+ #define UPDATE_PLATFORM_STR "Linux"
+ #elif defined(__APPLE__)
+ #define UPDATE_PLATFORM_STR "MacOS"
++#elif defined(__FreeBSD__)
++#define UPDATE_PLATFORM_STR "FreeBSD"
+ #endif
+
+ #ifdef MULTI_ISA_SHARED_COMPILATION
diff --git a/emulators/playonbsd/Makefile b/emulators/playonbsd/Makefile
index 4bf26fe55126..4150d1300801 100644
--- a/emulators/playonbsd/Makefile
+++ b/emulators/playonbsd/Makefile
@@ -1,6 +1,6 @@
PORTNAME= playonbsd
PORTVERSION= 4.2.10
-PORTREVISION= 15
+PORTREVISION= 16
CATEGORIES= emulators games
MAINTAINER= Clockwork6400@protonmail.com
diff --git a/emulators/ppsspp/Makefile b/emulators/ppsspp/Makefile
index a7b6168210be..8ae5f69a4b14 100644
--- a/emulators/ppsspp/Makefile
+++ b/emulators/ppsspp/Makefile
@@ -1,48 +1,47 @@
PORTNAME= ppsspp
DISTVERSIONPREFIX= v
-DISTVERSION?= 1.18.1
-PORTREVISION?= 1
+DISTVERSION?= 1.19.2
CATEGORIES= emulators
-# XXX Get from Debian once #697821 lands
-MASTER_SITES= https://bazaar.launchpad.net/~sergio-br2/${PORTNAME}/debian-sdl/download/5/${PORTNAME}.1-20140802045408-dd26dik367ztj5xg-8/:manpage
-DISTFILES= ${PORTNAME}.1:manpage
-EXTRACT_ONLY= ${DISTFILES:N*\:manpage:C/:.*//}
MAINTAINER= kreinholz@gmail.com
COMMENT= PSP emulator in C++ with dynarec JIT for x86, ARM, MIPS
WWW= https://www.ppsspp.org/
-LICENSE= GPLv2+
+LICENSE= GPLv2+ BSD3CLAUSE
+LICENSE_COMB= multi
+LICENSE_FILE= ${WRKSRC}/LICENSE.TXT
# Bi-endian architectures default to big for some reason
NOT_FOR_ARCHS= mips mips64 powerpc powerpc64 powerpcspe
NOT_FOR_ARCHS_REASON= only little-endian is supported, see \
https://github.com/hrydgard/ppsspp/issues/8823
-BUILD_DEPENDS= /usr/local/ffmpeg3/lib/libavcodec.a:multimedia/ffmpeg3
+BUILD_DEPENDS= ${LOCALBASE}/ffmpeg3/lib/libavcodec.a:multimedia/ffmpeg3
LIB_DEPENDS= libzip.so:archivers/libzip \
libsnappy.so:archivers/snappy \
libzstd.so:archivers/zstd \
+ libminiupnpc.so:net/miniupnpc \
libopenxr_loader.so:graphics/openxr
RUN_DEPENDS= xdg-open:devel/xdg-utils
-USES= cmake compiler:c++11-lib gl localbase:ldflags pkgconfig
+USES= cmake compiler:c++11-lib gl localbase:ldflags pkgconfig \
+ desktop-file-utils
USE_GITHUB= yes
GH_ACCOUNT= hrydgard
-GH_TUPLE?= hrydgard:glslang:8.13.3743-948-gb34f619e:glslang/ext/glslang \
+GH_TUPLE?= hrydgard:glslang:8.13.3743-948-g50e0708:glslang/ext/glslang \
google:cpu_features:v0.8.0-27-gfd4ffc1:cpu_features/ext/cpu_features \
rtissera:libchdr:26d27ca:libchdr/ext/libchdr \
unknownbrackets:ppsspp-debugger:d358a87:debugger/assets/debugger \
KhronosGroup:SPIRV-Cross:sdk-1.3.239.0:SPIRV/ext/SPIRV-Cross \
Kingcom:armips:v0.11.0-195-ga8d71f0:armips/ext/armips \
Kingcom:filesystem:v1.3.2-12-g3f1c185:filesystem/ext/armips/ext/filesystem \
- RetroAchievements:rcheevos:v11.6.0-g32917bd:rcheevos/ext/rcheevos \
- Tencent:rapidjson:v1.1.0-415-g73063f50:rapidjson/ext/rapidjson \
- miniupnp:miniupnp:miniupnpd_2_3_7-g27d13ca:miniupnp/ext/miniupnp
-EXCLUDE= libzip zlib
+ RetroAchievements:rcheevos:v11.6.0-gef0e22b:rcheevos/ext/rcheevos \
+ Tencent:rapidjson:v1.1.0-415-g73063f5:rapidjson/ext/rapidjson \
+ hrydgard:ppsspp-lua:7648485:lua/ext/lua
+EXCLUDE= libpng17 libzip zlib
USE_GL= glew opengl
-CMAKE_ON= ${LIBZIP SNAPPY ZSTD:L:S/^/USE_SYSTEM_/} USE_VULKAN_DISPLAY_KHR
+CMAKE_ON= ${LIBZIP MINIUPNPC SNAPPY ZSTD:L:S/^/USE_SYSTEM_/} USE_VULKAN_DISPLAY_KHR
CMAKE_OFF= USE_DISCORD
LDFLAGS+= -Wl,--as-needed # ICE/SM/X11/Xext, Qt5Network
CONFLICTS_INSTALL= ${PORTNAME}-*
@@ -86,13 +85,14 @@ post-patch:
@${REINPLACE_CMD} -e 's/Linux/${OPSYS}/' ${WRKSRC}/assets/gamecontrollerdb.txt
@${REINPLACE_CMD} -e 's,/usr/share,${PREFIX}/share,' ${WRKSRC}/UI/NativeApp.cpp
@${REINPLACE_CMD} -e 's/"unknown"/"${DISTVERSIONFULL}"/' ${WRKSRC}/git-version.cmake
+ @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/cmake/Modules/FindFFmpeg.cmake
do-install-LIBRETRO-on:
${MKDIR} ${STAGEDIR}${PREFIX}/${LIBRETRO_PLIST_FILES:H}
${INSTALL_LIB} ${BUILD_WRKSRC}/lib/${LIBRETRO_PLIST_FILES:T} \
${STAGEDIR}${PREFIX}/${LIBRETRO_PLIST_FILES:H}
.if ${OPTIONS_SLAVE} == LIBRETRO
-. for d in applications icons man mime ${PORTNAME}
+. for d in applications icons mime ${PORTNAME}
${RM} -r ${STAGEDIR}${PREFIX}/share/${d}
. endfor
.endif
@@ -102,6 +102,5 @@ do-install-QT5-on do-install-SDL-on:
${ELFCTL} -e +wxneeded ${STAGEDIR}${PREFIX}/bin/*
.endif
${MV} ${STAGEDIR}${PREFIX}/bin/${EXENAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
- ${INSTALL_MAN} ${_DISTDIR}/${PORTNAME}.1 ${STAGEDIR}${PREFIX}/share/man/man1
.include <bsd.port.mk>
diff --git a/emulators/ppsspp/distinfo b/emulators/ppsspp/distinfo
index f08f66084632..5588a603ebe1 100644
--- a/emulators/ppsspp/distinfo
+++ b/emulators/ppsspp/distinfo
@@ -1,10 +1,8 @@
-TIMESTAMP = 1731811906
-SHA256 (ppsspp.1) = 64a7cca4c3a5fc6ad5b63399edef9056b0c85ea68fed00fb7e97f4b2724e503b
-SIZE (ppsspp.1) = 1598
-SHA256 (hrydgard-ppsspp-v1.18.1_GH0.tar.gz) = cc9425202552cbce8bc7ee5b883670703761011ab5c987c426887f7c2ef2703f
-SIZE (hrydgard-ppsspp-v1.18.1_GH0.tar.gz) = 37089272
-SHA256 (hrydgard-glslang-8.13.3743-948-gb34f619e_GH0.tar.gz) = 8f002c902a5bc5a9d3c7e58b82ba2a6845ee08a01b756eaf4afefff806d109c7
-SIZE (hrydgard-glslang-8.13.3743-948-gb34f619e_GH0.tar.gz) = 3689872
+TIMESTAMP = 1750002545
+SHA256 (hrydgard-ppsspp-v1.19.2_GH0.tar.gz) = 4b3abbdc2f76daad5d038c0676ab0ec91a4588a30a894e6604b76a061d683583
+SIZE (hrydgard-ppsspp-v1.19.2_GH0.tar.gz) = 38797975
+SHA256 (hrydgard-glslang-8.13.3743-948-g50e0708_GH0.tar.gz) = c5d7837395b5c076371d74d9d8adf0d0408c002f2e4fe08bc3eef1db6f608ceb
+SIZE (hrydgard-glslang-8.13.3743-948-g50e0708_GH0.tar.gz) = 3689922
SHA256 (google-cpu_features-v0.8.0-27-gfd4ffc1_GH0.tar.gz) = 0bcb1a537b8fc184b9df9ddde9d15868efe7f651139ea84d3e20ac9900a43c60
SIZE (google-cpu_features-v0.8.0-27-gfd4ffc1_GH0.tar.gz) = 109044
SHA256 (rtissera-libchdr-26d27ca_GH0.tar.gz) = 49e028fadd0640926da158408c9eafb22fc89ccb0de69c67b167ef0a11f6a0c5
@@ -17,9 +15,9 @@ SHA256 (Kingcom-armips-v0.11.0-195-ga8d71f0_GH0.tar.gz) = 8a46d92b070de90cefcd89
SIZE (Kingcom-armips-v0.11.0-195-ga8d71f0_GH0.tar.gz) = 223306
SHA256 (Kingcom-filesystem-v1.3.2-12-g3f1c185_GH0.tar.gz) = 9fa5a690e341bea1935a7f6b256e1bbd864abee988f834f10307f646dc38e604
SIZE (Kingcom-filesystem-v1.3.2-12-g3f1c185_GH0.tar.gz) = 163401
-SHA256 (RetroAchievements-rcheevos-v11.6.0-g32917bd_GH0.tar.gz) = 0cf21acaa01f3fc55718e5fd04cfd55a03d3135ec52f928dcd5956a11e78d660
-SIZE (RetroAchievements-rcheevos-v11.6.0-g32917bd_GH0.tar.gz) = 673529
-SHA256 (Tencent-rapidjson-v1.1.0-415-g73063f50_GH0.tar.gz) = 45e801225dd7a8d09bde7e5a2dc52c18d630f07bbbec7587017ca19bac9446fe
-SIZE (Tencent-rapidjson-v1.1.0-415-g73063f50_GH0.tar.gz) = 1054127
-SHA256 (miniupnp-miniupnp-miniupnpd_2_3_7-g27d13ca_GH0.tar.gz) = d44ea2ea688ff851e55d9408bc64b4c81363a9d6646246b9cbcd2c2c057ec8bc
-SIZE (miniupnp-miniupnp-miniupnpd_2_3_7-g27d13ca_GH0.tar.gz) = 464237
+SHA256 (RetroAchievements-rcheevos-v11.6.0-gef0e22b_GH0.tar.gz) = 5d424b58ae280f56ee04a846d7f5e90e289f747e9ae4ac2d29e46761133d009e
+SIZE (RetroAchievements-rcheevos-v11.6.0-gef0e22b_GH0.tar.gz) = 417751
+SHA256 (Tencent-rapidjson-v1.1.0-415-g73063f5_GH0.tar.gz) = bfc1c1d5fbd9dbc78600798d8a8bfcb93f9d308d55564e012b64e8ca272ecea4
+SIZE (Tencent-rapidjson-v1.1.0-415-g73063f5_GH0.tar.gz) = 1054127
+SHA256 (hrydgard-ppsspp-lua-7648485_GH0.tar.gz) = e7dba820ddd788976810b4f21d1c4781a617e66c7bd67ee71acedd5d60db608e
+SIZE (hrydgard-ppsspp-lua-7648485_GH0.tar.gz) = 239547
diff --git a/emulators/ppsspp/files/patch-Common_GPU_Vulkan_VulkanContext.cpp b/emulators/ppsspp/files/patch-Common_GPU_Vulkan_VulkanContext.cpp
new file mode 100644
index 000000000000..4ecc5e23175e
--- /dev/null
+++ b/emulators/ppsspp/files/patch-Common_GPU_Vulkan_VulkanContext.cpp
@@ -0,0 +1,11 @@
+--- Common/GPU/Vulkan/VulkanContext.cpp.orig 2025-06-11 21:04:20 UTC
++++ Common/GPU/Vulkan/VulkanContext.cpp
+@@ -119,7 +119,7 @@ VkResult VulkanContext::CreateInstance(const CreateInf
+ if (vkEnumerateInstanceVersion) {
+ vkEnumerateInstanceVersion(&vulkanInstanceApiVersion_);
+ vulkanInstanceApiVersion_ &= 0xFFFFF000; // Remove patch version.
+- vulkanInstanceApiVersion_ = std::min(VK_API_VERSION_1_4, vulkanInstanceApiVersion_);
++ vulkanInstanceApiVersion_ = std::min(VK_API_VERSION_1_3, vulkanInstanceApiVersion_);
+ std::string versionString = FormatAPIVersion(vulkanInstanceApiVersion_);
+ INFO_LOG(Log::G3D, "Detected Vulkan API version: %s", versionString.c_str());
+ }
diff --git a/emulators/ppsspp/files/patch-cmake_Modules_FindFFmpeg.cmake b/emulators/ppsspp/files/patch-cmake_Modules_FindFFmpeg.cmake
index 2cbf2cfee23d..69f59462eb5d 100644
--- a/emulators/ppsspp/files/patch-cmake_Modules_FindFFmpeg.cmake
+++ b/emulators/ppsspp/files/patch-cmake_Modules_FindFFmpeg.cmake
@@ -7,7 +7,7 @@
- if(DEFINED ENV{FFMPEG_DIR})
- set(FFMPEG_DIR $ENV{FFMPEG_DIR})
- endif()
-+ set(FFMPEG_DIR /usr/local/ffmpeg3)
++ set(FFMPEG_DIR %%LOCALBASE%%/ffmpeg3)
if(FFMPEG_DIR)
list(APPEND INCLUDE_PATHS
@@ -22,15 +22,15 @@
- /usr/include/lib${LIBNAME}
- /usr/include/ffmpeg/lib${LIBNAME}
+ list(SET INCLUDE_PATHS
-+ /usr/local/ffmpeg3/include/ffmpeg
-+ /usr/local/ffmpeg3/include/lib${LIBNAME}
++ %%LOCALBASE%%/ffmpeg3/include/ffmpeg
++ %%LOCALBASE%%/ffmpeg3/include/lib${LIBNAME}
)
- list(APPEND LIB_PATHS
- /usr/local/lib
- /usr/lib
+ list(SET LIB_PATHS
-+ /usr/local/ffmpeg3/lib
++ %%LOCALBASE%%/ffmpeg3/lib
)
endif()
diff --git a/emulators/ppsspp/files/patch-no-egl b/emulators/ppsspp/files/patch-no-egl
new file mode 100644
index 000000000000..9ddc70081066
--- /dev/null
+++ b/emulators/ppsspp/files/patch-no-egl
@@ -0,0 +1,27 @@
+EGL hangs on X11 and doesn't build without GLESv2.
+https://github.com/hrydgard/ppsspp/issues/10626
+
+--- CMakeLists.txt.orig 2025-05-30 21:23:20 UTC
++++ CMakeLists.txt
+@@ -83,12 +83,6 @@ endif()
+ set(USE_SYSTEM_FFMPEG ON)
+ endif()
+
+-if(NOT ANDROID AND NOT IOS)
+- if(ARM_DEVICE OR SIMULATOR)
+- set(USING_EGL ON)
+- endif()
+-endif()
+-
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" AND NOT USE_LIBNX)
+ set(LINUX ON)
+ add_compile_definitions(__STDC_CONSTANT_MACROS)
+@@ -1009,6 +1003,8 @@ if(USE_FFMPEG)
+ elseif(X86)
+ set(PLATFORM_ARCH "Windows/x86")
+ endif()
++ else()
++ set(PLATFORM_ARCH "FreeBSD/%%ARCH%%")
+ endif()
+ if(PLATFORM_ARCH)
+ set(FFMPEG_DIR "ffmpeg/${PLATFORM_ARCH}")
diff --git a/emulators/ppsspp/files/patch-no-egl-plus-warnings-fix b/emulators/ppsspp/files/patch-no-egl-plus-warnings-fix
deleted file mode 100644
index 14da15c4d6e8..000000000000
--- a/emulators/ppsspp/files/patch-no-egl-plus-warnings-fix
+++ /dev/null
@@ -1,33 +0,0 @@
-EGL hangs on X11 and doesn't build without GLESv2.
-https://github.com/hrydgard/ppsspp/issues/10626
-
---- CMakeLists.txt.orig 2024-11-04 16:16:10 UTC
-+++ CMakeLists.txt
-@@ -79,12 +79,6 @@ endif()
- set(USE_SYSTEM_FFMPEG ON)
- endif()
-
--if(NOT ANDROID AND NOT IOS)
-- if(ARM_DEVICE OR SIMULATOR)
-- set(USING_EGL ON)
-- endif()
--endif()
--
- if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" AND NOT USE_LIBNX)
- set(LINUX ON)
- add_definitions(-D__STDC_CONSTANT_MACROS)
-@@ -383,8 +377,12 @@ if(NOT MSVC)
- add_definitions(-DPNG_ARM_NEON_OPT=0)
-
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror=return-type -Wno-unused-function -Wno-sign-compare -Wno-unused-but-set-variable -Wno-reorder -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-variable")
-- # This one is very useful but has many false positives.
-- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-class-memaccess")
-+ if(NOT CLANG)
-+ # This one is very useful but has many false positives.
-+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-class-memaccess")
-+ else()
-+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
-+ endif()
-
- if(ANDROID)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++17")
diff --git a/emulators/ppsspp/pkg-plist b/emulators/ppsspp/pkg-plist
index 911494696f2a..a2dc9f0cfb3e 100644
--- a/emulators/ppsspp/pkg-plist
+++ b/emulators/ppsspp/pkg-plist
@@ -11,5 +11,4 @@ share/icons/hicolor/512x512/apps/ppsspp.png
share/icons/hicolor/64x64/apps/ppsspp.png
share/icons/hicolor/96x96/apps/ppsspp.png
share/icons/hicolor/scalable/apps/ppsspp.svg
-share/man/man1/ppsspp.1.gz
share/mime/packages/ppsspp.xml
diff --git a/emulators/qemu-devel/Makefile b/emulators/qemu-devel/Makefile
index ca1aa00f307e..f23a958cd677 100644
--- a/emulators/qemu-devel/Makefile
+++ b/emulators/qemu-devel/Makefile
@@ -1,5 +1,5 @@
PORTNAME= qemu
-DISTVERSION= 9.1.0.20250228
+DISTVERSION= 9.2.0.20250530
CATEGORIES= emulators
PKGNAMESUFFIX= -devel
DIST_SUBDIR= qemu/${PORTVERSION}
@@ -23,11 +23,11 @@ USES= bison compiler:c11 cpe gmake gnome iconv:wchar_t localbase:ldflags \
ninja perl5 pkgconfig python:build shebangfix tar:xz xorg
USE_GITLAB= yes
GL_ACCOUNT= qemu-project
-GL_TAGNAME= 6b7521818b26134726b3494cd06f04e30659ce2c
+GL_TAGNAME= 3e82ddaa8db260a232dbbbf488d8ac7851d124c5
GL_TUPLE= qemu-project:keycodemapdb:f5772a62ec52591ff6870b7e8ef32482371f22c6:keycodemapdb/subprojects/keycodemapdb \
qemu-project:dtc:b6910bec11614980a21e46fbccc35934b671bd81:dtc/subprojects/dtc \
qemu-project:libvfio-user:0b28d205572c80b568a1003db2c8f37ca333e4d7:libvfio/subprojects/libvfio-user \
- qemu-project:meson:be6540e6fdcf1ee88939a74521caa3813b039199:meson/meson \
+ qemu-project:meson:f3adf71b85960da3ff22914cd1a5ce885d3b6a67:meson/meson \
qemu-project:berkeley-softfloat-3:b64af41c3276f97f0e181920400ee056b9c88037:berkeleysoftfloat3/subprojects/berkeley-softfloat-3 \
qemu-project:berkeley-testfloat-3:e7af9751d9f9fd3b47911f51a5cfd08af256a9ab:berkeleytestfloat3/subprojects/berkeley-testfloat-3
USE_GNOME= cairo glib20
@@ -51,9 +51,10 @@ WITHOUT_CPU_CFLAGS=yes #to avoid problems with register allocation
BINARY_ALIAS= python3=${PYTHON_VERSION}
PORTDOCS= .buildinfo _static/* about/* dbus-dbusindex.html devel/* \
- docs genindex.html glossary.html index.html interop/* \
- objects.inv search.html searchindex.js specs/* system/* \
- tools/* user/*
+ docs genindex.html glossary.html index.html interop/* \
+ objects.inv qapi-qga-index.html qapi-qmp-index.html \
+ qapi-qsd-index.html search.html searchindex.js specs/* system/* \
+ tools/* user/*
OPTIONS_DEFINE= SAMBA X11 GTK3 OPENGL GNUTLS SASL JPEG PNG CURL VDE \
CDROM_DMA USBREDIR X86_TARGETS STATIC_LINK DOCS CAPSTONE
diff --git a/emulators/qemu-devel/distinfo b/emulators/qemu-devel/distinfo
index 3c3133309fcb..14ddbab33df2 100644
--- a/emulators/qemu-devel/distinfo
+++ b/emulators/qemu-devel/distinfo
@@ -1,15 +1,15 @@
-TIMESTAMP = 1746449997
-SHA256 (qemu/9.1.0.20250228/qemu-project-qemu-6b7521818b26134726b3494cd06f04e30659ce2c_GL0.tar.gz) = cdd568112f9ab1c28ee441de27c6eb9e665f16ff736163ccca6e65c7a76b91ed
-SIZE (qemu/9.1.0.20250228/qemu-project-qemu-6b7521818b26134726b3494cd06f04e30659ce2c_GL0.tar.gz) = 39568586
-SHA256 (qemu/9.1.0.20250228/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = d014b53382dbb17b8196ad12f50de7f20d0ef1b9f7d54b0be51a6cbb14209195
-SIZE (qemu/9.1.0.20250228/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = 29580
-SHA256 (qemu/9.1.0.20250228/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = e115f987eec23a1ba25150a46ced1675de3716072d3b4905afb3a9cda0f007c7
-SIZE (qemu/9.1.0.20250228/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = 205556
-SHA256 (qemu/9.1.0.20250228/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = d2f60cd4f86f345aab1332953eb736cce3518159e6e99bcc2d10467c06f717fe
-SIZE (qemu/9.1.0.20250228/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = 189943
-SHA256 (qemu/9.1.0.20250228/qemu-project-meson-be6540e6fdcf1ee88939a74521caa3813b039199_GL0.tar.gz) = c6f49660af00e0af025986e64ef6c87d3173b3d5f3d9cc66e72888a674de3c56
-SIZE (qemu/9.1.0.20250228/qemu-project-meson-be6540e6fdcf1ee88939a74521caa3813b039199_GL0.tar.gz) = 4875985
-SHA256 (qemu/9.1.0.20250228/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = faae889814ea6a292f7ca03d9b36e6c7e95bab2a64777804883cc822b8d48757
-SIZE (qemu/9.1.0.20250228/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = 148741
-SHA256 (qemu/9.1.0.20250228/qemu-project-berkeley-testfloat-3-e7af9751d9f9fd3b47911f51a5cfd08af256a9ab_GL0.tar.gz) = e7a09d51dc7e96cb8422c919c85fc3833d4f788567638c9162ef5cd7db59b1df
-SIZE (qemu/9.1.0.20250228/qemu-project-berkeley-testfloat-3-e7af9751d9f9fd3b47911f51a5cfd08af256a9ab_GL0.tar.gz) = 139308
+TIMESTAMP = 1748977683
+SHA256 (qemu/9.2.0.20250530/qemu-project-qemu-3e82ddaa8db260a232dbbbf488d8ac7851d124c5_GL0.tar.gz) = 06463a3861b7a0dc1d219f408e8647e94117b28d43e967c58cdb0a099d57233d
+SIZE (qemu/9.2.0.20250530/qemu-project-qemu-3e82ddaa8db260a232dbbbf488d8ac7851d124c5_GL0.tar.gz) = 39823482
+SHA256 (qemu/9.2.0.20250530/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = d014b53382dbb17b8196ad12f50de7f20d0ef1b9f7d54b0be51a6cbb14209195
+SIZE (qemu/9.2.0.20250530/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = 29580
+SHA256 (qemu/9.2.0.20250530/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = e115f987eec23a1ba25150a46ced1675de3716072d3b4905afb3a9cda0f007c7
+SIZE (qemu/9.2.0.20250530/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = 205556
+SHA256 (qemu/9.2.0.20250530/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = d2f60cd4f86f345aab1332953eb736cce3518159e6e99bcc2d10467c06f717fe
+SIZE (qemu/9.2.0.20250530/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = 189943
+SHA256 (qemu/9.2.0.20250530/qemu-project-meson-f3adf71b85960da3ff22914cd1a5ce885d3b6a67_GL0.tar.gz) = 4397f6612c43c21f3db239c68138a51cbd2d3a20a2b905d0d85135159d70f605
+SIZE (qemu/9.2.0.20250530/qemu-project-meson-f3adf71b85960da3ff22914cd1a5ce885d3b6a67_GL0.tar.gz) = 4907863
+SHA256 (qemu/9.2.0.20250530/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = faae889814ea6a292f7ca03d9b36e6c7e95bab2a64777804883cc822b8d48757
+SIZE (qemu/9.2.0.20250530/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = 148741
+SHA256 (qemu/9.2.0.20250530/qemu-project-berkeley-testfloat-3-e7af9751d9f9fd3b47911f51a5cfd08af256a9ab_GL0.tar.gz) = e7a09d51dc7e96cb8422c919c85fc3833d4f788567638c9162ef5cd7db59b1df
+SIZE (qemu/9.2.0.20250530/qemu-project-berkeley-testfloat-3-e7af9751d9f9fd3b47911f51a5cfd08af256a9ab_GL0.tar.gz) = 139308
diff --git a/emulators/qemu-devel/pkg-plist b/emulators/qemu-devel/pkg-plist
index 5a657b24cbc2..77bcdb96f6c0 100644
--- a/emulators/qemu-devel/pkg-plist
+++ b/emulators/qemu-devel/pkg-plist
@@ -39,10 +39,10 @@ bin/qemu-system-i386
%%NO_X86_TARGETS%%bin/qemu-system-xtensa
%%NO_X86_TARGETS%%bin/qemu-system-xtensaeb
%%BSDUSER%%bin/qemu-x86_64
-include/qemu-plugin.h
include/fdt.h
include/libfdt.h
include/libfdt_env.h
+include/qemu-plugin.h
lib/libfdt.a
libdata/pkgconfig/libfdt.pc
share/man/man1/qemu.1.gz
@@ -58,10 +58,14 @@ share/man/man7/qemu-storage-daemon-qmp-ref.7.gz
@sample etc/qemu-ifdown.sample
%%DATADIR%%/QEMU,tcx.bin
%%DATADIR%%/QEMU,cgthree.bin
+%%DATADIR%%/ast27x0_bootrom.bin
%%DATADIR%%/bios-256k.bin
%%DATADIR%%/bios-microvm.bin
%%DATADIR%%/bios.bin
-%%DATADIR%%/canyonlands.dtb
+%%DATADIR%%/dtb/bamboo.dtb
+%%DATADIR%%/dtb/canyonlands.dtb
+%%DATADIR%%/dtb/petalogix-ml605.dtb
+%%DATADIR%%/dtb/petalogix-s3adsp1800.dtb
%%DATADIR%%/edk2-aarch64-code.fd
%%DATADIR%%/edk2-arm-code.fd
%%DATADIR%%/edk2-arm-vars.fd
@@ -83,14 +87,14 @@ share/man/man7/qemu-storage-daemon-qmp-ref.7.gz
%%DATADIR%%/efi-rtl8139.rom
%%DATADIR%%/efi-virtio.rom
%%DATADIR%%/efi-vmxnet3.rom
-%%DATADIR%%/firmware/50-edk2-i386-secure.json
-%%DATADIR%%/firmware/50-edk2-x86_64-secure.json
%%DATADIR%%/firmware/60-edk2-aarch64.json
%%DATADIR%%/firmware/60-edk2-arm.json
%%DATADIR%%/firmware/60-edk2-i386.json
+%%DATADIR%%/firmware/50-edk2-i386-secure.json
%%DATADIR%%/firmware/60-edk2-loongarch64.json
%%DATADIR%%/firmware/60-edk2-riscv64.json
%%DATADIR%%/firmware/60-edk2-x86_64.json
+%%DATADIR%%/firmware/50-edk2-x86_64-secure.json
%%DATADIR%%/hppa-firmware.img
%%DATADIR%%/hppa-firmware64.img
%%DATADIR%%/keymaps/ar
@@ -139,7 +143,7 @@ share/man/man7/qemu-storage-daemon-qmp-ref.7.gz
%%DATADIR%%/opensbi-riscv32-generic-fw_dynamic.bin
%%DATADIR%%/opensbi-riscv64-generic-fw_dynamic.bin
%%DATADIR%%/palcode-clipper
-%%DATADIR%%/petalogix-ml605.dtb
+%%DATADIR%%/pnv-pnor.bin
%%DATADIR%%/pxe-e1000.rom
%%DATADIR%%/pxe-eepro100.rom
%%DATADIR%%/pxe-ne2k_pci.rom
@@ -161,8 +165,6 @@ share/man/man7/qemu-storage-daemon-qmp-ref.7.gz
%%DATADIR%%/vgabios-vmware.bin
%%DATADIR%%/skiboot.lid
%%DATADIR%%/trace-events-all
-%%DATADIR%%/petalogix-s3adsp1800.dtb
-%%DATADIR%%/bamboo.dtb
%%DATADIR%%/kvmvapic.bin
%%DATADIR%%/u-boot.e500
%%DATADIR%%/pvh.bin
diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile
index 6dce4eb92909..df1fa1174335 100644
--- a/emulators/qemu/Makefile
+++ b/emulators/qemu/Makefile
@@ -1,6 +1,5 @@
PORTNAME= qemu
-DISTVERSION= 10.0.0
-PORTREVISION= 1
+DISTVERSION= 10.0.2
CATEGORIES= emulators
MASTER_SITES= https://download.qemu.org/
DIST_SUBDIR= qemu/${PORTVERSION}
diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo
index 275a61eeb6ef..20b36677720e 100644
--- a/emulators/qemu/distinfo
+++ b/emulators/qemu/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1746448259
-SHA256 (qemu/10.0.0/qemu-10.0.0.tar.xz) = 22c075601fdcf8c7b2671a839ebdcef1d4f2973eb6735254fd2e1bd0f30b3896
-SIZE (qemu/10.0.0/qemu-10.0.0.tar.xz) = 135618260
+TIMESTAMP = 1748524246
+SHA256 (qemu/10.0.2/qemu-10.0.2.tar.xz) = ef786f2398cb5184600f69aef4d5d691efd44576a3cff4126d38d4c6fec87759
+SIZE (qemu/10.0.2/qemu-10.0.2.tar.xz) = 135678180
diff --git a/emulators/qmc2/Makefile b/emulators/qmc2/Makefile
index 4d29cf20049b..582b1fdbf9fd 100644
--- a/emulators/qmc2/Makefile
+++ b/emulators/qmc2/Makefile
@@ -5,7 +5,7 @@ PORTREVISION= 1
DISTVERSIONSUFFIX= -g112724d69
CATEGORIES= emulators games
-MAINTAINER= agh@riseup.net
+MAINTAINER= ports@FreeBSD.org
COMMENT= Qt5 graphical interface for MAME
WWW= https://github.com/qmc2/qmc2-mame-fe
diff --git a/emulators/rpcs3/Makefile b/emulators/rpcs3/Makefile
index bfed62024596..2a8781edac4a 100644
--- a/emulators/rpcs3/Makefile
+++ b/emulators/rpcs3/Makefile
@@ -1,7 +1,7 @@
PORTNAME= rpcs3
DISTVERSIONPREFIX= v
-DISTVERSION= 0.0.36 # git rev-list --count HEAD
-DISTVERSIONSUFFIX= -17723-g2f8ed1a6bd
+DISTVERSION= 0.0.37 # git rev-list --count HEAD
+DISTVERSIONSUFFIX= -17986-g68d2573344
CATEGORIES= emulators wayland
MAINTAINER= jbeich@FreeBSD.org
@@ -24,18 +24,18 @@ ONLY_FOR_ARCHS_REASON= requires int128 and SSE2
USE_GITHUB= yes
GH_ACCOUNT= RPCS3
-GH_TUPLE= RPCS3:hidapi:hidapi-0.14.0-2-g8b43a97:hidapi/3rdparty/hidapi/hidapi \
- RPCS3:soundtouch:2.3.1-68-g394e1f5:soundtouch/3rdparty/SoundTouch/soundtouch \
+GH_TUPLE= RPCS3:hidapi:hidapi-0.14.0-53-gf424236:hidapi/3rdparty/hidapi/hidapi \
+ RPCS3:soundtouch:2.3.1-78-g3982730:soundtouch/3rdparty/SoundTouch/soundtouch \
asmjit:asmjit:416f735:asmjit/3rdparty/asmjit/asmjit \
facebook:zstd:v1.5.7:zstd/3rdparty/zstd/zstd \
jbeder:yaml-cpp:0.8.0-11-g456c68f:yamlcpp/3rdparty/yaml-cpp/yaml-cpp \
- KhronosGroup:glslang:13.1.1:glslang/3rdparty/glslang/glslang \
+ KhronosGroup:glslang:15.3.0:glslang/3rdparty/glslang/glslang \
kcat:openal-soft:1.23.1:openal_soft/3rdparty/OpenAL/openal-soft \
kinetiknz:cubeb:cubeb-0.2-1425-g88585b6:cubeb/3rdparty/cubeb/cubeb \
- Megamouse:VulkanMemoryAllocator:3706484:vkalloc/3rdparty/GPUOpen/VulkanMemoryAllocator \
- miniupnp:miniupnp:miniupnpd_2_3_6:miniupnp/3rdparty/miniupnp/miniupnp \
+ Megamouse:VulkanMemoryAllocator:1d8f600:vkalloc/3rdparty/GPUOpen/VulkanMemoryAllocator \
+ miniupnp:miniupnp:miniupnpd_2_3_9:miniupnp/3rdparty/miniupnp/miniupnp \
nothings:stb:013ac3b:stb/3rdparty/stblib/stb \
- wolfSSL:wolfssl:v5.7.6-stable:wolfssl/3rdparty/wolfssl/wolfssl \
+ wolfSSL:wolfssl:v5.8.0-stable:wolfssl/3rdparty/wolfssl/wolfssl \
xioTechnologies:Fusion:v1.2.8:fusion/3rdparty/fusion/fusion
USES= cmake gl iconv:wchar_t llvm:min=19,lib localbase:ldflags \
diff --git a/emulators/rpcs3/distinfo b/emulators/rpcs3/distinfo
index 63825cfc9737..ea0e9ab6a9f2 100644
--- a/emulators/rpcs3/distinfo
+++ b/emulators/rpcs3/distinfo
@@ -1,30 +1,30 @@
-TIMESTAMP = 1743363932
-SHA256 (RPCS3-rpcs3-v0.0.36-17723-g2f8ed1a6bd_GH0.tar.gz) = a709ae993c6837a818b258a587ca4d5979eb205f77f52b8c95178115d6176462
-SIZE (RPCS3-rpcs3-v0.0.36-17723-g2f8ed1a6bd_GH0.tar.gz) = 6981719
-SHA256 (RPCS3-hidapi-hidapi-0.14.0-2-g8b43a97_GH0.tar.gz) = 109ba77362885d60e274930f637735ee75df2850fe99e3f1c3a5b9d1187f8cb6
-SIZE (RPCS3-hidapi-hidapi-0.14.0-2-g8b43a97_GH0.tar.gz) = 348879
-SHA256 (RPCS3-soundtouch-2.3.1-68-g394e1f5_GH0.tar.gz) = e24af82c51547341e2dfd43af03c1847abfd8d27334d667e6a51943f7f505cbe
-SIZE (RPCS3-soundtouch-2.3.1-68-g394e1f5_GH0.tar.gz) = 606828
+TIMESTAMP = 1748728672
+SHA256 (RPCS3-rpcs3-v0.0.37-17986-g68d2573344_GH0.tar.gz) = de3235708b85cf9b03f3f8854bd5c81d4b8f88dff462b56978f18b00f20b824e
+SIZE (RPCS3-rpcs3-v0.0.37-17986-g68d2573344_GH0.tar.gz) = 5861021
+SHA256 (RPCS3-hidapi-hidapi-0.14.0-53-gf424236_GH0.tar.gz) = 1494ab721a834346774c7821bb40ce9476cc7c1f2881820483afa76098df4e2b
+SIZE (RPCS3-hidapi-hidapi-0.14.0-53-gf424236_GH0.tar.gz) = 364108
+SHA256 (RPCS3-soundtouch-2.3.1-78-g3982730_GH0.tar.gz) = 68119ffee94c7eb2e12357599d7a47ec5cb029a89243daafb9ffad3fdfb433e9
+SIZE (RPCS3-soundtouch-2.3.1-78-g3982730_GH0.tar.gz) = 607859
SHA256 (asmjit-asmjit-416f735_GH0.tar.gz) = 65ba9c3487da09af02db0c34405d1bdd3e49e134062930777f272007d97940fd
SIZE (asmjit-asmjit-416f735_GH0.tar.gz) = 1151444
SHA256 (facebook-zstd-v1.5.7_GH0.tar.gz) = 37d7284556b20954e56e1ca85b80226768902e2edabd3b649e9e72c0c9012ee3
SIZE (facebook-zstd-v1.5.7_GH0.tar.gz) = 2451884
SHA256 (jbeder-yaml-cpp-0.8.0-11-g456c68f_GH0.tar.gz) = 3793d936474b1e6366f934f128f168dae711fd5e248dac048226c7879cefd6a3
SIZE (jbeder-yaml-cpp-0.8.0-11-g456c68f_GH0.tar.gz) = 1018173
-SHA256 (KhronosGroup-glslang-13.1.1_GH0.tar.gz) = 1c4d0a5a38c8aaf89a2d7e6093be734320599f5a6775b2726beeb05b0c054e66
-SIZE (KhronosGroup-glslang-13.1.1_GH0.tar.gz) = 3763210
+SHA256 (KhronosGroup-glslang-15.3.0_GH0.tar.gz) = c6c21fe1873c37e639a6a9ac72d857ab63a5be6893a589f34e09a6c757174201
+SIZE (KhronosGroup-glslang-15.3.0_GH0.tar.gz) = 4023163
SHA256 (kcat-openal-soft-1.23.1_GH0.tar.gz) = dfddf3a1f61059853c625b7bb03de8433b455f2f79f89548cbcbd5edca3d4a4a
SIZE (kcat-openal-soft-1.23.1_GH0.tar.gz) = 840185
SHA256 (kinetiknz-cubeb-cubeb-0.2-1425-g88585b6_GH0.tar.gz) = d10bf2d54d7202efa39ac10bc580048666d6e7a5019a5d1f0f71e8b7bf01f25c
SIZE (kinetiknz-cubeb-cubeb-0.2-1425-g88585b6_GH0.tar.gz) = 226777
-SHA256 (Megamouse-VulkanMemoryAllocator-3706484_GH0.tar.gz) = f8e30cd27a21dffd70387eb8058240933c40b6272ea84f89cf61c2f73c5537ec
-SIZE (Megamouse-VulkanMemoryAllocator-3706484_GH0.tar.gz) = 1687892
-SHA256 (miniupnp-miniupnp-miniupnpd_2_3_6_GH0.tar.gz) = 6e5ee2239030486675f558cc840d154e5e2db9517efc96c5b0ab2b2c34c1a128
-SIZE (miniupnp-miniupnp-miniupnpd_2_3_6_GH0.tar.gz) = 462607
+SHA256 (Megamouse-VulkanMemoryAllocator-1d8f600_GH0.tar.gz) = 5aef11d98bae2ea911cda9fedcac6935d5bc5d0776cee581fc7b7204bd7b0d47
+SIZE (Megamouse-VulkanMemoryAllocator-1d8f600_GH0.tar.gz) = 962218
+SHA256 (miniupnp-miniupnp-miniupnpd_2_3_9_GH0.tar.gz) = ec7981351ad6a046eee0abf522ed1a45a3b0517e1da64e03826051f5f5354ea5
+SIZE (miniupnp-miniupnp-miniupnpd_2_3_9_GH0.tar.gz) = 540322
SHA256 (nothings-stb-013ac3b_GH0.tar.gz) = f2f5aeaa2504f8dc3ee7412cb480f9be218766c7a652ce3bcebbc25ec72d7e9c
SIZE (nothings-stb-013ac3b_GH0.tar.gz) = 1510649
-SHA256 (wolfSSL-wolfssl-v5.7.6-stable_GH0.tar.gz) = 52b1e439e30d1ed8162a16308a8525a862183b67aa30373b11166ecbab000d63
-SIZE (wolfSSL-wolfssl-v5.7.6-stable_GH0.tar.gz) = 24573776
+SHA256 (wolfSSL-wolfssl-v5.8.0-stable_GH0.tar.gz) = f90f18c7f12913a0b351b1f4305e768697ea1380794df1f2984b9452ab0aeeaf
+SIZE (wolfSSL-wolfssl-v5.8.0-stable_GH0.tar.gz) = 24936537
SHA256 (xioTechnologies-Fusion-v1.2.8_GH0.tar.gz) = ff9e4b8f09592226e310e8ac55073614743d04ace4e1ab66e96c3b517000600b
SIZE (xioTechnologies-Fusion-v1.2.8_GH0.tar.gz) = 447874
SHA256 (thestk-rtmidi-6.0.0_GH0.tar.gz) = ef7bcda27fee6936b651c29ebe9544c74959d0b1583b716ce80a1c6fea7617f0
diff --git a/emulators/rpcs3/files/patch-rpcs3_rpcs3qt_game__list__frame.cpp b/emulators/rpcs3/files/patch-rpcs3_rpcs3qt_game__list__frame.cpp
deleted file mode 100644
index af2bc4ddbf9c..000000000000
--- a/emulators/rpcs3/files/patch-rpcs3_rpcs3qt_game__list__frame.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-Fix build with Qt >= 6.9.0
-
-Backported from: https://github.com/RPCS3/rpcs3/commit/600e4604169464c64cbf548e7629e483ad2aad1e
-
---- rpcs3/rpcs3qt/game_list_frame.cpp.orig 2025-03-30 19:45:32 UTC
-+++ rpcs3/rpcs3qt/game_list_frame.cpp
-@@ -2363,7 +2363,7 @@ void game_list_frame::BatchActionBySerials(progress_di
-
- connect(future_watcher, &QFutureWatcher<void>::finished, this, [=, this]()
- {
-- pdlg->setLabelText(progressLabel.arg(*index).arg(serials_size));
-+ pdlg->setLabelText(progressLabel.arg(index->load()).arg(serials_size));
- pdlg->setCancelButtonText(tr("OK"));
- QApplication::beep();
-
-@@ -2396,7 +2396,7 @@ void game_list_frame::BatchActionBySerials(progress_di
- return;
- }
-
-- pdlg->setLabelText(progressLabel.arg(*index).arg(serials_size));
-+ pdlg->setLabelText(progressLabel.arg(index->load()).arg(serials_size));
- pdlg->setCancelButtonText(tr("OK"));
- connect(pdlg, &progress_dialog::canceled, this, [pdlg](){ pdlg->deleteLater(); });
- QApplication::beep();
diff --git a/emulators/rpcs3/files/patch-rpcs3_rpcs3qt_ps__move__tracker__dialog.cpp b/emulators/rpcs3/files/patch-rpcs3_rpcs3qt_ps__move__tracker__dialog.cpp
deleted file mode 100644
index ce6da7983d15..000000000000
--- a/emulators/rpcs3/files/patch-rpcs3_rpcs3qt_ps__move__tracker__dialog.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-Fix build with Qt >= 6.9.0
-
-Backported from: https://github.com/RPCS3/rpcs3/commit/600e4604169464c64cbf548e7629e483ad2aad1e
-
---- rpcs3/rpcs3qt/ps_move_tracker_dialog.cpp.orig 2025-03-30 19:45:32 UTC
-+++ rpcs3/rpcs3qt/ps_move_tracker_dialog.cpp
-@@ -362,7 +362,7 @@ void ps_move_tracker_dialog::update_min_radius(bool up
- }
- void ps_move_tracker_dialog::update_min_radius(bool update_slider)
- {
-- ui->minRadiusGb->setTitle(tr("Min Radius: %0 %").arg(g_cfg_move.min_radius));
-+ ui->minRadiusGb->setTitle(tr("Min Radius: %0 %").arg(g_cfg_move.min_radius.get()));
-
- if (update_slider)
- {
-@@ -372,7 +372,7 @@ void ps_move_tracker_dialog::update_max_radius(bool up
-
- void ps_move_tracker_dialog::update_max_radius(bool update_slider)
- {
-- ui->maxRadiusGb->setTitle(tr("Max Radius: %0 %").arg(g_cfg_move.max_radius));
-+ ui->maxRadiusGb->setTitle(tr("Max Radius: %0 %").arg(g_cfg_move.max_radius.get()));
-
- if (update_slider)
- {
diff --git a/emulators/rpcs3/files/patch-wolfssl b/emulators/rpcs3/files/patch-wolfssl
deleted file mode 100644
index c736ccef7dc1..000000000000
--- a/emulators/rpcs3/files/patch-wolfssl
+++ /dev/null
@@ -1,16 +0,0 @@
-https://github.com/wolfSSL/wolfssl/commit/197a7e0ba386
-
---- 3rdparty/wolfssl/wolfssl/wolfcrypt/src/cpuid.c.orig 2024-12-31 17:58:22 UTC
-+++ 3rdparty/wolfssl/wolfssl/wolfcrypt/src/cpuid.c
-@@ -259,8 +259,10 @@
-
- if (features & CPUID_AARCH64_FEAT_AES)
- cpuid_flags |= CPUID_AES;
-- if (features & CPUID_AARCH64_FEAT_PMULL)
-+ if (features & CPUID_AARCH64_FEAT_AES_PMULL) {
-+ cpuid_flags |= CPUID_AES;
- cpuid_flags |= CPUID_PMULL;
-+ }
- if (features & CPUID_AARCH64_FEAT_SHA256)
- cpuid_flags |= CPUID_SHA256;
- if (features & CPUID_AARCH64_FEAT_SHA256_512)
diff --git a/emulators/rpcs3/pkg-plist b/emulators/rpcs3/pkg-plist
index 7013d57775ab..663b6c377e73 100644
--- a/emulators/rpcs3/pkg-plist
+++ b/emulators/rpcs3/pkg-plist
@@ -43,8 +43,6 @@ share/metainfo/rpcs3.metainfo.xml
%%DATADIR%%/Icons/ui/square.png
%%DATADIR%%/Icons/ui/start.png
%%DATADIR%%/Icons/ui/triangle.png
-%%DATADIR%%/git/README.md
-%%DATADIR%%/git/commits.lst
%%DATADIR%%/test/dump_stack.elf
%%DATADIR%%/test/gs_gcm_basic_triangle.elf
%%DATADIR%%/test/gs_gcm_cube.elf
diff --git a/emulators/virtualbox-ose-70/Makefile b/emulators/virtualbox-ose-70/Makefile
index c1823c5bd1a5..19516c211e1f 100644
--- a/emulators/virtualbox-ose-70/Makefile
+++ b/emulators/virtualbox-ose-70/Makefile
@@ -1,6 +1,6 @@
PORTNAME= virtualbox-ose
DISTVERSION= 7.0.26
-PORTREVISION?= 0
+PORTREVISION?= 3
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
LOCAL/vvd:docs
@@ -28,7 +28,7 @@ LIB_DEPENDS= libpng.so:graphics/png \
libcurl.so:ftp/curl
RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod-70
-USES= compiler:c++14-lang cpe gnome iconv qt:5 pkgconfig ssl tar:bzip2
+USES= compiler:c++14-lang cpe gnome iconv pkgconfig qt:5 ssl tar:bzip2
CPE_VENDOR= oracle
CPE_PRODUCT= vm_virtualbox
USE_BINUTILS= yes
@@ -43,7 +43,9 @@ CONFIGURE_ARGS+= --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-legacy \
virtualbox-ose-nox11-legacy \
virtualbox-ose \
- virtualbox-ose-nox11
+ virtualbox-ose-nox11 \
+ virtualbox-ose-71 \
+ virtualbox-ose-nox11-71
PORTSCOUT= limit:^7\.0\.
SUB_FILES= pkg-message
@@ -75,8 +77,9 @@ PLIST_SUB= GUEST_VER=${DISTVERSION} \
SLAVE_PORT?= no
-OPTIONS_DEFINE= AIO ALSA DBUS DEBUG DOCS GUESTADDITIONS NLS PULSEAUDIO \
- PYTHON QT5 R0LOGGING UDPTUNNEL VBOXIMG VDE VNC WEBSERVICE VPX X11
+OPTIONS_DEFINE= AIO ALSA DBUS DEBUG DOCS GUESTADDITIONS NLS OGG PULSEAUDIO \
+ PYTHON QT5 R0LOGGING UDPTUNNEL VBOXIMG VDE VNC VORBIS VPX \
+ WEBSERVICE X11
OPTIONS_DEFAULT= AIO DBUS QT5 UDPTUNNEL VNC WEBSERVICE X11
.if ${SLAVE_PORT} == no
OPTIONS_DEFAULT+= PYTHON
@@ -90,12 +93,14 @@ AIO_DESC= Enable Asyncronous IO support (check pkg-message)
DEBUG_DESC= Debug symbols, additional logs and assertions
GUESTADDITIONS_DESC= Build with Guest Additions
NLS_DESC= Native language support (requires QT5)
+OGG_DESC= Use libogg from audio/libogg instead of bundled one
QT5_DESC= Build with QT5 frontend (requires X11)
R0LOGGING_DESC= Enable R0 logging (requires DEBUG)
UDPTUNNEL_DESC= Build with UDP tunnel support
VBOXIMG_DESC= Build vboximg-mount (requires fuse-libs)
VDE_DESC= Build with VDE support
VNC_DESC= Build with VNC support
+VORBIS_DESC= Use libvorbis from audio/libvorbis instead of bundled one
VPX_DESC= Use libvpx for video recording
WEBSERVICE_DESC= Build Webservice
@@ -105,6 +110,8 @@ DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
DBUS_CONFIGURE_OFF= --disable-dbus
DEBUG_CONFIGURE_ON= --build-debug
NLS_IMPLIES= QT5
+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
@@ -125,6 +132,9 @@ 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
diff --git a/emulators/virtualbox-ose-70/files/patch-configure b/emulators/virtualbox-ose-70/files/patch-configure
index fe0f4247089b..992770166b0f 100644
--- a/emulators/virtualbox-ose-70/files/patch-configure
+++ b/emulators/virtualbox-ose-70/files/patch-configure
@@ -1,6 +1,6 @@
---- configure.orig 2024-10-10 20:19:24.000000000 +0200
-+++ configure 2024-12-27 13:12:46.010746000 +0100
-@@ -154,10 +154,14 @@
+--- configure.orig 2025-04-11 11:59:42 UTC
++++ configure
+@@ -154,10 +154,14 @@ if [ "$OS" = "freebsd" ]; then
if [ "$OS" = "freebsd" ]; then
INCCURL="-I/usr/local/include"
LIBCURL="-L/usr/local/lib -lcurl"
@@ -15,7 +15,7 @@
else
INCCURL=""
LIBCURL="-lcurl"
-@@ -1207,6 +1211,9 @@
+@@ -1207,6 +1211,9 @@ extern "C" int main(int argc, char** argv)
printf("found version %d.%d.%d",
SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL);
#if SDL_VERSION_ATLEAST(1,2,7)
@@ -25,7 +25,7 @@
printf(", OK.\n");
return 0;
#else
-@@ -1291,7 +1298,7 @@
+@@ -1291,7 +1298,7 @@ EOF
#endif
}
EOF
@@ -34,7 +34,7 @@
test_execute
fi
}
-@@ -1605,6 +1612,7 @@
+@@ -1605,6 +1612,7 @@ EOF
FLGQT5=`pkg-config Qt5Core --cflags`
# gcc 4.8 is able to compile with C++11 (see also VBOX_GCC_std in Config.kmk)
[ $(($cc_maj * 100 + $cc_min)) -ge 408 ] && FLGQT5="$FLGQT5 -std=c++11"
@@ -42,7 +42,28 @@
INCQT5=`strip_I "$FLGQT5"`
LIBDIR5=`pkg-config Qt5Core --variable=libdir`
LIBQT5=`pkg-config Qt5Core Qt5Gui --libs`
-@@ -2180,8 +2188,8 @@
+@@ -1861,9 +1869,9 @@ check_libvorbis()
+ if which_wrapper pkg-config > /dev/null; then
+ libvorbis_ver=`pkg-config vorbis --modversion 2>> $LOG`
+ if [ $? -eq 0 ]; then
+- FLGVRB=`pkg-config vorbis --cflags`
++ FLGVRB=`pkg-config vorbis vorbisenc --cflags`
+ INCVRB=`strip_I "$FLGVRB"`
+- LIBVRB=`pkg-config vorbis --libs`
++ LIBVRB=`pkg-config vorbis vorbisenc --libs`
+ fi
+ cat > $ODIR.tmp_src.cc << EOF
+ #include <cstdio>
+@@ -1913,7 +1921,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"
+@@ -2180,8 +2188,8 @@ EOF
echo "compiling the following source file:" >> $LOG
cat $ODIR.tmp_src.cc >> $LOG
echo "using the following command line:" >> $LOG
@@ -53,7 +74,7 @@
if [ $? -eq 0 ]; then
found=1
break
-@@ -2297,7 +2305,7 @@
+@@ -2297,7 +2305,7 @@ check_gsoap()
else
cnf_append "VBOX_GSOAP_CXX_SOURCES" ""
fi
@@ -62,7 +83,7 @@
gsoap_version=`pkg-config gsoapssl++ --modversion`
log_success "found version $gsoap_version"
return
-@@ -2661,7 +2669,7 @@
+@@ -2661,7 +2669,7 @@ for option in "$@"; do
--with-openssl-dir=*)
OPENSSLDIR=`echo $option | cut -d'=' -f2`
INCCRYPTO="-I${OPENSSLDIR}/include"
@@ -71,7 +92,7 @@
# On Darwin (at least for macports) static OpenSSL also needs zlib.
[ "$OS" = "darwin" ] && LIBCRYPTO="$LIBCRYPTO ${OPENSSLDIR}/lib/libz.a"
# On Linux static OpenSSL typically needs a few additional libraries.
-@@ -3028,12 +3036,22 @@
+@@ -3028,12 +3036,22 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then
[ $WITH_JAVA -eq 1 ] && check_java
# PulseAudio
@@ -100,7 +121,7 @@
fi
fi
-@@ -3049,14 +3067,6 @@
+@@ -3049,14 +3067,6 @@ if [ "$OS" = "linux" ]; then
cnf_append "VBOX_WITHOUT_LINUX_TEST_BUILDS" "1"
fi
if [ $ONLY_ADDITIONS -eq 0 ]; then
diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
index 4d327e1089b1..270472c045e3 100644
--- a/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
+++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
@@ -1,6 +1,6 @@
---- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2018-11-29 19:03:21 UTC
+--- 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,23 @@
+@@ -0,0 +1,28 @@
+# $Id: Makefile.kmk $
+## @file
+# Sub-Makefile for the FreeBSD Shared folder mount utility.
@@ -19,8 +19,13 @@
+
+PROGRAMS += mount_vboxvfs
+mount_vboxvfs_TEMPLATE = NewVBoxGuestR3Exe
-+mount_vboxvfs_SOURCES = $(MOUNT)/getmntopts.c \
-+ mount_vboxvfs.c
++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-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp
new file mode 100644
index 000000000000..aa74b95e2303
--- /dev/null
+++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp
@@ -0,0 +1,20 @@
+--- src/VBox/Devices/Graphics/DevVGA-SVGA.cpp.orig 2025-04-11 12:09:20 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
+@@ -7153,7 +7153,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-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp
new file mode 100644
index 000000000000..8592bccdc8fc
--- /dev/null
+++ b/emulators/virtualbox-ose-70/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-04-11 12:09:20 UTC
++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-dx11.cpp
+@@ -3111,7 +3111,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-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp
index c9574654562d..caa97030f41c 100644
--- a/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp
+++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp
@@ -1,6 +1,6 @@
---- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp.orig 2021-01-07 15:39:16 UTC
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp.orig 2025-04-11 12:09:20 UTC
+++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp
-@@ -186,7 +186,7 @@ int glLdrInit(PPDMDEVINS pDevIns)
+@@ -196,7 +196,7 @@ int glLdrInit(PPDMDEVINS pDevIns)
pfn_wglDeleteContext = 0;
pfn_wglMakeCurrent = 0;
pfn_wglShareLists = 0;
@@ -9,7 +9,7 @@
pfn_XConfigureWindow = 0;
pfn_XCloseDisplay = 0;
pfn_XCreateColormap = 0;
-@@ -296,7 +296,7 @@ int glLdrInit(PPDMDEVINS pDevIns)
+@@ -306,7 +306,7 @@ int glLdrInit(PPDMDEVINS pDevIns)
GLGETPROC_(wglDeleteContext, "");
GLGETPROC_(wglMakeCurrent, "");
GLGETPROC_(wglShareLists, "");
@@ -18,7 +18,7 @@
X11GETPROC_(XConfigureWindow);
X11GETPROC_(XCloseDisplay);
X11GETPROC_(XCreateColormap);
-@@ -397,7 +397,7 @@ int glLdrInit(PPDMDEVINS pDevIns)
+@@ -407,7 +407,7 @@ int glLdrInit(PPDMDEVINS pDevIns)
GLGETPROC_(glVertexPointer, "");
GLGETPROC_(glViewport, "");
diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h
index 3069950947cd..ea1c170e8f17 100644
--- a/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h
+++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h
@@ -1,6 +1,6 @@
---- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h.orig 2021-01-07 15:39:17 UTC
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h.orig 2025-04-11 12:09:20 UTC
+++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h
-@@ -338,7 +338,7 @@ GLPFN BOOL (WINAPI *pfn_wglMakeCurrent)(HDC, HGLRC);
+@@ -346,7 +346,7 @@ GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC);
GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC);
#define wglShareLists pfn_wglShareLists
diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp
index 96058e78ff1f..caf9d72e8e19 100644
--- a/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp
+++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp
@@ -1,6 +1,6 @@
---- src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp.orig 2021-01-07 15:39:17 UTC
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp.orig 2025-04-11 12:09:20 UTC
+++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp
-@@ -1189,7 +1189,7 @@ int vmsvga3dTerminate(PVGASTATECC pThisCC)
+@@ -1198,7 +1198,7 @@ static DECLCALLBACK(int) vmsvga3dBackTerminate(PVGASTA
RTSemEventDestroy(pState->WndRequestSem);
#elif defined(RT_OS_DARWIN)
@@ -9,7 +9,7 @@
/* signal to the thread that it is supposed to exit */
pState->bTerminate = true;
/* wait for it to terminate */
-@@ -3194,7 +3194,7 @@ int vmsvga3dGenerateMipmaps(PVGASTATECC pThisCC, uint3
+@@ -3216,7 +3216,7 @@ static DECLCALLBACK(int) vmsvga3dBackGenerateMipmaps(P
}
@@ -18,7 +18,7 @@
/**
* X11 event handling thread.
*
-@@ -3224,7 +3224,7 @@ DECLCALLBACK(int) vmsvga3dXEventThread(RTTHREAD hThrea
+@@ -3246,7 +3246,7 @@ DECLCALLBACK(int) vmsvga3dXEventThread(RTTHREAD hThrea
}
return VINF_SUCCESS;
}
@@ -27,7 +27,25 @@
/**
-@@ -4052,7 +4052,7 @@ static int vmsvga3dContextDestroyOgl(PVGASTATECC pThis
+@@ -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);
diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c b/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
index 205c897c818d..cbdcb490764f 100644
--- a/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
+++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
@@ -1,6 +1,6 @@
---- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2025-04-11 05:12:39.000000000 -0700
-+++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2025-04-28 10:14:45.981609000 -0700
-@@ -139,8 +139,10 @@
+--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2025-04-11 12:12:39 UTC
++++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c
+@@ -139,8 +139,10 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
{
@@ -11,7 +11,7 @@
switch (pMemFreeBSD->Core.enmType)
{
-@@ -155,8 +157,6 @@
+@@ -155,8 +157,6 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
case RTR0MEMOBJTYPE_LOCK:
{
@@ -20,7 +20,7 @@
if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS)
pMap = &((struct proc *)pMemFreeBSD->Core.u.Lock.R0Process)->p_vmspace->vm_map;
-@@ -197,6 +197,7 @@
+@@ -197,6 +197,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
case RTR0MEMOBJTYPE_PHYS_NC:
{
VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
@@ -28,22 +28,22 @@
vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0);
#if __FreeBSD_version < 1000000
vm_page_lock_queues();
-@@ -209,6 +210,14 @@
- }
+@@ -210,6 +211,14 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
#if __FreeBSD_version < 1000000
vm_page_unlock_queues();
-+#endif
+ #endif
+#else /* __FreeBSD_version >= 1500038 */
+ struct pctrie_iter pages;
+ vm_page_t page;
+
-+ pctrie_iter_init(&pages, pMemFreeBSD->pObject);
++ vm_page_iter_init(&pages, pMemFreeBSD->pObject);
+ VM_RADIX_FORALL(page, &pages)
-+ vm_page_unwire(page, PQ_INACTIVE);
- #endif
++ (void)vm_page_unwire_noq(page);
++#endif
VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
vm_object_deallocate(pMemFreeBSD->pObject);
-@@ -220,6 +229,7 @@
+ break;
+@@ -220,6 +229,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
return VERR_INTERNAL_ERROR;
}
@@ -51,7 +51,7 @@
return VINF_SUCCESS;
}
-@@ -329,7 +339,8 @@
+@@ -329,7 +339,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOBJFRE
size_t cPages = atop(pMemFreeBSD->Core.cb);
int rc;
@@ -61,7 +61,7 @@
/* No additional object reference for auto-deallocation upon unmapping. */
#if __FreeBSD_version >= 1000055
-@@ -371,6 +382,7 @@
+@@ -371,6 +382,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag)
{
@@ -69,7 +69,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PAGE,
NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -380,8 +392,10 @@
+@@ -380,8 +392,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ
*ppMem = &pMemFreeBSD->Core;
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -80,7 +80,7 @@
return VERR_NO_MEMORY;
}
-@@ -395,6 +409,7 @@
+@@ -395,6 +409,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag)
{
@@ -88,7 +88,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_LOW, NULL, cb, pszTag);
if (pMemFreeBSD)
{
-@@ -403,14 +418,17 @@
+@@ -403,14 +418,17 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI
*ppMem = &pMemFreeBSD->Core;
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -106,7 +106,7 @@
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_CONT,
NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -423,8 +441,10 @@
+@@ -423,8 +441,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ
}
else
rtR0MemObjDelete(&pMemFreeBSD->Core);
@@ -117,7 +117,7 @@
return VERR_NO_MEMORY;
}
-@@ -432,6 +452,7 @@
+@@ -432,6 +452,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJTYPE enmType, size_t cb, RTHCPHYS PhysHighest,
size_t uAlignment, bool fContiguous, int rcNoMem, const char *pszTag)
{
@@ -125,7 +125,7 @@
/* create the object. */
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), enmType, NULL, cb, pszTag);
if (pMemFreeBSD)
-@@ -439,7 +460,8 @@
+@@ -439,7 +460,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
vm_paddr_t const VmPhysAddrHigh = PhysHighest != NIL_RTHCPHYS ? PhysHighest : ~(vm_paddr_t)0;
u_long const cPages = atop(cb);
@@ -135,19 +135,16 @@
int rc = rtR0MemObjFreeBSDPhysAllocHelper(pMemFreeBSD->pObject, cPages, VmPhysAddrHigh,
uAlignment, fContiguous, true, rcNoMem);
-@@ -449,7 +471,11 @@
+@@ -449,7 +471,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
{
Assert(enmType == RTR0MEMOBJTYPE_PHYS);
VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
-+#if __FreeBSD_version < 1500038
- pMemFreeBSD->Core.u.Phys.PhysBase = VM_PAGE_TO_PHYS(vm_page_find_least(pMemFreeBSD->pObject, 0));
-+#else
-+ pMemFreeBSD->Core.u.Phys.PhysBase = VM_PAGE_TO_PHYS(vm_radix_lookup_ge(&(pMemFreeBSD->pObject->rtree), 0));
-+#endif
+- 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;
}
-@@ -462,8 +488,10 @@
+@@ -462,8 +484,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
vm_object_deallocate(pMemFreeBSD->pObject);
rtR0MemObjDelete(&pMemFreeBSD->Core);
}
@@ -158,7 +155,7 @@
return VERR_NO_MEMORY;
}
-@@ -486,6 +514,7 @@
+@@ -486,6 +510,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
const char *pszTag)
{
AssertReturn(uCachePolicy == RTMEM_CACHE_POLICY_DONT_CARE, VERR_NOT_SUPPORTED);
@@ -166,7 +163,7 @@
/* create the object. */
PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PHYS,
-@@ -497,8 +526,10 @@
+@@ -497,8 +522,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ
pMemFreeBSD->Core.u.Phys.PhysBase = Phys;
pMemFreeBSD->Core.u.Phys.uCachePolicy = uCachePolicy;
*ppMem = &pMemFreeBSD->Core;
@@ -177,7 +174,7 @@
return VERR_NO_MEMORY;
}
-@@ -510,6 +541,7 @@
+@@ -510,6 +537,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
vm_offset_t AddrStart, size_t cb, uint32_t fAccess,
RTR0PROCESS R0Process, int fFlags, const char *pszTag)
{
@@ -185,7 +182,7 @@
int rc;
NOREF(fAccess);
-@@ -519,21 +551,28 @@
+@@ -519,21 +547,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER
if (!pMemFreeBSD)
return VERR_NO_MEMORY;
@@ -222,7 +219,7 @@
return VERR_NO_MEMORY;/** @todo fix mach -> vbox error conversion for freebsd. */
}
-@@ -573,6 +612,7 @@
+@@ -573,6 +608,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)
{
@@ -230,7 +227,7 @@
int rc;
/*
-@@ -631,11 +671,13 @@
+@@ -631,11 +667,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN
pMemFreeBSD->Core.pv = (void *)MapAddress;
pMemFreeBSD->Core.u.ResVirt.R0Process = R0Process;
*ppMem = &pMemFreeBSD->Core;
@@ -244,7 +241,7 @@
return rc;
}
-@@ -659,6 +701,8 @@
+@@ -659,6 +697,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)
{
@@ -253,7 +250,7 @@
// AssertMsgReturn(!offSub && !cbSub, ("%#x %#x\n", offSub, cbSub), VERR_NOT_SUPPORTED);
AssertMsgReturn(pvFixed == (void *)-1, ("%p\n", pvFixed), VERR_NOT_SUPPORTED);
-@@ -713,6 +757,7 @@
+@@ -713,6 +753,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
Assert((vm_offset_t)pMemFreeBSD->Core.pv == Addr);
pMemFreeBSD->Core.u.Mapping.R0Process = NIL_RTR0PROCESS;
*ppMem = &pMemFreeBSD->Core;
@@ -261,7 +258,7 @@
return VINF_SUCCESS;
}
rc = vm_map_remove(kernel_map, Addr, Addr + cbSub);
-@@ -721,6 +766,7 @@
+@@ -721,6 +762,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ
else
vm_object_deallocate(pMemToMapFreeBSD->pObject);
@@ -269,7 +266,7 @@
return VERR_NO_MEMORY;
}
-@@ -728,6 +774,8 @@
+@@ -728,6 +770,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)
{
@@ -278,7 +275,7 @@
/*
* Check for unsupported stuff.
*/
-@@ -785,44 +833,50 @@
+@@ -785,44 +829,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN
if (rc == KERN_SUCCESS)
{
@@ -333,7 +330,7 @@
if ((fProt & RTMEM_PROT_NONE) == RTMEM_PROT_NONE)
ProtectionFlags = VM_PROT_NONE;
-@@ -833,7 +887,12 @@
+@@ -833,7 +883,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT
if ((fProt & RTMEM_PROT_EXEC) == RTMEM_PROT_EXEC)
ProtectionFlags |= VM_PROT_EXECUTE;
@@ -346,7 +343,7 @@
if (krc == KERN_SUCCESS)
return VINF_SUCCESS;
-@@ -858,11 +917,19 @@
+@@ -858,11 +913,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
vm_offset_t pb = (vm_offset_t)pMemFreeBSD->Core.pv + ptoa(iPage);
@@ -370,7 +367,7 @@
}
case RTR0MEMOBJTYPE_MAPPING:
-@@ -871,11 +938,15 @@
+@@ -871,11 +934,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
if (pMemFreeBSD->Core.u.Mapping.R0Process != NIL_RTR0PROCESS)
{
@@ -387,7 +384,7 @@
}
return vtophys(pb);
}
-@@ -886,9 +957,11 @@
+@@ -886,9 +953,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
{
RTHCPHYS addr;
diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp b/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp
new file mode 100644
index 000000000000..87ae993446a3
--- /dev/null
+++ b/emulators/virtualbox-ose-70/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-70/files/vboxinit.in b/emulators/virtualbox-ose-70/files/vboxinit.in
index 13ec9614827d..9895da9e362e 100644
--- a/emulators/virtualbox-ose-70/files/vboxinit.in
+++ b/emulators/virtualbox-ose-70/files/vboxinit.in
@@ -37,7 +37,7 @@ 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 '{}\"'" | while read VMNAME UUID; do
+ ${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} ..."
@@ -50,7 +50,7 @@ vboxinit_start()
vboxinit_stop()
{
# Get all running machines
- ${su_command} "${command} list runningvms | /usr/bin/tr -d '{}\"'" | while read VMNAME UUID; do
+ ${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}"
@@ -75,7 +75,7 @@ load_rc_config $name
: ${vboxinit_user="%%VBOXUSER%%"}
: ${vboxinit_home=$(/usr/sbin/pw usershow -7 -n "${vboxinit_user}" | /usr/bin/cut -d: -f6)}
: ${vboxinit_stop="savestate"}
-: ${vboxinit_start_delay="0"}
+: ${vboxinit_start_delay="1"}
: ${vboxinit_stop_delay="0"}
HOME=${vboxinit_home}
USER=${vboxinit_user}
diff --git a/emulators/virtualbox-ose-71/Makefile b/emulators/virtualbox-ose-71/Makefile
new file mode 100644
index 000000000000..1941d1f63133
--- /dev/null
+++ b/emulators/virtualbox-ose-71/Makefile
@@ -0,0 +1,424 @@
+PORTNAME= virtualbox-ose
+DISTVERSION= 7.1.10
+PORTREVISION?= 1
+CATEGORIES= emulators
+MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
+ LOCAL/vvd:docs
+PKGNAMESUFFIX?= -71
+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-71
+
+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
+
+PORTSCOUT= limit:^7\.1\.
+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-71
+.else
+CONFLICTS_INSTALL+= virtualbox-ose-71
+.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-71/distinfo b/emulators/virtualbox-ose-71/distinfo
new file mode 100644
index 000000000000..36ff7a2f5869
--- /dev/null
+++ b/emulators/virtualbox-ose-71/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1749075437
+SHA256 (VirtualBox-7.1.10.tar.bz2) = 7d60010a4c9102613554b46f61d17b825c30ee59d8be071e52d8aac664ca9869
+SIZE (VirtualBox-7.1.10.tar.bz2) = 233395034
+SHA256 (VirtualBox-docs-7.1.10.tar.bz2) = 5ff2827643d1d01ad6e26eb86dd7a2e1c9ce13c7049ab360054bd689253fd14b
+SIZE (VirtualBox-docs-7.1.10.tar.bz2) = 10113312
+SHA256 (VBoxGuestAdditions_7.1.10.iso) = 59c92f7f5fd7e081211e989f5117fc53ad8d8800ad74a01b21e97bb66fe62972
+SIZE (VBoxGuestAdditions_7.1.10.iso) = 61378560
diff --git a/emulators/virtualbox-ose-71/files/extrapatch-Config.kmk b/emulators/virtualbox-ose-71/files/extrapatch-Config.kmk
new file mode 100644
index 000000000000..775508d23b1b
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile b/emulators/virtualbox-ose-71/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile
new file mode 100644
index 000000000000..67361da543f7
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/extrapatch-vboximg-Config.kmk b/emulators/virtualbox-ose-71/files/extrapatch-vboximg-Config.kmk
new file mode 100644
index 000000000000..d84209faa8cd
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-Config.kmk b/emulators/virtualbox-ose-71/files/patch-Config.kmk
new file mode 100644
index 000000000000..7aaf90147847
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-Config.kmk
@@ -0,0 +1,402 @@
+--- Config.kmk.orig 2025-05-10 18:43:02 UTC
++++ Config.kmk
+@@ -610,11 +610,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
+@@ -627,11 +627,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.
+@@ -639,7 +639,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
+@@ -825,7 +825,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.
+@@ -1357,10 +1357,6 @@ endif
+ endif
+ endif
+
+-ifeq ($(KBUILD_TARGET),freebsd)
+- VBOX_WITH_DOCS =
+-endif
+-
+ ifeq ($(KBUILD_TARGET),haiku)
+ VBOX_WITH_VRDP_RDESKTOP =
+ # Permanent (no working SDL).
+@@ -1545,7 +1541,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
+@@ -3680,19 +3676,7 @@ ifndef VBOX_GCC_std
+ #
+ ## @todo consider maxing this out.
+ ifndef VBOX_GCC_std
+- if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.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
+ endif
+ ifndef VBOX_VCC_std
+ if $(VBOX_VCC_TOOL_STEM) >= VCC141 # since 2017 15.3
+@@ -5682,11 +5666,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
+@@ -5697,7 +5681,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
+@@ -6081,7 +6065,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
+@@ -6092,7 +6076,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 \
+@@ -6174,7 +6158,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
+
+@@ -6209,7 +6193,7 @@ ifeq ($(KBUILD_TARGET),netbsd)
+ $(VBOX_GCC_fdiagnostics-show-option) \
+ -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 \
+@@ -6220,7 +6204,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)
+@@ -6528,11 +6512,11 @@ else # the gcc guys
+ TEMPLATE_VBoxR3Exe_LIBS = pthread m rt dl
+ else ifeq ($(KBUILD_TARGET),os2)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3OMF
+- TEMPLATE_VBoxR3Exe_LIBS = socket iconv
++ TEMPLATE_VBoxR3Exe_LIBS = socket
+ else ifeq ($(KBUILD_TARGET),darwin)
+ TEMPLATE_VBoxR3Exe_TOOL = $(VBOX_GCC_TOOL)
+ TEMPLATE_VBoxR3Exe_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
+@@ -6549,17 +6533,26 @@ else # the gcc guys
+ else ifeq ($(KBUILD_TARGET),haiku)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3
+ TEMPLATE_VBoxR3Exe_POST_CMDS = $(VBOX_HAIKU_XRES_SETVER_CMDS)
+- TEMPLATE_VBoxR3Exe_LIBS = network iconv stdc++ supc++
++ TEMPLATE_VBoxR3Exe_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 ifeq ($(KBUILD_TARGET), freebsd)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3
+ TEMPLATE_VBoxR3Exe_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/local/include
++ TEMPLATE_VBoxR3Exe_LIBPATH += \
++ /usr/local/lib
++ else ifeq ($(KBUILD_TARGET), openbsd)
++ TEMPLATE_VBoxR3Exe_TOOL = GXX3
++ TEMPLATE_VBoxR3Exe_LIBS = pthread
++ TEMPLATE_VBoxR3Exe_INCS += \
+ /usr/include \
+ /usr/X11R6/include \
+ /usr/local/include
+@@ -6578,7 +6571,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
+@@ -6594,6 +6587,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
+@@ -6808,7 +6802,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
+@@ -6876,7 +6870,7 @@ else
+ $(SDK_VBoxZlib_LIBS) \
+ $(SDK_VBoxLibLzma_LIBS)
+ if1of ($(KBUILD_TARGET), darwin freebsd)
+- TEMPLATE_VBoxR3Static_LIBS += iconv
++ TEMPLATE_VBoxR3Static_LIBS +=
+ else ifeq ($(KBUILD_TARGET),solaris)
+ TEMPLATE_VBoxR3Static_LIBS += kstat
+ endif
+@@ -7048,6 +7042,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
+@@ -7079,6 +7074,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
+
+@@ -7102,6 +7098,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
+@@ -7454,7 +7451,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")
+@@ -7518,10 +7515,19 @@ else # the GCC guys:
+ else ifeq ($(KBUILD_TARGET),haiku)
+ TEMPLATE_VBoxMainExe_TOOL = GXX3
+ TEMPLATE_VBoxMainExe_LIBS = $(LIB_RUNTIME) network stdc++ supc++
+- else if1of ($(KBUILD_TARGET), freebsd openbsd)
++ else ifeq ($(KBUILD_TARGET), freebsd)
+ TEMPLATE_VBoxMainExe_TOOL = GXX3
+ TEMPLATE_VBoxMainExe_LIBS = $(LIB_RUNTIME)
++ TEMPLATE_VBoxMainExe_LDFLAGS = -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
+@@ -7553,6 +7559,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
+
+@@ -8181,14 +8188,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.
+@@ -8460,7 +8466,7 @@ else
+ TEMPLATE_VBoxBldProg_LIBS = pthread m rt dl
+ else ifeq ($(KBUILD_HOST),os2)
+ TEMPLATE_VBoxBldProg_TOOL = GXX3OMF
+- TEMPLATE_VBoxBldProg_LIBS = socket iconv
++ TEMPLATE_VBoxBldProg_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"
+@@ -8500,13 +8506,20 @@ else
+ TEMPLATE_VBoxBldProg_LIBS =
+ else ifeq ($(KBUILD_HOST),haiku)
+ TEMPLATE_VBoxBldProg_TOOL = GXX3
+- TEMPLATE_VBoxBldProg_LIBS = network iconv
++ TEMPLATE_VBoxBldProg_LIBS = network
+ TEMPLATE_VBoxBldProg_LIBPATH += \
+ /boot/common/lib
+- else if1of ($(KBUILD_HOST), freebsd openbsd)
++ else ifeq ($(KBUILD_HOST), freebsd)
+ TEMPLATE_VBoxBldProg_TOOL = $(VBOX_GCC_TOOL)
+ TEMPLATE_VBoxBldProg_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
+@@ -8553,11 +8566,11 @@ TEMPLATE_VBoxAdvBldProg_LIBS.darwin = \
+ $(TEMPLATE_VBoxBldProg_LIBS)
+ TEMPLATE_VBoxAdvBldProg_LIBS.darwin = \
+ $(TEMPLATE_VBoxAdvBldProg_LIBS) \
+- iconv \
++ \
+ $(TEMPLATE_VBoxBldProg_LIBS.darwin)
+ TEMPLATE_VBoxAdvBldProg_LIBS.freebsd = \
+ $(TEMPLATE_VBoxAdvBldProg_LIBS) \
+- iconv \
++ \
+ rt \
+ $(TEMPLATE_VBoxBldProg_LIBS.freebsd)
+ TEMPLATE_VBoxAdvBldProg_LIBS.linux = \
+@@ -8648,6 +8661,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))
+@@ -8671,7 +8685,7 @@ else if1of ($(KBUILD_TARGET), darwin freebsd openbsd)
+ ifeq ($(KBUILD_TARGET),linux) # As few libs as possible on linux.
+ TEMPLATE_VBoxGuestR3ExeBase_LIBS = pthread rt m dl
+ else if1of ($(KBUILD_TARGET), darwin freebsd openbsd)
+- TEMPLATE_VBoxGuestR3ExeBase_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) iconv
++ TEMPLATE_VBoxGuestR3ExeBase_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS)
+ else ifeq ($(KBUILD_TARGET),solaris)
+ TEMPLATE_VBoxGuestR3ExeBase_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) nsl
+ endif
+@@ -8684,6 +8698,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)
+
+
+@@ -8929,6 +8944,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
+@@ -8970,7 +8986,7 @@ TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TARGET) =
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS = $(VBOX_LIB_VBGL_R3_XORG)
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE)
+-TEMPLATE_VBoxGuestR3XOrgMod_LIBS.freebsd += iconv
++TEMPLATE_VBoxGuestR3XOrgMod_LIBS.freebsd +=
+
+
+ #
diff --git a/emulators/virtualbox-ose-71/files/patch-configure b/emulators/virtualbox-ose-71/files/patch-configure
new file mode 100644
index 000000000000..3645d1236ea8
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-configure
@@ -0,0 +1,138 @@
+--- configure.orig 2025-04-14 17:41:37 UTC
++++ configure
+@@ -158,10 +158,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"
+@@ -1211,6 +1215,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
+@@ -1295,7 +1302,7 @@ EOF
+ #endif
+ }
+ EOF
+- if test_compile "-lasound" asound asound; then
++ if test_compile "$INCALSA $LIBALSA -lasound" asound asound; then
+ test_execute
+ fi
+ }
+@@ -1599,6 +1606,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
+@@ -1875,9 +1883,9 @@ check_libvorbis()
+ if which_wrapper pkg-config > /dev/null; then
+ libvorbis_ver=`pkg-config vorbis --modversion 2>> $LOG`
+ if [ $? -eq 0 ]; then
+- FLGVRB=`pkg-config vorbis --cflags`
++ FLGVRB=`pkg-config vorbis vorbisenc --cflags`
+ INCVRB=`strip_I "$FLGVRB"`
+- LIBVRB=`pkg-config vorbis --libs`
++ LIBVRB=`pkg-config vorbis vorbisenc --libs`
+ fi
+ cat > $ODIR.tmp_src.cc << EOF
+ #include <cstdio>
+@@ -1927,7 +1935,7 @@ EOF
+ return 0;
+ }
+ EOF
+- [ -n "$INCOGG" ] && I_INCVRB=`prefix_I "$INCOGG"`
++ [ -n "$INCOGG" ] && I_INCOGG=`prefix_I "$INCOGG"`
+ if test_compile "$LIBOGG $I_INCOGG" ogg ogg nofatal; then
+ if test_execute; then
+ cnf_append "SDK_VBoxLibOgg_INCS" "$INCOGG"
+@@ -2194,8 +2202,8 @@ EOF
+ 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
+@@ -2311,7 +2319,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
+@@ -2687,7 +2695,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.
+@@ -3054,12 +3062,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
+
+@@ -3075,14 +3093,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-71/files/patch-doc_manual_en__US_dita_UserManual.ditamap b/emulators/virtualbox-ose-71/files/patch-doc_manual_en__US_dita_UserManual.ditamap
new file mode 100644
index 000000000000..93550ddbf766
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-doc_manual_en__US_dita_UserManual.ditamap
@@ -0,0 +1,11 @@
+--- doc/manual/en_US/dita/UserManual.ditamap.orig 2025-04-14 17:41:38 UTC
++++ doc/manual/en_US/dita/UserManual.ditamap
+@@ -613,7 +613,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-71/files/patch-include-iprt-x86.h b/emulators/virtualbox-ose-71/files/patch-include-iprt-x86.h
new file mode 100644
index 000000000000..ca73a306df88
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-include-iprt-x86.h
@@ -0,0 +1,19 @@
+--- include/iprt/x86.h.orig 2021-04-20 04:22:23 UTC
++++ include/iprt/x86.h
+@@ -38,6 +38,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 */
+ #ifdef RT_OS_SOLARIS
diff --git a/emulators/virtualbox-ose-71/files/patch-include_VBox_com_array.h b/emulators/virtualbox-ose-71/files/patch-include_VBox_com_array.h
new file mode 100644
index 000000000000..9d65058e6b50
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-include_VBox_com_array.h
@@ -0,0 +1,36 @@
+--- include/VBox/com/array.h.orig 2021-01-07 15:31:25 UTC
++++ include/VBox/com/array.h
+@@ -171,7 +171,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.
+@@ -960,12 +960,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
+ }
+@@ -980,7 +980,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-71/files/patch-include_VBox_sup.h b/emulators/virtualbox-ose-71/files/patch-include_VBox_sup.h
new file mode 100644
index 000000000000..9cf3fabe63f1
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-include_VBox_sup.h
@@ -0,0 +1,11 @@
+--- include/VBox/sup.h.orig 2024-12-27 04:08:45.986426000 +0100
++++ include/VBox/sup.h 2024-12-27 04:09:08.925387000 +0100
+@@ -2248,7 +2248,7 @@
+
+ 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-71/files/patch-include_iprt_string.h b/emulators/virtualbox-ose-71/files/patch-include_iprt_string.h
new file mode 100644
index 000000000000..95119057d1ca
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-include_iprt_string.h
@@ -0,0 +1,14 @@
+--- include/iprt/string.h.orig 2021-01-07 15:31:33 UTC
++++ include/iprt/string.h
+@@ -46,6 +46,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-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
new file mode 100644
index 000000000000..e790f372f95f
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
@@ -0,0 +1,284 @@
+--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2022-10-06 19:03:06.000000000 +0200
++++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c 2024-12-26 15:28:38.066230000 +0100
+@@ -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 resource *pIrqRes;
+ /** Pointer to the IRQ handler. */
+ void *pfnIrqHandler;
+- /** VMMDev version */
+- uint32_t u32Version;
+ };
+
+
+@@ -123,8 +123,7 @@
+ /*
+ * 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 @@
+ {
+ .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 @@
+ .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 @@
+ 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 @@
+ 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 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 @@
+
+ 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 @@
+ /*
+ * 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)
+@@ -737,18 +652,21 @@
+ 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
+@@ -792,8 +710,12 @@
+ 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-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
new file mode 100644
index 000000000000..476346a59b13
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
@@ -0,0 +1,27 @@
+--- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2019-04-16 10:09:09 UTC
++++ src/VBox/Additions/common/VBoxGuest/freebsd/Makefile
+@@ -25,7 +25,7 @@
+ #
+ 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
+@@ -80,6 +80,7 @@ SRCS += \
+ handletable.c \
+ handletablectx.c \
+ once.c \
++ term.c \
+ thread.c
+
+ .PATH: ${.CURDIR}/common/string
+@@ -147,6 +148,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-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest
new file mode 100644
index 000000000000..faecf870532b
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest
@@ -0,0 +1,34 @@
+--- src/VBox/Additions/common/VBoxGuest/freebsd/files_vboxguest.orig 2019-01-25 18:12:28 UTC
++++ src/VBox/Additions/common/VBoxGuest/freebsd/files_vboxguest
+@@ -63,6 +63,7 @@ FILES_VBOXGUEST_NOBIN=" \
+ ${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \
+ ${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \
+ ${PATH_ROOT}/include/iprt/types.h=>include/iprt/types.h \
++ ${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \
+ ${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \
+ ${PATH_ROOT}/include/iprt/uuid.h=>include/iprt/uuid.h \
+ ${PATH_ROOT}/include/iprt/crc.h=>include/iprt/crc.h \
+@@ -111,6 +112,7 @@ FILES_VBOXGUEST_NOBIN=" \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.h=>common/misc/handletable.h \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablectx.cpp=>common/misc/handletablectx.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/misc/once.cpp=>common/misc/once.c \
++ ${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 \
+@@ -181,6 +183,7 @@ FILES_VBOXGUEST_NOBIN=" \
+ ${PATH_ROOT}/src/VBox/Runtime/generic/errvars-generic.cpp=>generic/errvars-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/generic/timer-generic.cpp=>generic/timer-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/generic/mppresent-generic.cpp=>generic/mppresent-generic.c \
++ ${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 \
+@@ -207,6 +210,7 @@ FILES_VBOXGUEST_NOBIN=" \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/freebsd/sleepqueue-r0drv-freebsd.h=>r0drv/freebsd/sleepqueue-r0drv-freebsd.h \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/semspinmutex-r0drv-generic.c=>r0drv/generic/semspinmutex-r0drv-generic.c \
+ ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/mpnotification-r0drv-generic.cpp=>r0drv/generic/mpnotification-r0drv-generic.c \
++ ${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-71/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient
new file mode 100644
index 000000000000..56225943a922
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient
@@ -0,0 +1,25 @@
+--- src/VBox/Additions/x11/Installer/98vboxadd-xclient.orig 2025-01-21 19:49:30.000000000 +0700
++++ src/VBox/Additions/x11/Installer/98vboxadd-xclient 2025-01-23 00:43:43.597269000 +0700
+@@ -42,15 +42,15 @@
+ # 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-71/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop
new file mode 100644
index 000000000000..a76eb7616038
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src-VBox-Devices-Network-DrvNATlibslirp.cpp b/emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-DrvNATlibslirp.cpp
new file mode 100644
index 000000000000..11ee43504054
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-DrvNATlibslirp.cpp
@@ -0,0 +1,10 @@
+--- src/VBox/Devices/Network/DrvNATlibslirp.cpp.orig 2025-01-25 00:56:57.537046000 +0700
++++ src/VBox/Devices/Network/DrvNATlibslirp.cpp 2025-01-25 00:58:05.112538000 +0700
+@@ -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-71/files/patch-src-VBox-Devices-Network-slirp-bsd-sys-mbuf.h b/emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-slirp-bsd-sys-mbuf.h
new file mode 100644
index 000000000000..b6ed2d2915db
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-slirp-bsd-sys-mbuf.h
@@ -0,0 +1,12 @@
+--- src/VBox/Devices/Network/slirp/bsd/sys/mbuf.h.orig 2020-05-13 19:42:23 UTC
++++ src/VBox/Devices/Network/slirp/bsd/sys/mbuf.h
+@@ -245,6 +245,9 @@ struct mbuf {
+ #define M_FRAG 0x00000800 /* packet is a fragment of a larger packet */
+ #define M_FIRSTFRAG 0x00001000 /* packet is first fragment */
+ #define M_LASTFRAG 0x00002000 /* packet is last fragment */
++#ifdef M_SKIP_FIREWALL
++#undef M_SKIP_FIREWALL
++#endif
+ #define M_SKIP_FIREWALL 0x00004000 /* skip firewall processing */
+ #define M_FREELIST 0x00008000 /* mbuf is on the free list */
+ #define M_VLANTAG 0x00010000 /* ether_vtag is valid */
diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk
new file mode 100644
index 000000000000..5b96ab56a61b
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk
@@ -0,0 +1,20 @@
+--- src/VBox/HostDrivers/VBoxNetAdp/Makefile.kmk.orig 2019-05-13 13:33:07 UTC
++++ src/VBox/HostDrivers/VBoxNetAdp/Makefile.kmk
+@@ -206,10 +206,14 @@ $$(VBoxNetAdp-src_0_OUTDIR)/Makefile: \
+ $$(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-71/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt b/emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt
new file mode 100644
index 000000000000..dc4e779fb6b0
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt
@@ -0,0 +1,10 @@
+--- src/VBox/HostDrivers/VBoxNetFlt/freebsd/files_vboxnetflt.orig 2022-10-06 19:11:15.000000000 +0200
++++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/files_vboxnetflt 2024-12-26 15:41:50.870345000 +0100
+@@ -72,6 +72,7 @@
+ ${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-71/files/patch-src-VBox-Installer-Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src-VBox-Installer-Makefile.kmk
new file mode 100644
index 000000000000..45546433c627
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Installer-Makefile.kmk
@@ -0,0 +1,14 @@
+--- src/VBox/Installer/Makefile.kmk.orig 2020-05-13 19:44:01 UTC
++++ src/VBox/Installer/Makefile.kmk
+@@ -41,9 +41,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-71/files/patch-src-VBox-Installer-freebsd-VBox.sh b/emulators/virtualbox-ose-71/files/patch-src-VBox-Installer-freebsd-VBox.sh
new file mode 100644
index 000000000000..b4c177a54d1c
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp b/emulators/virtualbox-ose-71/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp
new file mode 100644
index 000000000000..4cd8b7492ed9
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Main/src-server/VirtualBoxImpl.cpp.orig 2021-01-07 15:41:43 UTC
++++ src/VBox/Main/src-server/VirtualBoxImpl.cpp
+@@ -2663,7 +2663,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-71/files/patch-src-VBox-Runtime-Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk
new file mode 100644
index 000000000000..f13be222ea9a
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk
@@ -0,0 +1,14 @@
+--- 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-71/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h b/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h
new file mode 100644
index 000000000000..c18492ebdf9b
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2024-07-29 13:10:32 UTC
++++ src/VBox/Runtime/r0drv/freebsd/sleepqueue-r0drv-freebsd.h
+@@ -84,6 +84,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
+@@ -300,10 +302,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-71/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp
new file mode 100644
index 000000000000..70b459e94da7
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp
@@ -0,0 +1,71 @@
+--- src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp.orig 2021-01-07 15:34:20 UTC
++++ src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp
+@@ -67,8 +67,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>
+@@ -528,7 +528,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 wrapper to work around compiler-specific va_list madness.
+ */
+@@ -555,12 +555,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;
+@@ -586,7 +580,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",
+@@ -621,7 +615,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();
+@@ -830,7 +824,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 */
+
+ /** @todo Fedora/others: Handle systemd-loginctl. */
+@@ -867,7 +861,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-71/files/patch-src_VBox_Additions_common_pam_pam__vbox.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_pam_pam__vbox.cpp
new file mode 100644
index 000000000000..bd667880358f
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_pam_pam__vbox.cpp
@@ -0,0 +1,20 @@
+--- src/VBox/Additions/common/pam/pam_vbox.cpp.orig 2021-01-07 15:34:21 UTC
++++ src/VBox/Additions/common/pam/pam_vbox.cpp
+@@ -104,7 +104,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
+ }
+@@ -183,7 +183,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-71/files/patch-src_VBox_Additions_freebsd_Makefile b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile
new file mode 100644
index 000000000000..c38d8013a6d6
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile
@@ -0,0 +1,38 @@
+--- src/VBox/Additions/freebsd/Makefile.orig 2020-05-13 19:37:06 UTC
++++ src/VBox/Additions/freebsd/Makefile
+@@ -30,6 +30,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:
+@@ -37,13 +45,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-71/files/patch-src_VBox_Additions_freebsd_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile.kmk
new file mode 100644
index 000000000000..f9d19d679e4a
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile.kmk
@@ -0,0 +1,31 @@
+--- src/VBox/Additions/freebsd/Makefile.kmk.orig 2021-01-07 15:34:22 UTC
++++ src/VBox/Additions/freebsd/Makefile.kmk
+@@ -23,8 +23,9 @@ $(error "The FreeBSD guest additions installer can onl
+ 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
+@@ -66,11 +67,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-71/files/patch-src_VBox_Additions_freebsd_drm_vboxvideo__drm.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_drm_vboxvideo__drm.c
new file mode 100644
index 000000000000..d4e5f3fc5a33
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_drm_vboxvideo__drm.c
@@ -0,0 +1,17 @@
+--- src/VBox/Additions/freebsd/drm/vboxvideo_drm.c.orig 2022-07-26 18:05:21 UTC
++++ src/VBox/Additions/freebsd/drm/vboxvideo_drm.c
+@@ -154,10 +154,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-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
new file mode 100644
index 000000000000..270472c045e3
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.8 b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.8
new file mode 100644
index 000000000000..88460e155de3
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 1970-01-01 01:00:00.000000000 +0100
++++ src/VBox/Additions/freebsd/mount_vboxvfs/mount_vboxvfs.8 2017-07-12 19:24:26.106029000 +0200
+@@ -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-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.c
new file mode 100644
index 000000000000..7dd7e6271e03
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 1970-01-01 01:00:00.000000000 +0100
++++ src/VBox/Additions/freebsd/mount_vboxvfs/mount_vboxvfs.c 2017-07-12 19:24:26.106029000 +0200
+@@ -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-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_bcmp.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_bcmp.c
new file mode 100644
index 000000000000..fb4d7fac8c06
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h
new file mode 100644
index 000000000000..858e894c7b6b
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h
@@ -0,0 +1,428 @@
+--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs.h.orig 2021-01-07 15:34:22 UTC
++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs.h
+@@ -1,8 +1,3 @@
+-/* $Id: vboxvfs.h $ */
+-/** @file
+- * Description.
+- */
+-
+ /*
+ * Copyright (C) 2010-2020 Oracle Corporation
+ *
+@@ -24,72 +19,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-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c
new file mode 100644
index 000000000000..e606c4f1de6f
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c
@@ -0,0 +1,1015 @@
+--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_prov.c.orig 2024-08-15 13:18:37.777504000 +0900
++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_prov.c 2024-08-15 13:18:37.777446000 +0900
+@@ -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-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c
new file mode 100644
index 000000000000..8fa76bdf2b8a
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c
@@ -0,0 +1,645 @@
+--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c.orig 2021-04-28 16:24:46 UTC
++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c
+@@ -1,8 +1,3 @@
+-/* $Id: vboxvfs_vfsops.c $ */
+-/** @file
+- * Description.
+- */
+-
+ /*
+ * Copyright (C) 2008-2020 Oracle Corporation
+ *
+@@ -14,245 +9,478 @@
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+-
+-#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-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c
new file mode 100644
index 000000000000..edd43c7c03c7
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c
@@ -0,0 +1,1543 @@
+--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c.orig 2023-07-12 15:59:35 UTC
++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c
+@@ -14,228 +14,1416 @@
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+-
+-#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-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
new file mode 100644
index 000000000000..afb19c804d7a
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk
@@ -0,0 +1,29 @@
+--- src/VBox/Additions/x11/vboxmouse/Makefile.kmk.orig 2019-01-25 18:24:30 UTC
++++ src/VBox/Additions/x11/vboxmouse/Makefile.kmk
+@@ -227,10 +227,22 @@ endif # neq ($(KBUILD_TARGET),linux)
+
+
+ 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-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp
new file mode 100644
index 000000000000..5ce43e5ce2d0
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp
@@ -0,0 +1,20 @@
+--- src/VBox/Devices/Graphics/DevVGA-SVGA.cpp.orig 2025-04-14 17:55:41 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
+@@ -7685,7 +7685,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-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp
new file mode 100644
index 000000000000..3a0a22e2ef76
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-05-12 17:49:35 UTC
++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-dx11.cpp
+@@ -3363,7 +3363,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-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp
new file mode 100644
index 000000000000..e9ae5d0b71f9
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h
new file mode 100644
index 000000000000..52d86f546033
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp
new file mode 100644
index 000000000000..74106db011ff
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src_VBox_Devices_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Makefile.kmk
new file mode 100644
index 000000000000..021d004d5a00
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Makefile.kmk
@@ -0,0 +1,44 @@
+--- src/VBox/Devices/Makefile.kmk.orig 2024-10-10 20:29:17.000000000 +0200
++++ src/VBox/Devices/Makefile.kmk 2024-12-27 13:26:17.132294000 +0100
+@@ -132,6 +132,7 @@
+ 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)
+
+@@ -286,6 +287,7 @@
+ -framework SystemConfiguration \
+ -framework AVFoundation \
+ -framework Foundation
++ VBoxDD_LDFLAGS.freebsd = $(VBOX_GCC_NO_UNDEFINED)
+ VBoxDD_LDFLAGS.linux = $(VBOX_GCC_NO_UNDEFINED)
+
+ # --- Tracing bits. ---
+@@ -331,7 +333,7 @@
+ 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
+@@ -390,6 +392,7 @@
+ 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
+@@ -1701,6 +1704,8 @@
+ 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-71/files/patch-src_VBox_Devices_PC_ipxe_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_PC_ipxe_Makefile.kmk
new file mode 100644
index 000000000000..d59d98da3b83
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_PC_ipxe_Makefile.kmk
@@ -0,0 +1,29 @@
+--- src/VBox/Devices/PC/ipxe/Makefile.kmk.orig 2025-01-21 19:56:40.000000000 +0700
++++ src/VBox/Devices/PC/ipxe/Makefile.kmk 2025-01-23 00:47:50.818978000 +0700
+@@ -45,7 +45,7 @@
+ 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 @@
+ -falign-loops=1 \
+ -Os \
+ -falign-functions=1 \
+- -mpreferred-stack-boundary=2 \
++ -mstack-alignment=2 \
+ -mregparm=3 \
+ -mrtd \
+ -freg-struct-return \
+@@ -154,7 +154,7 @@
+ -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-71/files/patch-src_VBox_Devices_USB_USBProxyDevice-freebsd.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_USB_USBProxyDevice-freebsd.cpp
new file mode 100644
index 000000000000..045e328d5c48
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_USB_USBProxyDevice-freebsd.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Devices/USB/freebsd/USBProxyDevice-freebsd.cpp.orig 2024-01-11 12:23:15 UTC
++++ src/VBox/Devices/USB/freebsd/USBProxyDevice-freebsd.cpp
+@@ -57,7 +57,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-71/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp
new file mode 100644
index 000000000000..f364e261f40b
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp
@@ -0,0 +1,58 @@
+--- src/VBox/ExtPacks/VNC/VBoxVNC.cpp.orig 2024-01-11 12:24:04 UTC
++++ src/VBox/ExtPacks/VNC/VBoxVNC.cpp
+@@ -45,7 +45,7 @@
+
+ #ifdef LIBVNCSERVER_IPv6
+ // enable manually!
+-// #define VBOX_USE_IPV6
++#define VBOX_USE_IPV6
+ #endif
+
+
+@@ -421,7 +421,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,
+@@ -582,19 +582,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-71/files/patch-src_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp
new file mode 100644
index 000000000000..ca03e57922b4
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp.orig 2024-12-26 22:32:13.106542000 +0100
++++ src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp 2024-12-26 22:32:32.805126000 +0100
+@@ -61,7 +61,7 @@
+ # 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-71/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp
new file mode 100644
index 000000000000..fc1639b58302
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp
@@ -0,0 +1,29 @@
+--- src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp.orig 2022-10-06 19:10:28.000000000 +0200
++++ src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp 2024-12-26 16:08:30.624183000 +0100
+@@ -170,7 +170,7 @@
+ 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
+@@ -382,7 +382,7 @@
+ 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
+@@ -2496,7 +2496,7 @@
+ 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-71/files/patch-src_VBox_HostDrivers_Support_SUPDrv.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrv.cpp
new file mode 100644
index 000000000000..4139a88a9929
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrv.cpp
@@ -0,0 +1,13 @@
+--- src/VBox/HostDrivers/Support/SUPDrv.cpp.orig 2024-12-27 08:34:02.157677000 +0100
++++ src/VBox/HostDrivers/Support/SUPDrv.cpp 2024-12-27 08:34:25.419134000 +0100
+@@ -317,8 +317,8 @@
+ 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-71/files/patch-src_VBox_HostDrivers_Support_SUPDrvInternal.h b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrvInternal.h
new file mode 100644
index 000000000000..7376ad6fbddd
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrvInternal.h
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/Support/SUPDrvInternal.h.orig 2021-01-07 15:41:25 UTC
++++ src/VBox/HostDrivers/Support/SUPDrvInternal.h
+@@ -217,7 +217,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-71/files/patch-src_VBox_HostDrivers_Support_freebsd_Makefile b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_Makefile
new file mode 100644
index 000000000000..a3b6a032b529
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_Makefile
@@ -0,0 +1,30 @@
+--- src/VBox/HostDrivers/Support/freebsd/Makefile.orig 2025-01-21 19:58:52.000000000 +0700
++++ src/VBox/HostDrivers/Support/freebsd/Makefile 2025-03-22 22:28:21.276497000 +0700
+@@ -93,6 +93,7 @@
+ assert.c \
+ handletable.c \
+ handletablectx.c \
++ handletablesimple.c \
+ once.c \
+ term.c \
+ thread.c
+@@ -117,7 +118,8 @@
+ strprintf2-ellipsis.c \
+ strtonum.c \
+ memchr.c \
+- stringalloc.c
++ stringalloc.c \
++ utf-8.c
+
+ .PATH: ${.CURDIR}/common/rand
+ SRCS += \
+@@ -163,7 +165,8 @@
+ 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-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c
new file mode 100644
index 000000000000..7faa07739f14
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPLib-freebsd.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPLib-freebsd.cpp
new file mode 100644
index 000000000000..95cbe0e2a32c
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPLib-freebsd.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp.orig 2024-10-10 20:31:28.000000000 +0200
++++ src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp 2024-11-17 18:27:46.400938000 +0100
+@@ -88,7 +88,7 @@
+ /*
+ * 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-71/files/patch-src_VBox_HostDrivers_Support_freebsd_files__vboxdrv b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_files__vboxdrv
new file mode 100644
index 000000000000..c5abc9bfadd1
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_files__vboxdrv
@@ -0,0 +1,34 @@
+--- src/VBox/HostDrivers/Support/freebsd//files_vboxdrv.orig 2025-01-21 19:58:53.000000000 +0700
++++ src/VBox/HostDrivers/Support/freebsd//files_vboxdrv 2025-03-17 00:31:16.880317000 +0700
+@@ -71,6 +71,7 @@
+ ${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 @@
+ ${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 @@
+ ${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 @@
+ ${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-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile
new file mode 100644
index 000000000000..e94dc6f85e27
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/VBoxNetAdp/freebsd/Makefile.orig 2019-05-13 13:33:07 UTC
++++ src/VBox/HostDrivers/VBoxNetAdp/freebsd/Makefile
+@@ -26,7 +26,7 @@
+
+ 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-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_VBoxNetAdp-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_VBoxNetAdp-freebsd.c
new file mode 100644
index 000000000000..8da432449fe1
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk
new file mode 100644
index 000000000000..9c7ab624c52a
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk.orig 2019-05-13 13:33:07 UTC
++++ src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk
+@@ -565,7 +565,7 @@ $(PATH_OUT)/opt_netgraph.h:
+ $(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-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile
new file mode 100644
index 000000000000..e819561ab9a8
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/VBoxNetFlt/freebsd/Makefile.orig 2019-05-13 13:33:07 UTC
++++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/Makefile
+@@ -26,7 +26,7 @@
+
+ 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-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c
new file mode 100644
index 000000000000..6e3d40a42e43
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp
new file mode 100644
index 000000000000..67573dc080a4
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp.orig 2022-01-13 18:57:40 UTC
++++ src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
+@@ -737,7 +737,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-71/files/patch-src_VBox_Main_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_Makefile.kmk
new file mode 100644
index 000000000000..f5693ffb72b4
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_Makefile.kmk
@@ -0,0 +1,10 @@
+--- src/VBox/Main/Makefile.kmk.orig 2024-10-10 20:31:38.000000000 +0200
++++ src/VBox/Main/Makefile.kmk 2024-12-27 13:32:31.610875000 +0100
+@@ -761,6 +761,7 @@
+
+ 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-71/files/patch-src_VBox_Main_include_HostPower.h b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_include_HostPower.h
new file mode 100644
index 000000000000..5718fe987ce4
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_include_HostPower.h
@@ -0,0 +1,20 @@
+--- src/VBox/Main/include/HostPower.h.orig 2021-01-07 15:41:38 UTC
++++ src/VBox/Main/include/HostPower.h
+@@ -31,7 +31,7 @@
+
+ #include <vector>
+
+-#ifdef RT_OS_LINUX
++#if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)
+ # include <VBox/dbus.h>
+ #endif
+
+@@ -67,7 +67,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-71/files/patch-src_VBox_Main_src-server_HostImpl.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_HostImpl.cpp
new file mode 100644
index 000000000000..d4c018b2fc23
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_HostImpl.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Main/src-server/HostImpl.cpp.orig 2021-01-07 15:41:42 UTC
++++ src/VBox/Main/src-server/HostImpl.cpp
+@@ -286,7 +286,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-71/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp
new file mode 100644
index 000000000000..631547ac9cee
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp
@@ -0,0 +1,24 @@
+--- src/VBox/Main/src-server/freebsd/PerformanceFreeBSD.cpp.orig 2017-07-27 13:18:27 UTC
++++ src/VBox/Main/src-server/freebsd/PerformanceFreeBSD.cpp
+@@ -80,8 +80,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))
+@@ -90,8 +92,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
+ rc = VERR_NOT_SUPPORTED;
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
new file mode 100644
index 000000000000..3133e4cbd207
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_Makefile.kmk
@@ -0,0 +1,29 @@
+--- src/VBox/Runtime/Makefile.kmk.orig 2025-01-21 19:59:19.000000000 +0700
++++ src/VBox/Runtime/Makefile.kmk 2025-03-23 20:54:34.250024000 +0700
+@@ -225,6 +225,9 @@
+ $(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.
+@@ -1468,6 +1471,7 @@
+ 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 \
+@@ -3011,6 +3015,8 @@
+ /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-71/files/patch-src_VBox_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c
new file mode 100644
index 000000000000..0ae2d847c0f6
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2024-10-10 20:32:14.000000000 +0200
++++ src/VBox/Runtime/r0drv/freebsd/alloc-r0drv-freebsd.c 2024-12-27 13:39:49.059878000 +0100
+@@ -88,6 +88,7 @@
+
+ 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 @@
+ 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 @@
+ *pPhys = vtophys(pv);
+ Assert(!(*pPhys & PAGE_OFFSET_MASK));
+ }
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return pv;
+ }
+
+@@ -147,7 +156,9 @@
+ 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-71/files/patch-src_VBox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c
new file mode 100644
index 000000000000..4c628cbe47a5
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2021-01-07 15:42:08 UTC
++++ src/VBox/Runtime/r0drv/freebsd/assert-r0drv-freebsd.c
+@@ -68,15 +68,18 @@
+
+ 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);
+@@ -84,6 +87,7 @@ DECLHIDDEN(void) rtR0AssertNativeMsg2V(bool fInitial,
+ printf("%s", szMsg);
+
+ NOREF(fInitial);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ }
+
+
diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
new file mode 100644
index 000000000000..4c0ed355709c
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c
new file mode 100644
index 000000000000..53bac187bde0
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2018-10-15 14:31:31 UTC
++++ src/VBox/Runtime/r0drv/freebsd/memuserkernel-r0drv-freebsd.c
+@@ -36,7 +36,9 @@
+
+ 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;
+@@ -45,7 +47,9 @@ RTR0DECL(int) RTR0MemUserCopyFrom(void *pvDst, RTR3PTR
+
+ 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-71/files/patch-src_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c
new file mode 100644
index 000000000000..8c68cae63a34
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2019-04-16 10:17:21 UTC
++++ src/VBox/Runtime/r0drv/freebsd/mp-r0drv-freebsd.c
+@@ -147,7 +147,9 @@ RTDECL(RTCPUID) RTMpGetOnlineCount(void)
+ 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();
+ }
+
+
+@@ -159,7 +161,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;
+ }
+
+@@ -175,7 +179,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();
++ }
+ }
+
+
+@@ -196,6 +204,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;
+@@ -207,6 +216,7 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER pfnWorker, void
+ #else
+ smp_rendezvous(NULL, rtmpOnOthersFreeBSDWrapper, NULL, &Args);
+ #endif
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ }
+ return VINF_SUCCESS;
+ }
+@@ -224,8 +234,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();
+ }
+ }
+
+@@ -248,6 +260,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);
+@@ -258,6 +271,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;
+@@ -287,12 +301,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-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c
new file mode 100644
index 000000000000..c84313e2f5e2
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2021-01-07 15:42:08 UTC
++++ src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c
+@@ -101,7 +101,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;
+
+@@ -152,10 +154,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;
+ }
+
+@@ -173,9 +177,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;
+ }
+
+@@ -199,6 +205,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);
+
+ /*
+@@ -248,6 +255,7 @@ static int rtR0SemEventWait(PRTSEMEVENTINTERNAL pThis,
+ }
+
+ rtR0SemEventBsdRelease(pThis);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return rc;
+ }
+
diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c
new file mode 100644
index 000000000000..d3571a937b1f
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2021-01-07 15:42:08 UTC
++++ src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c
+@@ -120,7 +120,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;
+@@ -176,10 +178,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;
+ }
+
+@@ -188,6 +192,7 @@ RTDECL(int) RTSemEventMultiSignal(RTSEMEVENTMULTI hEv
+ {
+ uint32_t fNew;
+ uint32_t fOld;
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ /*
+ * Validate input.
+@@ -214,12 +219,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.
+ */
+@@ -236,6 +244,7 @@ RTDECL(int) RTSemEventMultiReset(RTSEMEVENTMULTI hEve
+ ASMAtomicAndU32(&pThis->fStateAndGen, ~RTSEMEVENTMULTIBSD_STATE_MASK);
+
+ rtR0SemEventMultiBsdRelease(pThis);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -252,6 +261,7 @@ RTDECL(int) RTSemEventMultiReset(RTSEMEVENTMULTI hEve
+ static int rtR0SemEventMultiBsdWait(PRTSEMEVENTMULTIINTERNAL pThis, uint32_t fFlags, uint64_t uTimeout,
+ PCRTLOCKVALSRCPOS pSrcPos)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ uint32_t fOrgStateAndGen;
+ int rc;
+
+@@ -311,6 +321,7 @@ static int rtR0SemEventMultiBsdWait(PRTSEMEVENTMULTIIN
+ }
+
+ rtR0SemEventMultiBsdRelease(pThis);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return rc;
+ }
+
diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semfastmutex-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semfastmutex-r0drv-freebsd.c
new file mode 100644
index 000000000000..aeab0a76e37c
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2021-01-07 15:42:08 UTC
++++ src/VBox/Runtime/r0drv/freebsd/semfastmutex-r0drv-freebsd.c
+@@ -86,6 +86,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)
+@@ -94,8 +95,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;
+ }
+
+@@ -107,11 +110,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;
+ }
+
+@@ -121,8 +126,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;
+ }
+
+@@ -132,8 +140,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-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c
new file mode 100644
index 000000000000..6345ae10c562
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2018-10-15 14:31:31 UTC
++++ src/VBox/Runtime/r0drv/freebsd/semmutex-r0drv-freebsd.c
+@@ -62,6 +62,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)
+@@ -70,8 +71,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;
+ }
+
+@@ -83,12 +86,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;
+ }
+
+@@ -99,6 +104,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)
+ {
+@@ -133,6 +139,7 @@ RTDECL(int) RTSemMutexRequest(RTSEMMUTEX hMutexSem, R
+ } while (RTTimeSystemMilliTS() - StartTS < cMillies);
+ }
+
++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -149,6 +156,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)
+ {
+@@ -186,6 +194,7 @@ RTDECL(int) RTSemMutexRequestNoResume(RTSEMMUTEX hMut
+ } while (RTTimeSystemMilliTS() - StartTS < cMillies);
+ }
+
++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -201,8 +210,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-71/files/patch-src_VBox_Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c
new file mode 100644
index 000000000000..4a86a2e38eb2
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2021-01-07 15:42:09 UTC
++++ src/VBox/Runtime/r0drv/freebsd/spinlock-r0drv-freebsd.c
+@@ -106,7 +106,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;
+
+@@ -140,7 +142,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;
+ }
+
+@@ -166,6 +170,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-71/files/patch-src_VBox_Runtime_r0drv_freebsd_the-freebsd-kernel.h b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_the-freebsd-kernel.h
new file mode 100644
index 000000000000..c783814425f5
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c
new file mode 100644
index 000000000000..c1ba2d811cde
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2021-04-20 04:32:44 UTC
++++ src/VBox/Runtime/r0drv/freebsd/thread-r0drv-freebsd.c
+@@ -49,7 +49,6 @@ RTDECL(RTNATIVETHREAD) RTThreadNativeSelf(void)
+ static int rtR0ThreadFbsdSleepCommon(RTMSINTERVAL cMillies)
+ {
+ int rc;
+- int cTicks;
+
+ /*
+ * 0 ms sleep -> yield.
+@@ -60,30 +59,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:
+@@ -114,11 +117,13 @@ RTDECL(int) RTThreadSleepNoLog(RTMSINTERVAL cMillies)
+
+ 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 ... */
+ }
+
+@@ -167,12 +172,14 @@ RTDECL(void) RTThreadPreemptDisable(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-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c
new file mode 100644
index 000000000000..c9cd05c42397
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2021-01-07 15:42:09 UTC
++++ src/VBox/Runtime/r0drv/freebsd/thread2-r0drv-freebsd.c
+@@ -94,6 +94,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);
+@@ -110,6 +112,7 @@ DECLHIDDEN(int) rtThreadNativeSetPriority(PRTTHREADINT
+ thread_unlock(curthread);
+ #endif
+
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -159,6 +162,7 @@ static void rtThreadNativeMain(void *pvThreadInt)
+
+ DECLHIDDEN(int) rtThreadNativeCreate(PRTTHREADINT pThreadInt, PRTNATIVETHREAD pNativeThread)
+ {
++ IPRT_FREEBSD_SAVE_EFL_AC();
+ int rc;
+ struct proc *pProc;
+
+@@ -174,6 +178,7 @@ DECLHIDDEN(int) rtThreadNativeCreate(PRTTHREADINT pThr
+ }
+ else
+ rc = RTErrConvertFromErrno(rc);
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return rc;
+ }
+
diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c
new file mode 100644
index 000000000000..399328e16faa
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2021-01-07 15:42:09 UTC
++++ src/VBox/Runtime/r0drv/freebsd/time-r0drv-freebsd.c
+@@ -64,16 +64,23 @@
+
+ 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;
+ }
+
+
+@@ -91,8 +98,7 @@ RTDECL(uint64_t) RTTimeSystemMilliTS(void)
+
+ 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-71/files/patch-src_VBox_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c
new file mode 100644
index 000000000000..ee5b90f13c51
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2021-01-07 15:42:09 UTC
++++ src/VBox/Runtime/r0drv/freebsd/timer-r0drv-freebsd.c
+@@ -116,6 +116,7 @@ static void rtTimerFreeBSDCallback(void *pvTimer);
+ RTDECL(int) RTTimerCreateEx(PRTTIMER *ppTimer, uint64_t u64NanoInterval, uint32_t fFlags, PFNRTTIMER pfnTimer, void *pvUser)
+ {
+ *ppTimer = NULL;
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ /*
+ * Validate flags.
+@@ -145,6 +146,7 @@ RTDECL(int) RTTimerCreateEx(PRTTIMER *ppTimer, uint64_
+ callout_init(&pTimer->Callout, CALLOUT_MPSAFE);
+
+ *ppTimer = pTimer;
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -165,6 +167,8 @@ DECLINLINE(bool) rtTimerIsValid(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;
+@@ -177,6 +181,8 @@ RTDECL(int) RTTimerDestroy(PRTTIMER pTimer)
+ pTimer->u32Magic++;
+ callout_stop(&pTimer->Callout);
+ RTMemFree(pTimer);
++
++ IPRT_FREEBSD_RESTORE_EFL_AC();
+ return VINF_SUCCESS;
+ }
+
+@@ -184,6 +190,7 @@ RTDECL(int) RTTimerDestroy(PRTTIMER pTimer)
+ RTDECL(int) RTTimerStart(PRTTIMER pTimer, uint64_t u64First)
+ {
+ struct timeval tv;
++ IPRT_FREEBSD_SAVE_EFL_AC();
+
+ if (!rtTimerIsValid(pTimer))
+ return VERR_INVALID_HANDLE;
+@@ -207,12 +214,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)
+@@ -224,6 +234,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-71/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp
new file mode 100644
index 000000000000..87ae993446a3
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/patch-src_VBox_Runtime_r3_posix_process-creation-posix.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r3_posix_process-creation-posix.cpp
new file mode 100644
index 000000000000..83cabcb77b97
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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 2022-01-13 18:58:24 UTC
++++ src/VBox/Runtime/r3/posix/process-creation-posix.cpp
+@@ -30,7 +30,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)
+@@ -69,7 +69,7 @@
+ # include <shadow.h>
+ #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. */
+@@ -157,7 +157,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
+@@ -572,7 +572,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-71/files/patch-src_VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp
new file mode 100644
index 000000000000..b04b05811f86
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp
@@ -0,0 +1,59 @@
+--- src/VBox/VMM/VMMR3/PDMAsyncCompletionFileNormal.cpp.orig 2021-04-19 21:33:04.000000000 -0700
++++ src/VBox/VMM/VMMR3/PDMAsyncCompletionFileNormal.cpp 2021-05-18 11:45:08.396136000 -0700
+@@ -27,6 +27,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"
+
+@@ -1120,8 +1127,40 @@
+ */
+ 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-71/files/patch-src_VMM_Config.kmk b/emulators/virtualbox-ose-71/files/patch-src_VMM_Config.kmk
new file mode 100644
index 000000000000..1c44352c9409
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_VMM_Config.kmk
@@ -0,0 +1,11 @@
+--- src/VBox/VMM/Config.kmk.orig 2024-12-27 03:55:34.269311000 +0100
++++ src/VBox/VMM/Config.kmk 2024-12-27 03:42:41.858673000 +0100
+@@ -91,7 +91,7 @@
+ 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-71/files/patch-src_libs_xpcom18a4_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_Makefile.kmk
new file mode 100644
index 000000000000..c87ba535edb0
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_Makefile.kmk
@@ -0,0 +1,11 @@
+--- src/libs/xpcom18a4/Makefile.kmk.orig 2021-01-07 15:44:04 UTC
++++ src/libs/xpcom18a4/Makefile.kmk
+@@ -985,6 +985,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-71/files/patch-src_libs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c b/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c
new file mode 100644
index 000000000000..4d556c7cf5a0
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-01-21 20:03:59.000000000 +0700
++++ src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptsynch.c 2025-01-23 01:00:59.324267000 +0700
+@@ -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-71/files/patch-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h b/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h
new file mode 100644
index 000000000000..13af9aa6bffa
--- /dev/null
+++ b/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h
@@ -0,0 +1,17 @@
+--- src/libs/xpcom18a4/xpcom/io/nsLocalFileUnix.h.orig 2020-05-13 19:46:34 UTC
++++ src/libs/xpcom18a4/xpcom/io/nsLocalFileUnix.h
+@@ -72,14 +72,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-71/files/pkg-message.in b/emulators/virtualbox-ose-71/files/pkg-message.in
new file mode 100644
index 000000000000..27c14e0a2e2a
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/vboxheadless.in b/emulators/virtualbox-ose-71/files/vboxheadless.in
new file mode 100644
index 000000000000..5ddc5fc21d6c
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/vboxinit.in b/emulators/virtualbox-ose-71/files/vboxinit.in
new file mode 100644
index 000000000000..9895da9e362e
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/vboxwatchdog.in b/emulators/virtualbox-ose-71/files/vboxwatchdog.in
new file mode 100644
index 000000000000..c21bc03b3523
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/vboxwebsrv.in b/emulators/virtualbox-ose-71/files/vboxwebsrv.in
new file mode 100644
index 000000000000..a7e1e38e3090
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/files/virtualbox.desktop b/emulators/virtualbox-ose-71/files/virtualbox.desktop
new file mode 100644
index 000000000000..b0d09e2128b7
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/pkg-descr b/emulators/virtualbox-ose-71/pkg-descr
new file mode 100644
index 000000000000..1ba975e84e68
--- /dev/null
+++ b/emulators/virtualbox-ose-71/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-71/pkg-plist b/emulators/virtualbox-ose-71/pkg-plist
new file mode 100644
index 000000000000..426fd6b55c60
--- /dev/null
+++ b/emulators/virtualbox-ose-71/pkg-plist
@@ -0,0 +1,449 @@
+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/VBoxEFI32.fd
+lib/virtualbox/VBoxEFI64.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/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 2b3dc9f5941c..36da35e3c79c 100644
--- a/emulators/virtualbox-ose-additions-legacy/Makefile
+++ b/emulators/virtualbox-ose-additions-legacy/Makefile
@@ -40,7 +40,9 @@ MAKE_JOBS_UNSAFE= yes
CONFLICTS_INSTALL= virtualbox-ose-additions \
virtualbox-ose-additions-nox11 \
virtualbox-ose-additions-70 \
- virtualbox-ose-additions-nox11-70
+ virtualbox-ose-additions-nox11-70 \
+ virtualbox-ose-additions-71 \
+ virtualbox-ose-additions-nox11-71
PATCHDIR= ${.CURDIR}/../${PORTNAME}-legacy/files
EXTRACT_AFTER_ARGS= --exclude tools/*.x86 --exclude tools/*.amd64 --exclude Firmware
@@ -136,6 +138,10 @@ post-patch:
.if ${PORT_OPTIONS:MPAE}
@${ECHO_CMD} 'VBOX_FREEBSD = -DPAE' >> ${WRKSRC}/LocalConfig.kmk
.endif
+.if ${OSVERSION} >= 1500038
+ @${ECHO_CMD} 'HAVE_MNTOPTS_IN_LIBUTIL = 1' >> \
+ ${WRKSRC}/LocalConfig.kmk
+.endif
post-patch-X11-on:
@${ECHO_CMD} 'VBOX_USE_SYSTEM_XORG_HEADERS = 1' >> \
diff --git a/emulators/virtualbox-ose-additions/Makefile b/emulators/virtualbox-ose-additions/Makefile
index 8be00b188670..58ad514e9a9b 100644
--- a/emulators/virtualbox-ose-additions/Makefile
+++ b/emulators/virtualbox-ose-additions/Makefile
@@ -40,7 +40,9 @@ MAKE_JOBS_UNSAFE= yes
CONFLICTS_INSTALL= virtualbox-ose-additions-legacy \
virtualbox-ose-additions-nox11-legacy \
virtualbox-ose-additions-70 \
- virtualbox-ose-additions-nox11-70
+ virtualbox-ose-additions-nox11-70 \
+ virtualbox-ose-additions-71 \
+ virtualbox-ose-additions-nox11-71
PATCHDIR= ${.CURDIR}/../${PORTNAME}/files
EXTRACT_AFTER_ARGS= --exclude tools/*.x86 --exclude tools/*.amd64 --exclude Firmware
@@ -124,6 +126,10 @@ post-patch:
${WRKSRC}/src/VBox/Additions/x11/VBoxClient/Makefile.kmk
@${ECHO_CMD} 'VBOX_ICONV_DEFS = LIBICONV_PLUG' >> ${WRKSRC}/LocalConfig.kmk
.endif
+.if ${OSVERSION} >= 1500038
+ @${ECHO_CMD} 'HAVE_MNTOPTS_IN_LIBUTIL = 1' >> \
+ ${WRKSRC}/LocalConfig.kmk
+.endif
post-patch-X11-on:
@${ECHO_CMD} 'VBOX_USE_SYSTEM_XORG_HEADERS = 1' >> \
diff --git a/emulators/virtualbox-ose-kmod-70/Makefile b/emulators/virtualbox-ose-kmod-70/Makefile
index ce9164751791..aecfea40859f 100644
--- a/emulators/virtualbox-ose-kmod-70/Makefile
+++ b/emulators/virtualbox-ose-kmod-70/Makefile
@@ -33,8 +33,9 @@ CONFIGURE_ARGS+= --disable-alsa \
--disable-xpcom
CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
-CONFLICTS_INSTALL= virtualbox-ose-kmod \
- virtualbox-ose-kmod-legacy
+CONFLICTS_INSTALL= virtualbox-ose-kmod-legacy \
+ virtualbox-ose-kmod \
+ virtualbox-ose-kmod-71
PATCHDIR= ${.CURDIR}/../${PORTNAME}-70/files
PORTSCOUT= limit:^7\.0\.
@@ -43,11 +44,13 @@ SUB_LIST= OPSYS=${OPSYS} OSREL=${OSREL}
WRKSRC= ${WRKDIR}/VirtualBox-${DISTVERSION}
-OPTIONS_DEFINE= DEBUG VIMAGE
+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>
@@ -89,7 +92,7 @@ post-patch:
.if ${PORT_OPTIONS:MVIMAGE}
@${ECHO_CMD} 'VBOX_WITH_NETFLT_VIMAGE = 1' >> ${WRKSRC}/LocalConfig.kmk
.endif
- @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
+ @${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' \
diff --git a/emulators/virtualbox-ose-kmod-71/Makefile b/emulators/virtualbox-ose-kmod-71/Makefile
new file mode 100644
index 000000000000..804952dba81b
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-71/Makefile
@@ -0,0 +1,114 @@
+PORTNAME= virtualbox-ose
+DISTVERSION= 7.1.10
+CATEGORIES= emulators
+MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/
+PKGNAMESUFFIX= -kmod-71
+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}-71/files
+PORTSCOUT= limit:^7\.1\.
+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-71/distinfo b/emulators/virtualbox-ose-kmod-71/distinfo
new file mode 100644
index 000000000000..51307e08d320
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-71/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1749033863
+SHA256 (VirtualBox-7.1.10.tar.bz2) = 7d60010a4c9102613554b46f61d17b825c30ee59d8be071e52d8aac664ca9869
+SIZE (VirtualBox-7.1.10.tar.bz2) = 233395034
diff --git a/emulators/virtualbox-ose-kmod-71/files/pkg-message.in b/emulators/virtualbox-ose-kmod-71/files/pkg-message.in
new file mode 100644
index 000000000000..4e03cc0b5ec7
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-71/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-71/files/vboxnet.in b/emulators/virtualbox-ose-kmod-71/files/vboxnet.in
new file mode 100644
index 000000000000..af3d18884273
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-71/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-71/pkg-descr b/emulators/virtualbox-ose-kmod-71/pkg-descr
new file mode 100644
index 000000000000..d11d42a81c78
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-71/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-71/pkg-plist b/emulators/virtualbox-ose-kmod-71/pkg-plist
new file mode 100644
index 000000000000..b08a5706a028
--- /dev/null
+++ b/emulators/virtualbox-ose-kmod-71/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 da9ca28e61c8..15eb47c2a4a1 100644
--- a/emulators/virtualbox-ose-kmod-legacy/Makefile
+++ b/emulators/virtualbox-ose-kmod-legacy/Makefile
@@ -35,7 +35,8 @@ CONFIGURE_ARGS+= --disable-alsa \
CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-kmod \
- virtualbox-ose-kmod-70
+ virtualbox-ose-kmod-70 \
+ virtualbox-ose-kmod-71
PATCHDIR= ${.CURDIR}/../${PORTNAME}-legacy/files
PORTSCOUT= limit:^5\.
@@ -44,13 +45,15 @@ SUB_LIST= OPSYS=${OPSYS} OSREL=${OSREL}
WRKSRC= ${WRKDIR}/VirtualBox-${DISTVERSION}
-OPTIONS_DEFINE= DEBUG VIMAGE
+OPTIONS_DEFINE= DEBUG INVARIANTS VIMAGE
OPTIONS_DEFINE_i386= PAE
OPTIONS_DEFAULT= VIMAGE
OPTIONS_SUB= yes
DEBUG_DESC= Debug symbols, additional logs and assertions
+INVARIANTS_DESC= Use if kernel is compiled with INVARIANTS option
PAE_DESC= Build kernel modules for PAE-kernels
VIMAGE_DESC= VIMAGE virtual networking support
+INVARIANTS_CFLAGS= -DINVARIANTS
.include <bsd.port.options.mk>
@@ -98,7 +101,7 @@ post-patch:
.if ${PORT_OPTIONS:MPAE}
@${ECHO_CMD} 'VBOX_FREEBSD = -DPAE' >> ${WRKSRC}/LocalConfig.kmk
.endif
- @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
+ @${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' \
diff --git a/emulators/virtualbox-ose-kmod/Makefile b/emulators/virtualbox-ose-kmod/Makefile
index 9bbd0e6d5fa6..dd7d18bbdde5 100644
--- a/emulators/virtualbox-ose-kmod/Makefile
+++ b/emulators/virtualbox-ose-kmod/Makefile
@@ -35,7 +35,8 @@ CONFIGURE_ARGS+= --disable-alsa \
CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-kmod-legacy \
- virtualbox-ose-kmod-70
+ virtualbox-ose-kmod-70 \
+ virtualbox-ose-kmod-71
PATCHDIR= ${.CURDIR}/../${PORTNAME}/files
PORTSCOUT= limit:^6\.
@@ -44,11 +45,13 @@ SUB_LIST= OPSYS=${OPSYS} OSREL=${OSREL}
WRKSRC= ${WRKDIR}/VirtualBox-${DISTVERSION}
-OPTIONS_DEFINE= DEBUG VIMAGE
+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>
@@ -90,7 +93,7 @@ post-patch:
.if ${PORT_OPTIONS:MVIMAGE}
@${ECHO_CMD} 'VBOX_WITH_NETFLT_VIMAGE = 1' >> ${WRKSRC}/LocalConfig.kmk
.endif
- @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
+ @${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' \
diff --git a/emulators/virtualbox-ose-legacy/Makefile b/emulators/virtualbox-ose-legacy/Makefile
index d589ac286c37..074579b964f6 100644
--- a/emulators/virtualbox-ose-legacy/Makefile
+++ b/emulators/virtualbox-ose-legacy/Makefile
@@ -1,6 +1,6 @@
PORTNAME= virtualbox-ose
DISTVERSION= 5.2.44
-PORTREVISION?= 30
+PORTREVISION?= 32
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
LOCAL/bofh/emulators/virtualbox-ose-legacy:docs
@@ -42,7 +42,9 @@ CONFIGURE_ARGS+= --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose \
virtualbox-ose-nox11 \
virtualbox-ose-70 \
- virtualbox-ose-nox11-70
+ virtualbox-ose-nox11-70 \
+ virtualbox-ose-71 \
+ virtualbox-ose-nox11-71
PORTSCOUT= limit:^5\.
SUB_LIST= VBOXDIR=${VBOX_DIR} \
@@ -73,7 +75,7 @@ PLIST_SUB= GUEST_VER=${DISTVERSION} \
SLAVE_PORT?= no
OPTIONS_DEFINE= ALSA DBUS DEBUG DOCS GUESTADDITIONS NLS PULSEAUDIO \
- PYTHON QT5 R0LOGGING UDPTUNNEL VDE VNC WEBSERVICE VPX X11
+ PYTHON QT5 R0LOGGING UDPTUNNEL VDE VNC VPX WEBSERVICE X11
OPTIONS_DEFAULT= DBUS QT5 UDPTUNNEL VNC WEBSERVICE X11
.if ${SLAVE_PORT} == no
OPTIONS_DEFAULT+= PYTHON
diff --git a/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
index 4d327e1089b1..270472c045e3 100644
--- a/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
+++ b/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
@@ -1,6 +1,6 @@
---- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2018-11-29 19:03:21 UTC
+--- 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,23 @@
+@@ -0,0 +1,28 @@
+# $Id: Makefile.kmk $
+## @file
+# Sub-Makefile for the FreeBSD Shared folder mount utility.
@@ -19,8 +19,13 @@
+
+PROGRAMS += mount_vboxvfs
+mount_vboxvfs_TEMPLATE = NewVBoxGuestR3Exe
-+mount_vboxvfs_SOURCES = $(MOUNT)/getmntopts.c \
-+ mount_vboxvfs.c
++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-legacy/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp b/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp
new file mode 100644
index 000000000000..055a29c732a9
--- /dev/null
+++ b/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp
@@ -0,0 +1,47 @@
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp.orig 2020-07-09 16:55:07 UTC
++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp
+@@ -1094,7 +1094,7 @@ int vmsvga3dTerminate(PVGASTATE pThis)
+ RTSemEventDestroy(pState->WndRequestSem);
+ #elif defined(RT_OS_DARWIN)
+
+-#elif defined(RT_OS_LINUX)
++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ /* signal to the thread that it is supposed to exit */
+ pState->bTerminate = true;
+ /* wait for it to terminate */
+@@ -3200,7 +3200,7 @@ int vmsvga3dCommandPresent(PVGASTATE pThis, uint32_t s
+ return VINF_SUCCESS;
+ }
+
+-#ifdef RT_OS_LINUX
++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ /**
+ * X11 event handling thread.
+ *
+@@ -3230,7 +3230,7 @@ DECLCALLBACK(int) vmsvga3dXEventThread(RTTHREAD hThrea
+ }
+ return VINF_SUCCESS;
+ }
+-#endif // RT_OS_LINUX
++#endif // RT_OS_FREEBSD || RT_OS_LINUX
+
+
+ /**
+@@ -3590,7 +3590,7 @@ static int vmsvga3dContextDestroyOgl(PVGASTATE pThis,
+ AssertRC(rc);
+ #elif defined(RT_OS_DARWIN)
+ vmsvga3dCocoaDestroyViewAndContext(pContext->cocoaView, pContext->cocoaContext);
+-#elif defined(RT_OS_LINUX)
++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ glXMakeCurrent(pState->display, None, NULL);
+ glXDestroyContext(pState->display, pContext->glxContext);
+ XDestroyWindow(pState->display, pContext->window);
+@@ -3648,7 +3648,7 @@ static void vmsvga3dChangeModeOneContext(PVGASTATE pTh
+ RT_NOREF(pState);
+ vmsvga3dCocoaViewSetSize(pContext->cocoaView, pThis->svga.uWidth, pThis->svga.uHeight);
+
+-#elif defined(RT_OS_LINUX)
++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ XWindowChanges wc;
+ wc.width = pThis->svga.uWidth;
+ wc.height = pThis->svga.uHeight;
diff --git a/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c b/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
index cbc332611e9c..96e957fe7440 100644
--- a/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
+++ b/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
@@ -46,9 +46,9 @@
+ struct pctrie_iter pages;
+ vm_page_t page;
+
-+ pctrie_iter_init(&pages, pMemFreeBSD->pObject);
++ vm_page_iter_init(&pages, pMemFreeBSD->pObject);
+ VM_RADIX_FORALL(page, &pages)
-+ vm_page_unwire(page, PQ_INACTIVE);
++ (void)vm_page_unwire_noq(page);
+#endif
#if __FreeBSD_version >= 1000030
VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
@@ -248,6 +248,15 @@
if (PhysHighest != NIL_RTHCPHYS)
VmPhysAddrHigh = PhysHighest;
+@@ -453,7 +487,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
+ #else
+ VM_OBJECT_LOCK(pMemFreeBSD->pObject);
+ #endif
+- 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));
+ #if __FreeBSD_version >= 1000030
+ VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
+ #else
@@ -470,6 +504,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
rtR0MemObjDelete(&pMemFreeBSD->Core);
}
diff --git a/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Runtime_r3_xml.cpp b/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Runtime_r3_xml.cpp
new file mode 100644
index 000000000000..79dd02e083d7
--- /dev/null
+++ b/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Runtime_r3_xml.cpp
@@ -0,0 +1,53 @@
+--- src/VBox/Runtime/r3/xml.cpp.orig 2020-07-09 16:57:46 UTC
++++ src/VBox/Runtime/r3/xml.cpp
+@@ -1837,12 +1837,20 @@ static void xmlParserBaseGenericError(void *pCtx, cons
+ va_end(args);
+ }
+
++#if LIBXML_VERSION >= 21206
++static void xmlStructuredErrorFunc(void *userData, const xmlError *error)
++{
++ NOREF(userData);
++ NOREF(error);
++}
++#else
+ static void xmlParserBaseStructuredError(void *pCtx, xmlErrorPtr error)
+ {
+ NOREF(pCtx);
+ /* we expect that there is always a trailing NL */
+ LogRel(("XML error at '%s' line %d: %s", error->file, error->line, error->message));
+ }
++#endif
+
+ XmlParserBase::XmlParserBase()
+ {
+@@ -1851,7 +1859,11 @@ XmlParserBase::XmlParserBase()
+ throw std::bad_alloc();
+ /* per-thread so it must be here */
+ xmlSetGenericErrorFunc(NULL, xmlParserBaseGenericError);
++#if LIBXML_VERSION >= 21206
++ xmlSetStructuredErrorFunc(NULL, xmlStructuredErrorFunc);
++#else
+ xmlSetStructuredErrorFunc(NULL, xmlParserBaseStructuredError);
++#endif
+ }
+
+ XmlParserBase::~XmlParserBase()
+@@ -1912,7 +1924,7 @@ void XmlMemParser::read(const void *pvBuf, size_t cbSi
+ pcszFilename,
+ NULL, // encoding = auto
+ options)))
+- throw XmlError(xmlCtxtGetLastError(m_ctxt));
++ throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt));
+
+ doc.refreshInternals();
+ }
+@@ -2172,7 +2184,7 @@ void XmlFileParser::read(const RTCString &strFilename,
+ pcszFilename,
+ NULL, // encoding = auto
+ options)))
+- throw XmlError(xmlCtxtGetLastError(m_ctxt));
++ throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt));
+
+ doc.refreshInternals();
+ }
diff --git a/emulators/virtualbox-ose-legacy/files/vboxinit.in b/emulators/virtualbox-ose-legacy/files/vboxinit.in
index 13ec9614827d..9895da9e362e 100644
--- a/emulators/virtualbox-ose-legacy/files/vboxinit.in
+++ b/emulators/virtualbox-ose-legacy/files/vboxinit.in
@@ -37,7 +37,7 @@ 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 '{}\"'" | while read VMNAME UUID; do
+ ${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} ..."
@@ -50,7 +50,7 @@ vboxinit_start()
vboxinit_stop()
{
# Get all running machines
- ${su_command} "${command} list runningvms | /usr/bin/tr -d '{}\"'" | while read VMNAME UUID; do
+ ${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}"
@@ -75,7 +75,7 @@ load_rc_config $name
: ${vboxinit_user="%%VBOXUSER%%"}
: ${vboxinit_home=$(/usr/sbin/pw usershow -7 -n "${vboxinit_user}" | /usr/bin/cut -d: -f6)}
: ${vboxinit_stop="savestate"}
-: ${vboxinit_start_delay="0"}
+: ${vboxinit_start_delay="1"}
: ${vboxinit_stop_delay="0"}
HOME=${vboxinit_home}
USER=${vboxinit_user}
diff --git a/emulators/virtualbox-ose-nox11-70/Makefile b/emulators/virtualbox-ose-nox11-70/Makefile
index b1f9189a1bd4..26ca950b260b 100644
--- a/emulators/virtualbox-ose-nox11-70/Makefile
+++ b/emulators/virtualbox-ose-nox11-70/Makefile
@@ -1,10 +1,10 @@
-PORTREVISION= 0
+PORTREVISION= 3
PKGNAMESUFFIX= -nox11-70
MASTERDIR= ${.CURDIR}/../virtualbox-ose-70
-OPTIONS_EXCLUDE= ALSA DBUS DEBUG GUESTADDITIONS DOCS NLS PULSEAUDIO \
- QT5 VPX X11
+OPTIONS_EXCLUDE= ALSA DBUS DEBUG GUESTADDITIONS DOCS NLS OGG PULSEAUDIO \
+ QT5 VORBIS VPX X11
SLAVE_PORT= yes
diff --git a/emulators/virtualbox-ose-nox11-71/Makefile b/emulators/virtualbox-ose-nox11-71/Makefile
new file mode 100644
index 000000000000..66d0c82c9bc9
--- /dev/null
+++ b/emulators/virtualbox-ose-nox11-71/Makefile
@@ -0,0 +1,11 @@
+PORTREVISION= 1
+PKGNAMESUFFIX= -nox11-71
+
+MASTERDIR= ${.CURDIR}/../virtualbox-ose-71
+
+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-nox11-legacy/Makefile b/emulators/virtualbox-ose-nox11-legacy/Makefile
index 900f149bb944..e99d77e7eb63 100644
--- a/emulators/virtualbox-ose-nox11-legacy/Makefile
+++ b/emulators/virtualbox-ose-nox11-legacy/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 27
+PORTREVISION= 32
PKGNAMESUFFIX= -nox11-legacy
MASTERDIR= ${.CURDIR}/../virtualbox-ose-legacy
diff --git a/emulators/virtualbox-ose-nox11/Makefile b/emulators/virtualbox-ose-nox11/Makefile
index 743d0be9d248..a2dbb21fef32 100644
--- a/emulators/virtualbox-ose-nox11/Makefile
+++ b/emulators/virtualbox-ose-nox11/Makefile
@@ -1,9 +1,9 @@
-PORTREVISION= 12
+PORTREVISION= 15
PKGNAMESUFFIX= -nox11
MASTERDIR= ${.CURDIR}/../virtualbox-ose
-OPTIONS_EXCLUDE= ALSA DBUS DEBUG GUESTADDITIONS DOCS NLS PULSEAUDIO \
+OPTIONS_EXCLUDE= ALSA DBUS DEBUG GUESTADDITIONS DOCS NLS OPUS PULSEAUDIO \
QT5 VPX X11
SLAVE_PORT= yes
diff --git a/emulators/virtualbox-ose/Makefile b/emulators/virtualbox-ose/Makefile
index 8e6d0f8ba790..0ffd039cf2fe 100644
--- a/emulators/virtualbox-ose/Makefile
+++ b/emulators/virtualbox-ose/Makefile
@@ -1,6 +1,6 @@
PORTNAME= virtualbox-ose
DISTVERSION= 6.1.50
-PORTREVISION?= 12
+PORTREVISION?= 15
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
LOCAL/bofh/emulators/virtualbox-ose:docs
@@ -40,7 +40,9 @@ CONFIGURE_ARGS+= --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-legacy \
virtualbox-ose-nox11-legacy \
virtualbox-ose-70 \
- virtualbox-ose-nox11-70
+ virtualbox-ose-nox11-70 \
+ virtualbox-ose-71 \
+ virtualbox-ose-nox11-71
PORTSCOUT= limit:^6\.
SUB_FILES= pkg-message
@@ -73,7 +75,7 @@ PLIST_SUB= GUEST_VER=${DISTVERSION} \
SLAVE_PORT?= no
OPTIONS_DEFINE= AIO ALSA DBUS DEBUG DOCS GUESTADDITIONS NLS OPUS PULSEAUDIO \
- PYTHON QT5 R0LOGGING UDPTUNNEL VBOXIMG VDE VNC WEBSERVICE VPX X11
+ PYTHON QT5 R0LOGGING UDPTUNNEL VBOXIMG VDE VNC VPX WEBSERVICE X11
OPTIONS_DEFAULT= AIO DBUS QT5 UDPTUNNEL VNC WEBSERVICE X11
.if ${SLAVE_PORT} == no
OPTIONS_DEFAULT+= PYTHON
diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk b/emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
index 4d327e1089b1..270472c045e3 100644
--- a/emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
+++ b/emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk
@@ -1,6 +1,6 @@
---- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2018-11-29 19:03:21 UTC
+--- 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,23 @@
+@@ -0,0 +1,28 @@
+# $Id: Makefile.kmk $
+## @file
+# Sub-Makefile for the FreeBSD Shared folder mount utility.
@@ -19,8 +19,13 @@
+
+PROGRAMS += mount_vboxvfs
+mount_vboxvfs_TEMPLATE = NewVBoxGuestR3Exe
-+mount_vboxvfs_SOURCES = $(MOUNT)/getmntopts.c \
-+ mount_vboxvfs.c
++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/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp
new file mode 100644
index 000000000000..949c413d4ba3
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp
@@ -0,0 +1,20 @@
+--- src/VBox/Devices/Graphics/DevVGA-SVGA.cpp.orig 2024-01-11 12:18:20 UTC
++++ src/VBox/Devices/Graphics/DevVGA-SVGA.cpp
+@@ -169,7 +169,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
+@@ -3520,7 +3520,7 @@ static DECLCALLBACK(int) vmsvgaR3FifoLoop(PPDMDEVINS p
+ PVMSVGAR3STATE pSVGAState = pThisCC->svga.pSvgaR3State;
+ int rc;
+
+-# 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/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp
index c9574654562d..4bee4df8ce47 100644
--- a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp
+++ b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp
@@ -1,4 +1,4 @@
---- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp.orig 2021-01-07 15:39:16 UTC
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp.orig 2024-01-11 12:18:21 UTC
+++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp
@@ -186,7 +186,7 @@ int glLdrInit(PPDMDEVINS pDevIns)
pfn_wglDeleteContext = 0;
diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h
index 3069950947cd..34edb2b49799 100644
--- a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h
+++ b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h
@@ -1,6 +1,6 @@
---- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h.orig 2021-01-07 15:39:17 UTC
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h.orig 2024-01-11 12:18:21 UTC
+++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h
-@@ -338,7 +338,7 @@ GLPFN BOOL (WINAPI *pfn_wglMakeCurrent)(HDC, HGLRC);
+@@ -338,7 +338,7 @@ GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC);
GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC);
#define wglShareLists pfn_wglShareLists
diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-internal.h b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-internal.h
new file mode 100644
index 000000000000..1378f39b6a59
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-internal.h
@@ -0,0 +1,11 @@
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-internal.h.orig 2024-01-11 12:18:21 UTC
++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-internal.h
+@@ -1175,7 +1175,7 @@ typedef struct VMSVGAHWSCREEN
+ typedef struct VMSVGAHWSCREEN
+ {
+ uint32_t u32Reserved0;
+-#if defined(RT_OS_LINUX)
++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)
+ /* OpenGL context, which is used for the screen updates. */
+ GLXContext glxctx;
+
diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp
index 96058e78ff1f..b055a2606c79 100644
--- a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp
+++ b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp
@@ -1,4 +1,4 @@
---- src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp.orig 2021-01-07 15:39:17 UTC
+--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp.orig 2024-01-11 12:18:21 UTC
+++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp
@@ -1189,7 +1189,7 @@ int vmsvga3dTerminate(PVGASTATECC pThisCC)
RTSemEventDestroy(pState->WndRequestSem);
@@ -27,6 +27,24 @@
/**
+@@ -3461,7 +3461,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.
+ */
+@@ -3932,7 +3932,7 @@ int vmsvga3dBackSurfaceBlitToScreen(PVGASTATECC pThisC
+ return VINF_SUCCESS;
+ }
+
+-#else /* !RT_OS_LINUX */
++#else /* !RT_OS_FREEBSD && !RT_OS_LINUX */
+
+ int vmsvga3dBackDefineScreen(PVGASTATE pThis, PVGASTATECC pThisCC, VMSVGASCREENOBJECT *pScreen)
+ {
@@ -4052,7 +4052,7 @@ static int vmsvga3dContextDestroyOgl(PVGASTATECC pThis
AssertRC(rc);
#elif defined(RT_OS_DARWIN)
diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c b/emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
index cc243baf7aed..058d66c29a37 100644
--- a/emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
+++ b/emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c
@@ -46,9 +46,9 @@
+ struct pctrie_iter pages;
+ vm_page_t page;
+
-+ pctrie_iter_init(&pages, pMemFreeBSD->pObject);
++ vm_page_iter_init(&pages, pMemFreeBSD->pObject);
+ VM_RADIX_FORALL(page, &pages)
-+ vm_page_unwire(page, PQ_INACTIVE);
++ (void)vm_page_unwire_noq(page);
+#endif
VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
vm_object_deallocate(pMemFreeBSD->pObject);
@@ -174,6 +174,15 @@
if (PhysHighest != NIL_RTHCPHYS)
VmPhysAddrHigh = PhysHighest;
+@@ -453,7 +488,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;
+ }
@@ -466,6 +501,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB
rtR0MemObjDelete(&pMemFreeBSD->Core);
}
diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r3_xml.cpp b/emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r3_xml.cpp
new file mode 100644
index 000000000000..9f17777fdc2a
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r3_xml.cpp
@@ -0,0 +1,53 @@
+--- src/VBox/Runtime/r3/xml.cpp.orig 2024-01-11 12:26:05 UTC
++++ src/VBox/Runtime/r3/xml.cpp
+@@ -1837,12 +1837,20 @@ static void xmlParserBaseGenericError(void *pCtx, cons
+ va_end(args);
+ }
+
++#if LIBXML_VERSION >= 21206
++static void xmlStructuredErrorFunc(void *userData, const xmlError *error)
++{
++ NOREF(userData);
++ NOREF(error);
++}
++#else
+ static void xmlParserBaseStructuredError(void *pCtx, xmlErrorPtr error)
+ {
+ NOREF(pCtx);
+ /* we expect that there is always a trailing NL */
+ LogRel(("XML error at '%s' line %d: %s", error->file, error->line, error->message));
+ }
++#endif
+
+ XmlParserBase::XmlParserBase()
+ {
+@@ -1851,7 +1859,11 @@ XmlParserBase::XmlParserBase()
+ throw std::bad_alloc();
+ /* per-thread so it must be here */
+ xmlSetGenericErrorFunc(NULL, xmlParserBaseGenericError);
++#if LIBXML_VERSION >= 21206
++ xmlSetStructuredErrorFunc(NULL, xmlStructuredErrorFunc);
++#else
+ xmlSetStructuredErrorFunc(NULL, xmlParserBaseStructuredError);
++#endif
+ }
+
+ XmlParserBase::~XmlParserBase()
+@@ -1912,7 +1924,7 @@ void XmlMemParser::read(const void *pvBuf, size_t cbSi
+ pcszFilename,
+ NULL, // encoding = auto
+ options)))
+- throw XmlError(xmlCtxtGetLastError(m_ctxt));
++ throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt));
+
+ doc.refreshInternals();
+ }
+@@ -2172,7 +2184,7 @@ void XmlFileParser::read(const RTCString &strFilename,
+ pcszFilename,
+ NULL, // encoding = auto
+ options)))
+- throw XmlError(xmlCtxtGetLastError(m_ctxt));
++ throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt));
+
+ doc.refreshInternals();
+ }
diff --git a/emulators/virtualbox-ose/files/vboxinit.in b/emulators/virtualbox-ose/files/vboxinit.in
index 13ec9614827d..9895da9e362e 100644
--- a/emulators/virtualbox-ose/files/vboxinit.in
+++ b/emulators/virtualbox-ose/files/vboxinit.in
@@ -37,7 +37,7 @@ 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 '{}\"'" | while read VMNAME UUID; do
+ ${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} ..."
@@ -50,7 +50,7 @@ vboxinit_start()
vboxinit_stop()
{
# Get all running machines
- ${su_command} "${command} list runningvms | /usr/bin/tr -d '{}\"'" | while read VMNAME UUID; do
+ ${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}"
@@ -75,7 +75,7 @@ load_rc_config $name
: ${vboxinit_user="%%VBOXUSER%%"}
: ${vboxinit_home=$(/usr/sbin/pw usershow -7 -n "${vboxinit_user}" | /usr/bin/cut -d: -f6)}
: ${vboxinit_stop="savestate"}
-: ${vboxinit_start_delay="0"}
+: ${vboxinit_start_delay="1"}
: ${vboxinit_stop_delay="0"}
HOME=${vboxinit_home}
USER=${vboxinit_user}
diff --git a/emulators/wine-devel/Makefile b/emulators/wine-devel/Makefile
index 42173a71f552..d98676b38c45 100644
--- a/emulators/wine-devel/Makefile
+++ b/emulators/wine-devel/Makefile
@@ -1,12 +1,11 @@
PORTNAME= wine
-DISTVERSION= 10.6
-PORTREVISION= 1
+DISTVERSION= 10.10
PORTEPOCH= 1
CATEGORIES= emulators
MASTER_SITES= https://dl.winehq.org/wine/source/10.x/
PKGNAMESUFFIX= -devel
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= monwarez@mailoo.org
COMMENT= Microsoft Windows compatibility environment
WWW= https://www.winehq.org
@@ -44,7 +43,6 @@ CONFIGURE_ARGS+=--verbose \
--with-mingw CROSSCC="clang" \
--without-netapi \
--without-opencl \
- --without-osmesa \
--without-pcap \
--without-pcsclite \
--with-pthread \
@@ -72,7 +70,7 @@ PIE_UNSAFE= yes
PORTDATA= wine.inf
OPTIONS_DEFINE= CUPS DOCS DOSBOX GNUTLS V4L WAYLAND X11 GECKO MONO
-OPTIONS_DEFAULT=ALSA GNUTLS X11
+OPTIONS_DEFAULT=ALSA GNUTLS WAYLAND X11
OPTIONS_RADIO= AUDIO
OPTIONS_RADIO_AUDIO= ALSA OSS
OPTIONS_SUB= yes
@@ -100,10 +98,6 @@ GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
MONO_RUN_DEPENDS= wine-mono-devel>0:emulators/wine-mono-devel
-WAYLAND_BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:devel/evdev-proto
-WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland \
- libxkbcommon.so:x11/libxkbcommon
-
OSS_CONFIGURE_WITH= oss
OSS_USES= gnome gstreamer
OSS_USE= GNOME=glib20
@@ -113,6 +107,9 @@ V4L_BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat
V4L_LIB_DEPENDS= libv4l2.so:multimedia/libv4l
WAYLAND_CONFIGURE_WITH= wayland
+WAYLAND_BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:devel/evdev-proto
+WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland \
+ libxkbcommon.so:x11/libxkbcommon
X11_CONFIGURE_WITH= x fontconfig freetype opengl xinerama xinput2 xrandr xrender
X11_USES= gl xorg
@@ -150,7 +147,7 @@ post-patch:
${REINPLACE_CMD} '/Exec/s|wine|wine64|g' ${WRKSRC}/loader/wine.desktop
.else
-EXTRA_PATCHES+= files/extra-patch-tools-winebuild-res32
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-tools-winebuild-res32
PLIST_SUB+= WINE32="" WINE64="@comment " WINEARCH="i386"
.endif
diff --git a/emulators/wine-devel/distinfo b/emulators/wine-devel/distinfo
index 71d09994e6f0..261fa76cdef2 100644
--- a/emulators/wine-devel/distinfo
+++ b/emulators/wine-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1746303351
-SHA256 (wine-10.6.tar.xz) = 2af8809a3e987363752c8f7640efa72a7c9d3213d332437db87ce1d0d98e9061
-SIZE (wine-10.6.tar.xz) = 32380968
+TIMESTAMP = 1749898973
+SHA256 (wine-10.10.tar.xz) = e76466a5ca3197f399ddf8069b0a79e5eb2dffe5b3b7db9eb7272288330c8596
+SIZE (wine-10.10.tar.xz) = 32528748
diff --git a/emulators/wine-devel/files/patch-configure b/emulators/wine-devel/files/patch-configure
deleted file mode 100644
index 1b505cb0fd84..000000000000
--- a/emulators/wine-devel/files/patch-configure
+++ /dev/null
@@ -1,12 +0,0 @@
---- UTC
---- configure.orig 2024-08-10 14:38:54.000000000 +0000
-+++ configure 2024-08-10 23:43:05.264405000 +0000
-@@ -10662,7 +10662,7 @@
- llvm_extra_ldflags=""
- llvm_cflags=""
- case $llvm_target in
-- *windows) llvm_cflags="-Wl,-subsystem:console -Wl,-WX" ;;
-+ *windows) llvm_cflags="-Wl,-subsystem:console" ;;
- esac
- { as_ac_var=`printf "%s\n" "ac_cv_${wine_arch}_cflags_$llvm_extra_cflags $llvm_cflags --no-default-config" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $llvm_extra_cflags $llvm_cflags --no-default-config" >&5
diff --git a/emulators/wine-devel/files/wine-wow64.sh b/emulators/wine-devel/files/wine-wow64.sh
index fd96577fb486..47d8fcc90f2c 100644
--- a/emulators/wine-devel/files/wine-wow64.sh
+++ b/emulators/wine-devel/files/wine-wow64.sh
@@ -23,6 +23,9 @@ HERE
exit 1
fi
+# Export early so that external libs could be found
+export LD_32_LIBRARY_PATH="${LD_32_LIBRARY_PATH:+$LD_32_LIBRARY_PATH:}$I386_ROOT/$LOCALBASE/lib"
+
WINE32_VERSION=$(env -u WINELOADERNOEXEC "$I386_ROOT/$PREFIX/bin/wine" --version)
WINE64_VERSION=$(env -u WINELOADERNOEXEC "${TARGET}64" --version)
if [ "$WINE32_VERSION" != "$WINE64_VERSION" ]
diff --git a/emulators/wine-devel/pkg-plist b/emulators/wine-devel/pkg-plist
index 005c41812e6e..90a35cde7ec4 100644
--- a/emulators/wine-devel/pkg-plist
+++ b/emulators/wine-devel/pkg-plist
@@ -341,6 +341,7 @@ include/wine/windows/dbghelp.h
include/wine/windows/dbinit.idl
include/wine/windows/dbprop.idl
include/wine/windows/dbs.idl
+include/wine/windows/dbsrst.idl
include/wine/windows/dbt.h
include/wine/windows/dciddi.h
include/wine/windows/dciman.h
@@ -502,6 +503,7 @@ include/wine/windows/dxvahd.idl
include/wine/windows/dyngraph.idl
include/wine/windows/endpointvolume.h
include/wine/windows/endpointvolume.idl
+include/wine/windows/errhandlingapi.h
include/wine/windows/errorrep.h
include/wine/windows/errors.h
include/wine/windows/errrec.idl
@@ -1129,6 +1131,8 @@ include/wine/windows/windows.data.xml.dom.h
include/wine/windows/windows.data.xml.dom.idl
include/wine/windows/windows.devices.bluetooth.h
include/wine/windows/windows.devices.bluetooth.idl
+include/wine/windows/windows.devices.bluetooth.rfcomm.h
+include/wine/windows/windows.devices.bluetooth.rfcomm.idl
include/wine/windows/windows.devices.enumeration.h
include/wine/windows/windows.devices.enumeration.idl
include/wine/windows/windows.devices.geolocation.h
@@ -1202,6 +1206,8 @@ include/wine/windows/windows.networking.connectivity.h
include/wine/windows/windows.networking.connectivity.idl
include/wine/windows/windows.networking.h
include/wine/windows/windows.networking.idl
+include/wine/windows/windows.networking.sockets.h
+include/wine/windows/windows.networking.sockets.idl
include/wine/windows/windows.perception.spatial.h
include/wine/windows/windows.perception.spatial.idl
include/wine/windows/windows.perception.spatial.surfaces.h
@@ -1254,6 +1260,8 @@ include/wine/windows/windows.ui.input.h
include/wine/windows/windows.ui.input.idl
include/wine/windows/windows.ui.notifications.h
include/wine/windows/windows.ui.notifications.idl
+include/wine/windows/windows.ui.viewmanagement.core.h
+include/wine/windows/windows.ui.viewmanagement.core.idl
include/wine/windows/windows.ui.viewmanagement.h
include/wine/windows/windows.ui.viewmanagement.idl
include/wine/windows/windows.ui.xaml.h
@@ -1415,6 +1423,7 @@ lib/wine/%%WINEARCH%%-unix/libcomdlg32.a
lib/wine/%%WINEARCH%%-unix/libcoml2.a
lib/wine/%%WINEARCH%%-unix/libcompstui.a
lib/wine/%%WINEARCH%%-unix/libcomsvcs.a
+lib/wine/%%WINEARCH%%-unix/libcoremessaging.a
lib/wine/%%WINEARCH%%-unix/libcredui.a
lib/wine/%%WINEARCH%%-unix/libcrypt32.a
lib/wine/%%WINEARCH%%-unix/libcryptdll.a
@@ -1973,6 +1982,7 @@ lib/wine/%%WINEARCH%%-windows/libcoml2.a
lib/wine/%%WINEARCH%%-windows/libcompiler-rt.a
lib/wine/%%WINEARCH%%-windows/libcompstui.a
lib/wine/%%WINEARCH%%-windows/libcomsvcs.a
+lib/wine/%%WINEARCH%%-windows/libcoremessaging.a
lib/wine/%%WINEARCH%%-windows/libcredui.a
lib/wine/%%WINEARCH%%-windows/libcrypt32.a
lib/wine/%%WINEARCH%%-windows/libcryptdll.a
diff --git a/emulators/wine-mono-devel/Makefile b/emulators/wine-mono-devel/Makefile
index 7c9fd6b1ef68..f42c32b0d9d7 100644
--- a/emulators/wine-mono-devel/Makefile
+++ b/emulators/wine-mono-devel/Makefile
@@ -1,5 +1,5 @@
PORTNAME= wine-mono
-DISTVERSION= 10.0.0
+DISTVERSION= 10.1.0
DISTVERSIONSUFFIX=-x86
CATEGORIES= emulators
MASTER_SITES= http://dl.winehq.org/wine/wine-mono/${DISTVERSION}/
diff --git a/emulators/wine-mono-devel/distinfo b/emulators/wine-mono-devel/distinfo
index 6a01af90076e..661b7fcc3160 100644
--- a/emulators/wine-mono-devel/distinfo
+++ b/emulators/wine-mono-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1744149103
-SHA256 (wine-mono-10.0.0-x86.msi) = dbaca73e5d09f7a3a7c157ad04289af9ca47c3ced7012d46544a607046902b87
-SIZE (wine-mono-10.0.0-x86.msi) = 84493824
+TIMESTAMP = 1749978328
+SHA256 (wine-mono-10.1.0-x86.msi) = c88c2431890bc32cacec8d7ea70e53a5ae4b95c8c55ca6e75ef8db0e4ccf1070
+SIZE (wine-mono-10.1.0-x86.msi) = 85491712
diff --git a/emulators/wine/Makefile b/emulators/wine/Makefile
index fbe10774a157..13b3d6e84b7c 100644
--- a/emulators/wine/Makefile
+++ b/emulators/wine/Makefile
@@ -1,5 +1,6 @@
PORTNAME= wine
DISTVERSION= 10.0
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= emulators
MASTER_SITES= https://dl.winehq.org/wine/source/10.0/
@@ -147,16 +148,28 @@ PLIST_SUB+= WINE32="@comment " WINE64="" WINEARCH="x86_64"
# FreeBSD yet.
post-patch:
${REINPLACE_CMD} '/Exec/s|wine|wine64|g' ${WRKSRC}/loader/wine.desktop
+ ${MV} ${WRKSRC}/loader/*.man.in ${WRKSRC}/tools/wine/
.else
EXTRA_PATCHES+= files/extra-patch-tools-winebuild-res32
PLIST_SUB+= WINE32="" WINE64="@comment " WINEARCH="i386"
+
+post-patch:
+ ${MV} ${WRKSRC}/loader/*.man.in ${WRKSRC}/tools/wine/
.endif
pre-build:
cd ${WRKSRC} && ${SETENVI} ${WRK_ENV} ${MAKE_CMD} depend
post-install:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/man/man1
+ ${INSTALL_MAN} ${WRKSRC}/tools/wine/wine.man ${STAGEDIR}${PREFIX}/share/man/man1/wine.1
+ ${GZIP_CMD} ${STAGEDIR}${PREFIX}/share/man/man1/wine.1
+.for m in de.UTF-8 fr.UTF-8 pl.UTF-8
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/man/${m}/man1
+ ${INSTALL_MAN} ${WRKSRC}/tools/wine/wine.${m}.man ${STAGEDIR}${PREFIX}/share/man/${m}/man1/wine.1
+ ${GZIP_CMD} ${STAGEDIR}${PREFIX}/share/man/${m}/man1/wine.1
+.endfor
.if ${ARCH} == i386
${MV} ${STAGEDIR}${PREFIX}/bin/wineserver ${STAGEDIR}${PREFIX}/bin/wineserver32
${MV} ${STAGEDIR}${PREFIX}/bin/wine ${STAGEDIR}${PREFIX}/bin/wine.bin
diff --git a/emulators/wine/files/patch-man b/emulators/wine/files/patch-man
new file mode 100644
index 000000000000..849a560ae899
--- /dev/null
+++ b/emulators/wine/files/patch-man
@@ -0,0 +1,94 @@
+This backports (parts of)
+
+ commit 22a90656baebdbbe8ec30d3f00f86d6e34f1451e
+ Author: Alexandre Julliard <julliard@winehq.org>
+ Date: Thu Feb 13 13:44:17 2025 +0100
+
+ tools: Move the loader man pages to the new Wine loader directory.
+
+and
+
+ commit 6d28db86c9c2559e67a4820175416aff20f7abec
+ Author: Alexandre Julliard <julliard@winehq.org>
+ Date: Thu Feb 13 13:40:44 2025 +0100
+
+ tools: Add a simpler Wine launcher in the bin directory.
+
+with some tweaks and hacks in the port Makefile. Luckily all of this
+will be obsolete with the next major version.
+
+--- UTC
+--- configure
++++ configure
+@@ -1762,6 +1762,7 @@ enable_server
+ enable_tools
+ enable_sfnt2fon
+ enable_widl
++enable_wine
+ enable_winebuild
+ enable_winedump
+ enable_winegcc
+@@ -23212,6 +23214,7 @@ wine_fn_config_makefile server enable_server
+ test "x$enable_tools" = xno || wine_fn_config_makefile tools enable_tools
+ test "x$enable_tools" = xno || wine_fn_config_makefile tools/sfnt2fon enable_sfnt2fon
+ test "x$enable_tools" = xno || wine_fn_config_makefile tools/widl enable_widl
++test "x$enable_tools" = xno || wine_fn_config_makefile tools/wine enable_wine
+ test "x$enable_tools" = xno || wine_fn_config_makefile tools/winebuild enable_winebuild
+ test "x$enable_tools" = xno || wine_fn_config_makefile tools/winedump enable_winedump
+ test "x$enable_tools" = xno || wine_fn_config_makefile tools/winegcc enable_winegcc
+--- UTC
+--- configure.ac
++++ configure.ac
+@@ -3554,6 +3555,7 @@ WINE_CONFIG_MAKEFILE(server)
+ WINE_CONFIG_MAKEFILE(tools,,[test "x$enable_tools" = xno])
+ WINE_CONFIG_MAKEFILE(tools/sfnt2fon,,[test "x$enable_tools" = xno])
+ WINE_CONFIG_MAKEFILE(tools/widl,,[test "x$enable_tools" = xno])
++WINE_CONFIG_MAKEFILE(tools/wine,,[test "x$enable_tools" = xno])
+ WINE_CONFIG_MAKEFILE(tools/winebuild,,[test "x$enable_tools" = xno])
+ WINE_CONFIG_MAKEFILE(tools/winedump,,[test "x$enable_tools" = xno])
+ WINE_CONFIG_MAKEFILE(tools/winegcc,,[test "x$enable_tools" = xno])
+diff --git a/tools/wine/Makefile.in b/tools/wine/Makefile.in
+new file mode 100644
+index 00000000000..445e1dde9d0
+--- UTC
+--- /dev/null
++++ tools/wine/Makefile.in
+@@ -0,0 +1,8 @@
++PROGRAMS = wine
++
++SOURCES = \
++ wine.c \
++ wine.de.UTF-8.man.in \
++ wine.fr.UTF-8.man.in \
++ wine.man.in \
++ wine.pl.UTF-8.man.in
++
++wine_EXTRADEFS = -DBINDIR="\"${bindir}\"" -DLIBDIR="\"${libdir}\""
++
++INSTALL_LIB = $(PROGRAMS)
+--- UTC
+--- loader/Makefile.in
++++ loader/Makefile.in
+@@ -2,12 +2,8 @@ SOURCES = \
+ main.c \
+ preloader.c \
+ preloader_mac.c \
+- wine.de.UTF-8.man.in \
+ wine.desktop \
+- wine.fr.UTF-8.man.in \
+ wine.inf.in \
+- wine.man.in \
+- wine.pl.UTF-8.man.in \
+ wine_info.plist.in
+
+ PROGRAMS = $(WINELOADER_PROGRAMS)
+--- UTC
+--- /dev/null
++++ tools/wine/wine.c
+@@ -0,0 +1,6 @@
++#include <stdarg.h>
++
++int main( int argc, char *argv[] )
++{
++return 99;
++}
diff --git a/emulators/wine/pkg-plist b/emulators/wine/pkg-plist
index 0bfd77c65e01..23a7da444d60 100644
--- a/emulators/wine/pkg-plist
+++ b/emulators/wine/pkg-plist
@@ -2691,10 +2691,10 @@ lib/wine/%%WINEARCH%%-windows/xolehlp.dll
lib/wine/%%WINEARCH%%-windows/xpsprint.dll
lib/wine/%%WINEARCH%%-windows/xpssvcs.dll
share/applications/wine.desktop
-%%WINE32%%share/man/de.UTF-8/man1/wine.1.gz
+share/man/de.UTF-8/man1/wine.1.gz
share/man/de.UTF-8/man1/winemaker.1.gz
share/man/de.UTF-8/man1/wineserver.1.gz
-%%WINE32%%share/man/fr.UTF-8/man1/wine.1.gz
+share/man/fr.UTF-8/man1/wine.1.gz
share/man/fr.UTF-8/man1/winemaker.1.gz
share/man/fr.UTF-8/man1/wineserver.1.gz
share/man/man1/msiexec.1.gz
@@ -2702,7 +2702,7 @@ share/man/man1/notepad.1.gz
share/man/man1/regedit.1.gz
share/man/man1/regsvr32.1.gz
share/man/man1/widl.1.gz
-%%WINE32%%share/man/man1/wine.1.gz
+share/man/man1/wine.1.gz
share/man/man1/wineboot.1.gz
share/man/man1/winebuild.1.gz
share/man/man1/winecfg.1.gz
@@ -2719,7 +2719,7 @@ share/man/man1/winepath.1.gz
share/man/man1/wineserver.1.gz
share/man/man1/wmc.1.gz
share/man/man1/wrc.1.gz
-%%WINE32%%share/man/pl.UTF-8/man1/wine.1.gz
+share/man/pl.UTF-8/man1/wine.1.gz
%%DATADIR%%/nls/c_037.nls
%%DATADIR%%/nls/c_10000.nls
%%DATADIR%%/nls/c_10001.nls
diff --git a/emulators/yuzu/Makefile b/emulators/yuzu/Makefile
index 1a0d0950ed00..247f106f1fc9 100644
--- a/emulators/yuzu/Makefile
+++ b/emulators/yuzu/Makefile
@@ -1,6 +1,6 @@
PORTNAME= yuzu
PORTVERSION= s20240301
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= emulators wayland
.if make(makesum)
MASTER_SITES= https://api.yuzu-emu.org/gamedb/?dummy=/:gamedb
diff --git a/emulators/yuzu/files/patch-boost-1.88 b/emulators/yuzu/files/patch-boost-1.88
new file mode 100644
index 000000000000..39c5c71462ef
--- /dev/null
+++ b/emulators/yuzu/files/patch-boost-1.88
@@ -0,0 +1,24 @@
+src/core/debugger/debugger.cpp:9:10: fatal error: 'boost/process/async_pipe.hpp' file not found
+ 9 | #include <boost/process/async_pipe.hpp>
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+--- src/core/debugger/debugger.cpp.orig 2024-03-01 07:57:00 UTC
++++ src/core/debugger/debugger.cpp
+@@ -6,7 +6,7 @@
+ #include <thread>
+
+ #include <boost/asio.hpp>
+-#include <boost/process/async_pipe.hpp>
++#include <boost/process/v1/async_pipe.hpp>
+
+ #include "common/logging/log.h"
+ #include "common/polyfill_thread.h"
+@@ -326,7 +326,7 @@ class DebuggerImpl : public DebuggerBackend { (private
+
+ struct ConnectionState {
+ boost::asio::ip::tcp::socket client_socket;
+- boost::process::async_pipe signal_pipe;
++ boost::process::v1::async_pipe signal_pipe;
+
+ SignalInfo info;
+ Kernel::KScopedAutoObject<Kernel::KThread> active_thread;
diff --git a/emulators/yuzu/files/patch-fmt11 b/emulators/yuzu/files/patch-fmt11
new file mode 100644
index 000000000000..754174f11eb8
--- /dev/null
+++ b/emulators/yuzu/files/patch-fmt11
@@ -0,0 +1,301 @@
+http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu/commit/9efce7107229
+https://git.citron-emu.org/citron/emu/-/commit/7730d14b4a26
+
+--- src/common/logging/formatter.h.orig 2024-03-01 07:57:00 UTC
++++ src/common/logging/formatter.h
+@@ -14,7 +14,7 @@ struct fmt::formatter<T, std::enable_if_t<std::is_enum
+ struct fmt::formatter<T, std::enable_if_t<std::is_enum_v<T>, char>>
+ : formatter<std::underlying_type_t<T>> {
+ template <typename FormatContext>
+- auto format(const T& value, FormatContext& ctx) -> decltype(ctx.out()) {
++ auto format(const T& value, FormatContext& ctx) const -> decltype(ctx.out()) {
+ return fmt::formatter<std::underlying_type_t<T>>::format(
+ static_cast<std::underlying_type_t<T>>(value), ctx);
+ }
+--- src/common/typed_address.h.orig 2024-03-01 07:57:00 UTC
++++ src/common/typed_address.h
+@@ -262,7 +262,7 @@ struct fmt::formatter<Common::PhysicalAddress> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Common::PhysicalAddress& addr, FormatContext& ctx) {
++ auto format(const Common::PhysicalAddress& addr, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "{:#x}", static_cast<u64>(addr.GetValue()));
+ }
+ };
+@@ -273,7 +273,7 @@ struct fmt::formatter<Common::ProcessAddress> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Common::ProcessAddress& addr, FormatContext& ctx) {
++ auto format(const Common::ProcessAddress& addr, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "{:#x}", static_cast<u64>(addr.GetValue()));
+ }
+ };
+@@ -284,7 +284,7 @@ struct fmt::formatter<Common::VirtualAddress> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Common::VirtualAddress& addr, FormatContext& ctx) {
++ auto format(const Common::VirtualAddress& addr, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "{:#x}", static_cast<u64>(addr.GetValue()));
+ }
+ };
+--- src/core/arm/dynarmic/dynarmic_cp15.cpp.orig 2024-03-01 07:57:00 UTC
++++ src/core/arm/dynarmic/dynarmic_cp15.cpp
+@@ -22,7 +22,7 @@ struct fmt::formatter<Dynarmic::A32::CoprocReg> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Dynarmic::A32::CoprocReg& reg, FormatContext& ctx) {
++ auto format(const Dynarmic::A32::CoprocReg& reg, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "cp{}", static_cast<size_t>(reg));
+ }
+ };
+--- src/core/debugger/gdbstub.cpp.orig 2024-03-01 07:57:00 UTC
++++ src/core/debugger/gdbstub.cpp
+@@ -9,6 +9,7 @@
+ #include <thread>
+
+ #include <boost/algorithm/string.hpp>
++#include <fmt/ranges.h>
+
+ #include "common/hex_util.h"
+ #include "common/logging/log.h"
+--- src/core/hle/service/nfc/common/device.cpp.orig 2024-03-01 07:57:00 UTC
++++ src/core/hle/service/nfc/common/device.cpp
+@@ -14,7 +14,7 @@
+ #pragma warning(pop)
+ #endif
+
+-#include <fmt/format.h>
++#include <fmt/ranges.h>
+
+ #include "common/fs/file.h"
+ #include "common/fs/fs.h"
+--- src/core/hle/service/psc/time/common.h.orig 2024-03-01 07:57:00 UTC
++++ src/core/hle/service/psc/time/common.h
+@@ -167,7 +167,7 @@ struct fmt::formatter<Service::PSC::Time::TimeType> :
+ template <>
+ struct fmt::formatter<Service::PSC::Time::TimeType> : fmt::formatter<fmt::string_view> {
+ template <typename FormatContext>
+- auto format(Service::PSC::Time::TimeType type, FormatContext& ctx) {
++ auto format(Service::PSC::Time::TimeType type, FormatContext& ctx) const {
+ const string_view name = [type] {
+ using Service::PSC::Time::TimeType;
+ switch (type) {
+--- src/shader_recompiler/backend/glasm/reg_alloc.h.orig 2024-03-01 07:57:00 UTC
++++ src/shader_recompiler/backend/glasm/reg_alloc.h
+@@ -184,7 +184,7 @@ struct fmt::formatter<Shader::Backend::GLASM::Id> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(Shader::Backend::GLASM::Id id, FormatContext& ctx) {
++ auto format(Shader::Backend::GLASM::Id id, FormatContext& ctx) const {
+ return Shader::Backend::GLASM::FormatTo<true>(ctx, id);
+ }
+ };
+@@ -195,7 +195,7 @@ struct fmt::formatter<Shader::Backend::GLASM::Register
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::Backend::GLASM::Register& value, FormatContext& ctx) {
++ auto format(const Shader::Backend::GLASM::Register& value, FormatContext& ctx) const {
+ if (value.type != Shader::Backend::GLASM::Type::Register) {
+ throw Shader::InvalidArgument("Register value type is not register");
+ }
+@@ -209,7 +209,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarRe
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::Backend::GLASM::ScalarRegister& value, FormatContext& ctx) {
++ auto format(const Shader::Backend::GLASM::ScalarRegister& value, FormatContext& ctx) const {
+ if (value.type != Shader::Backend::GLASM::Type::Register) {
+ throw Shader::InvalidArgument("Register value type is not register");
+ }
+@@ -223,7 +223,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarU3
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::Backend::GLASM::ScalarU32& value, FormatContext& ctx) {
++ auto format(const Shader::Backend::GLASM::ScalarU32& value, FormatContext& ctx) const {
+ switch (value.type) {
+ case Shader::Backend::GLASM::Type::Void:
+ break;
+@@ -244,7 +244,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarS3
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::Backend::GLASM::ScalarS32& value, FormatContext& ctx) {
++ auto format(const Shader::Backend::GLASM::ScalarS32& value, FormatContext& ctx) const {
+ switch (value.type) {
+ case Shader::Backend::GLASM::Type::Void:
+ break;
+@@ -265,7 +265,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF3
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::Backend::GLASM::ScalarF32& value, FormatContext& ctx) {
++ auto format(const Shader::Backend::GLASM::ScalarF32& value, FormatContext& ctx) const {
+ switch (value.type) {
+ case Shader::Backend::GLASM::Type::Void:
+ break;
+@@ -286,7 +286,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF6
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::Backend::GLASM::ScalarF64& value, FormatContext& ctx) {
++ auto format(const Shader::Backend::GLASM::ScalarF64& value, FormatContext& ctx) const {
+ switch (value.type) {
+ case Shader::Backend::GLASM::Type::Void:
+ break;
+--- src/shader_recompiler/frontend/ir/attribute.h.orig 2024-03-01 07:57:00 UTC
++++ src/shader_recompiler/frontend/ir/attribute.h
+@@ -250,7 +250,7 @@ struct fmt::formatter<Shader::IR::Attribute> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::IR::Attribute& attribute, FormatContext& ctx) {
++ auto format(const Shader::IR::Attribute& attribute, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(attribute));
+ }
+ };
+--- src/shader_recompiler/frontend/ir/condition.h.orig 2024-03-01 07:57:00 UTC
++++ src/shader_recompiler/frontend/ir/condition.h
+@@ -52,7 +52,7 @@ struct fmt::formatter<Shader::IR::Condition> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::IR::Condition& cond, FormatContext& ctx) {
++ auto format(const Shader::IR::Condition& cond, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(cond));
+ }
+ };
+--- src/shader_recompiler/frontend/ir/flow_test.h.orig 2024-03-01 07:57:00 UTC
++++ src/shader_recompiler/frontend/ir/flow_test.h
+@@ -55,7 +55,7 @@ struct fmt::formatter<Shader::IR::FlowTest> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::IR::FlowTest& flow_test, FormatContext& ctx) {
++ auto format(const Shader::IR::FlowTest& flow_test, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(flow_test));
+ }
+ };
+--- src/shader_recompiler/frontend/ir/opcodes.h.orig 2024-03-01 07:57:00 UTC
++++ src/shader_recompiler/frontend/ir/opcodes.h
+@@ -103,7 +103,7 @@ struct fmt::formatter<Shader::IR::Opcode> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::IR::Opcode& op, FormatContext& ctx) {
++ auto format(const Shader::IR::Opcode& op, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(op));
+ }
+ };
+--- src/shader_recompiler/frontend/ir/pred.h.orig 2024-03-01 07:57:00 UTC
++++ src/shader_recompiler/frontend/ir/pred.h
+@@ -33,7 +33,7 @@ struct fmt::formatter<Shader::IR::Pred> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::IR::Pred& pred, FormatContext& ctx) {
++ auto format(const Shader::IR::Pred& pred, FormatContext& ctx) const {
+ if (pred == Shader::IR::Pred::PT) {
+ return fmt::format_to(ctx.out(), "PT");
+ } else {
+--- src/shader_recompiler/frontend/ir/reg.h.orig 2024-03-01 07:57:00 UTC
++++ src/shader_recompiler/frontend/ir/reg.h
+@@ -319,7 +319,7 @@ struct fmt::formatter<Shader::IR::Reg> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::IR::Reg& reg, FormatContext& ctx) {
++ auto format(const Shader::IR::Reg& reg, FormatContext& ctx) const {
+ if (reg == Shader::IR::Reg::RZ) {
+ return fmt::format_to(ctx.out(), "RZ");
+ } else if (static_cast<int>(reg) >= 0 && static_cast<int>(reg) < 255) {
+--- src/shader_recompiler/frontend/ir/type.h.orig 2024-03-01 07:57:00 UTC
++++ src/shader_recompiler/frontend/ir/type.h
+@@ -54,7 +54,7 @@ struct fmt::formatter<Shader::IR::Type> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::IR::Type& type, FormatContext& ctx) {
++ auto format(const Shader::IR::Type& type, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "{}", NameOf(type));
+ }
+ };
+--- src/shader_recompiler/frontend/maxwell/location.h.orig 2024-03-01 07:57:00 UTC
++++ src/shader_recompiler/frontend/maxwell/location.h
+@@ -102,7 +102,7 @@ struct fmt::formatter<Shader::Maxwell::Location> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::Maxwell::Location& location, FormatContext& ctx) {
++ auto format(const Shader::Maxwell::Location& location, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "{:04x}", location.Offset());
+ }
+ };
+--- src/shader_recompiler/frontend/maxwell/opcodes.h.orig 2024-03-01 07:57:00 UTC
++++ src/shader_recompiler/frontend/maxwell/opcodes.h
+@@ -23,7 +23,7 @@ struct fmt::formatter<Shader::Maxwell::Opcode> {
+ return ctx.begin();
+ }
+ template <typename FormatContext>
+- auto format(const Shader::Maxwell::Opcode& opcode, FormatContext& ctx) {
++ auto format(const Shader::Maxwell::Opcode& opcode, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "{}", NameOf(opcode));
+ }
+ };
+--- src/video_core/renderer_vulkan/renderer_vulkan.cpp.orig 2024-03-01 07:57:00 UTC
++++ src/video_core/renderer_vulkan/renderer_vulkan.cpp
+@@ -9,7 +9,7 @@
+ #include <string>
+ #include <vector>
+
+-#include <fmt/format.h>
++#include <fmt/ranges.h>
+
+ #include "common/logging/log.h"
+ #include "common/polyfill_ranges.h"
+--- src/video_core/texture_cache/formatter.h.orig 2024-03-01 07:57:00 UTC
++++ src/video_core/texture_cache/formatter.h
+@@ -13,7 +13,7 @@ struct fmt::formatter<VideoCore::Surface::PixelFormat>
+ template <>
+ struct fmt::formatter<VideoCore::Surface::PixelFormat> : fmt::formatter<fmt::string_view> {
+ template <typename FormatContext>
+- auto format(VideoCore::Surface::PixelFormat format, FormatContext& ctx) {
++ auto format(VideoCore::Surface::PixelFormat format, FormatContext& ctx) const {
+ using VideoCore::Surface::PixelFormat;
+ const string_view name = [format] {
+ switch (format) {
+@@ -234,7 +234,7 @@ struct fmt::formatter<VideoCommon::ImageType> : fmt::f
+ template <>
+ struct fmt::formatter<VideoCommon::ImageType> : fmt::formatter<fmt::string_view> {
+ template <typename FormatContext>
+- auto format(VideoCommon::ImageType type, FormatContext& ctx) {
++ auto format(VideoCommon::ImageType type, FormatContext& ctx) const {
+ const string_view name = [type] {
+ using VideoCommon::ImageType;
+ switch (type) {
+@@ -262,7 +262,7 @@ struct fmt::formatter<VideoCommon::Extent3D> {
+ }
+
+ template <typename FormatContext>
+- auto format(const VideoCommon::Extent3D& extent, FormatContext& ctx) {
++ auto format(const VideoCommon::Extent3D& extent, FormatContext& ctx) const {
+ return fmt::format_to(ctx.out(), "{{{}, {}, {}}}", extent.width, extent.height,
+ extent.depth);
+ }
+--- src/yuzu/main.cpp.orig 2024-03-01 07:57:00 UTC
++++ src/yuzu/main.cpp
+@@ -91,7 +91,7 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrap
+ #include <SDL.h> // For SDL ScreenSaver functions
+ #endif
+
+-#include <fmt/format.h>
++#include <fmt/ranges.h>
+ #include "common/detached_tasks.h"
+ #include "common/fs/fs.h"
+ #include "common/fs/path_util.h"
diff --git a/emulators/yuzu/files/patch-simpleini b/emulators/yuzu/files/patch-simpleini
deleted file mode 100644
index 3193801e9f05..000000000000
--- a/emulators/yuzu/files/patch-simpleini
+++ /dev/null
@@ -1,36 +0,0 @@
-Temporarily revert https://github.com/yuzu-emu/yuzu/commit/645961613fd5
-until devel/simpleini installs CMake config and/or pkg-config files.
-
---- CMakeModules/FindSimpleIni.cmake.orig 2024-01-26 15:23:08 UTC
-+++ CMakeModules/FindSimpleIni.cmake
-@@ -2,20 +2,18 @@
- #
- # SPDX-License-Identifier: GPL-3.0-or-later
-
-+find_path(SimpleIni_INCLUDE_DIR SimpleIni.h)
-+
- include(FindPackageHandleStandardArgs)
-+find_package_handle_standard_args(SimpleIni
-+ REQUIRED_VARS SimpleIni_INCLUDE_DIR
-+)
-
--find_package(SimpleIni QUIET CONFIG)
--if (SimpleIni_CONSIDERED_CONFIGS)
-- find_package_handle_standard_args(SimpleIni CONFIG_MODE)
--else()
-- find_package(PkgConfig QUIET)
-- pkg_search_module(SIMPLEINI QUIET IMPORTED_TARGET simpleini)
-- find_package_handle_standard_args(SimpleIni
-- REQUIRED_VARS SIMPLEINI_INCLUDEDIR
-- VERSION_VAR SIMPLEINI_VERSION
-+if (SimpleIni_FOUND AND NOT TARGET SimpleIni::SimpleIni)
-+ add_library(SimpleIni::SimpleIni INTERFACE IMPORTED)
-+ set_target_properties(SimpleIni::SimpleIni PROPERTIES
-+ INTERFACE_INCLUDE_DIRECTORIES "${SimpleIni_INCLUDE_DIR}"
- )
- endif()
-
--if (SimpleIni_FOUND AND NOT TARGET SimpleIni::SimpleIni)
-- add_library(SimpleIni::SimpleIni ALIAS PkgConfig::SIMPLEINI)
--endif()
-+mark_as_advanced(SimpleIni_INCLUDE_DIR)
diff --git a/emulators/z80pack/Makefile b/emulators/z80pack/Makefile
index dd8c145db602..1bd347e60e5b 100644
--- a/emulators/z80pack/Makefile
+++ b/emulators/z80pack/Makefile
@@ -2,7 +2,6 @@ PORTNAME= z80pack
DISTVERSION= 1.37
CATEGORIES= emulators
MASTER_SITES= https://www.autometer.de/unix4fun/z80pack/ftp/
-EXTRACT_SUFX= tgz
MAINTAINER= se@FreeBSD.org
COMMENT= Complete CP/M-80 emulator
@@ -13,6 +12,8 @@ CONFLICTS_INSTALL= hextools
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
+USES= tar:tgz
+
OPTIONS_DEFINE= DOCS
do-build:
diff --git a/emulators/z80pack/distinfo b/emulators/z80pack/distinfo
index a66190da0813..549e448cc1fc 100644
--- a/emulators/z80pack/distinfo
+++ b/emulators/z80pack/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1618153489
-SHA256 (z80pack-1.37tgz) = 0a4d199c822546e28fb9d8e055b4bf7ca4c1b984b2f707f99d39f00b80c59d2a
-SIZE (z80pack-1.37tgz) = 15674455
+TIMESTAMP = 1748766343
+SHA256 (z80pack-1.37.tgz) = 0a4d199c822546e28fb9d8e055b4bf7ca4c1b984b2f707f99d39f00b80c59d2a
+SIZE (z80pack-1.37.tgz) = 15674455