[Buildroot] [PATCHv2] package/tvheadend: use wizard mode on first run
Yann E. MORIN
yann.morin.1998 at free.fr
Mon Mar 28 15:06:17 UTC 2016
All,
On 2016-03-28 17:03 +0200, Yann E. MORIN spake thusly:
> 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 still need to create the home directory, becauseour mkusers infra
> does not allow setting the access rights, and we want the tvheadend home
> to be go-rwx, as there will be credentials in there.
Well, right after sending this patch, I remembered we do have a way to
set permissions.
Marked as Changes Requested in patchwork; I'll respin a bit later...
Regards,
Yann E. MORIN.
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
>
> ---
> Changes v1 -> v2:
> - drop the old accesscontrol file (Thomas)
> - create the home directory with appropriate rights
> ---
> package/tvheadend/Config.in | 4 ++--
> package/tvheadend/S99tvheadend | 5 +++++
> package/tvheadend/accesscontrol.1 | 13 -------------
> package/tvheadend/tvheadend.mk | 15 ++++++++-------
> 4 files changed, 15 insertions(+), 22 deletions(-)
> delete mode 100644 package/tvheadend/accesscontrol.1
>
> diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in
> index 095ec65..67a4b14 100644
> --- a/package/tvheadend/Config.in
> +++ b/package/tvheadend/Config.in
> @@ -22,7 +22,7 @@ config BR2_PACKAGE_TVHEADEND
> 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.
> + - on first run, tvheadend will start in wizard mode; the webUI
> + is available on port 9981.
> - if you want Avahi support, you'll need to enable:
> Avahi, D-Bus, libdaemon
> diff --git a/package/tvheadend/S99tvheadend b/package/tvheadend/S99tvheadend
> index 75b66f3..65669ce 100644
> --- a/package/tvheadend/S99tvheadend
> +++ b/package/tvheadend/S99tvheadend
> @@ -21,6 +21,11 @@ ARGS="-f"
> [ -z "${TVH_HTSP_PORT}" ] || ARGS="${ARGS} -e ${TVH_HTSP_PORT}"
> [ "${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
> start)
> printf "Starting TVHeadend daemon: "
> diff --git a/package/tvheadend/accesscontrol.1 b/package/tvheadend/accesscontrol.1
> deleted file mode 100644
> index b920943..0000000
> --- a/package/tvheadend/accesscontrol.1
> +++ /dev/null
> @@ -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"
> -}
> diff --git a/package/tvheadend/tvheadend.mk b/package/tvheadend/tvheadend.mk
> index 3398faf..1551dad 100644
> --- a/package/tvheadend/tvheadend.mk
> +++ b/package/tvheadend/tvheadend.mk
> @@ -107,14 +107,15 @@ TVHEADEND_POST_INSTALL_TARGET_HOOKS += TVHEADEND_CLEAN_SHARE
> #----------------------------------------------------------------------------
> # To run tvheadend, we need:
> # - a startup script, and its config file
> -# - a default DB with a tvheadend admin
> -# - a non-root user to run as
> -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
> +# - a non-root user to run as, and a home for it that is not accesible to
> +# the other users (because there will be crendentials in there)
> +# Note that the home directory would be created by our mkusers script, but
> +# it only runs in target finalise and does not set the group and others
> +# permissions. So we create it here.
> +define TVHEADEND_CHOWN_HOME
> + $(INSTALL) -d -m 0700 $(TARGET_DIR)/home/tvheadend
> endef
> -TVHEADEND_POST_INSTALL_TARGET_HOOKS += TVHEADEND_INSTALL_DB
> +TVHEADEND_POST_INSTALL_TARGET_HOOKS += TVHEADEND_CHOWN_HOME
>
> define TVHEADEND_INSTALL_INIT_SYSV
> $(INSTALL) -D package/tvheadend/etc.default.tvheadend $(TARGET_DIR)/etc/default/tvheadend
> --
> 1.9.1
>
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
More information about the buildroot
mailing list