UPDATE 2018-12-14: Issue 5432 has been created!
https://tvheadend.org/issues/5432
Introduction:
With some quick and dirty patching/hacking and skipping warnings/errors both Tvheadend git release/4.2 and master(4.3x) "build" and do "run" on OpenPLi 6.2 on mips32el Mut@nt hd530c and VuSOLO including hdhomerun and satip client support. However expect errors/limitations that these setop boxes might give due to tight closed dvb drivers using older/out of tree kernel/modules and very limited cpu/ram specs!!! This build procedure will take ~6GB and 2,5 hours on a dated 3GHz i7(Quadcore+ssd) for the combined building part, without taking the Internet Provider download speed and reader skills into account!
If I'm not mistaking a couple of years ago I think I tried a classic Tvheadend version on a dated OpenPLi/OpenATV with VuSolo, but lost interest since its was not detecting any tuners was buggy and unusefull.
Due to having success/joy in using and building Tvheadend for PC x86 and Raspberry Pi Arm hardware (deb based), I noticed that there was some standardization in these (OpenPLi) setop boxes too that earned having another look.
They use yocto(Linux Foundation)/openembedded(OE alliance)/bitbake system with each setop box distribution (OpenPLi/OPENATV) having their own meta/recipes/layers on top of this. Which is a very complete and complex system for generating hardware specific firmware/rootfs images.
By only fiddling with some text file patches and understanding in which meta/recipe folder they need to occur I got Tvheadend to build with minimal OpenPLi build instructions. First it was Tvheadend v.3.3 that compiled than v4.0.9 to see if the bitbake files were at all any exchangable (pyro>morty) which they indeed were. Following with current git release/4.2 v4.2.7.x and master v4.3x which mostly need different line numbers for diff/.patch files to apply I decided to write this howto. Afterwards I wasn't able to directly compile v3.3 and v4.0.9... but newer versions did.
We see that native yocto building of Tvheadend v3.3 has been done in the past yocto(morty) release when looking at "tvheadend_git.bb" bitbake file:
https://layers.openembedded.org/layerindex/recipe/55018/
Currently v4.0.9 of tvheadend is blacklisted in the yocto(pyro) release with a dvb-apps dependency problem(luckily didn't notice dvb-apps error building OpenPLi 6.2 when unblacklisting tvheadend build):
https://layers.openembedded.org/layerindex/recipe/63277/
Since it was blacklisted because of dvb-apps depenency (eventhough its not needed anymore for v4.3.x tvheadend):
https://tvheadend.org/projects/tvheadend/repository/revisions/fab0a6c59ceb322c44722f7576e743de176f81a9
Its not only outdated with v4.0.9 but apparently removed/missing in current and future upstream yocto(rocko/sumo) openembedded bitbake recipes as we see:
https://layers.openembedded.org/layerindex/branch/rocko/layer/meta-multimedia/
https://layers.openembedded.org/layerindex/branch/sumo/layer/meta-multimedia/
Good news its back in yocto(master) thanks Peter Bašista for noticing.
https://layers.openembedded.org/layerindex/recipe/89269/
Status
The Mut@nt hd530c currently runs tvheadend 79ea2a42c477e315ffa2143252273fe2db0c2165 with 3 frontends detected on a single adapter but using its dvb-c adapters directly within tvheadend causes tvheadend to crash as soon as a 2nd channel on a different transponder is tuned on a 2nd/3rd tuner. This happens with enigma enabled in background and with runlevel init 4. There has been some tvheadend optimizations lately(see issues) to improve multiple frontend behaviour on dual tuners but for this FBC dvb-c tuner it did not improve yet.
Related issues/bugs:
https://tvheadend.org/issues/5379
https://tvheadend.org/issues/5330
Prepare Building:
To get tvheadend support in your build of OpenPLi, I use Ubuntu 16.04 amd64 (you must use 16.04 otherwise some build dependencies/resolving will fail) and first build a default OpenPLi 6.2 image to see if that will actual succeed and all the ingredients are done, afterwards tvheadend support will be patched in and only parts of the build process are redone quickly thanks to the advanced yocto oe buildsysten. Open a terminal and:
#make sure "en_US_utf8" is installed and default
sudo dpkg-reconfigure locales
sudo apt-get -y install default-jre gettext zip sed wget cvs subversion git-core coreutils unzip texi2html texinfo docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ \
desktop-file-utils chrpath libdvbcsa-dev libhdhomerun-dev libxml2-utils autoconf automake bison bzip2 flex gzip ncurses-bin ncurses-dev libc6-dev libtool make texinfo patch perl pkg-config subversion \
tar texi2html wget zlib1g-dev
#get openpli sources
git clone -b release-6.2 https://github.com/OpenPLi/openpli-oe-core.git #sumo #release-6.2 #rc #develop=master
cd openpli-oe-core
sed -i 's/"develop"/"release-6.2"/g' meta-openpli/recipes-openpli/enigma2/enigma2.bb
sed -i 's/"${BRANCH}"/"release-6.2"/g' meta-openpli/recipes-openpli/enigma2/enigma2.bb
#prepare actual build environment getting more sources
MACHINE=hd530c make
#add/append buildflags to speedup compile change thread number 7 to your cpu count
tee -a build/conf/local.conf <<EOF
BB_NUMBER_THREADS = "7"
PARALLEL_MAKE="-j7"
BUILD_OPTIMIZATION = "-march=native -O2 -pipe"
BB_SCHEDULER = "speed"
EOF
#fix libdca source
cat <<'EOF' > meta-openpli/recipes-multimedia/vlc/libdca_0.0.5.bb
SUMMARY = "decoding library for DTS Coherent Acoustics streams"
SECTION = "libs/multimedia"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
PR = "r1"
DEPENDS += "quilt-native"
inherit autotools-brokensep lib_package pkgconfig
SRC_URI = "http://download.videolan.org/pub/videolan/libdca/${PV}/libdca-${PV}.tar.bz2"
S = "${WORKDIR}/libdca-${PV}"
SRC_URI[md5sum] = "dab6b2795c66a82a6fcd4f8343343021"
SRC_URI[sha256sum] = "dba022e022109a5bacbe122d50917769ff27b64a7bba104bd38ced8de8510642"
EOF
rm meta-openpli/recipes-multimedia/vlc/libdca_0.0.5-10.bb
Building Image:
#build image and take a long break ~2,5 hours
MACHINE=hd530c make image
Prepare Feed Build:
#fix epgimport rytec url
sed -i 's|http://www.vuplus-community.net/rytec/sources|http://rytecepg.dyndns.tv/~rytecepg/epg_data/sources|g' meta-openpli/recipes-openpli/enigma2-plugins/enigma2-plugin-extensions-epgimport-rytec.bb
cd build
source env.source
#build feed may take ~25 minutes
MACHINE=hd530c bitbake openpli-enigma2-feed
Rebuild Feed with Tvheadend
Mind the ugly copy/pasted/reused EOF surrounded EOF codeblocks/patches maybe its necessary to manually just copy paste into nano directly since "cat" seems to break layout of .patch files...
#rebuild with tvheadend v4.2.7
sed -i 's/transmission \\/transmission \\\n\ttvheadend \\/g' ../meta-openpli/recipes-openpli/images/openpli-enigma2-feed.bb
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
SUMMARY = "Tvheadend TV streaming server"
HOMEPAGE = "https://www.lonelycoder.com/redmine/projects/tvheadend"
DEPENDS = "avahi zlib openssl python-native gettext dvb-apps"
LICENSE = "GPLv3+"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=9cae5acac2e9ee2fc3aec01ac88ce5db"
SRC_URI = "git://github.com/tvheadend/tvheadend.git;branch=release/4.2 \
file://002-Fix-checks-for-sse2-mmx.patch \
file://0001-disable-varargs-warning-on-clang.patch \
file://002-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and-version.patch \
file://002-hdhomerun-remove-sha1sum.patch \
file://002-Makefile-Ignore-warning-about-wrong-includes.patch \
file://002-iconv.patch \
file://002-check.patch \
"
SRCREV = "45cc65a03d1bb808b2d26601e3f7668448f3f930"
PV = "4.2.79+git${SRCREV}"
S = "${WORKDIR}/git"
PACKAGECONFIG ?= ""
PACKAGECONFIG[uriparser] = "--enable-uriparser,--disable-uriparser,uriparser"
do_configure() {
./configure ${PACKAGECONFIG_CONFARGS} \
--prefix=${prefix} \
--libdir=${libdir} \
--bindir=${bindir} \
--datadir=${datadir} \
--arch=${TARGET_ARCH} \
--enable-dvbscan \
--disable-ffmpeg_static \
--enable-bundle \
--enable-hdhomerun_client
}
do_install() {
oe_runmake install DESTDIR=${D}
}
FILES_${PN} += "${datadir}/${BPN}"
RDEPENDS_${PN} += "libdvben50221 libucsi libdvbapi gettext"
EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-Fix-checks-for-sse2-mmx.patch
From f0dab6d6fe4b0aae4394eee93be86e9747c6ed5c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 22 Nov 2016 05:07:38 +0000
Subject: [PATCH] Fix checks for sse2/mmx
Just checking for cmdline options is not enough
its better to check for builtin defines to be
sure, clang does not error out on sse2 options on
arm e.g. and it ends up doing SSE2 stuff for arm
which is not desired
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 47d2cf2..4be000c 100755
--- a/configure
+++ b/configure
@@ -150,8 +150,14 @@ fi
else
check_cc_header execinfo
fi
-check_cc_option mmx
-check_cc_option sse2
+check_cc_snippet mmx '#ifndef __MMX__
+error "MMX not supported"
+#endif
+'
+check_cc_snippet sse2 '#ifndef __SSE2__
+error "SSE2 not supported"
+#endif
+'
check_cc_optionW unused-result
if check_cc '
--
1.9.1
EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and-version.patch
From c3767e189e90965407937b6178adbbd8cdafe31d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 22 Nov 2016 05:59:10 +0000
Subject: [PATCH] hdhomerun: Override forced overrdiing og CC/STRIP and CFLAGS
This is required for cross compiling otherwise it ends up
using build host gcc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Makefile.hdhomerun | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/Makefile.hdhomerun b/Makefile.hdhomerun
index 943ffec..8bd14ff 100644
--- a/Makefile.hdhomerun
+++ b/Makefile.hdhomerun
@@ -19,8 +19,8 @@
DIR := $(dir $(lastword $(MAKEFILE_LIST)))
include $(DIR)/.config.mk
-unexport CFLAGS
-unexport LDFLAGS
+#unexport CFLAGS
+#unexport LDFLAGS
ifeq ($(CONFIG_PIE),yes)
CFLAGS += -fPIE
@@ -32,10 +32,10 @@ # ###########################################################################
# Upstream Packages
# ###########################################################################
-LIBHDHR = libhdhomerun_20171221
+LIBHDHR = libhdhomerun_20180817
LIBHDHR_TB = $(LIBHDHR).tgz
LIBHDHR_URL = http://download.silicondust.com/hdhomerun/$(LIBHDHR_TB)
-LIBHDHR_SHA1 = 6b019728eadea3af7a5686ed5ba44e970bca7365
+LIBHDHR_SHA1 = 052868bde3a5713c55b4d060b77e0bc3a0d891d6
# ###########################################################################
# Library Config
@@ -79,6 +79,8 @@ $(LIB_ROOT)/$(LIBHDHR)/.tvh_download:
$(call DOWNLOAD,$(LIBHDHR_URL),$(LIB_ROOT)/$(LIBHDHR_TB),$(LIBHDHR_SHA1))
$(call UNTAR,$(LIBHDHR_TB),z)
ln -sf libhdhomerun $(LIB_ROOT)/$(LIBHDHR)
+ @sed -i -e "s/CC.*:=/CC ?=/" $(LIB_ROOT)/$(LIBHDHR)/Makefile
+ @sed -i -e "s/STRIP.*:=/STRIP ?=/" $(LIB_ROOT)/$(LIBHDHR)/Makefile
@touch $@
$(LIB_ROOT)/$(LIBHDHR)/.tvh_build: \
--
1.9.1
EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-hdhomerun-remove-sha1sum.patch
From 906d95695af95970bf551ea55b6c3e70332c6b97 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 22 Nov 2016 05:22:32 +0000
Subject: [PATCH] disable varargs warning on clang
The issue is that 'len' is an unsigned char and we violate the promotion rules
for passing the value to va_start.
passing an object that undergoes defau
lt argument promotion to 'va_start' has undefined behavior [-Wvarargs]
| va_start(ap, len);
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Makefile | 1 +
1 file changed, 5 deletion(+)
diff --git a/Makefile.static b/Makefile.static
index 8c5e380..f41ef1a 100644
--- a/Makefile.static
+++ b/Makefile.static
@@ -96,11 +96,6 @@ else \
file=$$(basename $(2)); \
cp "$$TVHEADEND_FILE_CACHE/$${file}" $(2); \
fi
- @{ \
- sum=$$(sha1sum $(2) | cut -d ' ' -f 1); \
- printf "SHA1SUM test '$${sum}' == '$(3)': "; \
- test "y$${sum}" = "y$(3)"; \
- }
@echo "OK"
endef
--
1.9.1
EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-Makefile-Ignore-warning-about-wrong-includes.patch
From 7d672305c7ad2f716dfe1c487b525a1a92954d4a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 22 Nov 2016 06:22:36 +0000
Subject: [PATCH] Makefile: Ignore warning about wrong includes
It happens on musl especially
usr/include/sys/poll.h:1:2: error: redirecting incorrect #include <sys/poll.h> to <poll.h> [-Werror,-W#warnings]
| #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
| ^
| In file included from src/avahi.c:48:
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index f41ef1a..cc7b249 100644
--- a/Makefile
+++ b/Makefile
@@ -75,6 +75,7 @@ CFLAGS += -Wno-microsoft -Qunused-arguments -Wno-unused-function
CFLAGS += -Wno-unused-value -Wno-tautological-constant-out-of-range-compare
CFLAGS += -Wno-parentheses-equality -Wno-incompatible-pointer-types
CFLAGS += -Wno-error=varargs
+CFLAGS += -Wno-error=\#warnings
endif
--
1.8.3.1
EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-iconv.patch
commit 4535a2cf6ccf5209d220971890869390e1567889
Author: Jaroslav Kysela <perex@perex.cz>
Date: Mon Feb 19 13:58:38 2018 +0100
intlconv: add safe check for transil feature (to detect wrong musl builds), fixes #4940, fixes #4827
diff --git a/src/intlconv.c b/src/intlconv.c
index 3fe3eb6..fb0d176 100644
--- a/src/intlconv.c
+++ b/src/intlconv.c
@@ -23,11 +23,26 @@ tvh_iconv(iconv_t cd, char **inbuf, size_t *inbytesleft,
return iconv(cd, inbuf, inbytesleft, outbuf, outbytesleft);
}
+static void
+intlconv_test( void )
+{
+ /* The string is "Yellow Horse" in Czech for the curiosity */
+ const char *charset = intlconv_charset_id("ASCII", 1, 1);
+ char *s = intlconv_utf8safestr(charset, "ŽluťoučkýKůň", 128);
+ if (strcmp(s, "ZlutouckyKun")) {
+ tvherror(LS_MAIN, "iconv() routine is not working properly, aborting!");
+ tvh_safe_usleep(2000000);
+ abort();
+ }
+ free(s);
+}
+
void
intlconv_init( void )
{
pthread_mutex_init(&intlconv_lock, NULL);
pthread_mutex_init(&intlconv_lock_src, NULL);
+ intlconv_test();
}
void
EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-check.patch
commit 4535a2cf6ccf5209d220971890869390e1567889
Author: Jaroslav Kysela <perex@perex.cz>
Date: Mon Feb 19 13:58:38 2018 +0100
intlconv: add safe check for transil feature (to detect wrong musl builds), fixes #4940, fixes #4827
diff --git a/src/intlconv.c b/src/intlconv.c
index 3fe3eb6..fb0d176 100644
--- a/configure
+++ b/configure
@@ -344,8 +344,6 @@
# Binaries
#
check_bin ${PKG_CONFIG} bin_pkg_config || die 'no pkg-config binaries found'
-check_bin ${XGETTEXT} || die 'no gettext binaries found'
-check_bin ${MSGMERGE} || die 'no gettext binaries found'
check_bin ${GZIPCMD} || die 'no gzip binary found'
check_bin ${BZIP2} || echo 'WARN: no bzip2 binary found'
EOF
#build feed again may take ~5 minutes
MACHINE=hd530c bitbake openpli-enigma2-feed
#see tvheadend ipkg file
ls -la tmp/deploy/ipk/mips32el/tvheadend_*
#copy package to openpli machine(enabled ssh)
scp tmp/deploy/ipk/mips32el/tvheadend_*.ipk root@ipaddress:/
#install tvheadend on openpli(login with ssh)
opkg install /tvheadend_*.ipk
#if packages are missing manually opkg install them or copy from build machine
#run tvheadend 1st time
mkdir /etc/tuxbox/config/tvheadend
/usr/bin/tvheadend -C -c /etc/tuxbox/config/tvheadend -u root -g root -f #will run in background and create config files because of -C
#run tvheadend 2nd/xth time
/usr/bin/tvheadend -c /etc/tuxbox/config/tvheadend -u root -g root -f #notice the -C is missing...
Prepare rebuild Tvheadend v4.3x
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
SUMMARY = "Tvheadend TV streaming server"
HOMEPAGE = "https://www.lonelycoder.com/redmine/projects/tvheadend"
DEPENDS = "avahi zlib openssl python-native gettext libdvbcsa dvb-apps"
LICENSE = "GPLv3+"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=9cae5acac2e9ee2fc3aec01ac88ce5db"
SRC_URI = "git://github.com/tvheadend/tvheadend.git;branch=master \
file://002-Fix-checks-for-sse2-mmx.patch \
file://003-disable-varargs-warning-on-clang.patch \
file://003-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and.patch \
file://002-Makefile-Ignore-warning-about-wrong-includes.patch \
file://002-check.patch \
"
SRCREV = "1648c7b7b5cfe4ce457e4fc04b96feb3c9b7d8a2"
PV = "4.3+git${SRCREV}"
S = "${WORKDIR}/git"
PACKAGECONFIG ?= ""
PACKAGECONFIG[uriparser] = "--enable-uriparser,--disable-uriparser,uriparser"
do_configure() {
./configure ${PACKAGECONFIG_CONFARGS} \
--prefix=${prefix} \
--libdir=${libdir} \
--bindir=${bindir} \
--datadir=${datadir} \
--arch=${TARGET_ARCH} \
--disable-libx264 \
--disable-libx265 \
--enable-dvbscan \
--disable-ffmpeg_static \
--enable-bundle \
--enable-hdhomerun_client
}
do_install() {
oe_runmake install DESTDIR=${D}
}
FILES_${PN} += "${datadir}/${BPN}"
RDEPENDS_${PN} += "libdvben50221 libucsi libdvbapi gettext libdvbcsa"
EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/003-disable-varargs-warning-on-clang.patch
From 906d95695af95970bf551ea55b6c3e70332c6b97 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 22 Nov 2016 05:22:32 +0000
Subject: [PATCH] disable varargs warning on clang
The issue is that 'len' is an unsigned char and we violate the promotion rules
for passing the value to va_start.
passing an object that undergoes defau
lt argument promotion to 'va_start' has undefined behavior [-Wvarargs]
| va_start(ap, len);
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index 8c5e380..f41ef1a 100644
--- a/Makefile
+++ b/Makefile
@@ -82,6 +82,7 @@ ifeq ($(COMPILER), clang)
CFLAGS += -Wno-microsoft -Qunused-arguments -Wno-unused-function
CFLAGS += -Wno-unused-value -Wno-tautological-constant-out-of-range-compare
CFLAGS += -Wno-parentheses-equality
+CFLAGS += -Wno-error=varargs
endif
--
1.9.1
EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/003-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and.patch
From c3767e189e90965407937b6178adbbd8cdafe31d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 22 Nov 2016 05:59:10 +0000
Subject: [PATCH] hdhomerun: Override forced overrdiing og CC/STRIP and CFLAGS
This is required for cross compiling otherwise it ends up
using build host gcc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Makefile.hdhomerun | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/Makefile.hdhomerun b/Makefile.hdhomerun
index 943ffec..8bd14ff 100644
--- a/Makefile.hdhomerun
+++ b/Makefile.hdhomerun
@@ -19,8 +19,8 @@
DIR := $(dir $(lastword $(MAKEFILE_LIST)))
include $(DIR)/.config.mk
-unexport CFLAGS
-unexport LDFLAGS
+#unexport CFLAGS
+#unexport LDFLAGS
ifeq ($(CONFIG_PIE),yes)
CFLAGS += -fPIE
@@ -79,6 +79,8 @@ $(LIB_ROOT)/$(LIBHDHR)/.tvh_download:
$(call DOWNLOAD,$(LIBHDHR_URL),$(LIB_ROOT)/$(LIBHDHR_TB),$(LIBHDHR_SHA1))
$(call UNTAR,$(LIBHDHR_TB),z)
ln -sf libhdhomerun $(LIB_ROOT)/$(LIBHDHR)
+ @sed -i -e "s/CC.*:=/CC ?=/" $(LIB_ROOT)/$(LIBHDHR)/Makefile
+ @sed -i -e "s/STRIP.*:=/STRIP ?=/" $(LIB_ROOT)/$(LIBHDHR)/Makefile
@touch $@
$(LIB_ROOT)/$(LIBHDHR)/.tvh_build: \
--
1.9.1
EOF
sed -i 's/libbluray \\/libbluray \\\n\tlibdvbcsa \\/g' ../meta-openpli/recipes-openpli/images/openpli-enigma2-feed.bb
mkdir -p ../meta-openpli/recipes-multimedia/libdvbcsa/files
cat <<'EOF' > ../meta-openpli/recipes-multimedia/libdvbcsa/libdvbcsa.bb
SUMMARY = "Open implementation of the DVB Common Scrambling Algorithm, encrypt and decrypt "
SECTION = "libs/multimedia"
LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRCREV = "bc6c0b164a87ce05e9925785cc6fb3f54c02b026"
PV = "1.1.0"
SRC_URI = "git://code.videolan.org/videolan/libdvbcsa.git;protocol=https \
file://libdvbcsa.pc \
"
S = "${WORKDIR}/git"
inherit autotools lib_package pkgconfig
do_install_append() {
install -d ${D}${includedir}/dvbcsa/
install -d ${D}${libdir}/pkgconfig
install -m 0644 ${S}/src/dvbcsa/dvbcsa.h ${D}${includedir}/dvbcsa/
install -m 0644 ${WORKDIR}/libdvbcsa.pc ${D}${libdir}/pkgconfig/
}
EOF
cat <<'EOF' > ../meta-openpli/recipes-multimedia/libdvbcsa/files/libdvbcsa.pc
prefix=/usr
libdir=${prefix}/lib
includedir=${prefix}/include
Name: libdvbcsa
Description: is a free implementation of the DVB Common Scrambling Algorithm - DVB/CSA - with encryption and decryption capabilities.
Version: 1.1.0
Requires:
Libs: -L${libdir} -ldvbcsa
EOF
#rebuild feed tvheadend v4.3 again may take ~5 minutes
MACHINE=hd530c bitbake openpli-enigma2-feed
Prepare feed updated catalinii minisatip
This will need previous libdvbcsa step see tvheadend 4.3!
cat <<'EOF' > ../meta-openpli/recipes-openpli/satip/minisatip.bb
SUMMARY = "SAT>IP server"
MAINTAINER = "catalinii"
require conf/license/license-gplv2.inc
HOMEPAGE = "https://minisatip.org/"
DEPENDS = "libdvbcsa openssl"
RDEPENDS_${PN} = "libdvbcsa openssl"
SRC_URI = " \
git://github.com/catalinii/minisatip.git;protocol=http \
file://minisatip.init \
"
SRCREV = "${AUTOREV}"
UPSTREAMVERSION = "3.1d"
PV = "${UPSTREAMVERSION}+git${SRCPV}"
S = "${WORKDIR}/git"
BUILD = "${WORKDIR}/git"
inherit autotools-brokensep
INITSCRIPT_NAME = "minisatip"
EXTRA_OECONF = "--enable-enigma --disable-netcv"
do_configure_prepend () {
}
do_install () {
install -d -m 0755 ${D}/${bindir}
install -d -m 0755 ${D}/${datadir}/${PN}
install -d -m 0755 ${D}/etc/init.d
install -m 0755 ${S}/minisatip ${D}/${bindir}/
install -m 0755 ${WORKDIR}/minisatip.init ${D}/etc/init.d/minisatip
cp -r --preserve=timestamps ${S}/html ${D}/${datadir}/${PN}
}
EOF
mkdir ../meta-openpli/recipes-openpli/satip/files
cat <<'EOF' > ../meta-openpli/recipes-openpli/satip/files/minisatip.init
#!/bin/sh
#
# start/stop minisatip server.
if [ -e /etc/default/minisatip ]; then
. /etc/default/minisatip
fi
if ! [ -x /usr/bin/minisatip ]; then
exit 0
fi
case "$1" in
start)
echo -n "Starting minisatip:"
start-stop-daemon -S -x /usr/bin/minisatip -p /var/run/minisatip.pid -- -R /usr/share/minisatip/html $MINISATIP_OPTS > /dev/null
echo "."
;;
stop)
echo -n "Stopping minisatip:"
start-stop-daemon -K -x /usr/bin/minisatip -p /var/run/minisatip.pid > /dev/null
echo "."
;;
restart)
echo -n "Restarting minisatip:"
echo
$0 stop
$0 start
# killall -HUP inetd
#echo "."
;;
*)
echo "Usage: /etc/init.d/minisatip {start|stop|restart}"
exit 1
;;
esac
exit 0
EOF
sed -i 's|81f519fa5346968906c3348d069d0fcddd4b62c2|1ef3c7151b5dd5d275b6b4c66c98564b83a7721c|g' ../meta-openpli/conf/distro/reporefs.conf
#rebuild again with updated minisatip support
MACHINE=hd530c bitbake openpli-enigma2-feed