From 380374b2288d14e30f44cc5862f9d0292d82d137 Mon Sep 17 00:00:00 2001 From: Marius Dinu Date: Tue, 16 Nov 2021 19:52:25 +0200 Subject: [PATCH] tvheadend: update to git master 2021-11-16, package cleanup, more options Changes: - Update to tvheadend git master branch, commit 2efe90cdcf74fdc4179692d283cf46c85e1cf681 dated 2021-11-16 - Removed patches that are not needed anymore. - Add patch to ignore a ICONV test that runs at tvheadned startup. This test fails without "full language support" in OpenWrt, but tvheadend appears to run fine anyway. - Descrambling needs libdvbcsa, a BUILD_PATENTED package. Control Word clients now depend on descrambling. - Added options: - CCCAM client - RegEx library choice: POSIX (internal) / libpcre (more compatible) / libpcre2 - Optimize for speed (-O3, LTO) - FFMPEG is working again. Added options for transcoding, but commented-out. If anyone needs this, just uncomment, make menuconfig and build. - Sort everything in a more logical order Signed-off-by: Marius Dinu --- multimedia/tvheadend/Config.in | 314 ++++++++++++------ multimedia/tvheadend/Makefile | 236 +++++++++---- multimedia/tvheadend/files/dvb.hotplug | 4 +- multimedia/tvheadend/files/tvheadend.init | 2 +- ...un-update-library-to-version-2018081.patch | 29 -- .../patches/010-openssl-deprecated.patch | 42 --- multimedia/tvheadend/patches/030-gcc10.patch | 24 -- .../patches/050-iconv-test-continue.patch | 13 + 8 files changed, 395 insertions(+), 269 deletions(-) delete mode 100644 multimedia/tvheadend/patches/001-Makefile.hdhomerun-update-library-to-version-2018081.patch delete mode 100644 multimedia/tvheadend/patches/010-openssl-deprecated.patch delete mode 100644 multimedia/tvheadend/patches/030-gcc10.patch create mode 100644 multimedia/tvheadend/patches/050-iconv-test-continue.patch diff --git a/multimedia/tvheadend/Config.in b/multimedia/tvheadend/Config.in index 5ed49e266f..741ae8ffa7 100644 --- a/multimedia/tvheadend/Config.in +++ b/multimedia/tvheadend/Config.in @@ -1,101 +1,219 @@ -comment "Input & output support" +comment "Generic options" + depends on PACKAGE_tvheadend -config TVHEADEND_LINUXDVB_SUPPORT - bool "DVB tuners" - default y - help - Include support for DVB tuners. - Note: Kernel driver(s) and firmware must also be installed. - -config TVHEADEND_DVBSCAN_SUPPORT - bool "Fetch DVB-scan data" - depends on TVHEADEND_LINUXDVB_SUPPORT - default TVHEADEND_LINUXDVB_SUPPORT - help - Download and include DVB scan tables. - -config TVHEADEND_IPTV - bool "IPTV client" - default y - help - Include IP-TV client. - -config TVHEADEND_SATIP_CLIENT - bool "SAT>IP client" - default y - help - Include SAT>IP client. This allows tvheadend to receive streams from a SAT>IP server. - SAT>IP is a client-server communication protocol in which SAT>IP servers, - connected to one or more DVB broadcast sources, send the program requested - by an SAT>IP client over an IP based network. - The main difference of SAT>IP to other IP-based TV distribution systems - such as IP-TV and DLNA is that the SAT>IP client does not select a program - from a server specific list, but has to specify the DVB reception parameters - such as the signal source, frequency, polarisation, modulation, PIDs and others. - -config TVHEADEND_SATIP_SERVER - bool "SAT>IP server" - default y - help - Include SAT>IP server. This allows tvheadend to stream to SAT>IP clients. - SAT>IP is a client-server communication protocol in which SAT>IP servers, - connected to one or more DVB broadcast sources, send the program requested - by an SAT>IP client over an IP based network. - The main difference of SAT>IP to other IP-based TV distribution systems - such as IP-TV and DLNA is that the SAT>IP client does not select a program - from a server specific list, but has to specify the DVB reception parameters - such as the signal source, frequency, polarisation, modulation, PIDs and others. - -config TVHEADEND_HDHOMERUN_CLIENT - bool "HDHomeRun client" - default y - help - Include HDHomeRun client. - HDHomeRun is a network-attached, digital television tuner box. - -comment "SoftCAM (Software Conditional Access Module)" - -config TVHEADEND_CWC_SUPPORT - bool "CWC newcamd" - default y - help - Support descrambling using Code Word Client newcamd protocol. - -config TVHEADEND_CAPMT_SUPPORT - bool "CWC capmnt" - default y - help - Support descrambling using Code Word Client capmnt (Linux Network DVBAPI) protocol. - -config TVHEADEND_CONSTCW_SUPPORT - bool "CCW" - default y - help - Support descrambling using Constant Code Word. - -comment "Other options" - -config TVHEADEND_AVAHI_SUPPORT - bool "Avahi client" - select PACKAGE_libavahi-client - default n - help - Enables the opensource implementation of Apple's zero configuration protocol. - Tvheadend will advertise itself on the network using this protocol. - -config TVHEADEND_IMAGECACHE - bool "Image cache" - default n - help - Support caching TV station logos and other images on disk. - Note: Activating disk cache will increase fash memory wear. - Selecting this option does not automatically enable disk caching. It only includes support for it. +config TVHEADEND_OPTIMIZE_SPEED + bool "Optimize for speed" + depends on PACKAGE_tvheadend + default n + help + Optimize tvheadend for speed instead of size. This option adds -O2 and LTO (Link Time Optimization). + Note: No benchmarks were performed when this option was added. Speed improvements (if any) are not known. config TVHEADEND_TRACE - bool "Low level debug trace" - default n - help - Support low level debug trace for tvheadend subsystems. - For a list of available subsystems, run "tvheadend --subsystems" in OpenWRT console. - Note: Selecting this option does not automatically enable trace logging. - It only includes support for --trace command line option and GUI. + bool "Low level debug trace" + depends on PACKAGE_tvheadend + default n + help + Support low level debug trace for tvheadend subsystems. + For a list of available subsystems, run "tvheadend --subsystems" in OpenWRT console. + Note: Selecting this option does not automatically enable trace logging. + It only includes support for --trace command line option and GUI. + +config TVHEADEND_AVAHI_SUPPORT + bool "Avahi client" + depends on PACKAGE_tvheadend + select PACKAGE_libavahi-client + default n + help + Enables the opensource implementation of Apple's zero configuration protocol. + Tvheadend will advertise itself on the network using this protocol. + +choice + prompt "Regular Expression" + depends on PACKAGE_tvheadend + config TVHEADEND_REGEX_POSIX + bool "POSIX (internal)" + help + Use internal POSIX Regular Expressions. + Note that not all EPG parsers will work with POSIX RegEx. + config TVHEADEND_REGEX_PCRE + bool "PCRE (libpcre)" + select PACKAGE_libpcre + help + Use more advanced Perl-Compatible Regular Expressions, provided by libpcre. + config TVHEADEND_REGEX_PCRE2 + bool "PCRE2 (libpcre2)" + select PACKAGE_libpcre2 + help + Use more advanced Perl-Compatible Regular Expressions, provided by libpcre2. +endchoice + +config TVHEADEND_IMAGECACHE + bool "Image cache" + depends on PACKAGE_tvheadend + default n + help + Support caching TV station logos and other images on disk. + Note: Activating disk cache will increase fash memory wear. + Selecting this option does not automatically enable disk caching. It only includes support for it. + +comment "Input & output support" + depends on PACKAGE_tvheadend + +config TVHEADEND_LINUXDVB_SUPPORT + bool "DVB tuners" + depends on PACKAGE_tvheadend + default y + help + Include support for DVB tuners. + Note: Kernel driver(s) and firmware must also be installed. + +config TVHEADEND_DVBSCAN_SUPPORT + bool "Include DVB-scan tables" + depends on TVHEADEND_LINUXDVB_SUPPORT + default TVHEADEND_LINUXDVB_SUPPORT + help + Download and include DVB scan tables. + +config TVHEADEND_IPTV + bool "IPTV client" + depends on PACKAGE_tvheadend + default y + help + Include IP-TV client. + +config TVHEADEND_SATIP_CLIENT + bool "SAT>IP client" + depends on PACKAGE_tvheadend + default y + help + Include SAT>IP client. This allows tvheadend to receive streams from a SAT>IP server. + +config TVHEADEND_SATIP_SERVER + bool "SAT>IP server" + depends on PACKAGE_tvheadend + default y + help + Include SAT>IP server. This allows tvheadend to stream to SAT>IP clients. + +config TVHEADEND_HDHOMERUN_CLIENT + bool "HDHomeRun client" + depends on PACKAGE_tvheadend + default y + help + Include HDHomeRun client. + HDHomeRun is a network-attached, digital television tuner box. + +comment "SoftCAM (Software Conditional Access Module)" + depends on PACKAGE_tvheadend + depends on BUILD_PATENTED + +config TVHEADEND_CSA + bool "CSA decoding" + depends on PACKAGE_tvheadend + depends on BUILD_PATENTED + select PACKAGE_libdvbcsa + default n + help + Support decoding CSA (Common Scrambling Algorithm). Uses libdvbcsa package. + +config TVHEADEND_CONSTCW + bool "CCW" + depends on TVHEADEND_CSA + default TVHEADEND_CSA + help + Support Constant Control Word. + +config TVHEADEND_CAPMT + bool "CWC capmt client" + depends on TVHEADEND_CSA + default n + help + Support Control Word Client capmt (Linux Network DVBAPI) protocol. + +config TVHEADEND_NEWCAMD + bool "CWC newcamd client" + depends on TVHEADEND_CSA + default n + help + Support Control Word Client newcamd protocol. + +config TVHEADEND_CCCAM + bool "CCCam client" + depends on TVHEADEND_CSA + default n + +comment "DVB descrambling and some codecs are only available with BUILD_PATENTED." + depends on PACKAGE_tvheadend + depends on !BUILD_PATENTED + +## Transcoding | Uncomment these options. +##comment "Transcoding and codecs" +## depends on PACKAGE_tvheadend +## +##config TVHEADEND_LIBFFMPEG +## bool "ffmpeg transcoding" +## depends on PACKAGE_tvheadend +## depends on BUILD_PATENTED +## select PACKAGE_libffmpeg-full +## default n +## help +## Use ffmpeg libraries for transcoding. +## +##config TVHEADEND_LIBX264 +## bool "x264" +## depends on PACKAGE_tvheadend +## depends on BUILD_PATENTED +## select PACKAGE_libx264 +## default n +## help +## Make x264 video codec available for transcoding. Uses libx264 package. +## +##config TVHEADEND_LIBX265 +## bool "x265" +## depends on PACKAGE_tvheadend +## depends on BUILD_PATENTED +## default n +## help +## Make x265 video codec available for transcoding. Uses static (built-in) libx265. +## +##config TVHEADEND_LIBVPX +## bool "VP8, VP9" +## depends on PACKAGE_tvheadend +## select PACKAGE_libvpx +## default n +## help +## Make VP8 and VP9 video codecs available for transcoding. Uses libvpx package. +## +##config TVHEADEND_LIBTHEORA +## bool "Theora" +## depends on PACKAGE_tvheadend +## select PACKAGE_libtheora +## default n +## help +## Make Theora video codec available for transcoding. Uses libtheora package. +## +##config TVHEADEND_LIBFDKAAC +## bool "AAC" +## depends on PACKAGE_tvheadend +## depends on BUILD_PATENTED +## select PACKAGE_fdk-aac +## default n +## help +## Make AAC audio codec available for transcoding. Uses fdk-aac package. +## +##config TVHEADEND_LIBVORBIS +## bool "Vorbis" +## depends on PACKAGE_tvheadend +## select PACKAGE_libvorbis +## default n +## help +## Make Vorbis audio codec available for transcoding. Uses libvorbis package. +## +##config TVHEADEND_LIBOPUS +## bool "Opus" +## depends on PACKAGE_tvheadend +## select PACKAGE_libopusenc +## default n +## help +## Make Opus audio codec available for transcoding. Uses libopusenc package. diff --git a/multimedia/tvheadend/Makefile b/multimedia/tvheadend/Makefile index f2df7070c9..4de391cc31 100644 --- a/multimedia/tvheadend/Makefile +++ b/multimedia/tvheadend/Makefile @@ -1,23 +1,19 @@ -# -# 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 PKG_NAME:=tvheadend -PKG_VERSION:=4.2.8 +PKG_VERSION:=2021-11-16 PKG_RELEASE:=$(AUTORELEASE) -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/tvheadend/tvheadend/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1aef889373d5fad2a7bd2f139156d4d5e34a64b6d38b87b868a2df415f01f7ad +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/tvheadend/tvheadend.git +PKG_MIRROR_HASH:=1645e90b6b8f104f2749fb0911493010f7ae3176253f2a96a4d6094536207c03 +PKG_SOURCE_VERSION:=2efe90cdcf74fdc4179692d283cf46c85e1cf681 +PKG_SOURCE_DATE:=2021-11-16 PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILES:=LICENSE.md +PKG_BUILD_PARALLEL:=1 PKG_FIXUP:=autoreconf PKG_USE_MIPS16:=0 @@ -28,92 +24,172 @@ include $(INCLUDE_DIR)/nls.mk define Package/tvheadend SECTION:=multimedia CATEGORY:=Multimedia - TITLE:=Tvheadend is a TV streaming server for Linux - DEPENDS:=+libopenssl +librt +zlib +libffi +TVHEADEND_AVAHI_SUPPORT:libavahi-client $(ICONV_DEPENDS) + TITLE:=TV streaming server + MENU:=1 USERID:=tvheadend:dvb URL:=https://tvheadend.org MAINTAINER:=Marius Dinu + DEPENDS:= \ + +librt \ + +libffi \ + +libopenssl \ + $(ICONV_DEPENDS) \ + +zlib \ + +TVHEADEND_AVAHI_SUPPORT:libavahi-client \ + +TVHEADEND_REGEX_PCRE:libpcre \ + +TVHEADEND_REGEX_PCRE2:libpcre2 \ + +BUILD_PATENTED&&TVHEADEND_CSA:libdvbcsa + +## Transcoding | Add these to DEPENDS. +## +TVHEADEND_LIBFFMPEG:libffmpeg-full \ +## +TVHEADEND_LIBVPX:libvpx \ +## +TVHEADEND_LIBTHEORA:libtheora \ +## +TVHEADEND_LIBVORBIS:libvorbis \ +## +TVHEADEND_LIBOPUS:libopusenc \ +## +TVHEADEND_LIBFDKAAC:fdk-aac \ +## +BUILD_PATENTED&&TVHEADEND_LIBX264:libx264 \ + endef define Package/tvheadend/description Tvheadend is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, SAT>IP and HDHomeRun as input sources. - Tvheadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. endef define Package/tvheadend/config - menu "Configuration" - depends on PACKAGE_tvheadend source "$(SOURCE)/Config.in" - endmenu endef -# Generic build options +## Generic OpenWrt options ifneq ($(CONFIG_PKG_ASLR_PIE_NONE),) - CONFIGURE_ARGS += --disable-pie + CONFIGURE_ARGS += --disable-pie endif -# TV sources -ifeq ($(CONFIG_TVHEADEND_LINUXDVB_SUPPORT),) - CONFIGURE_ARGS += --disable-linuxdvb -endif - -ifeq ($(CONFIG_TVHEADEND_DVBSCAN_SUPPORT),) - CONFIGURE_ARGS += --disable-dvbscan -endif - -ifeq ($(CONFIG_TVHEADEND_IPTV),) - CONFIGURE_ARGS += --disable-iptv -endif - -ifeq ($(CONFIG_TVHEADEND_SATIP_SERVER),) - CONFIGURE_ARGS += --disable-satip_server -endif - -ifeq ($(CONFIG_TVHEADEND_SATIP_CLIENT),) - CONFIGURE_ARGS += --disable-satip_client -endif - -ifeq ($(CONFIG_TVHEADEND_HDHOMERUN_CLIENT),) - CONFIGURE_ARGS += --disable-hdhomerun_static -else - CONFIGURE_ARGS += --enable-hdhomerun_client -endif - -# Descrambling -ifeq ($(CONFIG_TVHEADEND_CWC_SUPPORT),) - CONFIGURE_ARGS += --disable-cwc -endif - -ifeq ($(CONFIG_TVHEADEND_CAPMT_SUPPORT),) - CONFIGURE_ARGS += --disable-capmt -endif - -ifeq ($(CONFIG_TVHEADEND_CCW_SUPPORT),) - CONFIGURE_ARGS += --disable-constcw -endif - -# Other options -ifeq ($(CONFIG_TVHEADEND_AVAHI_SUPPORT),) - CONFIGURE_ARGS += --disable-avahi -else - CONFIGURE_ARGS += --enable-avahi -endif - -ifeq ($(CONFIG_TVHEADEND_IMAGECACHE),) - CONFIGURE_ARGS += --disable-imagecache -else - CONFIGURE_ARGS += --enable-imagecache +## Generic tvheadend options +ifneq ($(CONFIG_TVHEADEND_OPTIMIZE_SPEED),) + TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS)) -O3 -flto + TARGET_CXXFLAGS := $(filter-out -O%,$(TARGET_CXXFLAGS)) -O3 -flto + TARGET_LDFLAGS += -flto endif ifeq ($(CONFIG_TVHEADEND_TRACE),) - CONFIGURE_ARGS += --disable-trace + CONFIGURE_ARGS += --disable-trace endif -# libav and ffmpeg are broken, so remove codecs too. +ifneq ($(CONFIG_TVHEADEND_REGEX_PCRE2),) + CONFIGURE_ARGS += --disable-pcre --enable-pcre2 +else +ifneq ($(CONFIG_TVHEADEND_REGEX_PCRE),) + CONFIGURE_ARGS += --enable-pcre --disable-pcre2 +else +ifneq ($(CONFIG_TVHEADEND_REGEX_POSIX),) + CONFIGURE_ARGS += --disable-pcre --disable-pcre2 +endif +endif +endif + +ifeq ($(CONFIG_TVHEADEND_AVAHI_SUPPORT),) + CONFIGURE_ARGS += --disable-avahi +else + CONFIGURE_ARGS += --enable-avahi +endif + +ifeq ($(CONFIG_TVHEADEND_IMAGECACHE),) + CONFIGURE_ARGS += --disable-imagecache +else + CONFIGURE_ARGS += --enable-imagecache +endif + +## TV sources +ifeq ($(CONFIG_TVHEADEND_LINUXDVB_SUPPORT),) + CONFIGURE_ARGS += --disable-linuxdvb +endif + +ifeq ($(CONFIG_TVHEADEND_DVBSCAN_SUPPORT),) + CONFIGURE_ARGS += --disable-dvbscan +endif + +ifeq ($(CONFIG_TVHEADEND_IPTV),) + CONFIGURE_ARGS += --disable-iptv +endif + +ifeq ($(CONFIG_TVHEADEND_SATIP_SERVER),) + CONFIGURE_ARGS += --disable-satip_server +endif + +ifeq ($(CONFIG_TVHEADEND_SATIP_CLIENT),) + CONFIGURE_ARGS += --disable-satip_client +endif + +ifeq ($(CONFIG_TVHEADEND_HDHOMERUN_CLIENT),) + CONFIGURE_ARGS += --disable-hdhomerun_static +else + CONFIGURE_ARGS += --enable-hdhomerun_client +endif + +## Descrambling +ifeq ($(CONFIG_BUILD_PATENTED),) + CONFIGURE_ARGS += --disable-tvhcsa --disable-dvbcsa --disable-constcw --disable-cwc --disable-capmt --disable-cccam +else +ifeq ($(CONFIG_TVHEADEND_CSA),) + CONFIGURE_ARGS += --disable-tvhcsa --disable-dvbcsa --disable-constcw --disable-cwc --disable-capmt --disable-cccam +else + CONFIGURE_ARGS += --enable-tvhcsa --enable-dvbcsa +ifeq ($(CONFIG_TVHEADEND_CONSTCW),) + CONFIGURE_ARGS += --disable-constcw +endif +ifeq ($(CONFIG_TVHEADEND_NEWCAMD),) + CONFIGURE_ARGS += --disable-cwc +endif +ifeq ($(CONFIG_TVHEADEND_CAPMT),) + CONFIGURE_ARGS += --disable-capmt +endif +ifeq ($(CONFIG_TVHEADEND_CCCAM),) + CONFIGURE_ARGS += --disable-cccam +endif +endif +endif + +## Transcoding | Uncomment these. +##ifeq ($(CONFIG_BUILD_PATENTED),) +## CONFIGURE_ARGS += --disable-libav --disable-libx264 --disable-libx265 --disable-libx265_static +##else +##ifeq ($(CONFIG_TVHEADEND_LIBFFMPEG),) +## CONFIGURE_ARGS += --disable-libav +##else +## CONFIGURE_ARGS += --enable-libav +##endif +##ifeq ($(CONFIG_TVHEADEND_LIBX264),) +## CONFIGURE_ARGS += --disable-libx264 +##endif +##ifeq ($(CONFIG_TVHEADEND_LIBX265),) +## CONFIGURE_ARGS += --disable-libx265 --disable-libx265_static +##endif +##ifneq ($(CONFIG_TVHEADEND_LIBFDKAAC),) +## CONFIGURE_ARGS += --enable-libfdkaac +##endif +##endif +## +##ifeq ($(CONFIG_TVHEADEND_LIBVPX),) +## CONFIGURE_ARGS += --disable-libvpx +##endif +## +##ifeq ($(CONFIG_TVHEADEND_LIBlibtheora),) +## CONFIGURE_ARGS += --disable-libtheora +##endif +## +##ifeq ($(CONFIG_TVHEADEND_LIBVORBIS),) +## CONFIGURE_ARGS += --disable-libvorbis +##endif +## +##ifeq ($(CONFIG_TVHEADEND_LIBOPUS),) +## CONFIGURE_ARGS += --disable-libopus +##endif + CONFIGURE_ARGS += \ --arch=$(ARCH) \ + --disable-libsystemd_daemon \ --disable-dbus_1 \ --disable-libav \ --disable-ffmpeg_static \ @@ -127,11 +203,26 @@ CONFIGURE_ARGS += \ --disable-libtheora_static \ --disable-libvorbis \ --disable-libvorbis_static \ + --disable-libopus \ + --disable-libopus_static \ --disable-libfdkaac \ --disable-libfdkaac_static \ + --disable-pcloud_cache \ --enable-bundle \ --nowerror=unused-variable +## Transcoding | Remove these from CONFIGURE_ARGS. +## --disable-libav \ +## --disable-libx265 \ +## --disable-libx265_static \ +## --disable-libx264_static \ +## --disable-libvpx_static \ +## --disable-libtheora_static \ +## --disable-libvorbis_static \ +## --disable-libopus_static \ +## --disable-libfdkaac_static \ +## --disable-pcloud_cache \ + define Build/Prepare $(call Build/Prepare/Default) echo 'Tvheadend $(shell echo $(PKG_SOURCE_VERSION) | sed "s/^v//")~openwrt$(PKG_RELEASE)' \ @@ -149,7 +240,6 @@ define Package/tvheadend/install $(INSTALL_CONF) ./files/tvheadend.config $(1)/etc/config/tvheadend $(INSTALL_DIR) $(1)/etc/hotplug.d/usb $(INSTALL_BIN) ./files/dvb.hotplug $(1)/etc/hotplug.d/usb/50-dvb - $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/build.linux/tvheadend $(1)/usr/bin/ endef diff --git a/multimedia/tvheadend/files/dvb.hotplug b/multimedia/tvheadend/files/dvb.hotplug index 8736aecd28..70b80019d6 100644 --- a/multimedia/tvheadend/files/dvb.hotplug +++ b/multimedia/tvheadend/files/dvb.hotplug @@ -1,7 +1,7 @@ #!/bin/sh case "$ACTION" in add) - chown -R root:dvb /dev/dvb/*/* - chmod -R 660 /dev/dvb/*/* + chown -R root:dvb /dev/dvb/* + chmod -R 660 /dev/dvb/* ;; esac diff --git a/multimedia/tvheadend/files/tvheadend.init b/multimedia/tvheadend/files/tvheadend.init index 573ef33ad2..a400f12976 100644 --- a/multimedia/tvheadend/files/tvheadend.init +++ b/multimedia/tvheadend/files/tvheadend.init @@ -79,7 +79,7 @@ start_service() { ensure_config_exists procd_open_instance procd_set_param file /etc/config/tvheadend - chown -R root:$TVH_GROUP /dev/dvb/*/* + chown -R root:$TVH_GROUP /dev/dvb/* procd_set_param command "$PROG" -B -u $TVH_USER -g $TVH_GROUP load_uci_config procd_close_instance diff --git a/multimedia/tvheadend/patches/001-Makefile.hdhomerun-update-library-to-version-2018081.patch b/multimedia/tvheadend/patches/001-Makefile.hdhomerun-update-library-to-version-2018081.patch deleted file mode 100644 index 657baab834..0000000000 --- a/multimedia/tvheadend/patches/001-Makefile.hdhomerun-update-library-to-version-2018081.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 7d657f0a87be1f135f7e5146b06e26121691c33a Mon Sep 17 00:00:00 2001 -From: Josef Schlehofer -Date: Mon, 18 Oct 2021 22:54:02 +0200 -Subject: [PATCH] Makefile.hdhomerun: update library to version 20180817 - -The previous tarball is not available and because of that, the -compilation of tvheadend does not proceed. - -The latest version can not be used somehow as the compilation fails. ---- - Makefile.hdhomerun | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/Makefile.hdhomerun -+++ b/Makefile.hdhomerun -@@ -32,10 +32,10 @@ endif - # Upstream Packages - # ########################################################################### - --LIBHDHR = libhdhomerun_20171221 -+LIBHDHR = libhdhomerun_20180817 - LIBHDHR_TB = $(LIBHDHR).tgz --LIBHDHR_URL = http://download.silicondust.com/hdhomerun/$(LIBHDHR_TB) --LIBHDHR_SHA1 = 6b019728eadea3af7a5686ed5ba44e970bca7365 -+LIBHDHR_URL = https://download.silicondust.com/hdhomerun/$(LIBHDHR_TB) -+LIBHDHR_SHA1 = 052868bde3a5713c55b4d060b77e0bc3a0d891d6 - - # ########################################################################### - # Library Config diff --git a/multimedia/tvheadend/patches/010-openssl-deprecated.patch b/multimedia/tvheadend/patches/010-openssl-deprecated.patch deleted file mode 100644 index e1a4a948ac..0000000000 --- a/multimedia/tvheadend/patches/010-openssl-deprecated.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/src/main.c -+++ b/src/main.c -@@ -1155,10 +1155,12 @@ main(int argc, char **argv) - sigprocmask(SIG_BLOCK, &set, NULL); - trap_init(argv[0]); - -+#if OPENSSL_VERSION_NUMBER < 0x10100000L - /* SSL library init */ - OPENSSL_config(NULL); - SSL_load_error_strings(); - SSL_library_init(); -+#endif - /* Rand seed */ - randseed.thread_id = (void *)main_tid; - gettimeofday(&randseed.tv, NULL); -@@ -1346,8 +1348,11 @@ main(int argc, char **argv) - if(opt_fork) - unlink(opt_pidpath); - -+#if OPENSSL_VERSION_NUMBER < 0x10100000L - /* OpenSSL - welcome to the "cleanup" hell */ -+#ifndef OPENSSL_NO_ENGINE - ENGINE_cleanup(); -+#endif - RAND_cleanup(); - CRYPTO_cleanup_all_ex_data(); - EVP_cleanup(); -@@ -1355,12 +1360,13 @@ main(int argc, char **argv) - #if !defined(OPENSSL_NO_COMP) - COMP_zlib_cleanup(); - #endif -- ERR_remove_state(0); -+ ERR_remove_thread_state(NULL); - ERR_free_strings(); - #if !defined(OPENSSL_NO_COMP) && OPENSSL_VERSION_NUMBER < 0x1010006f - sk_SSL_COMP_free(SSL_COMP_get_compression_methods()); - #endif - /* end of OpenSSL cleanup code */ -+#endif - - #if ENABLE_DBUS_1 - extern void dbus_shutdown(void); diff --git a/multimedia/tvheadend/patches/030-gcc10.patch b/multimedia/tvheadend/patches/030-gcc10.patch deleted file mode 100644 index b7a05a4af9..0000000000 --- a/multimedia/tvheadend/patches/030-gcc10.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/src/input/mpegts.h -+++ b/src/input/mpegts.h -@@ -1132,7 +1132,7 @@ typedef struct mpegts_listener - void (*ml_mux_delete) (mpegts_mux_t *mm, void *p); - } mpegts_listener_t; - --LIST_HEAD(,mpegts_listener) mpegts_listeners; -+static LIST_HEAD(,mpegts_listener) mpegts_listeners; - - #define mpegts_add_listener(ml)\ - LIST_INSERT_HEAD(&mpegts_listeners, ml, ml_link) ---- a/src/input.h -+++ b/src/input.h -@@ -128,8 +128,8 @@ void tvh_hardware_delete ( tvh_hardware_ - extern const idclass_t tvh_input_class; - extern const idclass_t tvh_input_instance_class; - --tvh_input_list_t tvh_inputs; --tvh_hardware_list_t tvh_hardware; -+extern tvh_input_list_t tvh_inputs; -+extern tvh_hardware_list_t tvh_hardware; - - #define TVH_INPUT_FOREACH(x) LIST_FOREACH(x, &tvh_inputs, ti_link) - #define TVH_HARDWARE_FOREACH(x) LIST_FOREACH(x, &tvh_hardware, th_link) diff --git a/multimedia/tvheadend/patches/050-iconv-test-continue.patch b/multimedia/tvheadend/patches/050-iconv-test-continue.patch new file mode 100644 index 0000000000..2e46b51131 --- /dev/null +++ b/multimedia/tvheadend/patches/050-iconv-test-continue.patch @@ -0,0 +1,13 @@ +--- a/src/intlconv.c ++++ b/src/intlconv.c +@@ -36,9 +36,8 @@ intlconv_test( void ) + (strcmp(s, "ZlutouckyKun") && + strcmp(s, "Zlutouck'yKun") && + strcmp(s, "?lu?ou?k?K??"))) { +- tvherror(LS_MAIN, "iconv() routine is not working properly (%s), aborting!", s); ++ tvherror(LS_MAIN, "iconv() routine is not working properly (%s)", s); + tvh_safe_usleep(2000000); +- abort(); + } + free(s); + }