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 <m95d+git@psihoexpert.ro>
This commit is contained in:
Marius Dinu 2021-11-16 19:52:25 +02:00 committed by Rosen Penev
parent 10ab230670
commit 380374b228
8 changed files with 395 additions and 269 deletions

View File

@ -1,14 +1,75 @@
comment "Generic options"
depends on PACKAGE_tvheadend
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"
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" comment "Input & output support"
depends on PACKAGE_tvheadend
config TVHEADEND_LINUXDVB_SUPPORT config TVHEADEND_LINUXDVB_SUPPORT
bool "DVB tuners" bool "DVB tuners"
depends on PACKAGE_tvheadend
default y default y
help help
Include support for DVB tuners. Include support for DVB tuners.
Note: Kernel driver(s) and firmware must also be installed. Note: Kernel driver(s) and firmware must also be installed.
config TVHEADEND_DVBSCAN_SUPPORT config TVHEADEND_DVBSCAN_SUPPORT
bool "Fetch DVB-scan data" bool "Include DVB-scan tables"
depends on TVHEADEND_LINUXDVB_SUPPORT depends on TVHEADEND_LINUXDVB_SUPPORT
default TVHEADEND_LINUXDVB_SUPPORT default TVHEADEND_LINUXDVB_SUPPORT
help help
@ -16,86 +77,143 @@ config TVHEADEND_DVBSCAN_SUPPORT
config TVHEADEND_IPTV config TVHEADEND_IPTV
bool "IPTV client" bool "IPTV client"
depends on PACKAGE_tvheadend
default y default y
help help
Include IP-TV client. Include IP-TV client.
config TVHEADEND_SATIP_CLIENT config TVHEADEND_SATIP_CLIENT
bool "SAT>IP client" bool "SAT>IP client"
depends on PACKAGE_tvheadend
default y default y
help help
Include SAT>IP client. This allows tvheadend to receive streams from a SAT>IP server. 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 config TVHEADEND_SATIP_SERVER
bool "SAT>IP server" bool "SAT>IP server"
depends on PACKAGE_tvheadend
default y default y
help help
Include SAT>IP server. This allows tvheadend to stream to SAT>IP clients. 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 config TVHEADEND_HDHOMERUN_CLIENT
bool "HDHomeRun client" bool "HDHomeRun client"
depends on PACKAGE_tvheadend
default y default y
help help
Include HDHomeRun client. Include HDHomeRun client.
HDHomeRun is a network-attached, digital television tuner box. HDHomeRun is a network-attached, digital television tuner box.
comment "SoftCAM (Software Conditional Access Module)" comment "SoftCAM (Software Conditional Access Module)"
depends on PACKAGE_tvheadend
depends on BUILD_PATENTED
config TVHEADEND_CWC_SUPPORT config TVHEADEND_CSA
bool "CWC newcamd" bool "CSA decoding"
default y depends on PACKAGE_tvheadend
depends on BUILD_PATENTED
select PACKAGE_libdvbcsa
default n
help help
Support descrambling using Code Word Client newcamd protocol. Support decoding CSA (Common Scrambling Algorithm). Uses libdvbcsa package.
config TVHEADEND_CAPMT_SUPPORT config TVHEADEND_CONSTCW
bool "CWC capmnt"
default y
help
Support descrambling using Code Word Client capmnt (Linux Network DVBAPI) protocol.
config TVHEADEND_CONSTCW_SUPPORT
bool "CCW" bool "CCW"
default y depends on TVHEADEND_CSA
default TVHEADEND_CSA
help help
Support descrambling using Constant Code Word. Support Constant Control Word.
comment "Other options" config TVHEADEND_CAPMT
bool "CWC capmt client"
config TVHEADEND_AVAHI_SUPPORT depends on TVHEADEND_CSA
bool "Avahi client"
select PACKAGE_libavahi-client
default n default n
help help
Enables the opensource implementation of Apple's zero configuration protocol. Support Control Word Client capmt (Linux Network DVBAPI) protocol.
Tvheadend will advertise itself on the network using this protocol.
config TVHEADEND_IMAGECACHE config TVHEADEND_NEWCAMD
bool "Image cache" bool "CWC newcamd client"
depends on TVHEADEND_CSA
default n default n
help help
Support caching TV station logos and other images on disk. Support Control Word Client newcamd protocol.
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_TRACE config TVHEADEND_CCCAM
bool "Low level debug trace" bool "CCCam client"
depends on TVHEADEND_CSA
default n default n
help
Support low level debug trace for tvheadend subsystems. comment "DVB descrambling and some codecs are only available with BUILD_PATENTED."
For a list of available subsystems, run "tvheadend --subsystems" in OpenWRT console. depends on PACKAGE_tvheadend
Note: Selecting this option does not automatically enable trace logging. depends on !BUILD_PATENTED
It only includes support for --trace command line option and GUI.
## 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.

View File

@ -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 include $(TOPDIR)/rules.mk
PKG_NAME:=tvheadend PKG_NAME:=tvheadend
PKG_VERSION:=4.2.8 PKG_VERSION:=2021-11-16
PKG_RELEASE:=$(AUTORELEASE) PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://codeload.github.com/tvheadend/tvheadend/tar.gz/v$(PKG_VERSION)? PKG_SOURCE_URL:=https://github.com/tvheadend/tvheadend.git
PKG_HASH:=1aef889373d5fad2a7bd2f139156d4d5e34a64b6d38b87b868a2df415f01f7ad PKG_MIRROR_HASH:=1645e90b6b8f104f2749fb0911493010f7ae3176253f2a96a4d6094536207c03
PKG_SOURCE_VERSION:=2efe90cdcf74fdc4179692d283cf46c85e1cf681
PKG_SOURCE_DATE:=2021-11-16
PKG_LICENSE:=GPL-3.0 PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=LICENSE.md PKG_LICENSE_FILES:=LICENSE.md
PKG_BUILD_PARALLEL:=1
PKG_FIXUP:=autoreconf PKG_FIXUP:=autoreconf
PKG_USE_MIPS16:=0 PKG_USE_MIPS16:=0
@ -28,33 +24,84 @@ include $(INCLUDE_DIR)/nls.mk
define Package/tvheadend define Package/tvheadend
SECTION:=multimedia SECTION:=multimedia
CATEGORY:=Multimedia CATEGORY:=Multimedia
TITLE:=Tvheadend is a TV streaming server for Linux TITLE:=TV streaming server
DEPENDS:=+libopenssl +librt +zlib +libffi +TVHEADEND_AVAHI_SUPPORT:libavahi-client $(ICONV_DEPENDS) MENU:=1
USERID:=tvheadend:dvb USERID:=tvheadend:dvb
URL:=https://tvheadend.org URL:=https://tvheadend.org
MAINTAINER:=Marius Dinu <m95d+git@psihoexpert.ro> MAINTAINER:=Marius Dinu <m95d+git@psihoexpert.ro>
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 endef
define Package/tvheadend/description define Package/tvheadend/description
Tvheadend is a TV streaming server and recorder for Linux, FreeBSD and Android 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. 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. Tvheadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming.
endef endef
define Package/tvheadend/config define Package/tvheadend/config
menu "Configuration"
depends on PACKAGE_tvheadend
source "$(SOURCE)/Config.in" source "$(SOURCE)/Config.in"
endmenu
endef endef
# Generic build options ## Generic OpenWrt options
ifneq ($(CONFIG_PKG_ASLR_PIE_NONE),) ifneq ($(CONFIG_PKG_ASLR_PIE_NONE),)
CONFIGURE_ARGS += --disable-pie CONFIGURE_ARGS += --disable-pie
endif endif
# TV sources ## 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
endif
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),) ifeq ($(CONFIG_TVHEADEND_LINUXDVB_SUPPORT),)
CONFIGURE_ARGS += --disable-linuxdvb CONFIGURE_ARGS += --disable-linuxdvb
endif endif
@ -81,39 +128,68 @@ else
CONFIGURE_ARGS += --enable-hdhomerun_client CONFIGURE_ARGS += --enable-hdhomerun_client
endif endif
# Descrambling ## Descrambling
ifeq ($(CONFIG_TVHEADEND_CWC_SUPPORT),) ifeq ($(CONFIG_BUILD_PATENTED),)
CONFIGURE_ARGS += --disable-cwc CONFIGURE_ARGS += --disable-tvhcsa --disable-dvbcsa --disable-constcw --disable-cwc --disable-capmt --disable-cccam
endif else
ifeq ($(CONFIG_TVHEADEND_CSA),)
ifeq ($(CONFIG_TVHEADEND_CAPMT_SUPPORT),) CONFIGURE_ARGS += --disable-tvhcsa --disable-dvbcsa --disable-constcw --disable-cwc --disable-capmt --disable-cccam
CONFIGURE_ARGS += --disable-capmt else
endif CONFIGURE_ARGS += --enable-tvhcsa --enable-dvbcsa
ifeq ($(CONFIG_TVHEADEND_CONSTCW),)
ifeq ($(CONFIG_TVHEADEND_CCW_SUPPORT),)
CONFIGURE_ARGS += --disable-constcw CONFIGURE_ARGS += --disable-constcw
endif endif
ifeq ($(CONFIG_TVHEADEND_NEWCAMD),)
# Other options CONFIGURE_ARGS += --disable-cwc
ifeq ($(CONFIG_TVHEADEND_AVAHI_SUPPORT),) endif
CONFIGURE_ARGS += --disable-avahi ifeq ($(CONFIG_TVHEADEND_CAPMT),)
else CONFIGURE_ARGS += --disable-capmt
CONFIGURE_ARGS += --enable-avahi endif
ifeq ($(CONFIG_TVHEADEND_CCCAM),)
CONFIGURE_ARGS += --disable-cccam
endif
endif
endif endif
ifeq ($(CONFIG_TVHEADEND_IMAGECACHE),) ## Transcoding | Uncomment these.
CONFIGURE_ARGS += --disable-imagecache ##ifeq ($(CONFIG_BUILD_PATENTED),)
else ## CONFIGURE_ARGS += --disable-libav --disable-libx264 --disable-libx265 --disable-libx265_static
CONFIGURE_ARGS += --enable-imagecache ##else
endif ##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
ifeq ($(CONFIG_TVHEADEND_TRACE),)
CONFIGURE_ARGS += --disable-trace
endif
# libav and ffmpeg are broken, so remove codecs too.
CONFIGURE_ARGS += \ CONFIGURE_ARGS += \
--arch=$(ARCH) \ --arch=$(ARCH) \
--disable-libsystemd_daemon \
--disable-dbus_1 \ --disable-dbus_1 \
--disable-libav \ --disable-libav \
--disable-ffmpeg_static \ --disable-ffmpeg_static \
@ -127,11 +203,26 @@ CONFIGURE_ARGS += \
--disable-libtheora_static \ --disable-libtheora_static \
--disable-libvorbis \ --disable-libvorbis \
--disable-libvorbis_static \ --disable-libvorbis_static \
--disable-libopus \
--disable-libopus_static \
--disable-libfdkaac \ --disable-libfdkaac \
--disable-libfdkaac_static \ --disable-libfdkaac_static \
--disable-pcloud_cache \
--enable-bundle \ --enable-bundle \
--nowerror=unused-variable --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 define Build/Prepare
$(call Build/Prepare/Default) $(call Build/Prepare/Default)
echo 'Tvheadend $(shell echo $(PKG_SOURCE_VERSION) | sed "s/^v//")~openwrt$(PKG_RELEASE)' \ 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_CONF) ./files/tvheadend.config $(1)/etc/config/tvheadend
$(INSTALL_DIR) $(1)/etc/hotplug.d/usb $(INSTALL_DIR) $(1)/etc/hotplug.d/usb
$(INSTALL_BIN) ./files/dvb.hotplug $(1)/etc/hotplug.d/usb/50-dvb $(INSTALL_BIN) ./files/dvb.hotplug $(1)/etc/hotplug.d/usb/50-dvb
$(INSTALL_DIR) $(1)/usr/bin $(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/build.linux/tvheadend $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/build.linux/tvheadend $(1)/usr/bin/
endef endef

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
case "$ACTION" in case "$ACTION" in
add) add)
chown -R root:dvb /dev/dvb/*/* chown -R root:dvb /dev/dvb/*
chmod -R 660 /dev/dvb/*/* chmod -R 660 /dev/dvb/*
;; ;;
esac esac

View File

@ -79,7 +79,7 @@ start_service() {
ensure_config_exists ensure_config_exists
procd_open_instance procd_open_instance
procd_set_param file /etc/config/tvheadend 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 procd_set_param command "$PROG" -B -u $TVH_USER -g $TVH_GROUP
load_uci_config load_uci_config
procd_close_instance procd_close_instance

View File

@ -1,29 +0,0 @@
From 7d657f0a87be1f135f7e5146b06e26121691c33a Mon Sep 17 00:00:00 2001
From: Josef Schlehofer <pepe.schlehofer@gmail.com>
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

View File

@ -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);

View File

@ -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)

View File

@ -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);
}