From 9aff559a930e58b26d7d1fbb88a42fa518fc0170 Mon Sep 17 00:00:00 2001
From: Andrew Udvare <audvare@gmail.com>
Date: Tue, 17 Dec 2024 14:57:28 -0500
Subject: [PATCH] games-emulation/cemu: fix building with Boost 1.87.0

https://github.com/cemu-project/Cemu/pull/1455

Signed-off-by: Andrew Udvare <audvare@gmail.com>
---
 games-emulation/cemu/Manifest                 |  3 +-
 .../cemu/cemu-2.0_p20241216.ebuild            |  1 +
 .../cemu/files/cemu-0003-boost-1.87.patch     | 40 +++++++++++++++++++
 3 files changed, 43 insertions(+), 1 deletion(-)
 create mode 100644 games-emulation/cemu/files/cemu-0003-boost-1.87.patch

diff --git a/games-emulation/cemu/Manifest b/games-emulation/cemu/Manifest
index e0f50e277..c20ced701 100644
--- a/games-emulation/cemu/Manifest
+++ b/games-emulation/cemu/Manifest
@@ -1,7 +1,8 @@
 AUX cemu-0002-remove-default-from-system-g.patch 1732 BLAKE2B e4cec5aa4deb71ced3153e6a715b7fd554baf71f8152334039ee6de1047f1e88d55229494c9adeddbb5fd41e4cd82365f8eaaccc0be57856002cfb7e4820071f SHA512 975b9c30b2089471432fc15e277aaffc3d61ad3d999ef1bcd2b6cf53f093c44aee6ff5adbfa3afb97e8ebc69d0335c5c7bf0871b27de27d8640d250ecb106951
+AUX cemu-0003-boost-1.87.patch 1822 BLAKE2B be1a6b00187b5e8a83ecbcf17b49e3860985dfacea9e78bd9fff2120545578c1a6a78dbf63453062d5d149156d8cbe06b92a6cb2173d36343d51116728e11b7f SHA512 0661eb14e60efd780766e1e80c98b4dfda48953d741ed0b454c5fd2a170d2c53f5a8f10becba37b4559ea36502e767f919d66af48da624015d06f79e80d170c8
 DIST cemu-2.0_p20241216.tar.gz 23243036 BLAKE2B cd0bc2ab25f9841e490af1236dab5542e15ed749ace6eae80d26a6000f0694f4050e0f5c2c2abd944600a97bd1700194ebe3cb6fc5a71cc937e32b0bd07e73d8 SHA512 a9bc222525403f7224884e27552cec939159d1fd07e1fb6af99a4fb6d4cf7b1d0d4a3ae9dafcd0c4e19275e0b87b3c96020a0287e4d214c6cf3e4b7ee803ae9a
 DIST cemu-imgui-1.88.tar.gz 1488062 BLAKE2B 1c7b05dc6862f1a9bb597e97f9205fad0c4c39052731e27437f475547c7439773b55384ba7764ba38b63a74040acc308e2982bf166bdf76cbe58183dd4d6451d SHA512 bfb7381334f1493d64386321401086e4136129b3cc57bf57505ec6183008dddab1a2056b0af2610bc3286c606bafdf9b6e3ebc103131e0504bab2336662bc2c1
 DIST glslang-36d08c0.tar.gz 3769785 BLAKE2B 923bfada8484a3bb91dd92a242d7096017b77fd399a90052af121658221069215e277d51fb4b9b95821b9272e44618f91883c2dc49bfb671c52a941d54aec182 SHA512 184baa0bc22d5e79bf8424692b5c8bb51676ca20819551cf406a4fd898dd1ad5ca7296e26ce7b99878e627dcafc4cd435933dd939c91753c5050022052e1dbe5
-EBUILD cemu-2.0_p20241216.ebuild 2565 BLAKE2B 8ae2ea2eb010e50621f7c58468454a9d12f9a31fe6cd5d69689d60aef71819531aa46ab1e5e1f335e20328fb0ffadf9affec7f8101fdbfa5cfd715372fb3addc SHA512 2b8c265db6dedde870d486e4515d44f78e6b362f61b9004f386c0a623bc74394cf9e36527190067016b1c16cf203a69a6bf946a526cb1cd088184cf2e56540ac
+EBUILD cemu-2.0_p20241216.ebuild 2608 BLAKE2B b568e397582447e37e44e53fc9f19a1a31c57020dd98b2f8f2be35871197e86174607b66db70cf26556fe085b676c6c6e74bb448b796f5be6ed6f735231f9ff2 SHA512 4a51913988b0b55071ac55dabcb2134774de9c35adb95634c49b0acfbed735396b77acab2bb596b9b8fa580d32eb981345a4c8cece549e009bfdbf63152f5b70
 MISC livecheck.json 21 BLAKE2B 1de70d2f5294408ee9b12a1b7de8e269e3235e364057b1990639ed44e1fb321b332f8d2f7dbee7d7a5e9cee7d7715a7cfc648a70f5712a50469dbe42b692c9f6 SHA512 2c88382dcef11ddac7290ceea8b608e969bc3bea609bab020cbcfbf08e67b7dc3fed6c648bde9a319ff9273e80cf13b2dedd2c6d743e9c941eca7ebd249e5bd5
 MISC metadata.xml 517 BLAKE2B f9ce035853a48e0c099999f87a98e0b25a18e13e3941a2e308ddd8f038693452b85bf7572f751544b6791b2ca3d628a2564dbd68e993335060a5fe6f1f725d41 SHA512 eb48f05416c6b089d2b03ed144b335b472a96db85ab5606bdf0bcd4a04c3e8790b8a5de918cf416e0795fa546e3817338f99d30dd9dd7b6537a0485017401fc6
diff --git a/games-emulation/cemu/cemu-2.0_p20241216.ebuild b/games-emulation/cemu/cemu-2.0_p20241216.ebuild
index 9ee1d1afb..2971b2341 100644
--- a/games-emulation/cemu/cemu-2.0_p20241216.ebuild
+++ b/games-emulation/cemu/cemu-2.0_p20241216.ebuild
@@ -48,6 +48,7 @@ S="${WORKDIR}/${MY_PN}-${SHA}"
 
 PATCHES=(
 	"${FILESDIR}/${PN}-0002-remove-default-from-system-g.patch"
+	"${FILESDIR}/${PN}-0003-boost-1.87.patch"
 )
 
 src_prepare() {
diff --git a/games-emulation/cemu/files/cemu-0003-boost-1.87.patch b/games-emulation/cemu/files/cemu-0003-boost-1.87.patch
new file mode 100644
index 000000000..9d4f33f1c
--- /dev/null
+++ b/games-emulation/cemu/files/cemu-0003-boost-1.87.patch
@@ -0,0 +1,40 @@
+From ecc7f1c7813f934b509beff8377f600aec43afdf Mon Sep 17 00:00:00 2001
+From: Mike Lothian <mike@fireburn.co.uk>
+Date: Sat, 14 Dec 2024 19:49:06 +0000
+Subject: [PATCH] Boost: Fix building against Boost 1.87.0
+
+Closes: https://github.com/cemu-project/Cemu/issues/1451
+Signed-off-by: Mike Lothian <mike@fireburn.co.uk>
+---
+ src/input/api/DSU/DSUControllerProvider.cpp | 4 +---
+ src/input/api/DSU/DSUControllerProvider.h   | 2 +-
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/src/input/api/DSU/DSUControllerProvider.cpp b/src/input/api/DSU/DSUControllerProvider.cpp
+index 37f92774e..fa00277c2 100644
+--- a/src/input/api/DSU/DSUControllerProvider.cpp
++++ b/src/input/api/DSU/DSUControllerProvider.cpp
+@@ -78,9 +78,7 @@ bool DSUControllerProvider::connect()
+ 		using namespace boost::asio;
+ 
+ 		ip::udp::resolver resolver(m_io_service);
+-		const ip::udp::resolver::query query(ip::udp::v4(), get_settings().ip, fmt::format("{}", get_settings().port),
+-		                                     ip::udp::resolver::query::canonical_name);
+-		m_receiver_endpoint = *resolver.resolve(query);
++		m_receiver_endpoint = *resolver.resolve(get_settings().ip, fmt::format("{}", get_settings().port)).cbegin();
+ 
+ 		if (m_socket.is_open())
+ 			m_socket.close();
+diff --git a/src/input/api/DSU/DSUControllerProvider.h b/src/input/api/DSU/DSUControllerProvider.h
+index dfa4d7b89..692da619d 100644
+--- a/src/input/api/DSU/DSUControllerProvider.h
++++ b/src/input/api/DSU/DSUControllerProvider.h
+@@ -102,7 +102,7 @@ class DSUControllerProvider : public ControllerProvider<DSUProviderSettings>
+ 	std::condition_variable m_writer_cond;
+ 
+ 	uint32 m_uid;
+-	boost::asio::io_service m_io_service;
++	boost::asio::io_context m_io_service;
+ 	boost::asio::ip::udp::endpoint m_receiver_endpoint;
+ 	boost::asio::ip::udp::socket m_socket;
+