commit:     b2a88ced8cbf57a332712706cc302c8d87d11ad6
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 22 22:45:16 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Jan 22 23:14:36 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2a88ced

media-sound/supercollider: Fix build w/ boost-1.87

Closes: https://bugs.gentoo.org/946624
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/supercollider-3.13.0-boost-1.87-1.patch  | 584 +++++++++++++++++++++
 .../files/supercollider-3.13.0-boost-1.87-2.patch  |  37 ++
 .../supercollider/supercollider-3.13.0-r2.ebuild   |   3 +-
 3 files changed, 623 insertions(+), 1 deletion(-)

diff --git 
a/media-sound/supercollider/files/supercollider-3.13.0-boost-1.87-1.patch 
b/media-sound/supercollider/files/supercollider-3.13.0-boost-1.87-1.patch
new file mode 100644
index 000000000000..e3aaee971e98
--- /dev/null
+++ b/media-sound/supercollider/files/supercollider-3.13.0-boost-1.87-1.patch
@@ -0,0 +1,584 @@
+From 1bdc50ab4172c229e130120e9e075e5c3319f9f0 Mon Sep 17 00:00:00 2001
+From: Dennis Scheiba <g...@dennis-scheiba.com>
+Date: Thu, 19 Dec 2024 15:58:01 +0100
+Subject: [PATCH 1/5] replace deprecated `boost::asio::io_service` with
+ `boost::asio::io_context` (#6572)
+
+---
+ QtCollider/LanguageClient.cpp             |  2 +-
+ lang/LangPrimSource/OSCData.cpp           |  2 +-
+ lang/LangPrimSource/PyrSerialPrim.cpp     |  4 ++--
+ lang/LangPrimSource/SC_ComPort.cpp        | 20 +++++++++----------
+ lang/LangPrimSource/SC_ComPort.h          |  2 +-
+ lang/LangSource/SC_TerminalClient.cpp     | 24 +++++++++++------------
+ lang/LangSource/SC_TerminalClient.h       |  8 ++++----
+ server/scsynth/SC_ComPort.cpp             | 18 ++++++++---------
+ server/supernova/sc/sc_osc_handler.hpp    |  6 +++---
+ server/supernova/utilities/osc_server.hpp | 13 ++++++------
+ 10 files changed, 49 insertions(+), 50 deletions(-)
+
+diff --git a/QtCollider/LanguageClient.cpp b/QtCollider/LanguageClient.cpp
+index 00576ebd04a..83c73a5bf83 100644
+--- a/QtCollider/LanguageClient.cpp
++++ b/QtCollider/LanguageClient.cpp
+@@ -70,7 +70,7 @@ void LangClient::customEvent(QEvent* e) {
+ 
+     case Event_SCRequest_Work:
+         QApplication::removePostedEvents(this, Event_SCRequest_Work);
+-        mIoService.poll();
++        mIoContext.poll();
+         break;
+     case Event_SCRequest_Quit: {
+         int code = static_cast<SCRequestEvent*>(e)->data.toInt();
+diff --git a/lang/LangPrimSource/OSCData.cpp b/lang/LangPrimSource/OSCData.cpp
+index 0c0d7f9f7ff..bbb3caa8006 100644
+--- a/lang/LangPrimSource/OSCData.cpp
++++ b/lang/LangPrimSource/OSCData.cpp
+@@ -934,7 +934,7 @@ void cleanup_OSC() {
+ #endif
+ }
+ 
+-extern boost::asio::io_service ioService;
++extern boost::asio::io_context ioContext;
+ 
+ static int prGetHostByName(VMGlobals* g, int numArgsPushed) {
+     PyrSlot* a = g->sp;
+diff --git a/lang/LangPrimSource/PyrSerialPrim.cpp 
b/lang/LangPrimSource/PyrSerialPrim.cpp
+index cc56abdcead..bcfbeda5551 100644
+--- a/lang/LangPrimSource/PyrSerialPrim.cpp
++++ b/lang/LangPrimSource/PyrSerialPrim.cpp
+@@ -49,7 +49,7 @@
+ using boost::uint8_t;
+ using boost::asio::serial_port;
+ 
+-extern boost::asio::io_service ioService; // defined in SC_ComPort.cpp
++extern boost::asio::io_context ioContext; // defined in SC_ComPort.cpp
+ 
+ /**
+  * \brief Serial port abstraction
+@@ -104,7 +104,7 @@ class SerialPort {
+      */
+     SerialPort(PyrObject* obj, const char* serialport, const Options& 
options):
+         m_obj(obj),
+-        m_port(ioService, serialport),
++        m_port(ioContext, serialport),
+         m_options(options),
+         m_rxErrors(0) {
+         using namespace boost::asio;
+diff --git a/lang/LangPrimSource/SC_ComPort.cpp 
b/lang/LangPrimSource/SC_ComPort.cpp
+index 78f01b389d9..aa48e078311 100644
+--- a/lang/LangPrimSource/SC_ComPort.cpp
++++ b/lang/LangPrimSource/SC_ComPort.cpp
+@@ -46,12 +46,12 @@ void ProcessRawMessage(std::unique_ptr<char[]> inData, 
size_t inSize, ReplyAddre
+ 
//////////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
+ SC_Thread gAsioThread;
+-boost::asio::io_service ioService;
++boost::asio::io_context ioContext;
+ 
+ 
+ static void asioFunction() {
+-    boost::asio::io_service::work work(ioService);
+-    ioService.run();
++    boost::asio::io_context::work work(ioContext);
++    ioContext.run();
+ }
+ 
+ void startAsioThread() {
+@@ -60,7 +60,7 @@ void startAsioThread() {
+ }
+ 
+ void stopAsioThread() {
+-    ioService.stop();
++    ioContext.stop();
+     gAsioThread.join();
+ }
+ 
+@@ -66,7 +66,7 @@
+ 
+ 
//////////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
+-SC_UdpInPort::SC_UdpInPort(int inPortNum, int portsToCheck): 
mPortNum(inPortNum), udpSocket(ioService) {
++SC_UdpInPort::SC_UdpInPort(int inPortNum, int portsToCheck): 
mPortNum(inPortNum), udpSocket(ioContext) {
+     using namespace boost::asio;
+ 
+     BOOST_AUTO(protocol, ip::udp::v4());
+@@ -142,7 +142,7 @@
+ 
//////////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
+ SC_TcpInPort::SC_TcpInPort(int inPortNum, int inMaxConnections, int 
inBacklog):
+-    acceptor(ioService, 
boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), inPortNum)),
++    acceptor(ioContext, 
boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), inPortNum)),
+     mPortNum(inPortNum) {
+     // FIXME: handle max connections
+     // FIXME: backlog???
+@@ -151,7 +151,7 @@
+ }
+ 
+ void SC_TcpInPort::startAccept() {
+-    SC_TcpConnection::pointer newConnection(new SC_TcpConnection(ioService, 
this));
++    SC_TcpConnection::pointer newConnection(new SC_TcpConnection(ioContext, 
this));
+ 
+     acceptor.async_accept(
+         newConnection->socket,
+@@ -210,7 +210,7 @@
+ 
//////////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
+ SC_TcpClientPort::SC_TcpClientPort(unsigned long inAddress, int inPort, 
ClientNotifyFunc notifyFunc, void* clientData):
+-    socket(ioService),
++    socket(ioContext),
+     endpoint(boost::asio::ip::address_v4(inAddress), inPort),
+     mClientNotifyFunc(notifyFunc),
+     mClientData(clientData) {
+diff --git a/lang/LangPrimSource/SC_ComPort.h 
b/lang/LangPrimSource/SC_ComPort.h
+index 0e192e91914..99d23b3b27b 100644
+--- a/lang/LangPrimSource/SC_ComPort.h
++++ b/lang/LangPrimSource/SC_ComPort.h
+@@ -63,8 +63,8 @@
+     typedef boost::shared_ptr<SC_TcpConnection> pointer;
+     boost::asio::ip::tcp::socket socket;
+ 
+-    SC_TcpConnection(boost::asio::io_service& ioService, class SC_TcpInPort* 
parent):
+-        socket(ioService),
++    SC_TcpConnection(boost::asio::io_context& ioContext, class SC_TcpInPort* 
parent):
++        socket(ioContext),
+         mParent(parent) {}
+ 
+     void start();
+diff --git a/lang/LangSource/SC_TerminalClient.cpp 
b/lang/LangSource/SC_TerminalClient.cpp
+index 13f11a11176..3a091514ab5 100644
+--- a/lang/LangSource/SC_TerminalClient.cpp
++++ b/lang/LangSource/SC_TerminalClient.cpp
+@@ -75,12 +75,12 @@ SC_TerminalClient::SC_TerminalClient(const char* name):
+     SC_LanguageClient(name),
+     mReturnCode(0),
+     mUseReadline(false),
+-    mWork(mIoService),
+-    mTimer(mIoService),
++    mWork(mIoContext),
++    mTimer(mIoContext),
+ #ifndef _WIN32
+-    mStdIn(mInputService, STDIN_FILENO)
++    mStdIn(mInputContext, STDIN_FILENO)
+ #else
+-    mStdIn(mInputService, GetStdHandle(STD_INPUT_HANDLE))
++    mStdIn(mInputContext, GetStdHandle(STD_INPUT_HANDLE))
+ #endif
+ {
+ }
+@@ -360,19 +360,19 @@ void SC_TerminalClient::onLibraryStartup() {
+ void SC_TerminalClient::sendSignal(Signal sig) {
+     switch (sig) {
+     case sig_input:
+-        mIoService.post(boost::bind(&SC_TerminalClient::interpretInput, 
this));
++        mIoContext.post(boost::bind(&SC_TerminalClient::interpretInput, 
this));
+         break;
+ 
+     case sig_recompile:
+-        mIoService.post(boost::bind(&SC_TerminalClient::recompileLibrary, 
this));
++        mIoContext.post(boost::bind(&SC_TerminalClient::recompileLibrary, 
this));
+         break;
+ 
+     case sig_sched:
+-        mIoService.post(boost::bind(&SC_TerminalClient::tick, this, 
boost::system::error_code()));
++        mIoContext.post(boost::bind(&SC_TerminalClient::tick, this, 
boost::system::error_code()));
+         break;
+ 
+     case sig_stop:
+-        mIoService.post(boost::bind(&SC_TerminalClient::stopMain, this));
++        mIoContext.post(boost::bind(&SC_TerminalClient::stopMain, this));
+         break;
+     }
+ }
+@@ -447,7 +447,7 @@ void SC_TerminalClient::tick(const 
boost::system::error_code& error) {
+     }
+ }
+ 
+-void SC_TerminalClient::commandLoop() { mIoService.run(); }
++void SC_TerminalClient::commandLoop() { mIoContext.run(); }
+ 
+ void SC_TerminalClient::daemonLoop() { commandLoop(); }
+ 
+@@ -614,8 +614,8 @@ void SC_TerminalClient::inputThreadFn() {
+ 
+     startInputRead();
+ 
+-    boost::asio::io_service::work work(mInputService);
+-    mInputService.run();
++    boost::asio::io_context::work work(mInputContext);
++    mInputContext.run();
+ }
+ 
+ 
+@@ -662,7 +662,7 @@ void SC_TerminalClient::startInput() {
+ }
+ 
+ void SC_TerminalClient::endInput() {
+-    mInputService.stop();
++    mInputContext.stop();
+     mStdIn.cancel();
+ #ifdef _WIN32
+     // Note this breaks Windows XP compatibility, since this function is only 
defined in Vista and later
+diff --git a/lang/LangSource/SC_TerminalClient.h 
b/lang/LangSource/SC_TerminalClient.h
+index 373e82bb830..0ea3cdc35b3 100644
+--- a/lang/LangSource/SC_TerminalClient.h
++++ b/lang/LangSource/SC_TerminalClient.h
+@@ -91,7 +91,7 @@ class SCLANG_DLLEXPORT SC_TerminalClient : public 
SC_LanguageClient {
+     // NOTE: It may be called from any thread, and with interpreter locked.
+     virtual void sendSignal(Signal code);
+ 
+-    void stop() { mIoService.stop(); }
++    void stop() { mIoContext.stop(); }
+ 
+ protected:
+     bool parseOptions(int& argc, char**& argv, Options& opt);
+@@ -151,14 +151,14 @@ class SCLANG_DLLEXPORT SC_TerminalClient : public 
SC_LanguageClient {
+ 
+     // app-clock io service
+ protected:
+-    boost::asio::io_service mIoService;
++    boost::asio::io_context mIoContext;
+ 
+ private:
+-    boost::asio::io_service::work mWork;
++    boost::asio::io_context::work mWork;
+     boost::asio::basic_waitable_timer<std::chrono::system_clock> mTimer;
+ 
+     // input io service
+-    boost::asio::io_service mInputService;
++    boost::asio::io_context mInputContext;
+     SC_Thread mInputThread;
+     void inputThreadFn();
+ 
+diff --git a/server/scsynth/SC_ComPort.cpp b/server/scsynth/SC_ComPort.cpp
+index 5541f509bbd..a8ebbfe71c6 100644
+--- a/server/scsynth/SC_ComPort.cpp
++++ b/server/scsynth/SC_ComPort.cpp
+@@ -145,7 +145,7 @@ static bool UnrollOSCPacket(World* inWorld, int inSize, 
char* inData, OSC_Packet
+ 
/////////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
+ SC_Thread gAsioThread;
+-boost::asio::io_service ioService;
++boost::asio::io_context ioContext;
+ 
+ const int kTextBufSize = 65536;
+ 
+@@ -252,7 +252,7 @@ class SC_UdpInPort {
+         mWorld(world),
+         mPortNum(inPortNum),
+         mbindTo(bindTo),
+-        udpSocket(ioService) {
++        udpSocket(ioContext) {
+         using namespace boost::asio;
+         BOOST_AUTO(protocol, ip::udp::v4());
+         udpSocket.open(protocol);
+@@ -282,9 +282,9 @@ class SC_TcpConnection : public 
boost::enable_shared_from_this<SC_TcpConnection>
+     typedef boost::shared_ptr<SC_TcpConnection> pointer;
+     boost::asio::ip::tcp::socket socket;
+ 
+-    SC_TcpConnection(struct World* world, boost::asio::io_service& ioService, 
class SC_TcpInPort* parent):
++    SC_TcpConnection(struct World* world, boost::asio::io_context& ioContext, 
class SC_TcpInPort* parent):
+         mWorld(world),
+-        socket(ioService),
++        socket(ioContext),
+         mParent(parent) {}
+ 
+     ~SC_TcpConnection();
+@@ -400,7 +400,7 @@ class SC_TcpInPort {
+ public:
+     SC_TcpInPort(struct World* world, const std::string& bindTo, int 
inPortNum, int inMaxConnections, int inBacklog):
+         mWorld(world),
+-        acceptor(ioService, 
boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string(bindTo), 
inPortNum)),
++        acceptor(ioContext, 
boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string(bindTo), 
inPortNum)),
+         mAvailableConnections(inMaxConnections) {
+         // FIXME: backlog???
+ 
+@@ -419,7 +419,7 @@ class SC_TcpInPort {
+     void startAccept() {
+         if (mAvailableConnections > 0) {
+             --mAvailableConnections;
+-            SC_TcpConnection::pointer newConnection(new 
SC_TcpConnection(mWorld, ioService, this));
++            SC_TcpConnection::pointer newConnection(new 
SC_TcpConnection(mWorld, ioContext, this));
+ 
+             acceptor.async_accept(
+                 newConnection->socket,
+@@ -453,8 +453,8 @@ static void asioFunction() {
+     nova::thread_set_priority_rt(priority);
+ #endif
+ 
+-    boost::asio::io_service::work work(ioService);
+-    ioService.run();
++    boost::asio::io_context::work work(ioContext);
++    ioContext.run();
+ }
+ 
+ void startAsioThread() {
+@@ -463,7 +463,7 @@ void startAsioThread() {
+ }
+ 
+ void stopAsioThread() {
+-    ioService.stop();
++    ioContext.stop();
+     gAsioThread.join();
+ }
+ 
+diff --git a/server/supernova/sc/sc_osc_handler.hpp 
b/server/supernova/sc/sc_osc_handler.hpp
+index ae75c9dc05a..ce342c419e1 100644
+--- a/server/supernova/sc/sc_osc_handler.hpp
++++ b/server/supernova/sc/sc_osc_handler.hpp
+@@ -95,7 +95,7 @@ class sc_notify_observers {
+ public:
+     typedef enum { no_error = 0, already_registered = -1, not_registered = -2 
} error_code;
+ 
+-    sc_notify_observers(boost::asio::io_service& io_service): 
udp_socket(io_service) {}
++    sc_notify_observers(boost::asio::io_context& io_context): 
udp_socket(io_context) {}
+ 
+     int add_observer(endpoint_ptr const& ep);
+     int remove_observer(endpoint_ptr const& ep);
+@@ -186,8 +186,8 @@ class sc_osc_handler : private detail::network_thread, 
public sc_notify_observer
+ 
+ public:
+     sc_osc_handler(server_arguments const& args):
+-        sc_notify_observers(detail::network_thread::io_service_),
+-        tcp_acceptor_(detail::network_thread::io_service_),
++        sc_notify_observers(detail::network_thread::io_context_),
++        tcp_acceptor_(detail::network_thread::io_context_),
+         tcp_password_(args.server_password.size() ? 
args.server_password.c_str() : nullptr) {
+         if (!args.non_rt) {
+             if (args.tcp_port && !open_socket(IPPROTO_TCP, 
args.socket_address, args.tcp_port))
+diff --git a/server/supernova/utilities/osc_server.hpp 
b/server/supernova/utilities/osc_server.hpp
+index 1746fa172b3..d209fed8983 100644
+--- a/server/supernova/utilities/osc_server.hpp
++++ b/server/supernova/utilities/osc_server.hpp
+@@ -30,7 +30,6 @@
+ #    define BOOST_ASIO_HAS_STD_STRING_VIEW 1
+ #endif
+ 
+-#include <boost/asio/io_service.hpp>
+ #include <boost/asio/ip/udp.hpp>
+ 
+ #include "branch_hints.hpp"
+@@ -56,8 +55,8 @@ class network_thread {
+             name_thread("Network Receive");
+ 
+             sem.post();
+-            io_service::work work(io_service_);
+-            io_service_.run();
++            io_context::work work(io_context_);
++            io_context_.run();
+         });
+         sem.wait();
+     }
+@@ -65,20 +64,20 @@ class network_thread {
+     ~network_thread(void) {
+         if (!thread_.joinable())
+             return;
+-        io_service_.stop();
++        io_context_.stop();
+         thread_.join();
+     }
+ 
+-    io_service& get_io_service(void) { return io_service_; }
++    io_context& get_io_context(void) { return io_context_; }
+ 
+     void send_udp(const char* data, unsigned int size, udp::endpoint const& 
receiver) {
+-        udp::socket socket(io_service_);
++        udp::socket socket(io_context_);
+         socket.open(udp::v4());
+         socket.send_to(boost::asio::buffer(data, size), receiver);
+     }
+ 
+ protected:
+-    io_service io_service_;
++    io_context io_context_;
+ 
+ private:
+     semaphore sem;
+
+From 8015d8ebf26c1f95a0a646775f1e75397966b294 Mon Sep 17 00:00:00 2001
+From: Dennis Scheiba <g...@dennis-scheiba.com>
+Date: Thu, 19 Dec 2024 16:41:44 +0100
+Subject: [PATCH 2/5] replace deprecated `boost::asio::io_context::work` with
+ `boost::asio::make_work_guard`
+
+---
+ lang/LangPrimSource/SC_ComPort.cpp        | 3 ++-
+ lang/LangSource/SC_TerminalClient.cpp     | 5 +++--
+ lang/LangSource/SC_TerminalClient.h       | 2 +-
+ server/scsynth/SC_ComPort.cpp             | 3 ++-
+ server/supernova/utilities/osc_server.hpp | 3 ++-
+ 5 files changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/lang/LangPrimSource/SC_ComPort.cpp 
b/lang/LangPrimSource/SC_ComPort.cpp
+index aa48e078311..57b0fc5e89f 100644
+--- a/lang/LangPrimSource/SC_ComPort.cpp
++++ b/lang/LangPrimSource/SC_ComPort.cpp
+@@ -50,7 +50,8 @@ boost::asio::io_context ioContext;
+ 
+ 
+ static void asioFunction() {
+-    boost::asio::io_context::work work(ioContext);
++    boost::asio::executor_work_guard<boost::asio::io_context::executor_type> 
work =
++        boost::asio::make_work_guard(ioContext);
+     ioContext.run();
+ }
+ 
+diff --git a/lang/LangSource/SC_TerminalClient.cpp 
b/lang/LangSource/SC_TerminalClient.cpp
+index 3a091514ab5..2c2a1a2eaac 100644
+--- a/lang/LangSource/SC_TerminalClient.cpp
++++ b/lang/LangSource/SC_TerminalClient.cpp
+@@ -75,7 +75,7 @@ SC_TerminalClient::SC_TerminalClient(const char* name):
+     SC_LanguageClient(name),
+     mReturnCode(0),
+     mUseReadline(false),
+-    mWork(mIoContext),
++    mWork(boost::asio::make_work_guard(mIoContext)),
+     mTimer(mIoContext),
+ #ifndef _WIN32
+     mStdIn(mInputContext, STDIN_FILENO)
+@@ -614,7 +614,8 @@ void SC_TerminalClient::inputThreadFn() {
+ 
+     startInputRead();
+ 
+-    boost::asio::io_context::work work(mInputContext);
++    boost::asio::executor_work_guard<boost::asio::io_context::executor_type> 
work =
++        boost::asio::make_work_guard(mInputContext);
+     mInputContext.run();
+ }
+ 
+diff --git a/lang/LangSource/SC_TerminalClient.h 
b/lang/LangSource/SC_TerminalClient.h
+index 0ea3cdc35b3..b4cf0e96482 100644
+--- a/lang/LangSource/SC_TerminalClient.h
++++ b/lang/LangSource/SC_TerminalClient.h
+@@ -154,7 +154,7 @@ class SCLANG_DLLEXPORT SC_TerminalClient : public 
SC_LanguageClient {
+     boost::asio::io_context mIoContext;
+ 
+ private:
+-    boost::asio::io_context::work mWork;
++    boost::asio::executor_work_guard<boost::asio::io_context::executor_type> 
mWork;
+     boost::asio::basic_waitable_timer<std::chrono::system_clock> mTimer;
+ 
+     // input io service
+diff --git a/server/scsynth/SC_ComPort.cpp b/server/scsynth/SC_ComPort.cpp
+index a8ebbfe71c6..1e6f6d0784e 100644
+--- a/server/scsynth/SC_ComPort.cpp
++++ b/server/scsynth/SC_ComPort.cpp
+@@ -453,7 +453,8 @@ static void asioFunction() {
+     nova::thread_set_priority_rt(priority);
+ #endif
+ 
+-    boost::asio::io_context::work work(ioContext);
++    boost::asio::executor_work_guard<boost::asio::io_context::executor_type> 
work =
++        boost::asio::make_work_guard(ioContext);
+     ioContext.run();
+ }
+ 
+diff --git a/server/supernova/utilities/osc_server.hpp 
b/server/supernova/utilities/osc_server.hpp
+index d209fed8983..cbecfc23d7c 100644
+--- a/server/supernova/utilities/osc_server.hpp
++++ b/server/supernova/utilities/osc_server.hpp
+@@ -55,7 +55,8 @@ class network_thread {
+             name_thread("Network Receive");
+ 
+             sem.post();
+-            io_context::work work(io_context_);
++            
boost::asio::executor_work_guard<boost::asio::io_context::executor_type> work =
++                boost::asio::make_work_guard(io_context_);
+             io_context_.run();
+         });
+         sem.wait();
+
+From ec58a79c2f6bc474d6835d6228ccb7e397465fe5 Mon Sep 17 00:00:00 2001
+From: Dennis Scheiba <g...@dennis-scheiba.com>
+Date: Fri, 20 Dec 2024 00:00:20 +0100
+Subject: [PATCH 3/5] replace deprecated `address::from_string` with
+ `make_address`
+
+---
+ server/scsynth/SC_ComPort.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/server/scsynth/SC_ComPort.cpp b/server/scsynth/SC_ComPort.cpp
+index 1e6f6d0784e..272eeebfbc2 100644
+--- a/server/scsynth/SC_ComPort.cpp
++++ b/server/scsynth/SC_ComPort.cpp
+@@ -257,7 +257,7 @@ class SC_UdpInPort {
+         BOOST_AUTO(protocol, ip::udp::v4());
+         udpSocket.open(protocol);
+ 
+-        
udpSocket.bind(ip::udp::endpoint(boost::asio::ip::address::from_string(bindTo), 
inPortNum));
++        
udpSocket.bind(ip::udp::endpoint(boost::asio::ip::make_address(bindTo), 
inPortNum));
+ 
+         boost::asio::socket_base::send_buffer_size option(65536);
+         udpSocket.set_option(option);
+@@ -400,7 +400,7 @@ class SC_TcpInPort {
+ public:
+     SC_TcpInPort(struct World* world, const std::string& bindTo, int 
inPortNum, int inMaxConnections, int inBacklog):
+         mWorld(world),
+-        acceptor(ioContext, 
boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string(bindTo), 
inPortNum)),
++        acceptor(ioContext, 
boost::asio::ip::tcp::endpoint(boost::asio::ip::make_address(bindTo), 
inPortNum)),
+         mAvailableConnections(inMaxConnections) {
+         // FIXME: backlog???
+ 
+
+From 2cadfb7de577defb1664d7cc846d379721f13fa7 Mon Sep 17 00:00:00 2001
+From: Dennis Scheiba <g...@dennis-scheiba.com>
+Date: Fri, 20 Dec 2024 00:16:23 +0100
+Subject: [PATCH 4/5] replace deprecated `io_context.post` with
+ `boost::asio::post`
+
+---
+ lang/LangSource/SC_TerminalClient.cpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/lang/LangSource/SC_TerminalClient.cpp 
b/lang/LangSource/SC_TerminalClient.cpp
+index 2c2a1a2eaac..551369304a9 100644
+--- a/lang/LangSource/SC_TerminalClient.cpp
++++ b/lang/LangSource/SC_TerminalClient.cpp
+@@ -360,19 +360,19 @@ void SC_TerminalClient::onLibraryStartup() {
+ void SC_TerminalClient::sendSignal(Signal sig) {
+     switch (sig) {
+     case sig_input:
+-        mIoContext.post(boost::bind(&SC_TerminalClient::interpretInput, 
this));
++        boost::asio::post(boost::bind(&SC_TerminalClient::interpretInput, 
this));
+         break;
+ 
+     case sig_recompile:
+-        mIoContext.post(boost::bind(&SC_TerminalClient::recompileLibrary, 
this));
++        boost::asio::post(boost::bind(&SC_TerminalClient::recompileLibrary, 
this));
+         break;
+ 
+     case sig_sched:
+-        mIoContext.post(boost::bind(&SC_TerminalClient::tick, this, 
boost::system::error_code()));
++        boost::asio::post(boost::bind(&SC_TerminalClient::tick, this, 
boost::system::error_code()));
+         break;
+ 
+     case sig_stop:
+-        mIoContext.post(boost::bind(&SC_TerminalClient::stopMain, this));
++        boost::asio::post(boost::bind(&SC_TerminalClient::stopMain, this));
+         break;
+     }
+ }
+
+From e085858742c1afcc9af9a3ecb6a98cc6f5a9269c Mon Sep 17 00:00:00 2001
+From: Dennis Scheiba <g...@dennis-scheiba.com>
+Date: Fri, 20 Dec 2024 00:27:36 +0100
+Subject: [PATCH 5/5] replace deprecated `to_ulong` with `to_uint`
+
+---
+ lang/LangPrimSource/OSCData.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lang/LangPrimSource/OSCData.cpp b/lang/LangPrimSource/OSCData.cpp
+index bbb3caa8006..65229f1c3a7 100644
+--- a/lang/LangPrimSource/OSCData.cpp
++++ b/lang/LangPrimSource/OSCData.cpp
+@@ -745,7 +745,7 @@ static PyrObject* ConvertReplyAddress(ReplyAddress* 
inReply) {
+     VMGlobals* g = gMainVMGlobals;
+     PyrObject* obj = instantiateObject(g->gc, s_netaddr->u.classobj, 2, true, 
false);
+     PyrSlot* slots = obj->slots;
+-    SetInt(slots + 0, inReply->mAddress.to_v4().to_ulong());
++    SetInt(slots + 0, inReply->mAddress.to_v4().to_uint());
+     SetInt(slots + 1, inReply->mPort);
+     return obj;
+ }

diff --git 
a/media-sound/supercollider/files/supercollider-3.13.0-boost-1.87-2.patch 
b/media-sound/supercollider/files/supercollider-3.13.0-boost-1.87-2.patch
new file mode 100644
index 000000000000..87fdefce19db
--- /dev/null
+++ b/media-sound/supercollider/files/supercollider-3.13.0-boost-1.87-2.patch
@@ -0,0 +1,37 @@
+From 7d481eff478b1da1dc7048c90021f5fd7a83b35c Mon Sep 17 00:00:00 2001
+From: Dennis Scheiba <g...@dennis-scheiba.com>
+Date: Wed, 15 Jan 2025 14:22:27 +0100
+Subject: [PATCH] fix asio post invocation for SC_TerminalClient
+
+---
+ lang/LangSource/SC_TerminalClient.cpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/lang/LangSource/SC_TerminalClient.cpp 
b/lang/LangSource/SC_TerminalClient.cpp
+index 551369304a9..330716467a3 100644
+--- a/lang/LangSource/SC_TerminalClient.cpp
++++ b/lang/LangSource/SC_TerminalClient.cpp
+@@ -360,19 +360,19 @@ void SC_TerminalClient::onLibraryStartup() {
+ void SC_TerminalClient::sendSignal(Signal sig) {
+     switch (sig) {
+     case sig_input:
+-        boost::asio::post(boost::bind(&SC_TerminalClient::interpretInput, 
this));
++        boost::asio::post(mIoContext, [this] { this->interpretInput(); });
+         break;
+ 
+     case sig_recompile:
+-        boost::asio::post(boost::bind(&SC_TerminalClient::recompileLibrary, 
this));
++        boost::asio::post(mIoContext, [this] { this->recompileLibrary(); });
+         break;
+ 
+     case sig_sched:
+-        boost::asio::post(boost::bind(&SC_TerminalClient::tick, this, 
boost::system::error_code()));
++        boost::asio::post(mIoContext, [this] { 
this->tick(boost::system::error_code()); });
+         break;
+ 
+     case sig_stop:
+-        boost::asio::post(boost::bind(&SC_TerminalClient::stopMain, this));
++        boost::asio::post(mIoContext, [this] { this->stopMain(); });
+         break;
+     }
+ }

diff --git a/media-sound/supercollider/supercollider-3.13.0-r2.ebuild 
b/media-sound/supercollider/supercollider-3.13.0-r2.ebuild
index e31a4a33287e..568869c31a37 100644
--- a/media-sound/supercollider/supercollider-3.13.0-r2.ebuild
+++ b/media-sound/supercollider/supercollider-3.13.0-r2.ebuild
@@ -58,7 +58,8 @@ PATCHES=(
        "${FILESDIR}/${P}-boost-1.84.patch" # bug 921595
        "${FILESDIR}/${P}-gcc-13.patch" # bug 905127
        "${FILESDIR}/${P}-no-ccache.patch" # bug 922095
-       "${WORKDIR}/${PN}-3.13.0-boost-1.85.patch" # bug 932793
+       "${WORKDIR}/${P}-boost-1.85.patch" # bug 932793
+       "${FILESDIR}"/${P}-boost-1.87-{1,2}.patch # bug 946624
 )
 
 src_configure() {

Reply via email to