From 979c1a80c3a2586682aa57c2c3a1301f5718f8d6 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Tue, 11 May 2021 20:12:39 +0200 Subject: [PATCH 1/8] update icecast dependencies and update for DSM7 - adjust package paths in icecast.xml (avoid use of /usr/local/{package}) - update ezstream to v1.0.2 (and add cross/libcheck for build) - update taglib to v1.12 - install favicon.ico - add ezstream cli tools to path (SPK_COMMANDS) --- cross/ezstream/Makefile | 6 +++-- cross/ezstream/PLIST | 18 ++++++++------- cross/ezstream/digests | 6 ++--- cross/icecast/Makefile | 5 ++++ cross/icecast/PLIST | 13 ----------- cross/libcheck/Makefile | 16 +++++++++++++ cross/libcheck/PLIST | 2 ++ cross/libcheck/digests | 3 +++ cross/taglib/Makefile | 9 ++++---- cross/taglib/PLIST | 2 +- cross/taglib/digests | 6 ++--- spk/icecast/Makefile | 23 ++++++++++--------- spk/icecast/src/icecast.xml | 20 ++++++++-------- spk/icecast/src/service-setup.sh | 4 ++-- .../wizards}/install_uifile | 0 15 files changed, 75 insertions(+), 58 deletions(-) create mode 100644 cross/libcheck/Makefile create mode 100644 cross/libcheck/PLIST create mode 100644 cross/libcheck/digests rename spk/icecast/{WIZARD_UIFILES => src/wizards}/install_uifile (100%) diff --git a/cross/ezstream/Makefile b/cross/ezstream/Makefile index 50a6b511438..e038ea250fd 100644 --- a/cross/ezstream/Makefile +++ b/cross/ezstream/Makefile @@ -1,11 +1,13 @@ PKG_NAME = ezstream -PKG_VERS = 0.6.0 +PKG_VERS = 1.0.2 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://downloads.xiph.org/releases/ezstream PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -DEPENDS = cross/libxml2 cross/taglib cross/libvorbis cross/speex cross/libtheora cross/libogg cross/zlib cross/libpng cross/libshout +BUILD_DEPENDS = cross/libcheck +DEPENDS = cross/zlib cross/libpng cross/libxml2 +DEPENDS += cross/taglib cross/libvorbis cross/speex cross/libtheora cross/libogg cross/libshout HOMEPAGE = https://www.icecast.org/ COMMENT = EZStream is a command line source client for Icecast media streaming servers. diff --git a/cross/ezstream/PLIST b/cross/ezstream/PLIST index 27c08bdb7af..b63b8e036d2 100644 --- a/cross/ezstream/PLIST +++ b/cross/ezstream/PLIST @@ -1,13 +1,15 @@ bin:bin/ezstream +bin:bin/ezstream-cfgmigrate rsc:bin/ezstream-file.sh +rsc:share/examples/ezstream/artist.txt rsc:share/examples/ezstream/ezstream-file_template.xml -rsc:share/examples/ezstream/ezstream_metadata.xml -rsc:share/examples/ezstream/ezstream_mp3.xml -rsc:share/examples/ezstream/ezstream_reencode_mp3.xml -rsc:share/examples/ezstream/ezstream_reencode_theora.xml -rsc:share/examples/ezstream/ezstream_reencode_vorbis.xml -rsc:share/examples/ezstream/ezstream_stdin_vorbis.xml -rsc:share/examples/ezstream/ezstream_vorbis.xml +rsc:share/examples/ezstream/ezstream-full.xml +rsc:share/examples/ezstream/ezstream-metadata.xml +rsc:share/examples/ezstream/ezstream-minimal.xml +rsc:share/examples/ezstream/ezstream-stdin.xml +rsc:share/examples/ezstream/ezstream-video.xml rsc:share/examples/ezstream/meta.sh -rsc:share/examples/ezstream/playlist-logger.sh +rsc:share/examples/ezstream/metadata.txt rsc:share/examples/ezstream/play.sh +rsc:share/examples/ezstream/playlist-logger.sh +rsc:share/examples/ezstream/title.txt diff --git a/cross/ezstream/digests b/cross/ezstream/digests index b1289ee0dfd..d751fc4bee3 100644 --- a/cross/ezstream/digests +++ b/cross/ezstream/digests @@ -1,3 +1,3 @@ -ezstream-0.6.0.tar.gz SHA1 7817942031411cddf8e4f6d3dd0682a71fc1a592 -ezstream-0.6.0.tar.gz SHA256 f86eb8163b470c3acbc182b42406f08313f85187bd9017afb8b79b02f03635c9 -ezstream-0.6.0.tar.gz MD5 913fffa04a5631e5f9d0ee19945045a4 +ezstream-1.0.2.tar.gz SHA1 8b1cda0f5d7c4df24b847691f98065aab51020d2 +ezstream-1.0.2.tar.gz SHA256 11de897f455a95ba58546bdcd40a95d3bda69866ec5f7879a83b024126c54c2a +ezstream-1.0.2.tar.gz MD5 247867e7c1e3c349aa9c7af79e666d4d diff --git a/cross/icecast/Makefile b/cross/icecast/Makefile index dd563e2ff3a..887be67b4f6 100644 --- a/cross/icecast/Makefile +++ b/cross/icecast/Makefile @@ -12,7 +12,12 @@ COMMENT = Icecast is a streaming media server which currently supports Ogg (Vor LICENSE = GPLv2 GNU_CONFIGURE = 1 +POST_INSTALL_TARGET = icecast_extra_install CONFIGURE_ARGS = --with-xslt-config=$(STAGING_INSTALL_PREFIX)/bin/xslt-config include ../../mk/spksrc.cross-cc.mk + +.PHONY: icecast_extra_install +icecast_extra_install: + @$(RUN) cp win32/icecast.ico $(STAGING_INSTALL_PREFIX)/share/icecast/web/favicon.ico diff --git a/cross/icecast/PLIST b/cross/icecast/PLIST index 2168a4936fd..7e9bdf2db1d 100644 --- a/cross/icecast/PLIST +++ b/cross/icecast/PLIST @@ -1,15 +1,2 @@ bin:bin/icecast -bin:bin/ezstream -rsc:bin/ezstream-file.sh rsc:share/icecast/ -rsc:share/examples/ezstream/ezstream-file_template.xml -rsc:share/examples/ezstream/ezstream_metadata.xml -rsc:share/examples/ezstream/ezstream_mp3.xml -rsc:share/examples/ezstream/ezstream_reencode_mp3.xml -rsc:share/examples/ezstream/ezstream_reencode_theora.xml -rsc:share/examples/ezstream/ezstream_reencode_vorbis.xml -rsc:share/examples/ezstream/ezstream_stdin_vorbis.xml -rsc:share/examples/ezstream/ezstream_vorbis.xml -rsc:share/examples/ezstream/meta.sh -rsc:share/examples/ezstream/playlist-logger.sh -rsc:share/examples/ezstream/play.sh diff --git a/cross/libcheck/Makefile b/cross/libcheck/Makefile new file mode 100644 index 00000000000..ea835f9faab --- /dev/null +++ b/cross/libcheck/Makefile @@ -0,0 +1,16 @@ +PKG_NAME = check +PKG_VERS = 0.15.2 +PKG_EXT = tar.gz +PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://github.com/libcheck/check/releases/download/$(PKG_VERS) +PKG_DIR = $(PKG_NAME)-$(PKG_VERS) + +DEPENDS = + +HOMEPAGE = https://libcheck.github.io/check/ +COMMENT = A unit testing framework for C +LICENSE = LGPLv2.1 + +GNU_CONFIGURE = 1 + +include ../../mk/spksrc.cross-cc.mk diff --git a/cross/libcheck/PLIST b/cross/libcheck/PLIST new file mode 100644 index 00000000000..43c5184beb1 --- /dev/null +++ b/cross/libcheck/PLIST @@ -0,0 +1,2 @@ +lnk:lib/libcheck.so.0 +lib:lib/libcheck.so.0.0.0 diff --git a/cross/libcheck/digests b/cross/libcheck/digests new file mode 100644 index 00000000000..1ffb1535f5c --- /dev/null +++ b/cross/libcheck/digests @@ -0,0 +1,3 @@ +check-0.15.2.tar.gz SHA1 54e6bae308aedab9a78a0349d839c92fc03bd2db +check-0.15.2.tar.gz SHA256 a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a +check-0.15.2.tar.gz MD5 50fcafcecde5a380415b12e9c574e0b2 diff --git a/cross/taglib/Makefile b/cross/taglib/Makefile index 555121e666c..763ee8e547c 100644 --- a/cross/taglib/Makefile +++ b/cross/taglib/Makefile @@ -1,5 +1,5 @@ PKG_NAME = taglib -PKG_VERS = 1.11.1 +PKG_VERS = 1.12 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://taglib.org/releases/ @@ -7,11 +7,10 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = -HOMEPAGE = -COMMENT = -LICENSE = +HOMEPAGE = https://taglib.org/ +COMMENT = TagLib is a library for reading and editing the meta-data of several popular audio formats. Currently it supports both ID3v1 and ID3v2 for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 and ASF files. +LICENSE = LGPLv2.1 GNU_CONFIGURE = 1 - include ../../mk/spksrc.cross-cmake.mk diff --git a/cross/taglib/PLIST b/cross/taglib/PLIST index 7ac91a67097..ac77f112289 100644 --- a/cross/taglib/PLIST +++ b/cross/taglib/PLIST @@ -1,7 +1,7 @@ tsc:bin/taglib-config lnk:lib/libtag.so lnk:lib/libtag.so.1 -lib:lib/libtag.so.1.17.0 +lib:lib/libtag.so.1.18.0 lnk:lib/libtag_c.so lnk:lib/libtag_c.so.0 llib:lib/libtag_c.so.0.0.0 diff --git a/cross/taglib/digests b/cross/taglib/digests index b07a510ef7b..f809fee6bb0 100644 --- a/cross/taglib/digests +++ b/cross/taglib/digests @@ -1,3 +1,3 @@ -taglib-1.11.1.tar.gz SHA1 80a30eeae67392f636c9f113c60d778c2995c99e -taglib-1.11.1.tar.gz SHA256 b6d1a5a610aae6ff39d93de5efd0fdc787aa9e9dc1e7026fa4c961b26563526b -taglib-1.11.1.tar.gz MD5 cee7be0ccfc892fa433d6c837df9522a +taglib-1.12.tar.gz SHA1 c06c44223f64ef61d29372659059d6b9e27c2efd +taglib-1.12.tar.gz SHA256 7fccd07669a523b07a15bd24c8da1bbb92206cb19e9366c3692af3d79253b703 +taglib-1.12.tar.gz MD5 4313ed2671234e029b7af8f97c84e9af diff --git a/spk/icecast/Makefile b/spk/icecast/Makefile index 7ff7cb918ed..70fecaa9690 100644 --- a/spk/icecast/Makefile +++ b/spk/icecast/Makefile @@ -1,23 +1,23 @@ SPK_NAME = icecast SPK_VERS = 2.4.4 -SPK_REV = 5 +SPK_REV = 6 SPK_ICON = src/icecast.png DSM_UI_DIR = app -DEPENDS = cross/busybox cross/$(SPK_NAME) +DEPENDS = cross/$(SPK_NAME) MAINTAINER = SynoCommunity -DESCRIPTION = "Icecast is a streaming media server which currently supports Ogg \(Vorbis and Theora\), Opus, WebM and MP3 audio streams. It can be used to create an Internet radio station or a privately running jukebox and many things in between. It is very versatile in that new formats can be added relatively easily and supports open standards for communication and interaction. This package includes Ezstream, a command line source client for Icecast media streaming servers." +DESCRIPTION = Icecast is a streaming media server which currently supports Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams. It can be used to create an Internet radio station or a privately running jukebox and many things in between. It is very versatile in that new formats can be added relatively easily and supports open standards for communication and interaction. This package includes Ezstream, a command line source client for Icecast media streaming servers. ADMIN_PORT = 8000 -CHANGELOG = "Update openssl to 1.1." +CHANGELOG = "1. Security fixes for CVE-2018-10393, CVE-2017-14160, CVE-2018-10392 (libvorbis) and CVE-2021-22876, CVE-2021-22890 (libcurl).
2. Adjust configuration for DSM7 compatibility.
3. Update dependencies (taglib v1.12, vorbis v1.3.7, ezstream v1.0.2, libcurl v7.76.1)" STARTABLE = yes DISPLAY_NAME = Icecast -HOMEPAGE = https://www.icecast.org/ -LICENSE = GPLv2 +HOMEPAGE = https://www.icecast.org/ +LICENSE = GPLv2 -WIZARDS_DIR = WIZARD_UIFILES +WIZARDS_DIR = src/wizards SERVICE_USER = auto SERVICE_SETUP = src/service-setup.sh @@ -25,14 +25,15 @@ NO_SERVICE_SHORTCUT = yes POST_STRIP_TARGET = icecast_extra_install -BUSYBOX_CONFIG = usrmng daemon -ENV += BUSYBOX_CONFIG="$(BUSYBOX_CONFIG)" - +SPK_COMMANDS = bin/ezstream bin/ezstream-cfgmigrate bin/ezstream-file.sh include ../../mk/spksrc.spk.mk .PHONY: icecast_extra_install icecast_extra_install: - install -m 755 -d $(STAGING_DIR)/var install -m 755 -d $(STAGING_DIR)/var/log install -m 644 src/icecast.xml $(STAGING_DIR)/var/icecast.xml +ifeq ($(call version_ge, ${TCVERSION}, 7.0),1) + # patch configuration paths for DSM 7 + sed -e 's|/var/packages/icecast/target/var|/var/packages/icecast/var|g' -i $(STAGING_DIR)/var/icecast.xml +endif diff --git a/spk/icecast/src/icecast.xml b/spk/icecast/src/icecast.xml index 5e4794c21ed..0939f227377 100644 --- a/spk/icecast/src/icecast.xml +++ b/spk/icecast/src/icecast.xml @@ -63,7 +63,7 @@ --> localhost - + 8000 @@ -97,7 +97,7 @@ @@ -191,14 +191,14 @@ - /usr/local/icecast/share/icecast + /var/packages/icecast/target/share/icecast - /usr/local/icecast/var/log - /usr/local/icecast/share/icecast/web - /usr/local/icecast/share/icecast/admin - /usr/local/icecast/var/icecast.pid + /var/packages/icecast/target/var/log + /var/packages/icecast/target/share/icecast/web + /var/packages/icecast/target/share/icecast/admin + /var/packages/icecast/target/var/icecast.pid @@ -236,8 +236,8 @@ 0 diff --git a/spk/icecast/src/service-setup.sh b/spk/icecast/src/service-setup.sh index 267705bb46e..7ebfb668916 100644 --- a/spk/icecast/src/service-setup.sh +++ b/spk/icecast/src/service-setup.sh @@ -1,4 +1,5 @@ -CFG_FILE="${SYNOPKG_PKGDEST}/var/icecast.xml" + +CFG_FILE="${SYNOPKG_PKGVAR}/icecast.xml" PATH="${SYNOPKG_PKGDEST}:${PATH}" SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/icecast -c ${CFG_FILE}" SVC_BACKGROUND=y @@ -12,4 +13,3 @@ service_postinst () sed -i -e "s/@password@/${wizard_ic_password:=changepassword}/g" ${CFG_FILE} } - diff --git a/spk/icecast/WIZARD_UIFILES/install_uifile b/spk/icecast/src/wizards/install_uifile similarity index 100% rename from spk/icecast/WIZARD_UIFILES/install_uifile rename to spk/icecast/src/wizards/install_uifile From 36de32ff14177ebe1ce77ccfff7c3519a033a046 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sun, 7 Nov 2021 23:57:56 +0100 Subject: [PATCH 2/8] cleanup makefile --- spk/icecast/Makefile | 4 +--- spk/icecast/src/service-setup.sh | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/spk/icecast/Makefile b/spk/icecast/Makefile index 70fecaa9690..c46a7b15612 100644 --- a/spk/icecast/Makefile +++ b/spk/icecast/Makefile @@ -10,8 +10,6 @@ MAINTAINER = SynoCommunity DESCRIPTION = Icecast is a streaming media server which currently supports Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams. It can be used to create an Internet radio station or a privately running jukebox and many things in between. It is very versatile in that new formats can be added relatively easily and supports open standards for communication and interaction. This package includes Ezstream, a command line source client for Icecast media streaming servers. ADMIN_PORT = 8000 CHANGELOG = "1. Security fixes for CVE-2018-10393, CVE-2017-14160, CVE-2018-10392 (libvorbis) and CVE-2021-22876, CVE-2021-22890 (libcurl).
2. Adjust configuration for DSM7 compatibility.
3. Update dependencies (taglib v1.12, vorbis v1.3.7, ezstream v1.0.2, libcurl v7.76.1)" - -STARTABLE = yes DISPLAY_NAME = Icecast HOMEPAGE = https://www.icecast.org/ @@ -19,9 +17,9 @@ LICENSE = GPLv2 WIZARDS_DIR = src/wizards +STARTABLE = yes SERVICE_USER = auto SERVICE_SETUP = src/service-setup.sh -NO_SERVICE_SHORTCUT = yes POST_STRIP_TARGET = icecast_extra_install diff --git a/spk/icecast/src/service-setup.sh b/spk/icecast/src/service-setup.sh index 7ebfb668916..3671fc6200d 100644 --- a/spk/icecast/src/service-setup.sh +++ b/spk/icecast/src/service-setup.sh @@ -1,6 +1,6 @@ +# icecast service setup CFG_FILE="${SYNOPKG_PKGVAR}/icecast.xml" -PATH="${SYNOPKG_PKGDEST}:${PATH}" SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/icecast -c ${CFG_FILE}" SVC_BACKGROUND=y SVC_WRITE_PID=y @@ -12,4 +12,3 @@ service_postinst () sed -i -e "s/@username@/${wizard_ic_username:=admin}/g" ${CFG_FILE} sed -i -e "s/@password@/${wizard_ic_password:=changepassword}/g" ${CFG_FILE} } - From 21044bb596bb86380717ac101c2b89b2cb34122a Mon Sep 17 00:00:00 2001 From: hgy59 Date: Mon, 3 Jan 2022 22:26:04 +0100 Subject: [PATCH 3/8] install and configure custom mime.types file - provide mime.types for file serving - use dsm 7 compatible var folder --- spk/icecast/Makefile | 7 +- spk/icecast/src/icecast.xml | 7 +- spk/icecast/src/mime.types | 836 +++++++++++++++++++++++++ spk/icecast/src/wizards/install_uifile | 15 +- 4 files changed, 852 insertions(+), 13 deletions(-) create mode 100644 spk/icecast/src/mime.types diff --git a/spk/icecast/Makefile b/spk/icecast/Makefile index c46a7b15612..84d2ccfa493 100644 --- a/spk/icecast/Makefile +++ b/spk/icecast/Makefile @@ -9,7 +9,7 @@ DEPENDS = cross/$(SPK_NAME) MAINTAINER = SynoCommunity DESCRIPTION = Icecast is a streaming media server which currently supports Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams. It can be used to create an Internet radio station or a privately running jukebox and many things in between. It is very versatile in that new formats can be added relatively easily and supports open standards for communication and interaction. This package includes Ezstream, a command line source client for Icecast media streaming servers. ADMIN_PORT = 8000 -CHANGELOG = "1. Security fixes for CVE-2018-10393, CVE-2017-14160, CVE-2018-10392 (libvorbis) and CVE-2021-22876, CVE-2021-22890 (libcurl).
2. Adjust configuration for DSM7 compatibility.
3. Update dependencies (taglib v1.12, vorbis v1.3.7, ezstream v1.0.2, libcurl v7.76.1)" +CHANGELOG = "1. Security fixes for CVE-2018-10393, CVE-2017-14160, CVE-2018-10392 (libvorbis) and CVE-2021-22876, CVE-2021-22890 (libcurl).
2. Adjust configuration for DSM7 compatibility.
3. Update dependencies (taglib v1.12, vorbis v1.3.7, ezstream v1.0.2, libcurl of curl v7.80.0)" DISPLAY_NAME = Icecast HOMEPAGE = https://www.icecast.org/ @@ -31,7 +31,4 @@ include ../../mk/spksrc.spk.mk icecast_extra_install: install -m 755 -d $(STAGING_DIR)/var/log install -m 644 src/icecast.xml $(STAGING_DIR)/var/icecast.xml -ifeq ($(call version_ge, ${TCVERSION}, 7.0),1) - # patch configuration paths for DSM 7 - sed -e 's|/var/packages/icecast/target/var|/var/packages/icecast/var|g' -i $(STAGING_DIR)/var/icecast.xml -endif + install -m 644 src/mime.types $(STAGING_DIR)/var/mime.types diff --git a/spk/icecast/src/icecast.xml b/spk/icecast/src/icecast.xml index 0939f227377..10063705313 100644 --- a/spk/icecast/src/icecast.xml +++ b/spk/icecast/src/icecast.xml @@ -189,16 +189,19 @@ 1 + + /var/packages/icecast/var/mime.types + /var/packages/icecast/target/share/icecast - /var/packages/icecast/target/var/log + /var/packages/icecast/var/log /var/packages/icecast/target/share/icecast/web /var/packages/icecast/target/share/icecast/admin - /var/packages/icecast/target/var/icecast.pid + /var/packages/icecast/var/icecast.pid