package/tvheadend: use wizard mode on first run

The format of the ACL database in tvheadend has changed, and generating
a default user is a little bit more involved than just dumping a file in
the correct locations: filenames are now md5sum (of something?) and the
usernames and passwords now have their own DB.

However, tvheadend has a wizard mode, where it is possible to configure
the basic features, of which creating an admin user.

We remove our canned ACL database, and change the startup script to
start in wizard mode on first run. We also switch to using our infra to
set the permissions.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Yann E. MORIN 2016-03-28 17:15:47 +02:00 committed by Thomas Petazzoni
parent 04236c4a30
commit c70ad5880d
4 changed files with 12 additions and 23 deletions

View File

@ -22,7 +22,7 @@ config BR2_PACKAGE_TVHEADEND
https://www.lonelycoder.com/redmine/projects/tvheadend/ https://www.lonelycoder.com/redmine/projects/tvheadend/
Note: Note:
- a default user has been created to log in the web configuration - on first run, tvheadend will start in wizard mode; the webUI
GUI: admin/admin; you can change it at your discretion at runtime. is available on port 9981.
- if you want Avahi support, you'll need to enable: - if you want Avahi support, you'll need to enable:
Avahi, D-Bus, libdaemon Avahi, D-Bus, libdaemon

View File

@ -21,6 +21,11 @@ ARGS="-f"
[ -z "${TVH_HTSP_PORT}" ] || ARGS="${ARGS} -e ${TVH_HTSP_PORT}" [ -z "${TVH_HTSP_PORT}" ] || ARGS="${ARGS} -e ${TVH_HTSP_PORT}"
[ "${TVH_DEBUG}" = "1" ] && ARGS="${ARGS} -s" [ "${TVH_DEBUG}" = "1" ] && ARGS="${ARGS} -s"
# If first run, start in wizard mode
if [ -z "$(ls -1 /home/tvheadend/.hts/tvheadend/accesscontrol/ 2>/dev/null)" ]; then
ARGS="${ARGS} -C"
fi
case "$1" in case "$1" in
start) start)
printf "Starting TVHeadend daemon: " printf "Starting TVHeadend daemon: "

View File

@ -1,13 +0,0 @@
{
"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

@ -107,14 +107,8 @@ TVHEADEND_POST_INSTALL_TARGET_HOOKS += TVHEADEND_CLEAN_SHARE
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# To run tvheadend, we need: # To run tvheadend, we need:
# - a startup script, and its config file # - a startup script, and its config file
# - a default DB with a tvheadend admin # - a non-root user to run as, and a home for it that is not accessible
# - a non-root user to run as # to the other users (because there will be crendentials in there)
define TVHEADEND_INSTALL_DB
$(INSTALL) -D -m 0600 package/tvheadend/accesscontrol.1 \
$(TARGET_DIR)/home/tvheadend/.hts/tvheadend/accesscontrol/1
chmod -R go-rwx $(TARGET_DIR)/home/tvheadend
endef
TVHEADEND_POST_INSTALL_TARGET_HOOKS += TVHEADEND_INSTALL_DB
define TVHEADEND_INSTALL_INIT_SYSV define TVHEADEND_INSTALL_INIT_SYSV
$(INSTALL) -D package/tvheadend/etc.default.tvheadend $(TARGET_DIR)/etc/default/tvheadend $(INSTALL) -D package/tvheadend/etc.default.tvheadend $(TARGET_DIR)/etc/default/tvheadend
@ -124,5 +118,8 @@ endef
define TVHEADEND_USERS define TVHEADEND_USERS
tvheadend -1 tvheadend -1 * /home/tvheadend - video TVHeadend daemon tvheadend -1 tvheadend -1 * /home/tvheadend - video TVHeadend daemon
endef endef
define TVHEADEND_PERMISSIONS
/home/tvheadend r 0700 tvheadend tvheadend - - - - -
endef
$(eval $(generic-package)) $(eval $(generic-package))