tvheadend: add new packagelilik-openwrt-22.03
@ -0,0 +1,17 @@ | |||
config TVHEADEND_CWC_SUPPORT | |||
bool "NewCamd support" | |||
default y | |||
config TVHEADEND_LINUXDVB_SUPPORT | |||
bool "Linux DVB support" | |||
default y | |||
config TVHEADEND_DVBSCAN_SUPPORT | |||
bool "Fetch DVB-scan data" | |||
depends on TVHEADEND_LINUXDVB_SUPPORT | |||
default TVHEADEND_LINUXDVB_SUPPORT | |||
config TVHEADEND_AVAHI_SUPPORT | |||
bool "Avahi client support" | |||
select PACKAGE_libavahi-client | |||
default n |
@ -0,0 +1,97 @@ | |||
# | |||
# 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.0.5 | |||
PKG_RELEASE:=1 | |||
PKG_SOURCE_SUBDIR:=$(PKG_NAME) | |||
PKG_SOURCE_VERSION:=v$(PKG_VERSION) | |||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz | |||
PKG_SOURCE_PROTO:=git | |||
PKG_SOURCE_URL:=https://github.com/tvheadend/tvheadend.git | |||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) | |||
PKG_LICENSE:=GPL-3.0 | |||
PKG_LICENSE_FILES:=LICENSE.md | |||
PKG_FIXUP:=autoreconf | |||
PKG_USE_MIPS16:=0 | |||
include $(INCLUDE_DIR)/package.mk | |||
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 +TVHEADEND_AVAHI_SUPPORT:libavahi-client | |||
URL:=https://tvheadend.org | |||
MAINTAINER:=Jan Čermák <jan.cermak@nic.cz> | |||
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 | |||
ifeq ($(CONFIG_TVHEADEND_CWC_SUPPORT),) | |||
CONFIGURE_ARGS += --disable-cwc | |||
endif | |||
ifeq ($(CONFIG_TVHEADEND_LINUXDVB_SUPPORT),) | |||
CONFIGURE_ARGS += --disable-linuxdvb | |||
endif | |||
ifeq ($(CONFIG_TVHEADEND_DVBSCAN_SUPPORT),) | |||
CONFIGURE_ARGS += --disable-dvbscan | |||
endif | |||
ifeq ($(CONFIG_TVHEADEND_AVAHI_SUPPORT),) | |||
CONFIGURE_ARGS += --disable-avahi | |||
else | |||
CONFIGURE_ARGS += --enable-avahi | |||
endif | |||
CONFIGURE_ARGS += \ | |||
--arch=$(ARCH) \ | |||
--disable-dbus_1 \ | |||
--disable-libav \ | |||
--enable-bundle | |||
define Build/Prepare | |||
$(call Build/Prepare/Default) | |||
echo 'Tvheadend $(shell echo $(PKG_SOURCE_VERSION) | sed "s/^v//")~openwrt$(PKG_RELEASE)' \ | |||
> $(PKG_BUILD_DIR)/debian/changelog | |||
endef | |||
define Package/conffiles | |||
/etc/config/tvheadend | |||
endef | |||
define Package/tvheadend/install | |||
$(INSTALL_DIR) $(1)/etc/init.d | |||
$(INSTALL_BIN) ./files/tvheadend.init $(1)/etc/init.d/tvheadend | |||
$(INSTALL_DIR) $(1)/etc/config | |||
$(INSTALL_DIR) $(1)/usr/bin | |||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/build.linux/tvheadend $(1)/usr/bin/ | |||
endef | |||
$(eval $(call BuildPackage,tvheadend)) |
@ -0,0 +1,13 @@ | |||
#config tvheadend service | |||
# option nosyslog '0' | |||
# option use_temp_epgdb '0' | |||
# option config_path '/etc/tvheadend' | |||
config tvheadend server | |||
option ipv6 '1' | |||
# option bindaddr '0.0.0.0' | |||
# option http_port '9981' | |||
# option http_root '/tvheadend' | |||
# option htsp_port '9982' | |||
# option htsp_port2 '9983' | |||
# option xspf '0' |
@ -0,0 +1,71 @@ | |||
#!/bin/sh /etc/rc.common | |||
START=99 | |||
STOP=00 | |||
USE_PROCD=1 | |||
PROG=/usr/bin/tvheadend | |||
TEMP_CONFIG=/tmp/tvheadend | |||
PERSISTENT_CONFIG=/etc/tvheadend | |||
execute_first_run() { | |||
"$PROG" -c "$1" -B -C -A >/dev/null 2>&1 | |||
} | |||
ensure_config_exists() { | |||
local config_path | |||
config_load tvheadend | |||
config_get config_path service config_path | |||
if [ -z "$config_path" ]; then | |||
[ -d "$PERSISTENT_CONFIG" ] || execute_first_run "$PERSISTENT_CONFIG" | |||
else | |||
# if the configuration directory is empty, empty config with grant-all ACL is created | |||
[ -d "$config_path" ] && [ "$(ls -A $config_path)" ] || execute_first_run "$config_path" | |||
fi | |||
# if use_temp_epgdb is enabled (default), most of the config is put to config_path | |||
# (or /etc/config), except for epgdb.v2, which grows quite large and is write-heavy, | |||
# so it's put into volatile tmpfs | |||
# epgdb.v2 is created and symlinked to main config dir upon each start (if it doesn't exist) | |||
config_get_bool use_temp_epgdb service use_temp_epgdb 1 | |||
if [ "$use_temp_epgdb" == "1" ]; then | |||
TEMP_EPG="${TEMP_CONFIG}/epgdb.v2" | |||
[ ! -f "$TEMP_EPG" ] && mkdir -p "$TEMP_CONFIG" && touch "$TEMP_EPG" && chmod 700 "$TEMP_EPG" | |||
[ -z "$config_path" ] && config_path="$PERSISTENT_CONFIG" | |||
ln -sf "$TEMP_EPG" "${config_path}/epgdb.v2" | |||
fi | |||
} | |||
load_uci_config() { | |||
config_load tvheadend | |||
config_get config_path service config_path "$PERSISTENT_CONFIG" | |||
[ -n "$config_path" ] && procd_append_param command -c "$config_path" | |||
config_get_bool nosyslog service nosyslog 0 | |||
[ "$nosyslog" -eq 1 ] && procd_append_param command --nosyslog | |||
config_get_bool ipv6 server ipv6 0 | |||
[ "$ipv6" -eq 1 ] && procd_append_param command --ipv6 | |||
config_get bindaddr server bindaddr | |||
[ -n "$bindaddr" ] && procd_append_param command --bindaddr "$bindaddr" | |||
config_get http_port server http_port | |||
[ -n "$http_port" ] && procd_append_param command --http_port "$http_port" | |||
config_get http_root server http_root | |||
[ -n "$http_root" ] && procd_append_param command --http_root "$http_root" | |||
config_get htsp_port server htsp_port | |||
[ -n "$htsp_port" ] && procd_append_param command --htsp_port "$htsp_port" | |||
config_get htsp_port2 server htsp_port2 | |||
[ -n "$htsp_port2" ] && procd_append_param command --htsp_port "$htsp_port2" | |||
config_get xspf server xspf 0 | |||
[ "$xspf" -eq 1 ] && procd_append_param command --xspf | |||
} | |||
start_service() { | |||
ensure_config_exists | |||
procd_open_instance | |||
procd_set_param file /etc/config/tvheadend | |||
procd_set_param command "$PROG" -B | |||
load_uci_config | |||
procd_close_instance | |||
} |