package/tvheadend: new package

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
Yann E. MORIN 2012-12-28 12:37:43 +00:00 committed by Peter Korsgaard
parent 6904b0ea95
commit 14989d0be5
7 changed files with 197 additions and 0 deletions

View File

@ -683,6 +683,7 @@ source "package/tinyhttpd/Config.in"
source "package/tn5250/Config.in"
source "package/transmission/Config.in"
source "package/ttcp/Config.in"
source "package/tvheadend/Config.in"
source "package/udpcast/Config.in"
source "package/ulogd/Config.in"
source "package/ushare/Config.in"

View File

@ -0,0 +1,19 @@
comment "tvheadend requires a toolchain with LARGEFILE support"
depends on !BR2_LARGEFILE
config BR2_PACKAGE_TVHEADEND
bool "tvheadend"
depends on BR2_LARGEFILE
select BR2_PACKAGE_OPENSSL
help
Tvheadend is a TV streaming server for Linux supporting DVB-S,
DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as
input sources.
https://www.lonelycoder.com/redmine/projects/tvheadend/
Note:
- a default user has been created to log in the web configuration
GUI: admin/admin; you can change it at your discretion at runtime.
- if you want Avahi support, you'll need to enable:
Avahi, D-Bus, libdaemon

View File

@ -0,0 +1,54 @@
#! /bin/sh
# tvheadend startup script inspired by the Debian one in the package
# Author: Yann E. MORIN <yann.morin.1998@free.fr>
PATH=/usr/sbin:/usr/bin:/sbin:/bin
NAME=tvheadend
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME.pid
[ -f "${DAEMON}" -a -x "${DAEMON}" ] || exit 0
# Read configuration variable file if it is present
[ -r "/etc/default/${NAME}" ] && . "/etc/default/${NAME}"
ARGS="-f"
[ -z "${TVH_USER}" ] || ARGS="${ARGS} -u ${TVH_USER}"
[ -z "${TVH_GROUP}" ] || ARGS="${ARGS} -g ${TVH_GROUP}"
[ -z "${TVH_ADAPTERS}" ] || ARGS="${ARGS} -a ${TVH_ADAPTERS}"
[ -z "${TVH_HTTP_PORT}" ] || ARGS="${ARGS} -w ${TVH_HTTP_PORT}"
[ -z "${TVH_HTSP_PORT}" ] || ARGS="${ARGS} -e ${TVH_HTSP_PORT}"
[ "${TVH_DEBUG}" = "1" ] && ARGS="${ARGS} -s"
case "$1" in
start)
printf "Starting TVHeadend daemon: "
if start-stop-daemon -S -q -p ${PIDFILE} -m --exec "${DAEMON}" -- ${ARGS}; then
printf "OK\n"
else
printf "failed\n"
fi
;;
stop)
printf "Stoping TVHeadend daemon: "
start-stop-daemon -K -q -p ${PIDFILE} -s TERM
sleep 2
if start-stop-daemon -K -q -p ${PIDFILE} -t; then
printf "failed, killing: "
start-stop-daemon -K -q -p ${PIDFILE} -s KILL -o
fi
printf "OK\n"
;;
restart|force-reload)
"${0}" stop
sleep 2
"${0}" stop
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
:

View File

@ -0,0 +1,13 @@
{
"enabled": 1,
"username": "admin",
"password": "admin",
"comment": "TVHeadend admin user",
"prefix": "0.0.0.0/0",
"streaming": 1,
"dvr": 1,
"dvrallcfg": 1,
"webui": 1,
"admin": 1,
"id": "1"
}

View File

@ -0,0 +1,7 @@
# Once we have a real user, we'll use it
TVH_USER=root
TVH_GROUP=root
#TVH_ADAPTERS=
#TVH_HTTP_PORT=9981
#TVH_HTSP_PORT=9982
#TVH_DEBUG=1

View File

@ -0,0 +1,60 @@
Do not download transponder data as part of the build
If dvb-scan is enabled, tvheadend will download the transponders data
from the dvb-apps package. This does not play well with buildroot.
Instead, we rely on the dvb-apps package to install those files, so
it is no longer needed to install those as part of tvheadend.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
diff -durN tvheadend-v3.3.orig//configure tvheadend-v3.3/configure
--- tvheadend-v3.3.orig//configure 2012-09-25 15:32:31.000000000 +0200
+++ tvheadend-v3.3/configure 2012-12-28 17:17:23.580253413 +0100
@@ -96,13 +96,14 @@
#
# DVB scan
#
-if enabled linuxdvb && enabled dvbscan; then
- if [ ! -d ${ROOTDIR}/data/dvb-scan ]; then
- echo -n "Fetching dvb-scan files... "
- ${ROOTDIR}/support/getmuxlist &> /dev/null || die "Failed to fetch dvb-scan files (use --disable-dvbscan to skip)"
- echo "done"
- fi
-fi
+# For buildroot, we already installed those files via the dvb-apps package
+#if enabled linuxdvb && enabled dvbscan; then
+# if [ ! -d ${ROOTDIR}/data/dvb-scan ]; then
+# echo -n "Fetching dvb-scan files... "
+# ${ROOTDIR}/support/getmuxlist &> /dev/null || die "Failed to fetch dvb-scan files (use --disable-dvbscan to skip)"
+# echo "done"
+# fi
+#fi
# ###########################################################################
# Write config
diff -durN tvheadend-v3.3.orig//Makefile tvheadend-v3.3/Makefile
--- tvheadend-v3.3.orig//Makefile 2012-09-25 15:32:31.000000000 +0200
+++ tvheadend-v3.3/Makefile 2012-12-28 17:17:47.573497346 +0100
@@ -180,7 +180,7 @@
SRCS-${CONFIG_BUNDLE} += bundle.c
BUNDLES-yes += docs/html docs/docresources src/webui/static
BUNDLES-yes += data/conf
-BUNDLES-${CONFIG_DVBSCAN} += data/dvb-scan
+#BUNDLES-${CONFIG_DVBSCAN} += data/dvb-scan
BUNDLES = $(BUNDLES-yes)
#
diff -durN tvheadend-v3.3.orig//support/posix.mk tvheadend-v3.3/support/posix.mk
--- tvheadend-v3.3.orig//support/posix.mk 2012-09-25 15:32:31.000000000 +0200
+++ tvheadend-v3.3/support/posix.mk 2012-12-28 17:19:28.903121722 +0100
@@ -12,7 +12,8 @@
mkdir -p ${DESTDIR}${datadir}/tvheadend/$$bundle ;\
cp -r $$bundle/* ${DESTDIR}${datadir}/tvheadend/$$bundle ;\
done
-
+ mkdir -p ${DESTDIR}${datadir}/tvheadend/data
+ ln -s /usr/share/dvb-apps/scan ${DESTDIR}${datadir}/tvheadend/data/dvb-scan
uninstall:
rm -f ${DESTDIR}${bindir)/tvheadend

View File

@ -0,0 +1,43 @@
#############################################################
#
# tvheadend
#
##############################################################
TVHEADEND_VERSION = v3.3
TVHEADEND_SITE = http://github.com/tvheadend/tvheadend/tarball/$(TVHEADEND_VERSION)
TVHEADEND_LICENSE = GPLv3+
TVHEADEND_LICENSE_FILES = LICENSE
TVHEADEND_DEPENDENCIES = host-pkgconf host-python openssl
ifeq ($(BR2_PACKAGE_AVAHI),y)
TVHEADEND_DEPENDENCIES += avahi
endif
#----------------------------------------------------------------------------
# tvheadend is a little smuggler and thief! ;-)
# During the ./configure, it downloads some files from the dvb-apps
# package, so it has a list of pre-scanned tunner configurations.
# For buildroot, we add a patch that avoids doing that, but uses the
# scan files installed by the dvb-apps package
TVHEADEND_DEPENDENCIES += dvb-apps
#----------------------------------------------------------------------------
# To run tvheadend, we need:
# - a startup script, and its config file
# - a default DB with a tvheadend admin
define TVHEADEND_INSTALL_DB
$(INSTALL) -D package/tvheadend/accesscontrol.1 \
$(TARGET_DIR)/root/.hts/tvheadend/accesscontrol/1
endef
TVHEADEND_POST_INSTALL_TARGET_HOOKS = TVHEADEND_INSTALL_DB
define TVHEADEND_INSTALL_INIT_SYSV
$(INSTALL) -D package/tvheadend/etc.default.tvheadend $(TARGET_DIR)/etc/default/tvheadend
$(INSTALL) -D package/tvheadend/S99tvheadend $(TARGET_DIR)/etc/init.d/S99tvheadend
endef
#----------------------------------------------------------------------------
# tvheadend is not an autotools-based package, but it is possible to
# call its ./configure script as if it were an autotools one.
$(eval $(autotools-package))