From d8ed069e3e642e9da8dd62bbabd2e7226c151404 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 21 Dec 2013 13:16:27 +0200 Subject: [PATCH 1/4] xbmc: add common addon code to profile.d --- .../mediacenter/xbmc/profile.d/03-addons.conf | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 packages/mediacenter/xbmc/profile.d/03-addons.conf diff --git a/packages/mediacenter/xbmc/profile.d/03-addons.conf b/packages/mediacenter/xbmc/profile.d/03-addons.conf new file mode 100644 index 0000000000..b534dfe07a --- /dev/null +++ b/packages/mediacenter/xbmc/profile.d/03-addons.conf @@ -0,0 +1,42 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +oe_setup_addon() { + if [ ! -z $1 ] ; then + DEF="/storage/.xbmc/addons/$1/settings-default.xml" + CUR="/storage/.xbmc/userdata/addon_data/$1/settings.xml" + + # copy defaults + if [ -f "$DEF" -a ! -f "$CUR" ] ; then + cp "$DEF" "$CUR" + fi + + # parse config + [ -f "$DEF" ] && eval $(cat "$DEF" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d') + [ -f "$CUR" ] && eval $(cat "$CUR" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d') + + # export some useful variables + ADDON_DIR="$HOME/.xbmc/addons/$1" + ADDON_HOME="$HOME/.xbmc/userdata/addon_data/$1" + ADDON_LOG_FILE="$ADDON_HOME/service.log" + + [ ! -d $ADDON_HOME ] && mkdir -p $ADDON_HOME + fi +} From 0b006d222729212874e33fcede6065c301f4a7dd Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 21 Dec 2013 13:38:26 +0200 Subject: [PATCH 2/4] vdr-addon: make it simple --- .../addons/service/multimedia/vdr-addon/addon | 3 --- .../multimedia/vdr-addon/source/bin/vdr.start | 21 +++---------------- .../settings-default.xml} | 0 .../vdr-addon/source/sleep.d/vdr.power | 6 +++--- 4 files changed, 6 insertions(+), 24 deletions(-) rename packages/addons/service/multimedia/vdr-addon/{config/settings.xml => source/settings-default.xml} (100%) diff --git a/packages/addons/service/multimedia/vdr-addon/addon b/packages/addons/service/multimedia/vdr-addon/addon index e518598b0d..4449a49541 100755 --- a/packages/addons/service/multimedia/vdr-addon/addon +++ b/packages/addons/service/multimedia/vdr-addon/addon @@ -22,9 +22,6 @@ . config/options $1 -mkdir -p $ADDON_BUILD/$PKG_ADDON_ID - cp -PR $PKG_DIR/config/settings.xml $ADDON_BUILD/$PKG_ADDON_ID/settings-default.xml - mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config cp $BUILD/vdr-[0-9]*/channels.conf $ADDON_BUILD/$PKG_ADDON_ID/config cp $BUILD/vdr-[0-9]*/diseqc.conf $ADDON_BUILD/$PKG_ADDON_ID/config diff --git a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start index 6dcf33158a..2ff2c47387 100755 --- a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start +++ b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start @@ -22,6 +22,8 @@ . /etc/profile +oe_setup_addon service.multimedia.vdr-addon + check_tmpfs_mount() { grep " /var/run/vdr " /proc/mounts >/dev/null if [ $? -ne 0 ] ; then @@ -47,30 +49,16 @@ OSDSkin = sttng MYDATA } -ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.vdr-addon" -ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.vdr-addon" -LOG_FILE="$ADDON_HOME/service.log" -ADDON_SETTINGS="$ADDON_HOME/settings.xml" - ADDON_CONFIG_DIR="$ADDON_HOME/config" ADDON_PLUGIN_DIR="$ADDON_DIR/plugin" chmod a+x $ADDON_DIR/bin/* -if [ ! -f "$ADDON_SETTINGS" ]; then - mkdir -p $ADDON_HOME - cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS -fi - ADDON_CACHE_DIR="$ADDON_HOME/cache" if [ ! -f "$ADDON_CACHE_DIR" ]; then mkdir -p $ADDON_CACHE_DIR fi -mkdir -p /var/config -cat "$ADDON_DIR/settings-default.xml" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/vdr.conf.default -cat "$ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/vdr.conf - #handle epgsources mkdir -p /var/lib/epgsources mkdir -p $ADDON_HOME/config/epgsources @@ -83,9 +71,6 @@ for source in `find $ADDON_HOME/config/epgsources -type f`; do cp $source /var/lib/epgsources done -. /var/config/vdr.conf.default -. /var/config/vdr.conf - VDR_ARG="-g /tmp --no-kbd" if [ "$DEBUG" = "yes" ]; then VDR_ARG="$VDR_ARG --log=3" @@ -175,4 +160,4 @@ fi check_tmpfs_mount fix_config -eval LANG=en_US.UTF-8 exec vdr.bin $VDR_ARG &>$LOG_FILE +eval LANG=en_US.UTF-8 exec vdr.bin $VDR_ARG diff --git a/packages/addons/service/multimedia/vdr-addon/config/settings.xml b/packages/addons/service/multimedia/vdr-addon/source/settings-default.xml similarity index 100% rename from packages/addons/service/multimedia/vdr-addon/config/settings.xml rename to packages/addons/service/multimedia/vdr-addon/source/settings-default.xml diff --git a/packages/addons/service/multimedia/vdr-addon/source/sleep.d/vdr.power b/packages/addons/service/multimedia/vdr-addon/source/sleep.d/vdr.power index 53cf101502..eeed11cfb2 100644 --- a/packages/addons/service/multimedia/vdr-addon/source/sleep.d/vdr.power +++ b/packages/addons/service/multimedia/vdr-addon/source/sleep.d/vdr.power @@ -22,10 +22,9 @@ . /etc/profile +oe_setup_addon service.multimedia.vdr-addon + SERVICE="service.multimedia.vdr-addon.service" -ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.vdr-addon" -ADDON_SETTINGS="$ADDON_HOME/settings.xml" -REMOVE_MODULES=`grep REMOVE_MODULES $ADDON_SETTINGS | sed 's|.*value="\([^"]*\)".*|\1|g'` case "$1" in pre) @@ -45,3 +44,4 @@ case "$1" in fi ;; esac + From 437b60d5100db19824bf8ad73575d0d0af4dff59 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 21 Dec 2013 13:43:25 +0200 Subject: [PATCH 3/4] boblightd: make it simple --- .../multimedia/boblightd/source/bin/boblightd.start | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/addons/service/multimedia/boblightd/source/bin/boblightd.start b/packages/addons/service/multimedia/boblightd/source/bin/boblightd.start index 54ac7b21ee..9c8de1ee1c 100755 --- a/packages/addons/service/multimedia/boblightd/source/bin/boblightd.start +++ b/packages/addons/service/multimedia/boblightd/source/bin/boblightd.start @@ -24,10 +24,7 @@ . /etc/profile -ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.boblightd" -ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.boblightd" - -mkdir -p $ADDON_HOME +oe_setup_addon service.multimedia.boblightd chmod a+x $ADDON_DIR/bin/* @@ -40,4 +37,4 @@ if [ -x $ADDON_DIR/bin/boblight-X11 -a -e $ADDON_HOME/boblight.X11 ] ; then boblight-X11 -f >/dev/null 2>&1 fi -exec boblightd -c $ADDON_HOME/boblight.conf > $ADDON_HOME/service.log 2>&1 +exec boblightd -c $ADDON_HOME/boblight.conf > $ADDON_LOG_FILE 2>&1 From 491ed9c10e71031602307f1d393cfae103b6049a Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 21 Dec 2013 13:53:03 +0200 Subject: [PATCH 4/4] tvheadend: make it simple --- .../addons/service/multimedia/tvheadend/addon | 5 ---- .../tvheadend/source/bin/tvheadend.start | 26 +++---------------- .../tvheadend/{config => source}/dvr-config | 0 .../settings-default.xml} | 0 .../tvheadend/source/sleep.d/tvheadend.power | 5 ++-- .../{config => source}/timeshift-config | 0 .../tvheadend/{config => source}/xmltv-config | 0 7 files changed, 6 insertions(+), 30 deletions(-) rename packages/addons/service/multimedia/tvheadend/{config => source}/dvr-config (100%) rename packages/addons/service/multimedia/tvheadend/{config/settings.xml => source/settings-default.xml} (100%) rename packages/addons/service/multimedia/tvheadend/{config => source}/timeshift-config (100%) rename packages/addons/service/multimedia/tvheadend/{config => source}/xmltv-config (100%) diff --git a/packages/addons/service/multimedia/tvheadend/addon b/packages/addons/service/multimedia/tvheadend/addon index 018d2662aa..2536576777 100755 --- a/packages/addons/service/multimedia/tvheadend/addon +++ b/packages/addons/service/multimedia/tvheadend/addon @@ -22,11 +22,6 @@ . config/options $1 -mkdir -p $ADDON_BUILD/$PKG_ADDON_ID - cp -PR $PKG_DIR/config/settings.xml $ADDON_BUILD/$PKG_ADDON_ID/settings-default.xml - cp -PR $PKG_DIR/config/xmltv-config $ADDON_BUILD/$PKG_ADDON_ID/xmltv-config - cp -PR $PKG_DIR/config/dvr-config $ADDON_BUILD/$PKG_ADDON_ID/dvr-config - mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin cp -P $PKG_BUILD/build.linux/tvheadend $ADDON_BUILD/$PKG_ADDON_ID/bin cp -P $PKG_BUILD/capmt_ca.so $ADDON_BUILD/$PKG_ADDON_ID/bin diff --git a/packages/addons/service/multimedia/tvheadend/source/bin/tvheadend.start b/packages/addons/service/multimedia/tvheadend/source/bin/tvheadend.start index f11952d32c..46f35d1866 100755 --- a/packages/addons/service/multimedia/tvheadend/source/bin/tvheadend.start +++ b/packages/addons/service/multimedia/tvheadend/source/bin/tvheadend.start @@ -22,9 +22,8 @@ . /etc/profile -ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.tvheadend" -ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.tvheadend" -LOG_FILE="$ADDON_HOME/service.log" +oe_setup_addon service.multimedia.tvheadend + ADDON_SETTINGS="$ADDON_HOME/settings.xml" XMLTV_FILE="$ADDON_DIR/bin/tv_grab_file" XMLTV_SETTINGS_DIR="$ADDON_HOME/xmltv" @@ -36,16 +35,8 @@ TIMESHIFT_SETTINGS_DIR="$ADDON_HOME/timeshift" TIMESHIFT_SETTINGS_FILE="$TIMESHIFT_SETTINGS_DIR/config" TIMESHIFT_DIR="$ADDON_HOME/cache/timeshift" -mkdir -p $ADDON_HOME - chmod a+x $ADDON_DIR/bin/* -if [ ! -f "$ADDON_SETTINGS" ]; then - if [ -f $ADDON_DIR/settings-default.xml ]; then - cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS - fi -fi - if [ ! -f "$XMLTV_SETTINGS_FILE" ]; then mkdir -p $XMLTV_SETTINGS_DIR if [ -f $ADDON_DIR/xmltv-config ]; then @@ -75,15 +66,6 @@ else TVHEADEND_ARG="-C -u root -g video -c $ADDON_HOME" fi -mkdir -p /var/config -if [ -f $ADDON_DIR/settings-default.xml ]; then - cat "$ADDON_DIR/settings-default.xml" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/tvheadend.conf.default -fi -cat "$ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/tvheadend.conf - -. /var/config/tvheadend.conf.default -. /var/config/tvheadend.conf - # start userspace DVB driver/addon for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver.sh -type f 2>/dev/null); do driver_dvb_name=$(echo $driver_dvb | awk 'BEGIN {FS="/"} {printf("%s", $5)}') @@ -105,7 +87,7 @@ fi if [ "$PRELOAD_CAPMT_CA" == "true" ] ; then logger -t Tvheadend "### Preloading capmt_ca.so library ###" - LD_PRELOAD="$ADDON_DIR/bin/capmt_ca.so $LD_PRELOAD" exec tvheadend $TVHEADEND_ARG &>$LOG_FILE + LD_PRELOAD="$ADDON_DIR/bin/capmt_ca.so $LD_PRELOAD" exec tvheadend $TVHEADEND_ARG &>$ADDON_LOG_FILE else - exec tvheadend $TVHEADEND_ARG &>$LOG_FILE + exec tvheadend $TVHEADEND_ARG &>$ADDON_LOG_FILE fi diff --git a/packages/addons/service/multimedia/tvheadend/config/dvr-config b/packages/addons/service/multimedia/tvheadend/source/dvr-config similarity index 100% rename from packages/addons/service/multimedia/tvheadend/config/dvr-config rename to packages/addons/service/multimedia/tvheadend/source/dvr-config diff --git a/packages/addons/service/multimedia/tvheadend/config/settings.xml b/packages/addons/service/multimedia/tvheadend/source/settings-default.xml similarity index 100% rename from packages/addons/service/multimedia/tvheadend/config/settings.xml rename to packages/addons/service/multimedia/tvheadend/source/settings-default.xml diff --git a/packages/addons/service/multimedia/tvheadend/source/sleep.d/tvheadend.power b/packages/addons/service/multimedia/tvheadend/source/sleep.d/tvheadend.power index 20d448afa3..a09fd36792 100755 --- a/packages/addons/service/multimedia/tvheadend/source/sleep.d/tvheadend.power +++ b/packages/addons/service/multimedia/tvheadend/source/sleep.d/tvheadend.power @@ -22,10 +22,9 @@ . /etc/profile +oe_setup_addon service.multimedia.tvheadend + SERVICE="service.multimedia.tvheadend" -ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.tvheadend" -ADDON_SETTINGS="$ADDON_HOME/settings.xml" -REMOVE_MODULES=`grep REMOVE_MODULES $ADDON_SETTINGS | sed 's|.*value="\([^"]*\)".*|\1|g'` case "$1" in pre) diff --git a/packages/addons/service/multimedia/tvheadend/config/timeshift-config b/packages/addons/service/multimedia/tvheadend/source/timeshift-config similarity index 100% rename from packages/addons/service/multimedia/tvheadend/config/timeshift-config rename to packages/addons/service/multimedia/tvheadend/source/timeshift-config diff --git a/packages/addons/service/multimedia/tvheadend/config/xmltv-config b/packages/addons/service/multimedia/tvheadend/source/xmltv-config similarity index 100% rename from packages/addons/service/multimedia/tvheadend/config/xmltv-config rename to packages/addons/service/multimedia/tvheadend/source/xmltv-config