git: 2c62c7395b2d - main - emulators/yuzu: unbundle more libs after 6869c8470d18

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Sat, 10 Dec 2022 12:49:03 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2c62c7395b2da2de98e8c048be2d482a4e887297

commit 2c62c7395b2da2de98e8c048be2d482a4e887297
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2022-12-10 11:45:54 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2022-12-10 12:47:47 +0000

    emulators/yuzu: unbundle more libs after 6869c8470d18
    
    Some are left for later:
    - cpp-httplib package leaks brotli dependency into yuzu
    - cpp-jwt isn't packaged
    - cubeb isn't packaged
    - dynarmic isn't packaged
    - inih package is incompatible until USE_GCC is dropped (similar to libfmt)
    - spirv-headers isn't packaged
---
 emulators/yuzu/Makefile              |  11 ++--
 emulators/yuzu/distinfo              |   6 --
 emulators/yuzu/files/patch-fmt       |  59 -------------------
 emulators/yuzu/files/patch-libstdc++ | 106 +++++++++++++++++++++++++++++++++++
 emulators/yuzu/files/patch-libusb    |   5 +-
 5 files changed, 113 insertions(+), 74 deletions(-)

diff --git a/emulators/yuzu/Makefile b/emulators/yuzu/Makefile
index e59726577e11..f5a30cc59a3a 100644
--- a/emulators/yuzu/Makefile
+++ b/emulators/yuzu/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	yuzu
 PORTVERSION=	s20221206
+PORTREVISION=	1
 CATEGORIES=	emulators
 .if make(makesum)
 MASTER_SITES=	https://api.yuzu-emu.org/gamedb/?dummy=/:gamedb
@@ -29,11 +30,14 @@ BROKEN_FreeBSD_12=	htonl() in <x86/endian.h> fails -Werror=conversion
 
 BUILD_DEPENDS=	boost-libs>0:devel/boost-libs \
 		nlohmann-json>0:devel/nlohmann-json \
-		glslangValidator:graphics/glslang
+		xbyak>0:devel/xbyak \
+		glslangValidator:graphics/glslang \
+		vulkan-headers>0:graphics/vulkan-headers
 LIB_DEPENDS=	liblz4.so:archivers/liblz4 \
 		libzstd.so:archivers/zstd \
 		libopus.so:audio/opus \
-		libavcodec.so:multimedia/ffmpeg
+		libavcodec.so:multimedia/ffmpeg \
+		libenet.so:net/enet
 TEST_DEPENDS=	catch>0:devel/catch
 
 USE_GITHUB=	yes
@@ -42,14 +46,11 @@ GH_TAGNAME=	bfdd51278
 GH_TUPLE=	yuzu-emu:mbedtls:v2.16.9-115-g8c88150ca:mbedtls/externals/mbedtls \
 		yuzu-emu:sirit:d7ad93a:sirit/externals/sirit \
 		KhronosGroup:SPIRV-Headers:1.5.4.raytracing.fixed-201-gc214f6f:SPIRV_Headers/externals/sirit/externals/SPIRV-Headers \
-		KhronosGroup:Vulkan-Headers:v1.3.236:Vulkan_Headers/externals/Vulkan-Headers \
 		MerryMage:dynarmic:6.4.0:dynarmic/externals/dynarmic \
 		arun11299:cpp-jwt:v1.4-14-ge12ef06:cpp_jwt/externals/cpp-jwt \
 		arsenm:sanitizers-cmake:aab6948:sanitizers_cmake/externals/cubeb/cmake/sanitizers-cmake \
 		benhoyt:inih:r52:inih/externals/inih/inih \
-		herumi:xbyak:v6.64:xbyak/externals/xbyak \
 		kinetiknz:cubeb:cubeb-0.2-1350-gf79e0cf:cubeb/externals/cubeb \
-		lsalzman:enet:v1.3.13-14-g39a72ab:enet/externals/enet \
 		yhirose:cpp-httplib:v0.10.8-1-g305a7ab:cpp_httplib/externals/cpp-httplib
 
 USES=		cmake:testing compiler:c++17-lang elfctl localbase:ldflags pkgconfig sdl ssl
diff --git a/emulators/yuzu/distinfo b/emulators/yuzu/distinfo
index 91b0aa06eb01..2b22a468c6e8 100644
--- a/emulators/yuzu/distinfo
+++ b/emulators/yuzu/distinfo
@@ -9,8 +9,6 @@ SHA256 (yuzu-emu-sirit-d7ad93a_GH0.tar.gz) = f338a73c12bcc4e6c18a1a8104ca7bf30af
 SIZE (yuzu-emu-sirit-d7ad93a_GH0.tar.gz) = 23652
 SHA256 (KhronosGroup-SPIRV-Headers-1.5.4.raytracing.fixed-201-gc214f6f_GH0.tar.gz) = 5e32aefc599e6d26c2373b7296a37980b9c6c7ff6f636d5eee49f79b437e5a51
 SIZE (KhronosGroup-SPIRV-Headers-1.5.4.raytracing.fixed-201-gc214f6f_GH0.tar.gz) = 445472
-SHA256 (KhronosGroup-Vulkan-Headers-v1.3.236_GH0.tar.gz) = a86b8c38618b764057b359cf0f18c12a7c81b7760fe6fca1acf9adb471d55d4c
-SIZE (KhronosGroup-Vulkan-Headers-v1.3.236_GH0.tar.gz) = 1764329
 SHA256 (MerryMage-dynarmic-6.4.0_GH0.tar.gz) = c1abcd2acd728f7aae2f768d72578b73dc222aa8e410d1249a8ed82937f3b779
 SIZE (MerryMage-dynarmic-6.4.0_GH0.tar.gz) = 2620474
 SHA256 (arun11299-cpp-jwt-v1.4-14-ge12ef06_GH0.tar.gz) = 0409fa5413800fb291251cf3142e07a43fd4064996fee0e793323d3a74dd33b8
@@ -19,12 +17,8 @@ SHA256 (arsenm-sanitizers-cmake-aab6948_GH0.tar.gz) = d9009e17948aff769a6f6e16b5
 SIZE (arsenm-sanitizers-cmake-aab6948_GH0.tar.gz) = 7240
 SHA256 (benhoyt-inih-r52_GH0.tar.gz) = 439cff9ce9a8afc52d08772ac3e93b3cecd79c7707f871fb4534fb3a48201880
 SIZE (benhoyt-inih-r52_GH0.tar.gz) = 16808
-SHA256 (herumi-xbyak-v6.64_GH0.tar.gz) = 836b125677e2b0c3d14d624600b8f8bb8342ab5680193559c57835267b709109
-SIZE (herumi-xbyak-v6.64_GH0.tar.gz) = 247663
 SHA256 (kinetiknz-cubeb-cubeb-0.2-1350-gf79e0cf_GH0.tar.gz) = 8629757290774a34ed3fcd53b6491e9ccc96231018406c58c493f336b3ced908
 SIZE (kinetiknz-cubeb-cubeb-0.2-1350-gf79e0cf_GH0.tar.gz) = 220847
-SHA256 (lsalzman-enet-v1.3.13-14-g39a72ab_GH0.tar.gz) = bac947ed61414d92ac4689d677f25ab457f29efe4b676547f56b4e913daa6d54
-SIZE (lsalzman-enet-v1.3.13-14-g39a72ab_GH0.tar.gz) = 79521
 SHA256 (yhirose-cpp-httplib-v0.10.8-1-g305a7ab_GH0.tar.gz) = 2b8ebbe60c5fab1254e454518108cb8da5ee3a07e1cf9f432448d985efe4a003
 SIZE (yhirose-cpp-httplib-v0.10.8-1-g305a7ab_GH0.tar.gz) = 620778
 SHA256 (c17d71240b23.patch) = 4aaf5522ec3f7d393cec59638220d6142489c4e946060ec94444ca3f47e2b2a7
diff --git a/emulators/yuzu/files/patch-fmt b/emulators/yuzu/files/patch-fmt
deleted file mode 100644
index ebc122570634..000000000000
--- a/emulators/yuzu/files/patch-fmt
+++ /dev/null
@@ -1,59 +0,0 @@
-Partially revert https://github.com/yuzu-emu/yuzu/commit/bc30a591ba72
-
-/usr/local/bin/ld: src/yuzu/CMakeFiles/yuzu.dir/about_dialog.cpp.o: in function `AboutDialog::AboutDialog(QWidget*)':
-about_dialog.cpp:(.text+0x3d3): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: src/yuzu/CMakeFiles/yuzu.dir/applets/web_browser.cpp.o: in function `QtNXWebEngineView::LoadExtractedFonts()':
-web_browser.cpp:(.text+0x14e7): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: src/yuzu/CMakeFiles/yuzu.dir/configuration/config.cpp.o: in function `Config::Initialize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
-config.cpp:(.text+0x11064): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: config.cpp:(.text+0x111cc): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: config.cpp:(.text+0x1136c): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: src/yuzu/CMakeFiles/yuzu.dir/configuration/configure_per_game.cpp.o:configure_per_game.cpp:(.text+0x1348): more undefined references to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)' follow
-/usr/local/bin/ld: src/core/libcore.a(core.cpp.o): in function `void fmt::v7::detail::format_value<char, Loader::ResultStatus>(fmt::v7::detail::buffer<char>&, Loader::ResultStatus const&, fmt::v7::detail::locale_ref)':
-core.cpp:(.text._ZN3fmt2v76detail12format_valueIcN6Loader12ResultStatusEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE[_ZN3fmt2v76detail12format_valueIcN6Loader12ResultStatusEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE]+0x10f): undefined reference to `std::locale fmt::v7::detail::locale_ref::get<std::locale>() const'
-/usr/local/bin/ld: src/core/libcore.a(key_manager.cpp.o): in function `Core::Crypto::KeyManager::SetKey(Core::Crypto::S128KeyType, std::array<unsigned char, 16ul>, unsigned long, unsigned long)':
-key_manager.cpp:(.text+0x6d22): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: key_manager.cpp:(.text+0x6e8f): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: key_manager.cpp:(.text+0x6fc1): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: key_manager.cpp:(.text+0x7057): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: key_manager.cpp:(.text+0x709d): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: src/core/libcore.a(key_manager.cpp.o):key_manager.cpp:(.text+0x70e3): more undefined references to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)' follow
-/usr/local/bin/ld: src/core/libcore.a(boxcat.cpp.o): in function `void fmt::v7::detail::value<fmt::v7::basic_format_context<fmt::v7::detail::buffer_appender<char>, char> >::format_custom_arg<Service::BCAT::(anonymous namespace)::DownloadResult, fmt::v7::detail::fallback_formatter<Service::BCAT::(anonymous namespace)::DownloadResult, char, void> >(void const*, fmt::v7::basic_format_parse_context<char, fmt::v7::detail::error_handler>&, fmt::v7::basic_format_context<fmt::v7::detail::buffer_appender<char>, char>&)':
-boxcat.cpp:(.text+0x4492): undefined reference to `std::locale fmt::v7::detail::locale_ref::get<std::locale>() const'
-/usr/local/bin/ld: src/core/libcore.a(boxcat.cpp.o): in function `Service::BCAT::Boxcat::Client::DownloadInternal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
-boxcat.cpp:(.text+0x4fc4): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: src/core/libcore.a(boxcat.cpp.o): in function `Service::BCAT::SynchronizeInternal(Service::AM::Applets::AppletManager&, std::function<std::shared_ptr<FileSys::VfsDirectory> (unsigned long)>, Service::BCAT::TitleIDVersion, Service::BCAT::ProgressServiceBackend&, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)':
-boxcat.cpp:(.text+0x5c80): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: boxcat.cpp:(.text+0x5d4b): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: src/core/libcore.a(boxcat.cpp.o): in function `Service::BCAT::Boxcat::GetLaunchParameter(Service::BCAT::TitleIDVersion)':
-boxcat.cpp:(.text+0x6e98): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: boxcat.cpp:(.text+0x70ac): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: src/core/libcore.a(bis_factory.cpp.o):bis_factory.cpp:(.text+0xacf): more undefined references to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)' follow
-/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(basic_block.cpp.o): in function `void fmt::v7::detail::format_value<char, Dynarmic::IR::LocationDescriptor>(fmt::v7::detail::buffer<char>&, Dynarmic::IR::LocationDescriptor const&, fmt::v7::detail::locale_ref)':
-basic_block.cpp:(.text._ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR18LocationDescriptorEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE[_ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR18LocationDescriptorEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE]+0x10f): undefined reference to `std::locale fmt::v7::detail::locale_ref::get<std::locale>() const'
-/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(location_descriptor.cpp.o): in function `Dynarmic::IR::operator<<(std::ostream&, Dynarmic::IR::LocationDescriptor const&)':
-location_descriptor.cpp:(.text+0x37): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(a32_emit_x64.cpp.o): in function `Dynarmic::Backend::X64::A32EmitX64::LocationDescriptorToFriendlyName[abi:cxx11](Dynarmic::IR::LocationDescriptor const&) const':
-a32_emit_x64.cpp:(.text+0x69c): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(a32_emit_x64.cpp.o): in function `Dynarmic::Backend::X64::A32EmitX64::GenFastmemFallbacks()':
-a32_emit_x64.cpp:(.text+0x4f76): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: a32_emit_x64.cpp:(.text+0x5366): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(a64_emit_x64.cpp.o): in function `Dynarmic::Backend::X64::A64EmitX64::LocationDescriptorToFriendlyName[abi:cxx11](Dynarmic::IR::LocationDescriptor const&) const':
-a64_emit_x64.cpp:(.text+0x65): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
-/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(a64_emit_x64.cpp.o):a64_emit_x64.cpp:(.text+0x533d): more undefined references to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)' follow
-/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(microinstruction.cpp.o): in function `void fmt::v7::detail::format_value<char, Dynarmic::IR::Opcode>(fmt::v7::detail::buffer<char>&, Dynarmic::IR::Opcode const&, fmt::v7::detail::locale_ref)':
-microinstruction.cpp:(.text._ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR6OpcodeEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE[_ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR6OpcodeEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE]+0x10f): undefined reference to `std::locale fmt::v7::detail::locale_ref::get<std::locale>() const'
-/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(microinstruction.cpp.o): in function `void fmt::v7::detail::format_value<char, Dynarmic::IR::Type>(fmt::v7::detail::buffer<char>&, Dynarmic::IR::Type const&, fmt::v7::detail::locale_ref)':
-microinstruction.cpp:(.text._ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR4TypeEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE[_ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR4TypeEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE]+0x10f): undefined reference to `std::locale fmt::v7::detail::locale_ref::get<std::locale>() const'
-collect2: error: ld returned 1 exit status
-
---- CMakeLists.txt.orig	2022-12-05 17:26:09 UTC
-+++ CMakeLists.txt
-@@ -200,7 +200,6 @@ find_package(enet 1.3)
- # =======================================================================
- 
- find_package(enet 1.3)
--find_package(fmt 9 REQUIRED)
- find_package(inih)
- find_package(lz4 1.8 REQUIRED)
- find_package(nlohmann_json 3.8 REQUIRED)
diff --git a/emulators/yuzu/files/patch-libstdc++ b/emulators/yuzu/files/patch-libstdc++
new file mode 100644
index 000000000000..b20ce1016bf9
--- /dev/null
+++ b/emulators/yuzu/files/patch-libstdc++
@@ -0,0 +1,106 @@
+Partially revert https://github.com/yuzu-emu/yuzu/commit/8e17b5469fc7
+
+/usr/local/bin/ld: src/yuzu/CMakeFiles/yuzu.dir/about_dialog.cpp.o: in function `AboutDialog::AboutDialog(QWidget*)':
+about_dialog.cpp:(.text+0x3d3): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: src/yuzu/CMakeFiles/yuzu.dir/applets/web_browser.cpp.o: in function `QtNXWebEngineView::LoadExtractedFonts()':
+web_browser.cpp:(.text+0x14e7): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: src/yuzu/CMakeFiles/yuzu.dir/configuration/config.cpp.o: in function `Config::Initialize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
+config.cpp:(.text+0x11064): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: config.cpp:(.text+0x111cc): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: config.cpp:(.text+0x1136c): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: src/yuzu/CMakeFiles/yuzu.dir/configuration/configure_per_game.cpp.o:configure_per_game.cpp:(.text+0x1348): more undefined references to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)' follow
+/usr/local/bin/ld: src/core/libcore.a(core.cpp.o): in function `void fmt::v7::detail::format_value<char, Loader::ResultStatus>(fmt::v7::detail::buffer<char>&, Loader::ResultStatus const&, fmt::v7::detail::locale_ref)':
+core.cpp:(.text._ZN3fmt2v76detail12format_valueIcN6Loader12ResultStatusEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE[_ZN3fmt2v76detail12format_valueIcN6Loader12ResultStatusEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE]+0x10f): undefined reference to `std::locale fmt::v7::detail::locale_ref::get<std::locale>() const'
+/usr/local/bin/ld: src/core/libcore.a(key_manager.cpp.o): in function `Core::Crypto::KeyManager::SetKey(Core::Crypto::S128KeyType, std::array<unsigned char, 16ul>, unsigned long, unsigned long)':
+key_manager.cpp:(.text+0x6d22): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: key_manager.cpp:(.text+0x6e8f): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: key_manager.cpp:(.text+0x6fc1): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: key_manager.cpp:(.text+0x7057): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: key_manager.cpp:(.text+0x709d): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: src/core/libcore.a(key_manager.cpp.o):key_manager.cpp:(.text+0x70e3): more undefined references to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)' follow
+/usr/local/bin/ld: src/core/libcore.a(boxcat.cpp.o): in function `void fmt::v7::detail::value<fmt::v7::basic_format_context<fmt::v7::detail::buffer_appender<char>, char> >::format_custom_arg<Service::BCAT::(anonymous namespace)::DownloadResult, fmt::v7::detail::fallback_formatter<Service::BCAT::(anonymous namespace)::DownloadResult, char, void> >(void const*, fmt::v7::basic_format_parse_context<char, fmt::v7::detail::error_handler>&, fmt::v7::basic_format_context<fmt::v7::detail::buffer_appender<char>, char>&)':
+boxcat.cpp:(.text+0x4492): undefined reference to `std::locale fmt::v7::detail::locale_ref::get<std::locale>() const'
+/usr/local/bin/ld: src/core/libcore.a(boxcat.cpp.o): in function `Service::BCAT::Boxcat::Client::DownloadInternal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
+boxcat.cpp:(.text+0x4fc4): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: src/core/libcore.a(boxcat.cpp.o): in function `Service::BCAT::SynchronizeInternal(Service::AM::Applets::AppletManager&, std::function<std::shared_ptr<FileSys::VfsDirectory> (unsigned long)>, Service::BCAT::TitleIDVersion, Service::BCAT::ProgressServiceBackend&, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)':
+boxcat.cpp:(.text+0x5c80): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: boxcat.cpp:(.text+0x5d4b): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: src/core/libcore.a(boxcat.cpp.o): in function `Service::BCAT::Boxcat::GetLaunchParameter(Service::BCAT::TitleIDVersion)':
+boxcat.cpp:(.text+0x6e98): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: boxcat.cpp:(.text+0x70ac): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: src/core/libcore.a(bis_factory.cpp.o):bis_factory.cpp:(.text+0xacf): more undefined references to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)' follow
+/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(basic_block.cpp.o): in function `void fmt::v7::detail::format_value<char, Dynarmic::IR::LocationDescriptor>(fmt::v7::detail::buffer<char>&, Dynarmic::IR::LocationDescriptor const&, fmt::v7::detail::locale_ref)':
+basic_block.cpp:(.text._ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR18LocationDescriptorEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE[_ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR18LocationDescriptorEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE]+0x10f): undefined reference to `std::locale fmt::v7::detail::locale_ref::get<std::locale>() const'
+/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(location_descriptor.cpp.o): in function `Dynarmic::IR::operator<<(std::ostream&, Dynarmic::IR::LocationDescriptor const&)':
+location_descriptor.cpp:(.text+0x37): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(a32_emit_x64.cpp.o): in function `Dynarmic::Backend::X64::A32EmitX64::LocationDescriptorToFriendlyName[abi:cxx11](Dynarmic::IR::LocationDescriptor const&) const':
+a32_emit_x64.cpp:(.text+0x69c): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(a32_emit_x64.cpp.o): in function `Dynarmic::Backend::X64::A32EmitX64::GenFastmemFallbacks()':
+a32_emit_x64.cpp:(.text+0x4f76): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: a32_emit_x64.cpp:(.text+0x5366): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(a64_emit_x64.cpp.o): in function `Dynarmic::Backend::X64::A64EmitX64::LocationDescriptorToFriendlyName[abi:cxx11](Dynarmic::IR::LocationDescriptor const&) const':
+a64_emit_x64.cpp:(.text+0x65): undefined reference to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)'
+/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(a64_emit_x64.cpp.o):a64_emit_x64.cpp:(.text+0x533d): more undefined references to `fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args)' follow
+/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(microinstruction.cpp.o): in function `void fmt::v7::detail::format_value<char, Dynarmic::IR::Opcode>(fmt::v7::detail::buffer<char>&, Dynarmic::IR::Opcode const&, fmt::v7::detail::locale_ref)':
+microinstruction.cpp:(.text._ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR6OpcodeEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE[_ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR6OpcodeEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE]+0x10f): undefined reference to `std::locale fmt::v7::detail::locale_ref::get<std::locale>() const'
+/usr/local/bin/ld: externals/dynarmic/src/libdynarmic.a(microinstruction.cpp.o): in function `void fmt::v7::detail::format_value<char, Dynarmic::IR::Type>(fmt::v7::detail::buffer<char>&, Dynarmic::IR::Type const&, fmt::v7::detail::locale_ref)':
+microinstruction.cpp:(.text._ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR4TypeEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE[_ZN3fmt2v76detail12format_valueIcN8Dynarmic2IR4TypeEEEvRNS1_6bufferIT_EERKT0_NS1_10locale_refE]+0x10f): undefined reference to `std::locale fmt::v7::detail::locale_ref::get<std::locale>() const'
+collect2: error: ld returned 1 exit status
+
+/usr/local/bin/ld: src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/config.cpp.o: in function `void Config::ReadSetting<bool, false>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Settings::Setting<bool, false>&)':
+config.cpp:(.text+0x5b6): undefined reference to `INIReader::GetBoolean(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const'
+/usr/local/bin/ld: src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/config.cpp.o: in function `void Config::ReadSetting<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, false>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Settings::Setting<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, false>&)':
+config.cpp:(.text+0x62b): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/config.cpp.o: in function `Config::LoadINI(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
+config.cpp:(.text+0x857): undefined reference to `INIReader::INIReader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
+/usr/local/bin/ld: src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/config.cpp.o: in function `Config::ReadValues()':
+config.cpp:(.text+0x1280): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x163d): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x181a): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x19bd): undefined reference to `INIReader::GetBoolean(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const'
+/usr/local/bin/ld: config.cpp:(.text+0x1ee8): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x2496): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x269d): undefined reference to `INIReader::GetBoolean(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const'
+/usr/local/bin/ld: config.cpp:(.text+0x26f4): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x274e): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x27a8): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x27ff): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x293e): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x2b55): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x2ddd): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x3201): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x3357): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x3498): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x35d9): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x37ce): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x3842): undefined reference to `INIReader::GetBoolean(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const'
+/usr/local/bin/ld: config.cpp:(.text+0x38a8): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x3933): undefined reference to `INIReader::GetBoolean(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const'
+/usr/local/bin/ld: config.cpp:(.text+0x3995): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x3a15): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x3a95): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x3b15): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x3bf6): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/config.cpp.o:config.cpp:(.text+0x402f): more undefined references to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const' follow
+/usr/local/bin/ld: src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/config.cpp.o: in function `Config::ReadValues()':
+config.cpp:(.text+0x4ac4): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x4b72): undefined reference to `INIReader::GetBoolean(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const'
+/usr/local/bin/ld: config.cpp:(.text+0x4db3): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: config.cpp:(.text+0x4e31): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x522d): undefined reference to `INIReader::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
+/usr/local/bin/ld: config.cpp:(.text+0x5ec8): undefined reference to `INIReader::GetInteger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long) const'
+/usr/local/bin/ld: src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/config.cpp.o: in function `Config::Config(std::optional<std::filesystem::__cxx11::path>)':
+config.cpp:(.text+0x6e12): undefined reference to `INIReader::INIReader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
+collect2: error: ld returned 1 exit status
+
+--- CMakeLists.txt.orig	2022-12-05 17:26:09 UTC
++++ CMakeLists.txt
+@@ -198,8 +198,6 @@ find_package(enet 1.3)
+ # =======================================================================
+ 
+ find_package(enet 1.3)
+-find_package(fmt 9 REQUIRED)
+-find_package(inih)
+ find_package(libusb 1.0.24)
+ find_package(lz4 REQUIRED)
+ find_package(nlohmann_json 3.8 REQUIRED)
diff --git a/emulators/yuzu/files/patch-libusb b/emulators/yuzu/files/patch-libusb
index f1595f856ace..5f4e087c9064 100644
--- a/emulators/yuzu/files/patch-libusb
+++ b/emulators/yuzu/files/patch-libusb
@@ -5,10 +5,7 @@ compatibility with newer versions of the reference implementation.
 
 --- CMakeLists.txt.orig	2022-12-07 02:08:14 UTC
 +++ CMakeLists.txt
-@@ -200,7 +200,7 @@
- find_package(enet 1.3)
- find_package(fmt 9 REQUIRED)
- find_package(inih)
+@@ -203,4 +203,4 @@
 -find_package(libusb 1.0.24)
 +find_package(libusb)
  find_package(lz4 REQUIRED)