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:
parent
6904b0ea95
commit
14989d0be5
@ -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"
|
||||
|
19
package/tvheadend/Config.in
Normal file
19
package/tvheadend/Config.in
Normal 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
|
54
package/tvheadend/S99tvheadend
Normal file
54
package/tvheadend/S99tvheadend
Normal 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
|
||||
|
||||
:
|
13
package/tvheadend/accesscontrol.1
Normal file
13
package/tvheadend/accesscontrol.1
Normal 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"
|
||||
}
|
7
package/tvheadend/etc.default.tvheadend
Normal file
7
package/tvheadend/etc.default.tvheadend
Normal 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
|
60
package/tvheadend/tvheadend-no-auto-download-dvbscans.patch
Normal file
60
package/tvheadend/tvheadend-no-auto-download-dvbscans.patch
Normal 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
|
43
package/tvheadend/tvheadend.mk
Normal file
43
package/tvheadend/tvheadend.mk
Normal 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))
|
Loading…
Reference in New Issue
Block a user