git: 254a2f4c9ce1 - main - net-p2p/amule: Unbreak with boost 1.87+
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 15 Feb 2025 21:24:21 UTC
The branch main has been updated by eduardo:
URL: https://cgit.FreeBSD.org/ports/commit/?id=254a2f4c9ce1ec6ea11fa9736128c45b78061e18
commit 254a2f4c9ce1ec6ea11fa9736128c45b78061e18
Author: Nuno Teixeira <eduardo@FreeBSD.org>
AuthorDate: 2025-02-15 21:22:46 +0000
Commit: Nuno Teixeira <eduardo@FreeBSD.org>
CommitDate: 2025-02-15 21:24:06 +0000
net-p2p/amule: Unbreak with boost 1.87+
- While here, simplify options helpers
---
net-p2p/amule/Makefile | 40 ++++-----
net-p2p/amule/files/patch-fix-boost1.87+ | 139 +++++++++++++++++++++++++++++++
2 files changed, 159 insertions(+), 20 deletions(-)
diff --git a/net-p2p/amule/Makefile b/net-p2p/amule/Makefile
index cd1e7d0ffba6..5cead01f5d75 100644
--- a/net-p2p/amule/Makefile
+++ b/net-p2p/amule/Makefile
@@ -1,6 +1,6 @@
PORTNAME= amule
PORTVERSION= 2.3.3
-PORTREVISION= 13
+PORTREVISION= 14
CATEGORIES= net-p2p
MASTER_SITES= SF/${PORTNAME}/aMule/${PORTVERSION}
DISTNAME= aMule-${PORTVERSION}
@@ -48,49 +48,49 @@ OPTIONS_DEFAULT= ALC ALCC AMULECMD AMULEDAEMON AMULEGUI BOOST CAS ED2K \
FILEVIEW MONOLITHIC WEBSERVER WXCAS XAS
OPTIONS_SUB= yes
-DEBUG_CONFIGURE_OFF= --disable-debug
+DEBUG_CONFIGURE_ENABLE= debug
NLS_USES= gettext
-NLS_CONFIGURE_OFF= --disable-nls
+NLS_CONFIGURE_ENABLE= nls
-ALC_CONFIGURE_ON= --enable-alc
+ALC_CONFIGURE_ENABLE= alc
-ALCC_CONFIGURE_ON= --enable-alcc
+ALCC_CONFIGURE_ENABLE= alcc
-AMULECMD_CONFIGURE_ON= --enable-amulecmd
+AMULECMD_CONFIGURE_ENABLE= amulecmd
AMULECMD_USES= readline
-AMULEDAEMON_CONFIGURE_ON= --enable-amule-daemon
+AMULEDAEMON_CONFIGURE_ENABLE= amule-daemon
AMULEDAEMON_USE= RC_SUBR=amuled
-AMULEGUI_CONFIGURE_ON= --enable-amule-gui
+AMULEGUI_CONFIGURE_ENABLE= amule-gui
-BOOST_BROKEN= fails to build with Boost>=1.87
-BOOST_CONFIGURE_ON= --with-boost
-BOOST_LIB_DEPENDS+= libboost_system.so:devel/boost-libs
+BOOST_CONFIGURE_WITH= boost
+BOOST_LIB_DEPENDS= libboost_system.so:devel/boost-libs
-CAS_CONFIGURE_ON= --enable-cas
+CAS_CONFIGURE_ENABLE= cas
CAS_LIB_DEPENDS= libgd.so:graphics/gd
-ED2K_CONFIGURE_OFF= --disable-ed2k
+ED2K_CONFIGURE_ENABLE= ed2k
ED2K_CONFLICTS= ed2k-hash*
-FILEVIEW_CONFIGURE_ON= --enable-fileview
+FILEVIEW_CONFIGURE_ENABLE= fileview
-MMAP_CONFIGURE_ON= --enable-mmap
+MMAP_CONFIGURE_ENABLE= mmap
-MONOLITHIC_CONFIGURE_OFF= --disable-monolithic
+MONOLITHIC_CONFIGURE_ENABLE= monolithic
UPNP_LIB_DEPENDS= libupnp.so:devel/upnp
-UPNP_CONFIGURE_OFF= --disable-upnp
+UPNP_CONFIGURE_ENABLE= upnp
-WEBSERVER_CONFIGURE_ON= --enable-webserver
+WEBSERVER_CONFIGURE_ENABLE= webserver
WEBSERVER_LIB_DEPENDS= libpng.so:graphics/png
WEBSERVER_USES= readline
-WXCAS_CONFIGURE_ON= --enable-wxcas
+# Build fails if only option selected
+WXCAS_CONFIGURE_ENABLE= wxcas
-XAS_CONFIGURE_ON= --enable-xas
+XAS_CONFIGURE_ENABLE= xas
XAS_USE= PERL5+=run
.include <bsd.port.options.mk>
diff --git a/net-p2p/amule/files/patch-fix-boost1.87+ b/net-p2p/amule/files/patch-fix-boost1.87+
new file mode 100644
index 000000000000..b7a406b7faf5
--- /dev/null
+++ b/net-p2p/amule/files/patch-fix-boost1.87+
@@ -0,0 +1,139 @@
+commit 212b1891da96750ca602df05b575b4d679ca6f1e
+Author: Luigi 'Comio' Mantellini <luigi.mantellini@gmail.com>
+Date: Mon Dec 16 07:53:11 2024 +0100
+
+ Fix build with Boost 1.87 that removes deprecated asio methods
+
+diff --git src/LibSocketAsio.cpp src/LibSocketAsio.cpp
+index 5f8b02652..8e15c8635 100644
+--- src/LibSocketAsio.cpp
++++ src/LibSocketAsio.cpp
+@@ -70,7 +70,7 @@
+
+ using namespace boost::asio;
+ using namespace boost::system; // for error_code
+-static io_service s_io_service;
++static io_context s_io_service;
+
+ // Number of threads in the Asio thread pool
+ const int CAsioService::m_numberOfThreads = 4;
+@@ -265,7 +265,7 @@ public:
+ AddDebugLogLineF(logAsio, CFormat(wxT("Write %d %s")) % nbytes % m_IP);
+ m_sendBuffer = new char[nbytes];
+ memcpy(m_sendBuffer, buf, nbytes);
+- m_strand.dispatch(boost::bind(& CAsioSocketImpl::DispatchWrite, this, nbytes));
++ dispatch(m_strand, boost::bind(& CAsioSocketImpl::DispatchWrite, this, nbytes));
+ m_ErrorCode = 0;
+ return nbytes;
+ }
+@@ -279,7 +279,7 @@ public:
+ if (m_sync || s_io_service.stopped()) {
+ DispatchClose();
+ } else {
+- m_strand.dispatch(boost::bind(& CAsioSocketImpl::DispatchClose, this));
++ dispatch(m_strand, boost::bind(& CAsioSocketImpl::DispatchClose, this));
+ }
+ }
+ }
+@@ -538,7 +538,7 @@ private:
+ {
+ m_readPending = true;
+ m_readBufferContent = 0;
+- m_strand.dispatch(boost::bind(& CAsioSocketImpl::DispatchBackgroundRead, this));
++ dispatch(m_strand, boost::bind(& CAsioSocketImpl::DispatchBackgroundRead, this));
+ }
+
+ void PostReadEvent(int DEBUG_ONLY(from) )
+@@ -618,7 +618,7 @@ private:
+ uint32 m_readBufferContent;
+ bool m_eventPending;
+ char * m_sendBuffer;
+- io_service::strand m_strand; // handle synchronisation in io_service thread pool
++ io_context::strand m_strand; // handle synchronisation in io_service thread pool
+ deadline_timer m_timer;
+ bool m_connected;
+ bool m_closed;
+@@ -875,7 +875,7 @@ private:
+ }
+ // We were not successful. Try again.
+ // Post the request to the event queue to make sure it doesn't get called immediately.
+- m_strand.post(boost::bind(& CAsioSocketServerImpl::StartAccept, this));
++ post(m_strand, boost::bind(& CAsioSocketServerImpl::StartAccept, this));
+ }
+
+ // The wrapper object
+@@ -886,7 +886,7 @@ private:
+ CScopedPtr<CAsioSocketImpl> m_currentSocket;
+ // Is there a socket available?
+ bool m_socketAvailable;
+- io_service::strand m_strand; // handle synchronisation in io_service thread pool
++ io_context::strand m_strand; // handle synchronisation in io_service thread pool
+ };
+
+
+@@ -1021,7 +1021,7 @@ public:
+ // Collect data, make a copy of the buffer's content
+ CUDPData * recdata = new CUDPData(buf, nBytes, addr);
+ AddDebugLogLineF(logAsio, CFormat(wxT("UDP SendTo %d to %s")) % nBytes % addr.IPAddress());
+- m_strand.dispatch(boost::bind(& CAsioUDPSocketImpl::DispatchSendTo, this, recdata));
++ dispatch(m_strand, boost::bind(& CAsioUDPSocketImpl::DispatchSendTo, this, recdata));
+ return nBytes;
+ }
+
+@@ -1035,7 +1035,7 @@ public:
+ if (s_io_service.stopped()) {
+ DispatchClose();
+ } else {
+- m_strand.dispatch(boost::bind(& CAsioUDPSocketImpl::DispatchClose, this));
++ dispatch(m_strand, boost::bind(& CAsioUDPSocketImpl::DispatchClose, this));
+ }
+ }
+
+@@ -1162,7 +1162,7 @@ private:
+ ip::udp::socket * m_socket;
+ CMuleUDPSocket * m_muleSocket;
+ bool m_OK;
+- io_service::strand m_strand; // handle synchronisation in io_service thread pool
++ io_context::strand m_strand; // handle synchronisation in io_service thread pool
+ deadline_timer m_timer;
+ amuleIPV4Address m_address;
+
+@@ -1254,7 +1254,7 @@ public:
+ void * Entry()
+ {
+ AddLogLineNS(CFormat(_("Asio thread %d started")) % m_threadNumber);
+- io_service::work worker(s_io_service); // keep io_service running
++ auto worker = make_work_guard(s_io_service); // keep io_service running
+ s_io_service.run();
+ AddDebugLogLineN(logAsio, CFormat(wxT("Asio thread %d stopped")) % m_threadNumber);
+
+@@ -1342,7 +1342,7 @@ bool amuleIPV4Address::Hostname(const wxString& name)
+ // This is usually just an IP.
+ std::string sname(unicode2char(name));
+ error_code ec;
+- ip::address_v4 adr = ip::address_v4::from_string(sname, ec);
++ ip::address_v4 adr = ip::make_address_v4(sname, ec);
+ if (!ec) {
+ m_endpoint->address(adr);
+ return true;
+@@ -1353,17 +1353,16 @@ bool amuleIPV4Address::Hostname(const wxString& name)
+ error_code ec2;
+ ip::tcp::resolver res(s_io_service);
+ // We only want to get IPV4 addresses.
+- ip::tcp::resolver::query query(ip::tcp::v4(), sname, "");
+- ip::tcp::resolver::iterator endpoint_iterator = res.resolve(query, ec2);
++ ip::tcp::resolver::results_type endpoint_iterator = res.resolve(sname, "", ec2);
+ if (ec2) {
+ AddDebugLogLineN(logAsio, CFormat(wxT("Hostname(\"%s\") resolve failed: %s")) % name % ec2.message());
+ return false;
+ }
+- if (endpoint_iterator == ip::tcp::resolver::iterator()) {
++ if (endpoint_iterator == ip::tcp::resolver::results_type()) {
+ AddDebugLogLineN(logAsio, CFormat(wxT("Hostname(\"%s\") resolve failed: no address found")) % name);
+ return false;
+ }
+- m_endpoint->address(endpoint_iterator->endpoint().address());
++ m_endpoint->address(endpoint_iterator.begin()->endpoint().address());
+ AddDebugLogLineN(logAsio, CFormat(wxT("Hostname(\"%s\") resolved to %s")) % name % IPAddress());
+ return true;
+ }