Gentoo Archives: gentoo-commits

From: Thomas Deutschmann <whissi@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/snapcast/, media-sound/snapcast/files/
Date: Sun, 07 Oct 2018 17:02:49
Message-Id: 1538931710.a29e535d11e57f796fb5306dda84e7be990d8e5f.whissi@gentoo
1 commit: a29e535d11e57f796fb5306dda84e7be990d8e5f
2 Author: Christian Buchinger <cb-gentoo <AT> guya <DOT> de>
3 AuthorDate: Fri Oct 5 14:02:16 2018 +0000
4 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
5 CommitDate: Sun Oct 7 17:01:50 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a29e535d
7
8 media-sound/snapcast: New package
9
10 Plays audio streams time sychronized on multiple devices over network using
11 a server and a client component.
12
13 Closes: https://bugs.gentoo.org/667710
14 Signed-off-by: Christian Buchinger <cb-gentoo <AT> guya.de>
15 Package-Manager: Portage-2.3.50, Repoman-2.3.11
16 Closes: https://github.com/gentoo/gentoo/pull/10059
17 Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
18
19 media-sound/snapcast/Manifest | 1 +
20 .../files/snapcast-options-for-use-flags.patch | 90 ++++++++++++++++++++++
21 media-sound/snapcast/files/snapclient.confd | 33 ++++++++
22 media-sound/snapcast/files/snapclient.initd | 17 ++++
23 media-sound/snapcast/files/snapserver.confd | 45 +++++++++++
24 media-sound/snapcast/files/snapserver.initd | 17 ++++
25 media-sound/snapcast/metadata.xml | 36 +++++++++
26 media-sound/snapcast/snapcast-0.15.0.ebuild | 87 +++++++++++++++++++++
27 media-sound/snapcast/snapcast-9999.ebuild | 87 +++++++++++++++++++++
28 9 files changed, 413 insertions(+)
29
30 diff --git a/media-sound/snapcast/Manifest b/media-sound/snapcast/Manifest
31 new file mode 100644
32 index 00000000000..64bd51fef59
33 --- /dev/null
34 +++ b/media-sound/snapcast/Manifest
35 @@ -0,0 +1 @@
36 +DIST snapcast-0.15.0.tar.gz 667452 BLAKE2B 0bf7e28ba52356c8fff8066ded3d741243c2ba88cdc6cefda113c0d6866fe14b2fea6198d7809e564cd61d32a336a2c30ee22f6f5d6ae77368a6f3e254cc5065 SHA512 3751eeaa9be4ffd5c7633b8770f36e87360ab83004f090a8350e377f60a79d9502b92b92c5c9c35f513705e6484d113de9942f0a896824d7c5f806ba0010e84e
37
38 diff --git a/media-sound/snapcast/files/snapcast-options-for-use-flags.patch b/media-sound/snapcast/files/snapcast-options-for-use-flags.patch
39 new file mode 100644
40 index 00000000000..956d6299d45
41 --- /dev/null
42 +++ b/media-sound/snapcast/files/snapcast-options-for-use-flags.patch
43 @@ -0,0 +1,90 @@
44 +diff --git a/CMakeLists.txt b/CMakeLists.txt
45 +index 52fec6e..d068db1 100644
46 +--- a/CMakeLists.txt
47 ++++ b/CMakeLists.txt
48 +@@ -11,6 +11,11 @@ option(BUILD_TESTS "Build tests (run tests with make test)" ON)
49 + option(BUILD_SERVER "Build Snapserver" ON)
50 + option(BUILD_CLIENT "Build Snapclient" ON)
51 +
52 ++option(BUILD_WITH_FLAC "Build with FLAC support" ON)
53 ++option(BUILD_WITH_VORBIS "Build with VORBIS support" ON)
54 ++option(BUILD_WITH_TREMOR "Build with vorbis using TREMOR" ON)
55 ++option(BUILD_WITH_AVAHI "Build with AVAHI support" ON)
56 ++
57 +
58 + if (NOT BUILD_SHARED_LIBS AND NOT BUILD_STATIC_LIBS)
59 + message(FATAL_ERROR "One or both of BUILD_SHARED_LIBS or BUILD_STATIC_LIBS must be set to ON to build")
60 +@@ -109,10 +114,12 @@ else()
61 + endif (ALSA_FOUND)
62 + endif()
63 +
64 +- pkg_search_module(AVAHI avahi-client)
65 +- if (AVAHI_FOUND)
66 +- add_definitions(-DHAS_AVAHI)
67 +- endif (AVAHI_FOUND)
68 ++ if(BUILD_WITH_AVAHI)
69 ++ pkg_search_module(AVAHI avahi-client)
70 ++ if (AVAHI_FOUND)
71 ++ add_definitions(-DHAS_AVAHI)
72 ++ endif (AVAHI_FOUND)
73 ++ endif(BUILD_WITH_AVAHI)
74 +
75 + add_definitions(-DHAS_DAEMON)
76 +
77 +@@ -154,29 +161,39 @@ if(NOT HAS_CXX11_STRING_SUPPORT)
78 + add_definitions("-DNO_CPP11_STRING")
79 + endif()
80 +
81 +-pkg_search_module(FLAC flac)
82 +-if (FLAC_FOUND)
83 +- add_definitions("-DHAS_FLAC")
84 +-endif (FLAC_FOUND)
85 ++if(BUILD_WITH_FLAC)
86 ++ pkg_search_module(FLAC flac)
87 ++ if (FLAC_FOUND)
88 ++ add_definitions("-DHAS_FLAC")
89 ++ endif (FLAC_FOUND)
90 ++endif()
91 +
92 +-pkg_search_module(OGG ogg)
93 +-if (OGG_FOUND)
94 +- add_definitions("-DHAS_OGG")
95 +-endif (OGG_FOUND)
96 ++if(BUILD_WITH_VORBIS OR BUILD_WITH_TREMOR)
97 ++ pkg_search_module(OGG ogg)
98 ++ if (OGG_FOUND)
99 ++ add_definitions("-DHAS_OGG")
100 ++ endif (OGG_FOUND)
101 ++endif()
102 +
103 +-pkg_search_module(VORBIS vorbis)
104 +-if (VORBIS_FOUND)
105 +- add_definitions("-DHAS_VORBIS")
106 +-endif (VORBIS_FOUND)
107 ++if(BUILD_WITH_VORBIS)
108 ++ pkg_search_module(VORBIS vorbis)
109 ++ if (VORBIS_FOUND)
110 ++ add_definitions("-DHAS_VORBIS")
111 ++ endif (VORBIS_FOUND)
112 ++endif()
113 +
114 +-pkg_search_module(TREMOR vorbisidec)
115 +-if (TREMOR_FOUND)
116 +- add_definitions("-DHAS_TREMOR")
117 +-endif (TREMOR_FOUND)
118 ++if(BUILD_WITH_TREMOR)
119 ++ pkg_search_module(TREMOR vorbisidec)
120 ++ if (TREMOR_FOUND)
121 ++ add_definitions("-DHAS_TREMOR")
122 ++ endif (TREMOR_FOUND)
123 ++endif()
124 +
125 +-pkg_search_module(VORBISENC vorbisenc)
126 +-if (VORBISENC_FOUND)
127 +- add_definitions("-DHAS_VORBISENC")
128 ++if(BUILD_WITH_VORBIS)
129 ++ pkg_search_module(VORBISENC vorbisenc)
130 ++ if (VORBISENC_FOUND)
131 ++ add_definitions("-DHAS_VORBISENC")
132 ++ endif(VORBISENC_FOUND)
133 + endif()
134
135 diff --git a/media-sound/snapcast/files/snapclient.confd b/media-sound/snapcast/files/snapclient.confd
136 new file mode 100644
137 index 00000000000..311cce1c4fa
138 --- /dev/null
139 +++ b/media-sound/snapcast/files/snapclient.confd
140 @@ -0,0 +1,33 @@
141 +# conf.d file for snapclient
142 +
143 +# Options for running Snapclient as daemon
144 +#
145 +# -s, --soundcard arg (=default)
146 +# Index or name of the soundcard
147 +#
148 +# -h, --host arg
149 +# Server hostname or ip address
150 +#
151 +# -p, --port arg (=1704)
152 +# Server port
153 +#
154 +# -d, --daemon [=arg(=-3)]
155 +# Daemonize, optional process priority [-20..19]
156 +#
157 +# --user arg
158 +# The user[:group] to run snapclient as when daemonized
159 +#
160 +# --latency arg (=0)
161 +# Latency of the soundcard
162 +#
163 +# -i, --instance arg (=1)
164 +# Instance id
165 +#
166 +# --hostID arg
167 +# Unique host id
168 +#
169 +# For all command line options, please see man snapclient
170 +
171 +SNAPCLIENT_USER="--user snapclient:audio"
172 +
173 +SNAPCLIENT_OPTS="-d"
174
175 diff --git a/media-sound/snapcast/files/snapclient.initd b/media-sound/snapcast/files/snapclient.initd
176 new file mode 100644
177 index 00000000000..df69eb2621a
178 --- /dev/null
179 +++ b/media-sound/snapcast/files/snapclient.initd
180 @@ -0,0 +1,17 @@
181 +#!/sbin/openrc-run
182 +# Copyright 1999-2018 Gentoo Authors
183 +# Distributed under the terms of the GNU General Public License v2
184 +
185 +name=snapclient
186 +command="/usr/bin/snapclient"
187 +command_args="$SNAPCLIENT_USER $SNAPCLIENT_OPTS"
188 +pidfile="/run/snapclient/pid"
189 +
190 +depend() {
191 + use avahi-daemon
192 +}
193 +
194 +start_pre() {
195 + checkpath --directory --owner snapclient:audio --mode 0775 \
196 + /run/snapclient
197 +}
198
199 diff --git a/media-sound/snapcast/files/snapserver.confd b/media-sound/snapcast/files/snapserver.confd
200 new file mode 100644
201 index 00000000000..9b12f81ff2a
202 --- /dev/null
203 +++ b/media-sound/snapcast/files/snapserver.confd
204 @@ -0,0 +1,45 @@
205 +# conf.d file for snapserver
206 +
207 +# Options for running Snapserver as daemon
208 +#
209 +# -p, --port arg (=1704)
210 +# Server port
211 +#
212 +# --controlPort arg (=1705)
213 +# Remote control port
214 +#
215 +# -s, --stream arg (=pipe:///tmp/snapfifo?name=default)
216 +# URI of the PCM input stream.
217 +# Format: TYPE://host/path?name=NAME
218 +# [&codec=CODEC]
219 +# [&sampleformat=SAMPLEFORMAT]
220 +#
221 +# --sampleformat arg (=48000:16:2)
222 +# Default sample format
223 +#
224 +# -c, --codec arg (=flac)
225 +# Default transport codec
226 +# (flac|ogg|pcm)[:options]
227 +# Type codec:? to get codec specific options
228 +#
229 +# --streamBuffer arg (=20)
230 +# Default stream read buffer [ms]
231 +#
232 +# -b, --buffer arg (=1000)
233 +# Buffer [ms]
234 +#
235 +# --sendToMuted
236 +# Send audio to muted clients
237 +#
238 +# -d, --daemon [=arg(=0)]
239 +# Daemonize
240 +# Optional process priority [-20..19]
241 +#
242 +# --user arg
243 +# The user[:group] to run snapserver as when daemonized
244 +#
245 +# For all command line options, please see man snapserver
246 +
247 +SNAPSERVER_USER="--user snapserver:snapserver"
248 +
249 +SNAPSERVER_OPTS="-d -s pipe:///tmp/snapfifo?name=default"
250
251 diff --git a/media-sound/snapcast/files/snapserver.initd b/media-sound/snapcast/files/snapserver.initd
252 new file mode 100644
253 index 00000000000..02762c861b0
254 --- /dev/null
255 +++ b/media-sound/snapcast/files/snapserver.initd
256 @@ -0,0 +1,17 @@
257 +#!/sbin/openrc-run
258 +# Copyright 1999-2018 Gentoo Authors
259 +# Distributed under the terms of the GNU General Public License v2
260 +
261 +name=snapserver
262 +command="/usr/bin/snapserver"
263 +command_args="$SNAPSERVER_USER $SNAPSERVER_OPTS"
264 +pidfile="/run/snapserver/pid"
265 +
266 +depend() {
267 + use avahi-daemon
268 +}
269 +
270 +start_pre() {
271 + checkpath --directory --owner snapserver:snapserver --mode 0775 \
272 + /run/snapserver
273 +}
274
275 diff --git a/media-sound/snapcast/metadata.xml b/media-sound/snapcast/metadata.xml
276 new file mode 100644
277 index 00000000000..b0eb43fa759
278 --- /dev/null
279 +++ b/media-sound/snapcast/metadata.xml
280 @@ -0,0 +1,36 @@
281 +<?xml version="1.0" encoding="UTF-8"?>
282 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
283 +<pkgmetadata>
284 + <maintainer type="person">
285 + <email>cb-gentoo@××××.de</email>
286 + <name>Christian Buchinger</name>
287 + </maintainer>
288 + <maintainer type="project">
289 + <email>proxy-maint@g.o</email>
290 + <name>Proxy Maintainers</name>
291 + </maintainer>
292 + <use>
293 + <flag name="avahi">Build with avahi support</flag>
294 + <flag name="client">Build and install Snapcast client component</flag>
295 + <flag name="flac">Build with FLAC compression support</flag>
296 + <flag name="server">Build and install Snapcast server component</flag>
297 + <flag name="static-libs">Build static libs</flag>
298 + <flag name="test">Build and run tests</flag>
299 + <flag name="tremor">Build with TREMOR version of vorbis</flag>
300 + <flag name="vorbis">Build with libvorbis support</flag>
301 + </use>
302 + <upstream>
303 + <maintainer status="active">
304 + <name>Johannes Pohl</name>
305 + <email>github@××××××.de</email>
306 + </maintainer>
307 + <bugs-to>https://github.com/badaix/snapcast/issues</bugs-to>
308 + <remote-id type="github">badaix/snapcast</remote-id>
309 + </upstream>
310 + <longdescription lang="en">
311 + Snapcast plays audio streams time sychronized on multiple devices over
312 + network using a server and a client component. The server picks up an
313 + audio stream from a fifo pipe, thus it can be combined with any audio
314 + source that is able to write to a pipe.
315 + </longdescription>
316 +</pkgmetadata>
317
318 diff --git a/media-sound/snapcast/snapcast-0.15.0.ebuild b/media-sound/snapcast/snapcast-0.15.0.ebuild
319 new file mode 100644
320 index 00000000000..da8726fd243
321 --- /dev/null
322 +++ b/media-sound/snapcast/snapcast-0.15.0.ebuild
323 @@ -0,0 +1,87 @@
324 +# Copyright 1999-2018 Gentoo Authors
325 +# Distributed under the terms of the GNU General Public License v2
326 +
327 +EAPI="6"
328 +
329 +DESCRIPTION="Synchronous multi-room audio player"
330 +HOMEPAGE="https://github.com/badaix/snapcast"
331 +
332 +if [[ ${PV} == *9999 ]] ; then
333 + inherit user cmake-utils git-r3
334 +
335 + EGIT_REPO_URI="https://github.com/badaix/snapcast.git"
336 + EGIT_BRANCH="develop"
337 +else
338 + inherit user cmake-utils
339 +
340 + SRC_URI="https://github.com/badaix/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
341 +
342 + KEYWORDS="~amd64 ~x86"
343 +fi
344 +
345 +LICENSE="GPL-3+"
346 +SLOT="0"
347 +IUSE="+avahi +client +flac +server static-libs tremor +vorbis"
348 +
349 +REQUIRED_USE="|| ( server client )"
350 +
351 +RDEPEND="avahi? ( net-dns/avahi[dbus] )
352 + client? ( media-libs/alsa-lib )
353 + flac? ( media-libs/flac )
354 + tremor? ( media-libs/tremor )
355 + vorbis? ( media-libs/libvorbis )"
356 +DEPEND="${RDEPEND}
357 + >=dev-cpp/aixlog-1.2.1
358 + >=dev-cpp/asio-1.12.1
359 + >=dev-cpp/popl-1.2.0"
360 +
361 +PATCHES=( "${FILESDIR}/${PN}-options-for-use-flags.patch" )
362 +
363 +pkg_preinst() {
364 + if use server ; then
365 + enewgroup "snapserver"
366 + enewuser "snapserver" -1 -1 /var/lib/snapserver snapserver
367 + fi
368 +
369 + if use client ; then
370 + enewuser "snapclient" -1 -1 /var/lib/snapclient audio
371 + fi
372 +}
373 +
374 +src_configure() {
375 + local mycmakeargs=(
376 + -DBUILD_WITH_AVAHI=$(usex avahi)
377 + -DBUILD_CLIENT=$(usex client)
378 + -DBUILD_WITH_FLAC=$(usex flac)
379 + -DBUILD_SERVER=$(usex server)
380 + -DBUILD_STATIC_LIBS=$(usex static-libs)
381 + -DBUILD_TESTS=no
382 + -DBUILD_WITH_TREMOR=$(usex tremor)
383 + -DBUILD_WITH_VORBIS=$(usex vorbis)
384 + )
385 +
386 + cmake-utils_src_configure
387 +}
388 +
389 +src_install() {
390 + cmake-utils_src_install
391 +
392 + for bin in server client ; do
393 + if use ${bin} ; then
394 + doman "${bin}/snap${bin}.1"
395 +
396 + newconfd "${FILESDIR}/snap${bin}.confd" "snap${bin}"
397 + newinitd "${FILESDIR}/snap${bin}.initd" "snap${bin}"
398 + fi
399 + done
400 +
401 + if use client ; then
402 + diropts -m 0770 -o snapclient audio
403 + keepdir /var/lib/snapclient
404 + fi
405 +
406 + if use server ; then
407 + diropts -m 0770 -o snapserver snapserver
408 + keepdir /var/lib/snapserver
409 + fi
410 +}
411
412 diff --git a/media-sound/snapcast/snapcast-9999.ebuild b/media-sound/snapcast/snapcast-9999.ebuild
413 new file mode 100644
414 index 00000000000..da8726fd243
415 --- /dev/null
416 +++ b/media-sound/snapcast/snapcast-9999.ebuild
417 @@ -0,0 +1,87 @@
418 +# Copyright 1999-2018 Gentoo Authors
419 +# Distributed under the terms of the GNU General Public License v2
420 +
421 +EAPI="6"
422 +
423 +DESCRIPTION="Synchronous multi-room audio player"
424 +HOMEPAGE="https://github.com/badaix/snapcast"
425 +
426 +if [[ ${PV} == *9999 ]] ; then
427 + inherit user cmake-utils git-r3
428 +
429 + EGIT_REPO_URI="https://github.com/badaix/snapcast.git"
430 + EGIT_BRANCH="develop"
431 +else
432 + inherit user cmake-utils
433 +
434 + SRC_URI="https://github.com/badaix/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
435 +
436 + KEYWORDS="~amd64 ~x86"
437 +fi
438 +
439 +LICENSE="GPL-3+"
440 +SLOT="0"
441 +IUSE="+avahi +client +flac +server static-libs tremor +vorbis"
442 +
443 +REQUIRED_USE="|| ( server client )"
444 +
445 +RDEPEND="avahi? ( net-dns/avahi[dbus] )
446 + client? ( media-libs/alsa-lib )
447 + flac? ( media-libs/flac )
448 + tremor? ( media-libs/tremor )
449 + vorbis? ( media-libs/libvorbis )"
450 +DEPEND="${RDEPEND}
451 + >=dev-cpp/aixlog-1.2.1
452 + >=dev-cpp/asio-1.12.1
453 + >=dev-cpp/popl-1.2.0"
454 +
455 +PATCHES=( "${FILESDIR}/${PN}-options-for-use-flags.patch" )
456 +
457 +pkg_preinst() {
458 + if use server ; then
459 + enewgroup "snapserver"
460 + enewuser "snapserver" -1 -1 /var/lib/snapserver snapserver
461 + fi
462 +
463 + if use client ; then
464 + enewuser "snapclient" -1 -1 /var/lib/snapclient audio
465 + fi
466 +}
467 +
468 +src_configure() {
469 + local mycmakeargs=(
470 + -DBUILD_WITH_AVAHI=$(usex avahi)
471 + -DBUILD_CLIENT=$(usex client)
472 + -DBUILD_WITH_FLAC=$(usex flac)
473 + -DBUILD_SERVER=$(usex server)
474 + -DBUILD_STATIC_LIBS=$(usex static-libs)
475 + -DBUILD_TESTS=no
476 + -DBUILD_WITH_TREMOR=$(usex tremor)
477 + -DBUILD_WITH_VORBIS=$(usex vorbis)
478 + )
479 +
480 + cmake-utils_src_configure
481 +}
482 +
483 +src_install() {
484 + cmake-utils_src_install
485 +
486 + for bin in server client ; do
487 + if use ${bin} ; then
488 + doman "${bin}/snap${bin}.1"
489 +
490 + newconfd "${FILESDIR}/snap${bin}.confd" "snap${bin}"
491 + newinitd "${FILESDIR}/snap${bin}.initd" "snap${bin}"
492 + fi
493 + done
494 +
495 + if use client ; then
496 + diropts -m 0770 -o snapclient audio
497 + keepdir /var/lib/snapclient
498 + fi
499 +
500 + if use server ; then
501 + diropts -m 0770 -o snapserver snapserver
502 + keepdir /var/lib/snapserver
503 + fi
504 +}