snapcast: add package snapserver and snapclient

Snapcast [1] is a multiroom client-server audio player, where all
clients are time synchronized with the server to play perfectly synced
audio.

It's not a standalone player, but an extension that turns your existing
audio player into a Sonos-like multiroom solution.
Audio is captured by the server and routed to the connected clients.
Several players can feed audio to the server in parallel and clients can
be grouped to play the same audio stream.
One of the most generic ways to use Snapcast is in conjunction with the
music player daemon (MPD) [1] or Mopidy [2].

[1]: https://github.com/badaix/snapcast
[2]: http://www.musicpd.org/
[3]: https://www.mopidy.com/

Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
This commit is contained in:
Szabolcs Hubai 2024-04-18 00:23:26 +02:00
parent 79bbef16b1
commit cbf46ff76c
1 changed files with 27 additions and 17 deletions

View File

@ -1,22 +1,23 @@
# # SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME := snapcast PKG_NAME:=snapcast
PKG_VERSION := 0.27.0 BASE_VERSION:=0.28.0
PKG_RELEASE := $(PKG_SOURCE_VERSION) PKG_SOURCE_DATE:=2024-04-15
PKG_USE_MIPS16 := 0 PKG_SOURCE_VERSION:=5fa01b8a49d842ed368138ee071cdf1c34be7a64
PKG_RELEASE:=1
# PKG_MIRROR_HASH=skip
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/badaix/snapcast.git PKG_SOURCE_URL:=https://github.com/badaix/snapcast.git
PKG_SOURCE_VERSION:=v0.27.0 PKG_MIRROR_HASH=bac3da20899f507e096df96892a4292ecad907fbeb158ddd056a5893ae96a04c
PKG_BUILD_DIR:=$(BUILD_DIR)/snapcast-$(PKG_VERSION)
PKG_VERSION:=$(BASE_VERSION).$(subst -,.,$(PKG_SOURCE_DATE))~$(call version_abbrev,$(PKG_SOURCE_VERSION))
PKG_MAINTAINER:=
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk include $(INCLUDE_DIR)/cmake.mk
@ -50,14 +51,14 @@ endef
define Package/snapserver define Package/snapserver
$(call Package/snapcast/Default) $(call Package/snapcast/Default)
TITLE += Snapserver TITLE += Snapserver
DEPENDS += +AUDIO_SUPPORT:alsa-lib +libvorbis +libsoxr DEPENDS += +libvorbis
HIDDEN := 1 HIDDEN := 1
endef endef
define Package/snapclient define Package/snapclient
$(call Package/snapcast/Default) $(call Package/snapcast/Default)
TILE += Snapclient TILE += Snapclient
DEPENDS += +libvorbisidec +libsoxr DEPENDS += +libvorbisidec
HIDDEN := 1 HIDDEN := 1
endef endef
@ -89,6 +90,15 @@ define Package/snapcast/config
endmenu endmenu
endef endef
define Package/snapserver/conffiles
/etc/default/snapserver
/etc/snapserver.conf
endef
define Package/snapclient/conffiles
/etc/default/snapclient
endef
define Package/snapcast/Default/install define Package/snapcast/Default/install
true true
endef endef
@ -99,7 +109,7 @@ define Package/snapserver/install
$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/snapserver.init $(1)/etc/init.d/snapserver $(INSTALL_BIN) ./files/snapserver.init $(1)/etc/init.d/snapserver
$(INSTALL_DIR) $(1)/etc/default $(INSTALL_DIR) $(1)/etc/default
$(INSTALL_BIN) $(CURDIR)/../../debian/snapserver.default $(1)/etc/default/snapserver $(INSTALL_BIN) $(PKG_BUILD_DIR)/extras/package/debian/snapserver.default $(1)/etc/default/snapserver
$(INSTALL_BIN) $(PKG_BUILD_DIR)/server/etc/snapserver.conf $(1)/etc/snapserver.conf $(INSTALL_BIN) $(PKG_BUILD_DIR)/server/etc/snapserver.conf $(1)/etc/snapserver.conf
endef endef
@ -109,7 +119,7 @@ define Package/snapclient/install
$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/snapclient.init $(1)/etc/init.d/snapclient $(INSTALL_BIN) ./files/snapclient.init $(1)/etc/init.d/snapclient
$(INSTALL_DIR) $(1)/etc/default $(INSTALL_DIR) $(1)/etc/default
$(INSTALL_BIN) $(CURDIR)/../../debian/snapclient.default $(1)/etc/default/snapclient $(INSTALL_BIN) $(PKG_BUILD_DIR)/extras/package/debian/snapclient.default $(1)/etc/default/snapclient
endef endef
$(eval $(call BuildPackage,snapserver)) $(eval $(call BuildPackage,snapserver))