Pull request for branch yem-tvheadend
Hello All!
Here's an attempt at adding the tvheadend package to buildroot. tvheadend is a PVR/DVR solution for DVB and IP streams, which can be used as a backend by other tools, such as XBMC.
The following changes since commit 5f70f5caea8a8e229a5adad948b32fe4e3c88289:
new package: proxychains (2012-12-23 21:57:45 +0100)
are available in the git repository at:
git://gitorious.org/buildroot/buildroot.git yem-tvheadend
Yann E. MORIN (1):
package/tvheadend: new package
package/Config.in | 1 + package/tvheadend/Config.in | 20 +++++++++ package/tvheadend/tvheadend.config | 13 ++++++ package/tvheadend/tvheadend.default | 6 +++ package/tvheadend/tvheadend.init | 54 +++++++++++++++++++++++++ package/tvheadend/tvheadend.mk | 76 +++++++++++++++++++++++++++++++++++ package/tvheadend/tvheadend.mkuser | 52 ++++++++++++++++++++++++ 7 files changed, 222 insertions(+), 0 deletions(-) create mode 100644 package/tvheadend/Config.in create mode 100644 package/tvheadend/tvheadend.config create mode 100644 package/tvheadend/tvheadend.default create mode 100644 package/tvheadend/tvheadend.init create mode 100644 package/tvheadend/tvheadend.mk create mode 100755 package/tvheadend/tvheadend.mkuser
Regards,
Yann E. MORIN
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 package/tvheadend: new package
--- package/Config.in | 1 + package/tvheadend/Config.in | 20 +++++++++ package/tvheadend/tvheadend.config | 13 ++++++ package/tvheadend/tvheadend.default | 6 +++ package/tvheadend/tvheadend.init | 54 +++++++++++++++++++++++++ package/tvheadend/tvheadend.mk | 76 +++++++++++++++++++++++++++++++++++ package/tvheadend/tvheadend.mkuser | 52 ++++++++++++++++++++++++ 7 files changed, 222 insertions(+), 0 deletions(-) create mode 100644 package/tvheadend/Config.in create mode 100644 package/tvheadend/tvheadend.config create mode 100644 package/tvheadend/tvheadend.default create mode 100644 package/tvheadend/tvheadend.init create mode 100644 package/tvheadend/tvheadend.mk create mode 100755 package/tvheadend/tvheadend.mkuser
package/Config.in +1 -0
@@ -682,6 +682,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"
package/tvheadend/Config.in new file +20 -0
@@ -0,0 +1,20 @@ +comment "tvheadend requires a toolchain with WCHAR" + depends on !BR2_USE_WCHAR + +config BR2_PACKAGE_TVHEADEND + bool "tvheadend" + depends on BR2_USE_WCHAR # python + depends on BR2_USE_MMU # python + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_PYTHON + 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: if you want Avahi support, you'll need to enable: + - Avahi + - D-Bus + - libdaemon
package/tvheadend/tvheadend.config new file +13 -0
@@ -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" +}
package/tvheadend/tvheadend.default new file +6 -0
@@ -0,0 +1,6 @@ +TVH_USER=tvheadend +TVH_GROUP=tvheadend +#TVH_ADAPTERS= +#TVH_HTTP_PORT=9981 +#TVH_HTSP_PORT=9982 +#TVH_DEBUG=1
package/tvheadend/tvheadend.init new file +54 -0
54 lines not on this page · raw message
package/tvheadend/tvheadend.mk new file +76 -0
76 lines not on this page · raw message
package/tvheadend/tvheadend.mkuser new file +52 -0
52 lines not on this page · raw message
Signature · 1 line
1.7.2.5
PATCH 1/1 package/tvheadend: new package
Hello All, Maxime,
On Monday 24 December 2012 Yann E. MORIN wrote:
[--SNIP--]
package/tvheadend/tvheadend.mk
Quoted 6 lines
package/tvheadend/tvheadend.mk new file +0
-0@@ -0,0 +1,76 @@
[--SNIP--]
package/tvheadend/tvheadend.mk line 71
Quoted 5 lines
package/tvheadend/tvheadend.mk new file +5
-0+define TVHEADEND_INSTALL_SYSV_STARTUP_FILES + $(INSTALL) -D package/tvheadend/tvheadend.default $(TARGET_DIR)/etc/default/tvheadend + $(INSTALL) -D package/tvheadend/tvheadend.init $(TARGET_DIR)/etc/init.d/S99tvheadend +endef +TVHEADEND_INSTALL_INIT_SYSV = TVHEADEND_INSTALL_SYSV_STARTUP_FILES
I just forgot to rebuild after this change. It's broken, of course. I've now fixed it and pushed the new package. Sorry for the confusion.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 package/tvheadend: new package
In reply to Yann E. MORINQuoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Yann" == Yann E MORIN <[email protected]> writes:
Hi,
Yann> Signed-off-by: "Yann E. MORIN" <[email protected]> Yann> ---
Yann> package/Config.in | 1 + Yann> package/tvheadend/Config.in | 20 +++++++++ Yann> package/tvheadend/tvheadend.config | 13 ++++++ Yann> package/tvheadend/tvheadend.default | 6 +++ Yann> package/tvheadend/tvheadend.init | 54 +++++++++++++++++++++++++ Yann> package/tvheadend/tvheadend.mk | 76 +++++++++++++++++++++++++++++++++++ Yann> package/tvheadend/tvheadend.mkuser | 52 ++++++++++++++++++++++++ Yann> 7 files changed, 222 insertions(+), 0 deletions(-) Yann> create mode 100644 package/tvheadend/Config.in Yann> create mode 100644 package/tvheadend/tvheadend.config Yann> create mode 100644 package/tvheadend/tvheadend.default Yann> create mode 100644 package/tvheadend/tvheadend.init Yann> create mode 100644 package/tvheadend/tvheadend.mk Yann> create mode 100755 package/tvheadend/tvheadend.mkuser
Yann> diff --git a/package/Config.in b/package/Config.in Yann> index 3d556b2..bcf0009 100644
Yann> --- a/package/Config.in
Yann> +++ b/package/Config.in
Yann> @@ -682,6 +682,7 @@ source "package/tinyhttpd/Config.in"
Yann> source "package/tn5250/Config.in" Yann> source "package/transmission/Config.in" Yann> source "package/ttcp/Config.in" Yann> +source "package/tvheadend/Config.in" Yann> source "package/udpcast/Config.in" Yann> source "package/ulogd/Config.in" Yann> source "package/ushare/Config.in"
Yann> diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in Yann> new file mode 100644
Yann> index 0000000..679ca13
Yann> --- /dev/null
Yann> +++ b/package/tvheadend/Config.in
Yann> @@ -0,0 +1,20 @@
Yann> +comment "tvheadend requires a toolchain with WCHAR"
We normally add ' support' - E.G. WCHAR support.
It also needs largefile support unless you override CFLAGS in the Makefile:
Makefile:CFLAGS += -D_FILE_OFFSET_BITS=64
Yann> +++ b/package/tvheadend/tvheadend.default
Yann> @@ -0,0 +1,6 @@
Yann> +TVH_USER=tvheadend
Yann> +TVH_GROUP=tvheadend
Yann> +#TVH_ADAPTERS=
Yann> +#TVH_HTTP_PORT=9981
Yann> +#TVH_HTSP_PORT=9982
Yann> +#TVH_DEBUG=1
Yann> diff --git a/package/tvheadend/tvheadend.init b/package/tvheadend/tvheadend.init Yann> new file mode 100644
Yann> index 0000000..b05ec81
Yann> --- /dev/null
Yann> +++ b/package/tvheadend/tvheadend.init
Yann> @@ -0,0 +1,54 @@
Yann> +#! /bin/sh
Yann> +# Startup script inspired by the one in the package
It would be good to mention 'tvheadend' here.
Yann> +++ b/package/tvheadend/tvheadend.mk
Yann> @@ -0,0 +1,76 @@
Yann> +############################################################# Yann> +#
Yann> +# tvheadend
Yann> +#
Yann> +############################################################## Yann> +
Yann> +TVHEADEND_VERSION = v3.3 Yann> +TVHEADEND_SITE = http://github.com/tvheadend/tvheadend/tarball/$(TVHEADEND_VERSION) Yann> +TVHEADEND_LICENSE = GPLv3+ Yann> +TVHEADEND_LICENSE_FILES = LICENSE Yann> +TVHEADEND_DEPENDENCIES = host-pkgconf openssl python Yann> + Yann> +ifeq ($(BR2_PACKAGE_AVAHI),y) Yann> +TVHEADEND_DEPENDENCIES += avahi Yann> +endif Yann> + Yann> +#---------------------------------------------------------------------------- Yann> +# tvheadend is a little smuggler and thief! ;-) Yann> +# During the ./configure, it downloads some files from the dvb-apps Yann> +# package, so it has a list of pre-scanned tunner configurations. Yann> +# For buildroot that has a few-unfortunate consequences: Yann> +# - the network may not be availabe at the time of build, if the Yann> +# user pre-downloaded the sources with 'make source' Yann> +# So, here's what we do: Yann> +# - after the main archive download, we do download those files Yann> +# - after extract, we extract the required files Yann> + Yann> +TVHEADEND_DVBSCANS_VERSION = 3fc7dfa68484 Yann> +TVHEADEND_DVBSCANS_SITE = http://linuxtv.org/hg/dvb-apps/archive/ Yann> +TVHEADEND_DVBSCANS_DIR = dvb-apps-$(TVHEADEND_DVBSCANS_VERSION) Yann> +TVHEADEND_DVBSCANS_SOURCE = $(TVHEADEND_DVBSCANS_DIR).tar.bz2 Yann> + Yann> +define TVHEADEND_DOWNLOAD_DVBSCANS Yann> + $(call DOWNLOAD_WGET,$(TVHEADEND_DVBSCANS_SITE)/$(TVHEADEND_DVBSCANS_VERSION).tar.bz2,$(TVHEADEND_DVBSCANS_SOURCE)) Yann> +endef Yann> +TVHEADEND_POST_DOWNLOAD_HOOKS = TVHEADEND_DOWNLOAD_DVBSCANS Yann> + Yann> +define TVHEADEND_EXTRACT_DVBSCANS Yann> + mkdir -p $(@D)/data/dvb-scan Yann> + $(INFLATE.bz2) $(DL_DIR)/$(TVHEADEND_DVBSCANS_SOURCE) |\ Yann> + $(TAR) $(TAR_STRIP_COMPONENTS)=3 -C $(@D)/data/dvb-scan \ Yann> + $(TAR_OPTIONS) - \ Yann> + $(TVHEADEND_DVBSCANS_DIR)/util/scan/{atsc,dvb-{c,s,t}} Yann> +endef Yann> +TVHEADEND_POST_EXTRACT_HOOKS = TVHEADEND_EXTRACT_DVBSCANS Yann> + Yann> +#---------------------------------------------------------------------------- Yann> +# To run tvheadend, we need: Yann> +# - a non-root user to be safe, with its owned ${HOME} Yann> +# - a startup script, and its config file Yann> +# - a default DB with a tvheadend admin Yann> +TVHEADEND_MKUSER = TARGET_DIR=$(TARGET_DIR) INSTALL=$(INSTALL) package/tvheadend/tvheadend.mkuser Yann> +define TVHEADEND_CREATE_USER Yann> + $(TVHEADEND_MKUSER) mk_user Yann> + $(INSTALL) -D package/tvheadend/tvheadend.config $(TARGET_DIR)/home/tvheadend/.hts/tvheadend/accesscontrol/1 Yann> +endef Yann> +TVHEADEND_POST_INSTALL_TARGET_HOOKS = TVHEADEND_CREATE_USER Yann> + Yann> +define TVHEADEND_PERMISSIONS Yann> + /home/tvheadend d 0700 $$(shell $(TVHEADEND_MKUSER) get_uid) $$(shell $(TVHEADEND_MKUSER) get_gid) - - - - - Yann> + /home/tvheadend/.hts d 0700 $$(shell $(TVHEADEND_MKUSER) get_uid) $$(shell $(TVHEADEND_MKUSER) get_gid) - - - - - Yann> + /home/tvheadend/.hts/tvheadend d 0700 $$(shell $(TVHEADEND_MKUSER) get_uid) $$(shell $(TVHEADEND_MKUSER) get_gid) - - - - - Yann> + /home/tvheadend/.hts/tvheadend/accesscontrol d 0700 $$(shell $(TVHEADEND_MKUSER) get_uid) $$(shell $(TVHEADEND_MKUSER) get_gid) - - - - -
Yann> + /home/tvheadend/.hts/tvheadend/accesscontrol/1 f 0600 $$(shell $(TVHEADEND_MKUSER) get_uid) $$(shell $(TVHEADEND_MKUSER) get_gid) - - - - -
Yann> +endef
I'm not really happy about the user handling here. I think we should either just add a static tvheadend user to system/skeleton/etc/passwd like we've done for ssh/hal/dbus/.., or come up with some generic infrastructure to handle it per package (like _PERMISSIONS) instead of something tvheadend specific.
We also normally don't touch /home. Can't tvheadend run as system daemon (still as a seperate user) instead?
Yann> +
Yann> +define TVHEADEND_INSTALL_SYSV_STARTUP_FILES
Yann> + $(INSTALL) -D package/tvheadend/tvheadend.default $(TARGET_DIR)/etc/default/tvheadend
Yann> + $(INSTALL) -D package/tvheadend/tvheadend.init $(TARGET_DIR)/etc/init.d/S99tvheadend
I personally prefer to keep the same names both in package/ and output/target (so S99tvheadend). Makes it easier to find the corresponding source files.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/1 package/tvheadend: new package
Peter, All,
Quoted 1 line · On Wednesday 26 December 2012 Peter Korsgaard wrote:
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Yann" == Yann E MORIN <[email protected]> writes:
[--SNIP--]
Quoted 9 lines
Yann> diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in Yann> new file mode 100644
Yann> index 0000000..679ca13
Yann> ---/dev/null
Yann> +++ b/package/tvheadend/Config.in
Yann> @@ -0,0 +1,20 @@
Yann> +comment "tvheadend requires a toolchain with WCHAR"We normally add ' support' - E.G. WCHAR support.
OK.
Quoted 4 lines
It also needs largefile support unless you override CFLAGS in the
Makefile:Makefile:CFLAGS += -D_FILE_OFFSET_BITS=64
LARGE_FILES that will be, then. ;-)
Quoted 10 lines
Yann> diff --git a/package/tvheadend/tvheadend.init b/package/tvheadend/tvheadend.init Yann> new file mode 100644
Yann> index 0000000..b05ec81
Yann> ---/dev/null
Yann> +++ b/package/tvheadend/tvheadend.init
Yann> @@ -0,0 +1,54 @@
Yann> +#!/bin/sh
Yann> +# Startup script inspired by the one in the packageIt would be good to mention 'tvheadend' here.
OK.
Quoted 1 line
Yann> +++
b/package/tvheadend/tvheadend.mk
[--SNIP--]
Quoted 17 lines
Yann> +#---------------------------------------------------------------------------- Yann> +# To run tvheadend, we need:
Yann> +# - a non-root user to be safe, with its owned ${HOME} Yann> +# - a startup script, and its config file Yann> +# - a default DB with a tvheadend admin Yann> +TVHEADEND_MKUSER = TARGET_DIR=$(TARGET_DIR) INSTALL=$(INSTALL) package/tvheadend/tvheadend.mkuser Yann> +define TVHEADEND_CREATE_USER Yann> + $(TVHEADEND_MKUSER) mk_user Yann> + $(INSTALL) -D package/tvheadend/tvheadend.config $(TARGET_DIR)/home/tvheadend/.hts/tvheadend/accesscontrol/1 Yann> +endef Yann> +TVHEADEND_POST_INSTALL_TARGET_HOOKS = TVHEADEND_CREATE_USER Yann> + Yann> +define TVHEADEND_PERMISSIONS Yann> + /home/tvheadend d 0700 $$(shell $(TVHEADEND_MKUSER) get_uid) $$(shell $(TVHEADEND_MKUSER) get_gid) - - - - - Yann> + /home/tvheadend/.hts d 0700 $$(shell $(TVHEADEND_MKUSER) get_uid) $$(shell $(TVHEADEND_MKUSER) get_gid) - - - - - Yann> + /home/tvheadend/.hts/tvheadend d 0700 $$(shell $(TVHEADEND_MKUSER) get_uid) $$(shell $(TVHEADEND_MKUSER) get_gid) - - - - - Yann> + /home/tvheadend/.hts/tvheadend/accesscontrol d 0700 $$(shell $(TVHEADEND_MKUSER) get_uid) $$(shell $(TVHEADEND_MKUSER) get_gid) - - - - -
Quoted 6 lines
Yann> +
/home/tvheadend/.hts/tvheadend/accesscontrol/1f 0600 $$(shell $(TVHEADEND_MKUSER)get_uid) $$(shell $(TVHEADEND_MKUSER)get_gid) - - - - -
Yann> +endefI'm not really happy about the user handling here. I think we should either just add a static tvheadend user to system/skeleton/etc/passwd like we've done for ssh/hal/dbus/..
That will make for an ever-increasing list of users, most will probably never, ever be usefull. I do not like that... :-(
I agree however that the solution above is less than ideal.
Quoted 3 lines
, or come up with some generic
infrastructure to handle it per package (like_PERMISSIONS) instead of something tvheadend specific.
Yes, that's something I'm thinking about...
Basically, I'd expect something like:
TVHEADEND_USER = tvheadend -1 -1 /home/tvheadend /bin/sh FOO_USER = USERNAME UID GID HOME SHELL
- if UID (GID) is -1, then a uid (gid) will be choosen arbitrarily.
- if UID (GID) is >=0 and conflicts with an other entry, the build fails
- if HOME is 'none', no home is created for that user
- if SHELL is 'none', then the shell will be set to /bin/false
Then:
- an entry is created in /etc/passwd, and the home is created before the
package is configured (except if home=='none')
- the home is chowned (except if home=='none') using a generated _PERMISSIONS variable
Quoted 2 lines
We also normally don't touch /home. Can't tvheadend run as system daemon (still as a seperate user) instead?
It still needs a place where to store:
- its runtime configuration (that is done through the web interface and creates new files)
- the recordings
Quoted 8 lines
Yann> +
Yann> +defineTVHEADEND_INSTALL_SYSV_STARTUP_FILES
Yann> + $(INSTALL) -D package/tvheadend/tvheadend.default $(TARGET_DIR)/etc/default/tvheadend
Yann> + $(INSTALL) -D package/tvheadend/tvheadend.init $(TARGET_DIR)/etc/init.d/S99tvheadendI personally prefer to keep the same names both in package/ and output/target (so S99tvheadend). Makes it easier to find the corresponding source files.
OK.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 package/tvheadend: new package
In reply to Yann E. MORINDear Yann E. MORIN,
Quoted 19 lines · Yann E. MORIN
package/tvheadend/tvheadend.mk new file +19
-0+#---------------------------------------------------------------------------- +# 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 that has a few-unfortunate consequences: +# - the network may not be availabe at the time of build, if the +# user pre-downloaded the sources with 'make source' +# So, here's what we do: +# - after the main archive download, we do download those files +# - after extract, we extract the required files + +TVHEADEND_DVBSCANS_VERSION = 3fc7dfa68484 +TVHEADEND_DVBSCANS_SITE = http://linuxtv.org/hg/dvb-apps/archive/ +TVHEADEND_DVBSCANS_DIR = dvb-apps-$(TVHEADEND_DVBSCANS_VERSION) +TVHEADEND_DVBSCANS_SOURCE = $(TVHEADEND_DVBSCANS_DIR).tar.bz2 + +define TVHEADEND_DOWNLOAD_DVBSCANS + $(call DOWNLOAD_WGET,$(TVHEADEND_DVBSCANS_SITE)/$(TVHEADEND_DVBSCANS_VERSION).tar.bz2,$(TVHEADEND_DVBSCANS_SOURCE)) +endef
package/tvheadend/tvheadend.mk line 45
Quoted 10 lines
package/tvheadend/tvheadend.mk new file +10
-0+TVHEADEND_POST_DOWNLOAD_HOOKS = TVHEADEND_DOWNLOAD_DVBSCANS + +define TVHEADEND_EXTRACT_DVBSCANS + mkdir -p $(@D)/data/dvb-scan + $(INFLATE.bz2) $(DL_DIR)/$(TVHEADEND_DVBSCANS_SOURCE) |\ + $(TAR) $(TAR_STRIP_COMPONENTS)=3 -C $(@D)/data/dvb-scan \ + $(TAR_OPTIONS) - \ + $(TVHEADEND_DVBSCANS_DIR)/util/scan/{atsc,dvb-{c,s,t}} +endef +TVHEADEND_POST_EXTRACT_HOOKS = TVHEADEND_EXTRACT_DVBSCANS
I think this part should be moved to a separate package, say "dvb-apps", on which tvheadend would depend. It can install its stuff in $(STAGING_DIR), for example, and then you can symlink $(@D)/data/dvb-scan of tvheadend to the right directory in $(STAGING_DIR), or better, modify a bit tvheadend so that it can take an argument specifying where the dvb-data is to be found.
Best regards,
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 1/1 package/tvheadend: new package
Thomas, All,
Quoted 29 lines · On Thursday 27 December 2012 Thomas Petazzoni wrote:
Quoted 28 lines · Yann E. MORIN
package/tvheadend/tvheadend.mk new file +28
-0+#---------------------------------------------------------------------------- +# 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 that has a few-unfortunate consequences: +# - the network may not be availabe at the time of build, if the +# user pre-downloaded the sources with 'make source' +# So, here's what we do: +# - after the main archive download, we do download those files +# - after extract, we extract the required files + +TVHEADEND_DVBSCANS_VERSION = 3fc7dfa68484 +TVHEADEND_DVBSCANS_SITE = http://linuxtv.org/hg/dvb-apps/archive/ +TVHEADEND_DVBSCANS_DIR = dvb-apps-$(TVHEADEND_DVBSCANS_VERSION) +TVHEADEND_DVBSCANS_SOURCE = $(TVHEADEND_DVBSCANS_DIR).tar.bz2 + +define TVHEADEND_DOWNLOAD_DVBSCANS + $(call DOWNLOAD_WGET,$(TVHEADEND_DVBSCANS_SITE)/$(TVHEADEND_DVBSCANS_VERSION).tar.bz2,$(TVHEADEND_DVBSCANS_SOURCE)) +endef +TVHEADEND_POST_DOWNLOAD_HOOKS = TVHEADEND_DOWNLOAD_DVBSCANS + +define TVHEADEND_EXTRACT_DVBSCANS + mkdir -p $(@D)/data/dvb-scan + $(INFLATE.bz2) $(DL_DIR)/$(TVHEADEND_DVBSCANS_SOURCE) |\ + $(TAR) $(TAR_STRIP_COMPONENTS)=3 -C $(@D)/data/dvb-scan \ + $(TAR_OPTIONS) - \ + $(TVHEADEND_DVBSCANS_DIR)/util/scan/{atsc,dvb-{c,s,t}} +endef
Quoted 8 lines
Quoted 1 line
+TVHEADEND_POST_EXTRACT_HOOKS =
TVHEADEND_EXTRACT_DVBSCANSI think this part should be moved to a separate package, say "dvb-apps", on which tvheadend would depend. It can install its stuff in $(STAGING_DIR), for example, and then you can symlink $(@D)/data/dvb-scan of tvheadend to the right directory in $(STAGING_DIR), or better, modify a bit tvheadend so that it can take an argument specifying where the dvb-data is to be found.
I knew this would raise eyebrows.
I'll see what I can come up with...
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'