commit: 34c40880d91fb64e933819d028872048ba353ba8 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Thu Dec 26 07:07:34 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu Dec 26 07:08:57 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=34c40880
media-sound/snapcast: add 0.29.0 * Include post-tag patches for Boost 1.87 compat * Add USE=jack Closes: https://bugs.gentoo.org/946236 Closes: https://bugs.gentoo.org/946459 Signed-off-by: Sam James <sam <AT> gentoo.org> media-sound/snapcast/Manifest | 1 + ...snapcast-0.29.0-boost-1.87.0-make_address.patch | 96 ++++++++++++++++++++++ .../files/snapcast-0.29.0-boost-1.87.0.patch | 51 ++++++++++++ .../files/snapcast-0.29.0-resampler-include.patch | 25 ++++++ media-sound/snapcast/snapcast-0.29.0.ebuild | 77 +++++++++++++++++ 5 files changed, 250 insertions(+) diff --git a/media-sound/snapcast/Manifest b/media-sound/snapcast/Manifest index d45a494a4445..743fc6bffc9f 100644 --- a/media-sound/snapcast/Manifest +++ b/media-sound/snapcast/Manifest @@ -1 +1,2 @@ DIST snapcast-0.27.0.tar.gz 1566337 BLAKE2B 77183cd2496beaf6808f8c1ff030cdb1e483c86ebafd57d0c75daa2dfe31030f0dd9704db40e2c0780b85c2b346e121ccd16c1cb75dea1f80e9834d3ae100fb8 SHA512 fd86f5b0d38bf308eb9cc1f3024676471176355a8cc91ee8c8d2dfe1aa0cde99fc7636133071b50304fe66ea42dee996e0088e013be7fa703f21c5bc2a35cfdd +DIST snapcast-0.29.0.tar.gz 1202943 BLAKE2B 0fb3c4b54dfd5fb16f7a17134a03288390c6d1b06c2c93bd7b495f0ff2f650d6caffab8b369703f38ca5764038470c3066794955259d419ea7ac4eff41e177d5 SHA512 4c88c20514e81f0ec861716a81047cb441669c0c23821acd959938cf00d85c37eec28a689a3c192f78fcb21accdbd6ef4520ef3f9995ff48ff07cb33e00b6904 diff --git a/media-sound/snapcast/files/snapcast-0.29.0-boost-1.87.0-make_address.patch b/media-sound/snapcast/files/snapcast-0.29.0-boost-1.87.0-make_address.patch new file mode 100644 index 000000000000..03190a4e20e3 --- /dev/null +++ b/media-sound/snapcast/files/snapcast-0.29.0-boost-1.87.0-make_address.patch @@ -0,0 +1,96 @@ +https://github.com/badaix/snapcast/commit/b2fd2bf9ef835104a813c40c190d71e3644125d7 + +From b2fd2bf9ef835104a813c40c190d71e3644125d7 Mon Sep 17 00:00:00 2001 +From: Rudi Heitbaum <[email protected]> +Date: Thu, 19 Dec 2024 02:23:11 +1100 +Subject: [PATCH] use make_address from boost as from_string is deprecated + (#1308) + +Since boost 1.87.0 boost::asio::ip::address::from_string is no longer available + +ref: https://github.com/boostorg/asio/commit/c0d1cfce7767599c4cf00df36f8017a1073339ae + +fixes: + ../server/control_server.cpp: In member function 'void ControlServer::start()': + ../server/control_server.cpp:164:111: error: 'from_string' is not a member of 'boost::asio::ip::address' + 164 | tcp::endpoint(boost::asio::ip::address::from_string(address), tcp_settings_.port))); + | ^~~~~~~~~~~ + ../server/control_server.cpp:180:112: error: 'from_string' is not a member of 'boost::asio::ip::address' + 180 | tcp::endpoint(boost::asio::ip::address::from_string(address), http_settings_.port))); + | ^~~~~~~~~~~ + ../server/streamreader/tcp_stream.cpp: In constructor 'streamreader::TcpStream::TcpStream(streamreader::PcmStream::Listener*, boost::asio::io_context&, const ServerSettings&, const streamreader::StreamUri&)': + ../server/streamreader/tcp_stream.cpp:67:97: error: 'from_string' is not a member of 'boost::asio::ip::address' + 67 | acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::address::from_string(host_), port_)); + | ^~~~~~~~~~~ + ../server/streamreader/tcp_stream.cpp: In member function 'virtual void streamreader::TcpStream::connect()': + ../server/streamreader/tcp_stream.cpp:96:75: error: 'from_string' is not a member of 'boost::asio::ip::address' + 96 | boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string(host_), port_); + | ^~~~~~~~~~~ + ../server/stream_server.cpp: In member function 'void StreamServer::start()': + ../server/stream_server.cpp:234:103: error: 'from_string' is not a member of 'boost::asio::ip::address' + 234 | tcp::endpoint(boost::asio::ip::address::from_string(address), settings_.stream.port))); + | +--- + server/control_server.cpp | 4 ++-- + server/stream_server.cpp | 2 +- + server/streamreader/tcp_stream.cpp | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/server/control_server.cpp b/server/control_server.cpp +index 03b2db76..7945855b 100644 +--- a/server/control_server.cpp ++++ b/server/control_server.cpp +@@ -161,7 +161,7 @@ void ControlServer::start() + { + LOG(INFO, LOG_TAG) << "Creating TCP acceptor for address: " << address << ", port: " << tcp_settings_.port << "\n"; + acceptor_tcp_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()), +- tcp::endpoint(boost::asio::ip::address::from_string(address), tcp_settings_.port))); ++ tcp::endpoint(boost::asio::ip::make_address(address), tcp_settings_.port))); + } + catch (const boost::system::system_error& e) + { +@@ -177,7 +177,7 @@ void ControlServer::start() + { + LOG(INFO, LOG_TAG) << "Creating HTTP acceptor for address: " << address << ", port: " << http_settings_.port << "\n"; + acceptor_http_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()), +- tcp::endpoint(boost::asio::ip::address::from_string(address), http_settings_.port))); ++ tcp::endpoint(boost::asio::ip::make_address(address), http_settings_.port))); + } + catch (const boost::system::system_error& e) + { +diff --git a/server/stream_server.cpp b/server/stream_server.cpp +index 718e744f..ad2fec2c 100644 +--- a/server/stream_server.cpp ++++ b/server/stream_server.cpp +@@ -231,7 +231,7 @@ void StreamServer::start() + { + LOG(INFO, LOG_TAG) << "Creating stream acceptor for address: " << address << ", port: " << settings_.stream.port << "\n"; + acceptor_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()), +- tcp::endpoint(boost::asio::ip::address::from_string(address), settings_.stream.port))); ++ tcp::endpoint(boost::asio::ip::make_address(address), settings_.stream.port))); + } + catch (const boost::system::system_error& e) + { +diff --git a/server/streamreader/tcp_stream.cpp b/server/streamreader/tcp_stream.cpp +index 1ec68d6b..ed3fd75e 100644 +--- a/server/streamreader/tcp_stream.cpp ++++ b/server/streamreader/tcp_stream.cpp +@@ -64,7 +64,7 @@ TcpStream::TcpStream(PcmStream::Listener* pcmListener, boost::asio::io_context& + + LOG(INFO, LOG_TAG) << "TcpStream host: " << host_ << ", port: " << port_ << ", is server: " << is_server_ << "\n"; + if (is_server_) +- acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::address::from_string(host_), port_)); ++ acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::make_address(host_), port_)); + } + + +@@ -93,7 +93,7 @@ void TcpStream::connect() + else + { + stream_ = make_unique<tcp::socket>(strand_); +- boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string(host_), port_); ++ boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::make_address(host_), port_); + stream_->async_connect(endpoint, + [this](const boost::system::error_code& ec) + { + diff --git a/media-sound/snapcast/files/snapcast-0.29.0-boost-1.87.0.patch b/media-sound/snapcast/files/snapcast-0.29.0-boost-1.87.0.patch new file mode 100644 index 000000000000..d1be4b4072db --- /dev/null +++ b/media-sound/snapcast/files/snapcast-0.29.0-boost-1.87.0.patch @@ -0,0 +1,51 @@ +https://github.com/badaix/snapcast/commit/6190041e863968d76b6d16140bba90be6dff848f + +From 6190041e863968d76b6d16140bba90be6dff848f Mon Sep 17 00:00:00 2001 +From: badaix <[email protected]> +Date: Thu, 19 Dec 2024 21:36:08 +0100 +Subject: [PATCH] Fix compilation with boost v1.87.0 + +--- + client/client_connection.cpp | 5 ++--- + server/stream_session_ws.cpp | 2 +- + 2 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/client/client_connection.cpp b/client/client_connection.cpp +index 53825864..6f34a018 100644 +--- a/client/client_connection.cpp ++++ b/client/client_connection.cpp +@@ -124,10 +124,9 @@ std::string ClientConnection::getMacAddress() + + void ClientConnection::connect(const ResultHandler& handler) + { +- tcp::resolver::query query(server_.host, cpt::to_string(server_.port), boost::asio::ip::resolver_query_base::numeric_service); + boost::system::error_code ec; + LOG(INFO, LOG_TAG) << "Resolving host IP for: " << server_.host << "\n"; +- auto iterator = resolver_.resolve(query, ec); ++ auto iterator = resolver_.resolve(server_.host, cpt::to_string(server_.port), boost::asio::ip::resolver_query_base::numeric_service, ec); + if (ec) + { + LOG(ERROR, LOG_TAG) << "Failed to resolve host '" << server_.host << "', error: " << ec.message() << "\n"; +@@ -141,7 +140,7 @@ void ClientConnection::connect(const ResultHandler& handler) + for (const auto& iter : iterator) + { + LOG(INFO, LOG_TAG) << "Connecting to " << iter.endpoint() << "\n"; +- socket_.connect(*iterator, ec); ++ socket_.connect(iter, ec); + if (!ec || (ec == boost::system::errc::interrupted)) + { + // We were successful or interrupted, e.g. by sig int +diff --git a/server/stream_session_ws.cpp b/server/stream_session_ws.cpp +index 5f666618..117603f6 100644 +--- a/server/stream_session_ws.cpp ++++ b/server/stream_session_ws.cpp +@@ -114,7 +114,7 @@ void StreamSessionWebsocket::on_read_ws(beast::error_code ec, std::size_t bytes_ + return; + } + +- auto* data = boost::asio::buffer_cast<char*>(buffer_.data()); ++ auto* data = static_cast<char*>(buffer_.data().data()); + baseMessage_.deserialize(data); + LOG(DEBUG, LOG_TAG) << "getNextMessage: " << baseMessage_.type << ", size: " << baseMessage_.size << ", id: " << baseMessage_.id + << ", refers: " << baseMessage_.refersTo << "\n"; + diff --git a/media-sound/snapcast/files/snapcast-0.29.0-resampler-include.patch b/media-sound/snapcast/files/snapcast-0.29.0-resampler-include.patch new file mode 100644 index 000000000000..296a5d61db86 --- /dev/null +++ b/media-sound/snapcast/files/snapcast-0.29.0-resampler-include.patch @@ -0,0 +1,25 @@ +https://github.com/badaix/snapcast/commit/f6ce4f3fbb3c797f5d92578d7bc8df547ad4cd64 + +From f6ce4f3fbb3c797f5d92578d7bc8df547ad4cd64 Mon Sep 17 00:00:00 2001 +From: Johannes Pohl <[email protected]> +Date: Wed, 11 Dec 2024 15:50:11 +0100 +Subject: [PATCH] Add missing include in resampler.cpp + +This fixes issue #1295 +--- + common/resampler.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/common/resampler.cpp b/common/resampler.cpp +index 1d5d698a..9548c957 100644 +--- a/common/resampler.cpp ++++ b/common/resampler.cpp +@@ -21,6 +21,7 @@ + + // local headers + #include "common/aixlog.hpp" ++#include "common/snap_exception.hpp" + + // standard headers + #include <cmath> + diff --git a/media-sound/snapcast/snapcast-0.29.0.ebuild b/media-sound/snapcast/snapcast-0.29.0.ebuild new file mode 100644 index 000000000000..cb0c73fe0d29 --- /dev/null +++ b/media-sound/snapcast/snapcast-0.29.0.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Synchronous multi-room audio player" +HOMEPAGE="https://github.com/badaix/snapcast" +SRC_URI="https://github.com/badaix/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~riscv ~x86" +IUSE="+client +expat +flac jack +opus +server tremor +vorbis +zeroconf" +REQUIRED_USE="|| ( server client )" + +RDEPEND=" + dev-libs/boost:= + media-libs/alsa-lib + client? ( acct-user/snapclient ) + expat? ( dev-libs/expat ) + flac? ( media-libs/flac:= ) + jack? ( virtual/jack ) + opus? ( media-libs/opus ) + server? ( + acct-group/snapserver + acct-user/snapserver + ) + tremor? ( media-libs/tremor ) + vorbis? ( media-libs/libvorbis ) + zeroconf? ( net-dns/avahi[dbus] ) +" +DEPEND=" + ${RDEPEND} + >=dev-cpp/aixlog-1.2.1 + >=dev-cpp/asio-1.12.1 + >=dev-cpp/popl-1.2.0 +" + +PATCHES=( + "${FILESDIR}"/${P}-resampler-include.patch + "${FILESDIR}"/${P}-boost-1.87.0-make_address.patch + "${FILESDIR}"/${P}-boost-1.87.0.patch +) + +src_configure() { + local mycmakeargs=( + -DBUILD_CLIENT=$(usex client) + -DBUILD_WITH_EXPAT=$(usex expat) + -DBUILD_WITH_FLAC=$(usex flac) + -DBUILD_WITH_JACK=$(usex jack) + -DBUILD_WITH_OPUS=$(usex opus) + -DBUILD_SERVER=$(usex server) + -DBUILD_STATIC_LIBS=no + -DBUILD_TESTS=no + -DBUILD_WITH_TREMOR=$(usex tremor) + -DBUILD_WITH_VORBIS=$(usex vorbis) + -DBUILD_WITH_AVAHI=$(usex zeroconf) + -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc" + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + for bin in server client ; do + if use ${bin} ; then + doman "${bin}/snap${bin}.1" + + newconfd "${FILESDIR}/snap${bin}.confd" "snap${bin}" + newinitd "${FILESDIR}/snap${bin}.initd" "snap${bin}" + fi + done +}
