public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/snapcast/files/, media-sound/snapcast/
Date: Thu, 26 Dec 2024 07:09:57 +0000 (UTC)	[thread overview]
Message-ID: <1735196937.34c40880d91fb64e933819d028872048ba353ba8.sam@gentoo> (raw)

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 <rudi@heitbaum.com>
+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 <johannes.pohl@badaix.de>
+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 <johannes.pohl@badaix.de>
+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
+}


             reply	other threads:[~2024-12-26  7:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-26  7:09 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-04-03  7:33 [gentoo-commits] repo/gentoo:master commit in: media-sound/snapcast/files/, media-sound/snapcast/ Jakov Smolić
2022-12-29 23:25 Sam James
2021-04-29 11:46 Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1735196937.34c40880d91fb64e933819d028872048ba353ba8.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox