-include conf/make.conf
# Target platform:
-# vusolo, bm750, vuuno, vuultimo, vusolo2, vuduo2
+# vusolo, bm750, vuuno, vuultimo, vusolo2
#
# This only sets the default value. All platforms now use a shared build
# directory. Run "MACHINE=vuultimo bitbake vuplus-image" to build an image
@echo
@echo " * Select a new target machine:"
@echo " $$ echo MACHINE=vuultimo >> conf/make.conf"
- @echo " [Valid values: vusolo, bm750, vuuno, vuultimo, vusolo2, vuduo2]"
+ @echo " [Valid values: vusolo, bm750, vuuno, vuultimo, vusolo2]"
@echo
@echo " * Build a firmware image for the selected target machine:"
@echo " $$ $(MAKE) image"
@echo
@echo " * Build a firmware image for a different target machine:"
@echo " $$ $(MAKE) image MACHINE=vuultimo"
- @echo " [Valid values: vusolo, bm750, vuuno, vuultimo, vusolo2, vuduo2]"
+ @echo " [Valid values: vusolo, bm750, vuuno, vuultimo, vusolo2]"
@echo
@echo " * Download all source files at once:"
@echo " $$ $(MAKE) download"
DESCRIPTION = "Bootlogo support"
SECTION = "base"
+LICENSE = "CLOSED"
PRIORITY = "required"
-LICENSE = "proprietary"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Proprietary;md5=0557f9d92cf58f2ccdd50f62f8ac0b28"
IMAGES_VERSION = "1"
BINARY_VERSION = "7"
PV = "${BINARY_VERSION}.${IMAGES_VERSION}"
-PR = "r5"
+PR = "r6"
-SRC_URI = "file://bootlogo.mvi file://backdrop.mvi file://bootlogo_wait.mvi file://switchoff.mvi"
+#SRC_URI = "file://bootlogo.mvi file://backdrop.mvi file://bootlogo_wait.mvi file://switchoff.mvi"
+SRC_URI = "file://bootlogo.mvi file://backdrop.mvi file://bootlogo_wait.mvi"
S = "${WORKDIR}/"
-
-MVI = "bootlogo backdrop bootlogo_wait"
+PACKAGES = "${PN}"
+INHIBIT_PACKAGE_STRIP = "1"
do_install() {
- install -d ${D}/boot
+ install -d ${D}/boot ${D}${datadir}/${PN}
install -d ${D}/usr/share
- for i in ${MVI}; do
- install -m 0755 ${S}/$i.mvi ${D}/usr/share/$i.mvi;
- ln -sf /usr/share/$i.mvi ${D}/boot/$i.mvi;
- done;
+ for file in *.mvi; do
+ install -m 0644 $file ${D}${datadir}/${PN}
+ ln -s ${PN}/$file ${D}${datadir}
+ ln -sf ${datadir}/${PN}/$file ${D}/boot/$file;
+ done
}
PACKAGE_ARCH := "${MACHINE_ARCH}"
-FILES_${PN} = "/boot /usr/share"
+FILES_${PN} = "/boot ${datadir} ${sysconfdir}"
+
+inherit update-rc.d
+
+INITSCRIPT_PARAMS = "start 5 S . stop 89 0 ."
+INITSCRIPT_NAME = "${PN}"
+
+SRC_URI += "file://${INITSCRIPT_NAME}.sysvinit"
+
+do_install_append() {
+ if [ -f ${WORKDIR}/${INITSCRIPT_NAME}.sysvinit ]; then
+ install -d ${D}${INIT_D_DIR}
+ install -m 0755 ${WORKDIR}/${INITSCRIPT_NAME}.sysvinit ${D}${INIT_D_DIR}/${INITSCRIPT_NAME}
+ fi
+}
+
--- /dev/null
+#!/bin/sh
+
+SHOWIFRAME=/usr/bin/showiframe
+
+test -x $SHOWIFRAME || exit 0
+
+case "$1" in
+ start)
+ # first boot?
+ [ -f /etc/dropbear/dropbear_rsa_host_key ] && LOGO=bootlogo || LOGO=bootlogo_wait
+ echo -n "Displaying $LOGO"
+ (
+ while [ ! -c /dev/dvb/adapter0/video0 ]; do
+ usleep 100000
+ done
+ $SHOWIFRAME /usr/share/vuplus-bootlogo/$LOGO.mvi
+ ) &
+ echo "."
+ ;;
+ stop)
+ LOGO=/usr/share/vuplus-bootlogo/switchoff.mvi
+ [ -f $LOGO ] && $SHOWIFRAME $LOGO
+ ;;
+ restart)
+ ;;
+ *)
+ echo "Usage: /etc/init.d/vuplus-bootlogo {start|stop|restart}"
+ exit 1
+esac
+
+exit 0
+PR.= "-bsp1"
+
SRC_URI_append = " \
file://analog.ttf \
file://skin_user.xml \
+PR.= "-bsp1"
+
SRC_URI_append = " file://enigma2_vuplus_misc.patch;patch=1;pnum=1"
+PR .= "-bsp1"
+
SRC_URI_append = " \
file://analog.ttf \
file://skin_user.xml \
DISTRO = "vuplus"
DISTRO_NAME = "vuplus"
-DISTRO_VERSION = "1.0.0"
+DISTRO_VERSION = "2.1.0"
DISTRO_PR ?= ""
# meta/conf/distro/include/default-distrovars.inc
--- /dev/null
+warn "Legacy library @{[(caller(0))[6]]} will be removed from the Perl core distribution in the next major release. Please install it from the CPAN distribution Perl4::CoreLibs. It is being used at @{[(caller)[1]]}, line @{[(caller)[2]]}.\n";
+
+# This library is deprecated and unmaintained. It is included for
+# compatibility with Perl 4 scripts which may use it, but it will be
+# removed in a future version of Perl. Please use the File::Find module
+# instead.
+
+# Usage:
+# require "find.pl";
+#
+# &find('/foo','/bar');
+#
+# sub wanted { ... }
+# where wanted does whatever you want. $dir contains the
+# current directory name, and $_ the current filename within
+# that directory. $name contains "$dir/$_". You are cd'ed
+# to $dir when the function is called. The function may
+# set $prune to prune the tree.
+#
+# For example,
+#
+# find / -name .nfs\* -mtime +7 -exec rm -f {} \; -o -fstype nfs -prune
+#
+# corresponds to this
+#
+# sub wanted {
+# /^\.nfs.*$/ &&
+# (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
+# int(-M _) > 7 &&
+# unlink($_)
+# ||
+# ($nlink || (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_))) &&
+# $dev < 0 &&
+# ($prune = 1);
+# }
+#
+# Set the variable $dont_use_nlink if you're using AFS, since AFS cheats.
+
+use File::Find ();
+
+*name = *File::Find::name;
+*prune = *File::Find::prune;
+*dir = *File::Find::dir;
+*topdir = *File::Find::topdir;
+*topdev = *File::Find::topdev;
+*topino = *File::Find::topino;
+*topmode = *File::Find::topmode;
+*topnlink = *File::Find::topnlink;
+
+sub find {
+ &File::Find::find(\&wanted, @_);
+}
+
+1;
require recipes-connectivity/openssl/openssl.inc
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f9a8f968107345e0b75aa8c2ecaa7ec8"
SRC_URI += "file://configure-targets.patch \
file://shared-libs.patch \
- file://parallel-make-fix.patch"
+ file://parallel-make-fix.patch \
+ file://find.pl"
SRC_URI[md5sum] = "ee17e9bc805c8cc7d0afac3b0ef78eda"
SRC_URI[sha256sum] = "7ce0c7f2c451070b4497ea7ca6f23eba6cef1a56db2e86e433f65926a7bc7497"
EXTRA_OECONF += "no-idea no-mdc2 no-rc5"
+do_configure_prepend() {
+ cp ${WORKDIR}/find.pl ${S}/util/find.pl
+}
+
BBCLASSEXTEND = "native nativesdk"
PARALLEL_MAKEINST = ""
-PR .= "-vuplus2"
+PR .= "-vuplus3"
SRC_URI += " \
file://01samba-kill \
install -d ${D}${sysconfdir}/network/if-up.d
install -m 0755 ${WORKDIR}/01samba-start ${D}${sysconfdir}/network/if-up.d
}
+
+EXTRA_OECONF += " \
+ samba_cv_LINUX_LFS_SUPPORT=yes \
+ samba_cv_HAVE_OFF64_T=yes \
+ samba_cv_have_longlong=yes \
+ samba_cv_HAVE_UNSIGNED_CHAR=yes \
+ samba_cv_HAVE_GETTIMEOFDAY_TZ=yes \
+ samba_cv_HAVE_C99_VSNPRINTF=yes \
+ samba_cv_HAVE_BROKEN_READDIR=no \
+ samba_cv_HAVE_IFACE_IFCONF=yes \
+"
From b58a1a06ca695aed6a4f6e5039e2de0e5a3df111 Mon Sep 17 00:00:00 2001
From: Peter Korsgaard <jacmet@sunsite.dk>
Date: Wed, 19 Oct 2011 02:35:54 +0200
-Subject: [PATCH 1/6] ifupdown: support post-up / pre-down hooks
+Subject: [PATCH 01/10] ifupdown: support post-up / pre-down hooks
function old new delta
set_environ 330 371 +41
if (!iface->method->down(iface, doit)) return 0;
if (!execute_all(iface, "post-down")) return 0;
--
-1.7.9.5
+1.7.10.4
From e5221a142e8ee4509734c17584f898a1f4ac86cc Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Wed, 19 Oct 2011 02:37:08 +0200
-Subject: [PATCH 2/6] ifupdown: code shrink
+Subject: [PATCH 02/10] ifupdown: code shrink
function old new delta
keywords_up_down - 43 +43
}
*pp++ = setlocalenv("IF_%s=%s", iface->option[i].name, iface->option[i].value);
--
-1.7.9.5
+1.7.10.4
From a7b406ba64b7a4d9c9610726cb72568fc9848f5d Mon Sep 17 00:00:00 2001
From: Lauri Hintsala <lauri.hintsala@bluegiga.com>
Date: Wed, 14 Dec 2011 16:49:58 +0200
-Subject: [PATCH 3/6] ifupdown: remove interface from state_list if iface_up
+Subject: [PATCH 03/10] ifupdown: remove interface from state_list if iface_up
fails
Fix the issue where interface is set to the configured state even if
if (iface_state == NULL) {
llist_add_to_end(&state_list, newiface);
--
-1.7.9.5
+1.7.10.4
From fecb0cbff5ca703f8fc00a8e0e93f1f2e3ae942b Mon Sep 17 00:00:00 2001
From: Natanael Copa <natanael.copa@gmail.com>
Date: Fri, 17 Feb 2012 19:36:26 +0000
-Subject: [PATCH 4/6] ifupdown: support metric for static default gw
+Subject: [PATCH 04/10] ifupdown: support metric for static default gw
This is useful when you have multiple ISPs with failover. It allows
setting the priority of the static gateway and makes it possible
# endif
}
--
-1.7.9.5
+1.7.10.4
From 7ec30bf273cbdf5f0ae335684939a883182e493e Mon Sep 17 00:00:00 2001
From: Andreas Oberritter <obi@opendreambox.org>
Date: Mon, 23 Apr 2012 22:08:39 +0200
-Subject: [PATCH 5/6] ifupdown: improve compatibility with Debian
+Subject: [PATCH 05/10] ifupdown: improve compatibility with Debian
Set environment variable 'PHASE'.
Treat post-up and pre-down as aliases for up and down.
return 1;
}
--
-1.7.9.5
+1.7.10.4
From c011ab2fb52c2ee03aa9544b0d242683ee4362e1 Mon Sep 17 00:00:00 2001
From: Andreas Oberritter <obi@opendreambox.org>
Date: Fri, 27 Apr 2012 01:40:25 +0200
-Subject: [PATCH 6/6] get_linux_version_code: don't fail on 3.0-foo
+Subject: [PATCH 06/10] get_linux_version_code: don't fail on 3.0-foo
Fixes segmentation fault in mount (nfs):
}
return r;
--
-1.7.9.5
+1.7.10.4
From 4119652f74ce6f8f370df3c80076792d509bc941 Mon Sep 17 00:00:00 2001
From: Andreas Oberritter <obi@opendreambox.org>
Date: Mon, 14 May 2012 16:15:50 +0200
-Subject: [PATCH 7/9] ifplugd: move read_pid to libbb/pidfile.c and rename it
- to read_pidfile
+Subject: [PATCH 07/10] ifplugd: move read_pid to libbb/pidfile.c and rename
+ it to read_pidfile
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
---
if (opts & FLAG_KILL) {
if (pid_from_pidfile > 0)
--
-1.7.9.5
+1.7.10.4
From 517f8da0345752d3cc5e2c99b8acd88c60355373 Mon Sep 17 00:00:00 2001
From: Andreas Oberritter <obi@opendreambox.org>
Date: Mon, 14 May 2012 16:20:36 +0200
-Subject: [PATCH 8/9] ifupdown: dhcp_down: wait until udhcpc has been killed
+Subject: [PATCH 08/10] ifupdown: dhcp_down: wait until udhcpc has been killed
* Otherwise there's a race condition between ifdown and udhcpc,
which executes deconfig scripts in /etc/udhcpc.d.
# else
static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd UNUSED_PARAM,
--
-1.7.9.5
+1.7.10.4
From 7f3d0f0e58602e8d96988736d80ba28d31338ea2 Mon Sep 17 00:00:00 2001
From: Andreas Oberritter <obi@opendreambox.org>
Date: Mon, 14 May 2012 17:32:16 +0200
-Subject: [PATCH 9/9] udhcpc: calculate broadcast address if not given by
+Subject: [PATCH 09/10] udhcpc: calculate broadcast address if not given by
server
* This is more efficient than doing it in the scripts
}
--
-1.7.9.5
+1.7.10.4
--- /dev/null
+From 2b4773b6ae48fee56c60fb4a1835672cbca78aee Mon Sep 17 00:00:00 2001
+From: Andreas Oberritter <obi@opendreambox.org>
+Date: Tue, 15 Jan 2013 17:33:53 +0100
+Subject: [PATCH 10/10] udhcpc: obtain hostname from OS by default
+
+* Doesn't require the 'hostname' option in /etc/network/interfaces,
+ and thus makes udhcpc behave like other clients.
+
+Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
+---
+ networking/udhcp/dhcpc.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
+index 9fbd3b3..ec9f25d 100644
+--- a/networking/udhcp/dhcpc.c
++++ b/networking/udhcp/dhcpc.c
+@@ -1117,6 +1117,13 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
+ );
+ if (opt & (OPT_h|OPT_H))
+ client_config.hostname = alloc_dhcp_option(DHCP_HOST_NAME, str_h, 0);
++ else {
++ char hostname[256]; /* SUSv2: hostnames are <= 255 bytes */
++ if (gethostname(hostname, sizeof(hostname)) == 0) {
++ hostname[sizeof(hostname) - 1] = '\0';
++ client_config.hostname = alloc_dhcp_option(DHCP_HOST_NAME, hostname, 0);
++ }
++ }
+ if (opt & OPT_F) {
+ /* FQDN option format: [0x51][len][flags][0][0]<fqdn> */
+ client_config.fqdn = alloc_dhcp_option(DHCP_FQDN, str_F, 3);
+--
+1.7.10.4
+
-PR .= "-vuplus8"
+PR .= "-vuplus9"
SRC_URI += " \
file://0001-ifupdown-support-post-up-pre-down-hooks.patch \
file://0006-get_linux_version_code-don-t-fail-on-3.0-foo.patch \
file://0007-ifplugd-move-read_pid-to-libbb-pidfile.c-and-rename-.patch \
file://0009-udhcpc-calculate-broadcast-address-if-not-given-by-s.patch \
+ file://0010-udhcpc-obtain-hostname-from-OS-by-default.patch \
file://0001-work-around-linux-ext2_fs.h-breakage.patch \
file://0002-Create-and-use-our-own-copy-of-linux-ext2_fs.h.patch \
file://0003-Drop-include-bb_linux_ext2_fs.h-use-existing-e2fspro.patch \
+++ /dev/null
-#double check driver
-if lsmod | grep -q 'brcmfb'; then
- echo driver is installed
-else
- for mod in procmk dvb-bcm7335 brcmfb; do
- modprobe $mod
- done
-fi
-
-depmod -A
-
-# sleep after 10min
-hdparm -S 120 /dev/sda
-
-# accustic management
-hdparm -M 128 /dev/sda
-
-if [ ! -h /boot/bootlogo.mvi ]; then
- ln -sf /usr/share/bootlogo.mvi /boot/bootlogo.mvi
-fi
-
-if [ ! -h /boot/bootlogo_wait.mvi ]; then
- ln -sf /usr/share/bootlogo_wait.mvi /boot/bootlogo_wait.mvi
-fi
-
-if [ ! -h /boot/backdrop.mvi ]; then
- ln -sf /usr/share/backdrop.mvi /boot/backdrop.mvi
-fi
-
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-
-ipkg-cl configure
-
-if [ -f /usr/local/bin/vucamd ]; then
- /usr/local/bin/vucamd &
-fi
+++ /dev/null
-#Double check driver existence
-if lsmod | grep -q 'brcmfb'; then
- echo driver is installed
-else
- for mod in procmk dvb-bcm7424 brcmfb fpga_directc; do
- modprobe $mod
- done
-fi
-
-depmod -A
-
-# sleep after 10min
-hdparm -S 120 /dev/sda
-
-# accustic management
-hdparm -M128 /dev/sda
-
-if [ ! -h /boot/bootlogo.mvi ]; then
- ln -sf /usr/share/bootlogo.mvi /boot/bootlogo.mvi
-fi
-
-if [ ! -h /boot/bootlogo_wait.mvi ]; then
- ln -sf /usr/share/bootlogo_wait.mvi /boot/bootlogo_wait.mvi
-fi
-
-if [ ! -h /boot/backdrop.mvi ]; then
- ln -sf /usr/share/backdrop.mvi /boot/backdrop.mvi
-fi
-
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-
-ipkg-cl configure
-
-if [ -f /usr/local/bin/vucamd ]; then
- /usr/local/bin/vucamd &
-fi
-
-#! /bin/sh
-#
-# halt Execute the halt command.
-#
-# Version: @(#)halt 2.84-2 07-Jan-2002 miquels@cistron.nl
-#
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: halt
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop: 0
+# Short-Description: Execute the halt command.
+# Description:
+### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
hddown=""
fi
-showiframe /usr/share/switchoff.mvi
-
/usr/bin/turnoff_power
halt -d -f -i -p $hddown
--- /dev/null
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: bootmisc
+# Required-Start: $local_fs mountvirtfs
+# Required-Stop: $local_fs
+# Default-Start: S
+# Default-Stop: 0 6
+# Short-Description: Misc and other.
+### END INIT INFO
+
+. /etc/default/rcS
+#
+# Put a nologin file in /etc to prevent people from logging in before
+# system startup is complete.
+#
+if test "$DELAYLOGIN" = yes
+then
+ echo "System bootup in progress - please wait" > /etc/nologin
+ cp /etc/nologin /etc/nologin.boot
+fi
+
+#
+# Set pseudo-terminal access permissions.
+#
+if test -c /dev/ttyp0
+then
+ chmod 666 /dev/tty[p-za-e][0-9a-f]
+ chown root:tty /dev/tty[p-za-e][0-9a-f]
+fi
+
+#
+# Apply /proc settings if defined
+#
+SYSCTL_CONF="/etc/sysctl.conf"
+if [ -f "${SYSCTL_CONF}" ]
+then
+ if [ -x "/sbin/sysctl" ]
+ then
+ /sbin/sysctl -p "${SYSCTL_CONF}"
+ else
+ echo "To have ${SYSCTL_CONF} applied during boot, install package <procps>."
+ fi
+fi
+
+#
+# Update /etc/motd.
+#
+if test "$EDITMOTD" != no
+then
+ uname -a > /etc/motd.tmp
+ sed 1d /etc/motd >> /etc/motd.tmp
+ mv /etc/motd.tmp /etc/motd
+fi
+
+#
+# This is as good a place as any for a sanity check
+# /tmp should be a symlink to /var/tmp to cut down on the number
+# of mounted ramdisks.
+if test ! -L /tmp && test -d /var/tmp
+then
+ rm -rf /tmp
+ ln -sf /var/tmp /tmp
+fi
+
+# Set the system clock from hardware clock
+# If the timestamp is more recent than the current time,
+# use the timestamp instead.
+test -x /etc/init.d/hwclock.sh && /etc/init.d/hwclock.sh start
+if test -e /etc/timestamp
+then
+ SYSTEMDATE=`date -u +%4Y%2m%2d%2H%2M`
+ read TIMESTAMP < /etc/timestamp
+ if [ ${TIMESTAMP} -gt $SYSTEMDATE ]; then
+ date -u ${TIMESTAMP#????}${TIMESTAMP%????????}
+ test -x /etc/init.d/hwclock.sh && /etc/init.d/hwclock.sh stop
+ fi
+fi
+
+#solo has only usb port. Needs a delay for usb pvr
+count=1
+while [ $count -le 5 ]
+do
+ let count=$count+1
+ if [ -e /dev/sda1 ]; then
+ echo count, $count
+ echo "External USB HDD will be mounted on /media/hdd"
+ break;
+ fi;
+ sleep 1
+done
+
+: exit 0
+++ /dev/null
-#double check driver
-if lsmod | grep -q 'brcmfb'; then
- echo driver is installed
-else
- for mod in procmk dvb-bcm7325 brcmfb; do
- modprobe $mod
- done
-fi
-
-depmod -A
-
-#Solo has only usb port. Needs a delay for usb pvr
-count=1
-while [ $count -le 5 ]
-do
- let count=$count+1
- if [ -e /dev/sda1 ]; then
- echo count, $count
- echo "External USB HDD will be mounted on /media/hdd"
- break;
- fi;
- sleep 1
-done
-
-# sleep after 10min
-hdparm -S 120 /dev/sda
-
-# accustic management
-hdparm -M 128 /dev/sda
-
-if [ ! -h /boot/bootlogo.mvi ]; then
- ln -sf /usr/share/bootlogo.mvi /boot/bootlogo.mvi
-fi
-
-if [ ! -h /boot/bootlogo_wait.mvi ]; then
- ln -sf /usr/share/bootlogo_wait.mvi /boot/bootlogo_wait.mvi
-fi
-
-if [ ! -h /boot/backdrop.mvi ]; then
- ln -sf /usr/share/backdrop.mvi /boot/backdrop.mvi
-fi
-
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-
-ipkg-cl configure
-
-if [ -f /usr/local/bin/vucamd ]; then
- /usr/local/bin/vucamd &
-fi
-
-
+++ /dev/null
-#Double check driver existence
-if lsmod | grep -q 'brcmfb'; then
- echo driver is installed
-else
- for mod in procmk dvb-bcm7356 brcmfb fpga_directc; do
- modprobe $mod
- done
-fi
-
-depmod -A
-
-# sleep after 10min
-hdparm -S 120 /dev/sda
-
-# accustic management
-hdparm -M128 /dev/sda
-
-if [ ! -h /boot/bootlogo.mvi ]; then
- ln -sf /usr/share/bootlogo.mvi /boot/bootlogo.mvi
-fi
-
-if [ ! -h /boot/bootlogo_wait.mvi ]; then
- ln -sf /usr/share/bootlogo_wait.mvi /boot/bootlogo_wait.mvi
-fi
-
-if [ ! -h /boot/backdrop.mvi ]; then
- ln -sf /usr/share/backdrop.mvi /boot/backdrop.mvi
-fi
-
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-
-ipkg-cl configure
-
-if [ -f /usr/local/bin/vucamd ]; then
- /usr/local/bin/vucamd &
-fi
-
+++ /dev/null
-#Double check driver existence
-if lsmod | grep -q 'brcmfb'; then
- echo driver is installed
-else
- for mod in procmk dvb-bcm7413 brcmfb fpga_directc; do
- modprobe $mod
- done
-fi
-
-depmod -A
-
-# sleep after 10min
-hdparm -S 120 /dev/sda
-
-# accustic management
-hdparm -M128 /dev/sda
-
-if [ ! -h /boot/bootlogo.mvi ]; then
- ln -sf /usr/share/bootlogo.mvi /boot/bootlogo.mvi
-fi
-
-if [ ! -h /boot/bootlogo_wait.mvi ]; then
- ln -sf /usr/share/bootlogo_wait.mvi /boot/bootlogo_wait.mvi
-fi
-
-if [ ! -h /boot/backdrop.mvi ]; then
- ln -sf /usr/share/backdrop.mvi /boot/backdrop.mvi
-fi
-
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-
-ipkg-cl configure
-
-if [ -f /usr/local/bin/vucamd ]; then
- /usr/local/bin/vucamd &
-fi
-
+++ /dev/null
-#double check driver
-if lsmod | grep -q 'brcmfb'; then
- echo driver is installed
-else
- for mod in procmk dvb-bcm7413 brcmfb fpga_directc; do
- modprobe $mod
- done
-fi
-
-depmod -A
-
-# sleep after 10min
-hdparm -S 120 /dev/sda
-
-# accustic management
-hdparm -M128 /dev/sda
-
-if [ ! -h /boot/bootlogo.mvi ]; then
- ln -sf /usr/share/bootlogo.mvi /boot/bootlogo.mvi
-fi
-
-if [ ! -h /boot/bootlogo_wait.mvi ]; then
- ln -sf /usr/share/bootlogo_wait.mvi /boot/bootlogo_wait.mvi
-fi
-
-if [ ! -h /boot/backdrop.mvi ]; then
- ln -sf /usr/share/backdrop.mvi /boot/backdrop.mvi
-fi
-
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-
-ipkg-cl configure
-
-if [ -f /usr/local/bin/vucamd ]; then
- /usr/local/bin/vucamd &
-fi
-
-PR .= "-vuplus5"
-
-BOOTUP = "bootup_3.1"
+PR .= "-vuplus6"
FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:"
file://turnoff_power \
file://hotplug_br \
file://make_mac_sector \
- file://${BOOTUP} \
file://mountrun.sh \
"
install -m 0755 ${WORKDIR}/turnoff_power ${D}/usr/bin
install -m 0755 ${WORKDIR}/hotplug_br ${D}/usr/bin
install -m 0755 ${WORKDIR}/make_mac_sector ${D}/usr/bin
- install -m 0755 ${WORKDIR}/${BOOTUP} ${D}${sysconfdir}/init.d/bootup
- ln -sf ../init.d/bootup ${D}${sysconfdir}/rcS.d/S05bootup
install -m 0755 ${WORKDIR}/mountrun.sh ${D}${sysconfdir}/init.d
ln -s ../init.d/mountrun.sh ${D}${sysconfdir}/rcS.d/S02mountrun.sh
--- /dev/null
+PR .= "-vuplus0"
+
+do_install_append () {
+ for i in ext2 ext3 ext4 ext4dev; do
+ rm ${D}${base_sbindir}/fsck.${i} || /bin/true;
+ rm ${D}${base_sbindir}/mkfs.${i} || /bin/true;
+ ln -sf e2fsck ${D}${base_sbindir}/fsck.${i}
+ ln -sf mke2fs ${D}${base_sbindir}/mkfs.${i}
+ done;
+}
-PR .= "-vuplus1"
+PR .= "-vuplus2"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:"
SRC_URI += "file://mkfs.ubifs-allow-output-file-creation-on-different-device.patch"
-FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:"
+PACKAGES_DYNAMIC = "mtd-utils-*"
+
+ALLOW_EMPTY_${PN} = "1"
+
+python populate_packages_prepend () {
+ debug_objs = d.expand('${sbindir}/.debug')
+ do_split_packages(d, debug_objs, '^(.*)$', 'mtd-utils-%s-dbg', 'mtd-util-dbg %s', recursive=False, match_path=True, prepend=True)
+ objs = d.expand('${sbindir}')
+ do_split_packages(d, objs, '^(.*)$', 'mtd-utils-%s', 'mtd-util %s', recursive=False, match_path=True, prepend=True)
+}
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-PR .= "-vuplus0"
+PR .= "-vuplus1"
--- /dev/null
+lists_dir ext /var/tmp
+
--- /dev/null
+diff -Naur trunk.org/libbb/unarchive.c trunk/libbb/unarchive.c
+--- trunk.org/libbb/unarchive.c 2012-08-30 13:45:44.000000000 +0200
++++ trunk/libbb/unarchive.c 2012-09-13 11:50:57.822754393 +0200
+@@ -446,12 +446,12 @@
+ struct passwd *passwd;
+ if (!uname)
+ return FALSE;
+- if (!uname_cache[0] && strcmp(uname_cache, uname) == 0)
++ if (!strcmp(uname_cache, uname))
+ return TRUE;
+ passwd = getpwnam(uname);
+ if (passwd) {
+ uid_cache = passwd->pw_uid;
+- strncpy(uname, uname_cache, 32);
++ strncpy(uname_cache, uname, 32);
+ return TRUE;
+ }
+ return FALSE;
+@@ -464,12 +464,12 @@
+ struct group *group;
+ if (!gname)
+ return FALSE;
+- if (!gname_cache[0] && strcmp(gname_cache, gname) == 0)
++ if (!strcmp(gname_cache, gname))
+ return TRUE;
+ group = getgrnam(gname);
+ if (group) {
+ gid_cache = group->gr_gid;
+- strncpy(gname, gname_cache, 32);
++ strncpy(gname_cache, gname, 32);
+ return TRUE;
+ }
+ return FALSE;
-PR .= "-vuplus0"
+PR .= "-vuplus1"
SRC_URI += "file://0001-Fixed-opkg-losing-auto_installed-flag-on-upgrading.patch \
file://0002-Don-t-mark-Conflicts-as-Depends.patch \
file://0007-pkg_hash_fetch_conflicts-move-iteration-over-conflic.patch \
file://0008-pkg_hash_fetch_conflicts-take-into-account-conflicts.patch \
file://0009-Revert-Add-Recommended-packages-to-the-depended_upon.patch \
- file://0010-opkg_remove-auto-delete-.pyo-files.patch"
+ file://0010-opkg_remove-auto-delete-.pyo-files.patch \
+ file://unarchive-fixed-uname-gname-cache.patch"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
--- /dev/null
+--- sispmctl-3.1/configure.in.orig 2012-07-31 15:14:56.940130593 +0200
++++ sispmctl-3.1/configure.in 2012-07-31 15:16:43.020133308 +0200
+@@ -26,28 +26,9 @@
+
+ # Checks for libraries.
+ dnl check for libusb-config
+-AC_PATH_PROG(HAVELIBUSB, libusb-config, $PATH)
+-
+-if test -e "$HAVELIBUSB"; then
+- dnl LIBUSB_CFLAGS=`$HAVELIBUSB --cflags`
+- LIBUSB_LIBS=`$HAVELIBUSB --libs`
+- CFLAGS="$CFLAGS $LIBUSB_CFLAGS"
+- LIBS="$LIBS $LIBUSB_LIBS"
+-else
+- AC_MSG_ERROR([*** libusb-config not found. You need a working libusb installation. Version >=0.1.7])
+-fi
+-
+-dnl check for version of libusb
+-AC_MSG_CHECKING([if libusb version is >= 0.1.9])
+-libusb_version_needed="1009"
+-libusb_version=`$HAVELIBUSB --version | sed -e "s/libusb //" | awk 'BEGIN { FS = "."; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'`
+-
+-if test $libusb_version -lt $libusb_version_needed; then
+- AC_MSG_RESULT(no)
+- AC_MSG_ERROR([*** libusb is too old ($libusb_version). You need a libusb installation newer or equal to 0.1.9.])
+-else
+- AC_MSG_RESULT(yes)
+-fi
++PKG_CHECK_MODULES(LIBUSB, libusb)
++CFLAGS="$CFLAGS $LIBUSB_CFLAGS"
++LIBS="$LIBS $LIBUSB_LIBS"
+
+ # Checks for header files.
+ AC_HEADER_STDC
--- /dev/null
+DESCRIPTION = "Control Gembird SIS-PM programmable power outlet strips"
+AUTHOR = "Mondrian Nuessle <nuessle@uni-mannheim.de>"
+HOMEPAGE = "http://sispmctl.sourceforge.net/"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = "libusb-compat"
+
+SRC_URI = "http://downloads.sourceforge.net/${PN}/${P}.tar.gz \
+ file://libusb-use-pkgconfig.patch"
+SRC_URI[md5sum] = "24693cae30d77c957f34cfb2c8159661"
+SRC_URI[sha256sum] = "e9a99cc81ef0a93f3484e5093efd14d93cc967221fcd22c151f0bea32eb91da7"
+
+inherit autotools
+
+EXTRA_OECONF = "--enable-webless"
--- /dev/null
+--- ./plugins/elements/gstmultiqueue.c-original 2013-01-08 14:40:09.002563354 +0100
++++ ./plugins/elements/gstmultiqueue.c 2013-01-08 14:39:45.578850244 +0100
+@@ -161,6 +161,7 @@
+ GstDataQueueSize max_size, extra_size;
+ GstClockTime cur_time;
+ gboolean is_eos;
++ gboolean is_sparse;
+ gboolean flushing;
+
+ /* Protected by global lock */
+@@ -801,6 +802,12 @@
+ return result;
+ }
+
++static gboolean
++is_sparse (GstSingleQueue * sq)
++{
++ return sq->is_sparse;
++}
++
+ static void
+ update_buffering (GstMultiQueue * mq, GstSingleQueue * sq)
+ {
+@@ -822,6 +829,8 @@
+ /* get bytes and time percentages and take the max */
+ if (sq->is_eos) {
+ percent = 100;
++ } else if (is_sparse (sq)) {
++ percent = 100;
+ } else {
+ percent = 0;
+ if (sq->max_size.time > 0) {
+@@ -1606,15 +1615,26 @@
+ GstSingleQueue *sq = gst_pad_get_element_private (pad);
+ GstPad *otherpad;
+ GstCaps *result;
+-
++ GstStructure* str;
++ const gchar *g_type;
++
+ otherpad = (pad == sq->srcpad) ? sq->sinkpad : sq->srcpad;
+
+- GST_LOG_OBJECT (otherpad, "Getting caps from the peer of this pad");
+-
+ result = gst_pad_peer_get_caps (otherpad);
+ if (result == NULL)
+ result = gst_caps_new_any ();
+
++ str = gst_caps_get_structure(result, 0);
++ g_type = str ? gst_structure_get_name(str) : (const gchar*)"unknown";
++
++ GST_LOG_OBJECT (otherpad, "Got caps from the peer of this pad: %s", g_type);
++
++ if ( !g_strcmp0(g_type, "video/x-dvd-subpicture") || !g_strcmp0(g_type, "text/x-pango-markup") || !g_strcmp0(g_type, "text/plain") || !g_strcmp0(g_type, "subpicture/x-pgs") )
++ {
++ GST_INFO_OBJECT (otherpad, "subtitle stream discovered --> set is_sparse to true");
++ sq->is_sparse = TRUE;
++ }
++
+ return result;
+ }
+
+@@ -1841,7 +1861,7 @@
+
+ GST_LOG_OBJECT (mq, "Checking Queue %d", oq->id);
+
+- if (gst_data_queue_is_empty (oq->queue)) {
++ if (gst_data_queue_is_empty (oq->queue) && !is_sparse (oq)) {
+ GST_LOG_OBJECT (mq, "Queue %d is empty", oq->id);
+ if (IS_FILLED (sq, visible, size.visible)) {
+ sq->max_size.visible = size.visible + 1;
+@@ -1868,7 +1888,7 @@
+ * we are checking here.
+ */
+ if (sq->is_eos || IS_FILLED (sq, bytes, ssize.bytes) ||
+- IS_FILLED (sq, time, sq->cur_time)) {
++ IS_FILLED (sq, time, sq->cur_time) || is_sparse (oq)) {
+ GST_LOG_OBJECT (mq, "Queue %d is filled", oq->id);
+ filled = TRUE;
+ }
+@@ -1911,7 +1931,7 @@
+ gst_data_queue_limits_changed (oq->queue);
+ }
+ }
+- if (!gst_data_queue_is_empty (oq->queue))
++ if (!gst_data_queue_is_empty (oq->queue) || is_sparse (oq))
+ empty = FALSE;
+ }
+ GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
+@@ -2011,6 +2031,7 @@
+ (GstDataQueueFullCallback) single_queue_overrun_cb,
+ (GstDataQueueEmptyCallback) single_queue_underrun_cb, sq);
+ sq->is_eos = FALSE;
++ sq->is_sparse = FALSE;
+ sq->flushing = FALSE;
+ gst_segment_init (&sq->sink_segment, GST_FORMAT_TIME);
+ gst_segment_init (&sq->src_segment, GST_FORMAT_TIME);
file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4"
DEPENDS = "glib-2.0 libxml2 bison-native flex-native"
-PR = "r0"
+PR = "r1"
GIT_PV = ""
SRCREV = "935db833e236959c973e6c8ef59586d30f81a26c"
SRC_URI += " \
file://check_fix.patch \
file://gst-inspect-check-error.patch \
+ file://multiqueue-sparsestreams.patch \
"
do_common_update() {
LICENSE = "LGPLv2.1+"
-PR .= "-vuplus0"
+PR .= "-vuplus1"
EXTRA_OECONF += "--disable-gpl --disable-nonfree --disable-version3 --disable-x11grab"
--- /dev/null
+PR .= "-vuplus0"
+
+PACKAGES =+ "${PN}enc"
+FILES_${PN}enc = "${libdir}/libvorbisenc.so.*"
RDEPENDS_enigma2-plugin-systemplugins-devicemanager = "util-linux-blkid ntfs-3g dosfstools"
PN = "enigma2"
-PR = "r7"
+PR = "r8"
SRCDATE = "20121128"
#SRCDATE is NOT used by git to checkout a specific revision
file://enigma2_vuplus_addlibpythondeps.patch;patch=1;pnum=1 \
file://enigma2_vuplus_pluginbrowser.patch;striplevel=1 \
file://enigma2_vuplus_transcodingsetup_inetd.patch;striplevel=1 \
+ file://enigma2_vuplus_proc_oom_score_adj.patch;striplevel=1 \
file://MyriadPro-Regular.otf \
file://MyriadPro-Semibold.otf \
file://MyriadPro-SemiboldIt.otf \
--- /dev/null
+diff --git a/tools/enigma2.sh.in b/tools/enigma2.sh.in
+index 2f9292a..170835e 100755
+--- a/tools/enigma2.sh.in
++++ b/tools/enigma2.sh.in
+@@ -24,6 +24,9 @@ if [ -e @libdir@/libpassthrough.so ]; then
+ LIBS="$LIBS @libdir@/libpassthrough.so"
+ fi
+
++(sleep 2; echo "enigma2 is the main pvr application... adjust oom score!"; PID=$(pidof enigma2); \
++ [ -e /proc/$PID/oom_score_adj ] && echo "-999" > /proc/$PID/oom_score_adj || echo "-17" > /proc/$PID/oom_adj;) &
++
+ LD_PRELOAD=$LIBS @bindir@/enigma2
+
+ # enigma2 exit codes:
+IMAGE_PKGTYPE = "ipk"
+
require vuplus-image.inc
do_rootfs_append() {
TASK_ESSENCIAL ?= "task-vuplus-essential"
TASK_VUPLUS_DVBAPI ?= "task-vuplus-dvbapi"
-# packages to drag into the image
-#IMAGE_INSTALL = " \
-# ${TASK_CORE_BOOT} ${ROOTFS_PKGMANAGE} \
-# ${TASK_VUPLUS_BASE} \
-# ${TASK_VUPLUS_DVBAPI} \
-# ${TASK_VUPLUS_ENIGMA} \
-#"
-
IMAGE_INSTALL = " \
${TASK_CORE_BOOT} ${ROOTFS_PKGMANAGE} \
${TASK_VUPLUS_BASE} \
${TASK_ESSENCIAL} \
"
-IMAGE_PKGTYPE = "ipk"
-
# enable online package management
IMAGE_FEATURES += "package-management"
inherit image
vuplus_rootfs_postprocess() {
- curdir=$PWD
- cd ${IMAGE_ROOTFS}
-
# generate /etc/image-version
- IMAGE_VERSION="000"
IMAGE_DATE=`date +%Y%m%d%H%M`
+ # 0: Release, 1: Experimental
IMAGE_TYPE="1"
+ # e.g. 400 for release 4.0.0, if IMAGE_TYPE=0
+ IMAGE_VERSION="000"
echo "version=${IMAGE_TYPE}${IMAGE_VERSION}${IMAGE_DATE}" > ${IMAGE_ROOTFS}/etc/image-version
- echo "comment=${DISTRO_NAME}" >> ${IMAGE_ROOTFS}/etc/image-version
- echo "target=9" >> ${IMAGE_ROOTFS}/etc/image-version
- echo "creator=OpenEmbedded <oe@vuplus.com>" >> ${IMAGE_ROOTFS}/etc/image-version
- echo "url=http://www.vuplus.com/" >> ${IMAGE_ROOTFS}/etc/image-version
- echo "catalog=http://www.vuplus.com/" >> ${IMAGE_ROOTFS}/etc/image-version
-
- # because we're so used to it
- ln -s opkg usr/bin/ipkg || true
- ln -s opkg-cl usr/bin/ipkg-cl || true
-
- cd $curdir
}
ROOTFS_POSTPROCESS_COMMAND += "vuplus_rootfs_postprocess; "
-
-export NFO = '${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfo'
-
-generate_nfo() {
- VER=`grep Version: "${IMAGE_ROOTFS}/usr/lib/ipkg/info/enigma2.control" | cut -b 10-26`
- echo "DvbApp2: ${VER}" > ${NFO}
- echo "Machine: Vuplus ${MACHINE}" >> ${NFO}
- DATE=`date +%Y-%m-%d' '%H':'%M`
- echo "Date: ${DATE}" >> ${NFO}
- echo "Issuer: Vuplus" >> ${NFO}
- echo "Link: ${DISTRO_FEED_URI}" >> ${NFO}
- if [ "${DESC}" != "" ]; then
- echo "Description: ${DESC}" >> ${NFO}
- echo "${DESC}" >> ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.desc
- fi
- MD5SUM=`md5sum ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfi | cut -b 1-32`
- echo "MD5: ${MD5SUM}" >> ${NFO}
-}
-
-do_rootfs_append() {
- generate_nfo
-}
SECTION = "vuplus/base"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
-INC_PR = "r4"
+INC_PR = "r5"
inherit task
tuxbox-common \
util-linux-sfdisk \
vsftpd \
- mtd-utils \
+ mtd-utils-mkfs.ubifs \
+ mtd-utils-mkfs.jffs2 \
+ mtd-utils-nandwrite \
+ mtd-utils-nanddump \
+ mtd-utils-flash-eraseall \
hdparm \
usbtunerhelper \
${VUPLUS_FIRMWARE_DVB} \
firmware-drxd-a2 \
"
-# chang : use inetd in busybox instead of netkit-base.
-# chang : mkfs-ubifs and mkfs-jffs2 are included in mtd-utils.
-
VUPLUS_BASE_RECOMMENDS = "\
dropbear \
vuplus-vucamd \
-Subproject commit 54e1fb3b69f97be54a08ba5ccf0bb58a1b538000
+Subproject commit 6935beba7b917097cd139fa48adc6c4449246d11