<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/af7177a0cf9d0e57066b7664f6b0131d3ceaf460">https://github.com/macports/macports-ports/commit/af7177a0cf9d0e57066b7664f6b0131d3ceaf460</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new af7177a0cf9 mame: patch 0.226 for asio breaking API change
</span>af7177a0cf9 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit af7177a0cf9d0e57066b7664f6b0131d3ceaf460
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Tue Apr 18 15:48:27 2023 -0400
<span style='display:block; white-space:pre;color:#404040;'> mame: patch 0.226 for asio breaking API change
</span>---
emulators/mame/Portfile | 8 +++-
.../files/mame-patch-0226-asio-server_ws_impl.diff | 48 ++++++++++++++++++++++
2 files changed, 54 insertions(+), 2 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/emulators/mame/Portfile b/emulators/mame/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index c9e15308b21..6ce394d43c5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/emulators/mame/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/emulators/mame/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -108,8 +108,12 @@ if {${g_mame_latest}} {
</span> patchfiles-append \
mame-patch-0226-src-posixfile-build-error.diff
<span style='display:block; white-space:pre;background:#ffe0e0;'>- checksums \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rmd160 b9e4ae321b7673790d374c63bbe966d1502d6738 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Mame 0.226: Fix build issue due to breaking asio API change.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Latest Mame releases already updated; only an issue with older versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mame-patch-0226-asio-server_ws_impl.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums rmd160 b9e4ae321b7673790d374c63bbe966d1502d6738 \
</span> sha256 7c4c9ec232ba988e65fd29665c9b8e40b5ac3aa9f561eeb107cebbf08ba94baf \
size 196379874
}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/emulators/mame/files/mame-patch-0226-asio-server_ws_impl.diff b/emulators/mame/files/mame-patch-0226-asio-server_ws_impl.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..2b7e98ed24c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/emulators/mame/files/mame-patch-0226-asio-server_ws_impl.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,48 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/lib/util/server_ws_impl.hpp.orig 2020-10-27 02:11:42.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/lib/util/server_ws_impl.hpp 2023-03-09 20:00:24.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,6 +9,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "asio.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <asio/system_timer.hpp>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// ### Newish asio API get_io_service is now MIA. ###
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NEW_ASIO_API 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef NEW_ASIO_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define GET_IO_SERVICE(s) ((asio::io_context&)(s).get_executor().context())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define GET_IO_SERVICE(s) ((s).get_io_service())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "server_ws.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unordered_map>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <thread>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -74,10 +82,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ virtual ~Connection() {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- explicit Connection(const std::shared_ptr<socket_type> &socket) : super(0), socket(socket), strand(socket->get_io_service()), closed(false) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ explicit Connection(const std::shared_ptr<socket_type> &socket) : super(0), socket(socket), strand(GET_IO_SERVICE(*socket)), closed(false) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- explicit Connection(socket_type *socket): super(0), socket(socket), strand(socket->get_io_service()), closed(false) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ explicit Connection(socket_type *socket): super(0), socket(socket), strand(GET_IO_SERVICE(*socket)), closed(false) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class SendData {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -361,7 +369,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::shared_ptr<asio::system_timer> get_timeout_timer(const std::shared_ptr<Connection> &connection, size_t seconds) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (seconds == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return nullptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- auto timer = std::make_shared<asio::system_timer>(connection->socket->get_io_service());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ auto timer = std::make_shared<asio::system_timer>(GET_IO_SERVICE(*(connection->socket)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ timer->expires_at(std::chrono::system_clock::now() + std::chrono::seconds(static_cast<long>(seconds)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ timer->async_wait([connection](const std::error_code& ec){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(!ec) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -652,7 +660,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void timer_idle_init(const std::shared_ptr<Connection> &connection) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(config.timeout_idle>0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- connection->timer_idle= std::make_unique<asio::system_timer>(connection->socket->get_io_service());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ connection->timer_idle= std::make_unique<asio::system_timer>(GET_IO_SERVICE(*(connection->socket)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ connection->timer_idle->expires_from_now(std::chrono::seconds(static_cast<unsigned long>(config.timeout_idle)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ timer_idle_expired_function(connection);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span></pre><pre style='margin:0'>
</pre>