Merge pull request #4225 from stefansaraev/rsxs

re-add screensavers.rsxs
This commit is contained in:
Stefan Saraev 2015-07-05 16:16:50 +03:00
commit f9acfc7c63
4 changed files with 163 additions and 15 deletions

View File

@ -0,0 +1,62 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC 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 of the License, or
# (at your option) any later version.
#
# OpenELEC 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. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="screensavers.rsxs"
PKG_VERSION="195e0ec"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain kodi-platform"
PKG_PRIORITY="optional"
PKG_SECTION=""
PKG_SHORTDESC="screensavers.rsxs"
PKG_LONGDESC="screensavers.rsxs"
PKG_AUTORECONF="no"
PKG_IS_ADDON="yes"
PKG_ADDON_TYPE="xbmc.ui.screensaver"
if [ "$OPENGL" = "no" ] ; then
exit 0
fi
configure_target() {
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \
-DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
..
}
addon() {
for _ADDON in $PKG_BUILD/.install_pkg/usr/share/kodi/addons/* ; do
_ADDON_ID=$(basename $_ADDON)
mkdir -p $ADDON_BUILD/$_ADDON_ID/
cp -PR $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$_ADDON_ID/* $ADDON_BUILD/$_ADDON_ID/
cp -PL $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$_ADDON_ID/*.so $ADDON_BUILD/$_ADDON_ID/
MULTI_ADDONS="$MULTI_ADDONS $_ADDON_ID"
done
# export MULTI_ADDONS so create_addon knows multiple addons
# were installed in $ADDON_BUILD/
export MULTI_ADDONS="$MULTI_ADDONS"
}

View File

@ -0,0 +1,28 @@
From 2a2ddb51f931d5f606638a0a3d6d76c261f09659 Mon Sep 17 00:00:00 2001
From: Arne Morten Kvarving <cptspiff@gmail.com>
Date: Sun, 10 Aug 2014 10:01:15 +0200
Subject: [PATCH] added: special setting __addonpath__ to
libXBMC_addon::GetSettings()
returns the path for an addon
---
xbmc/addons/AddonCallbacksAddon.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/xbmc/addons/AddonCallbacksAddon.cpp b/xbmc/addons/AddonCallbacksAddon.cpp
index b789648..40f1dde 100644
--- a/xbmc/addons/AddonCallbacksAddon.cpp
+++ b/xbmc/addons/AddonCallbacksAddon.cpp
@@ -187,6 +187,12 @@ bool CAddonCallbacksAddon::GetAddonSetting(void *addonData, const char *strSetti
{
CLog::Log(LOGDEBUG, "CAddonCallbacksAddon - %s - add-on '%s' requests setting '%s'", __FUNCTION__, addonHelper->m_addon->Name().c_str(), strSettingName);
+ if (strcasecmp(strSettingName, "__addonpath__") == 0)
+ {
+ strcpy((char*) settingValue, addonHelper->m_addon->Path().c_str());
+ return true;
+ }
+
if (!addonHelper->m_addon->ReloadSettings())
{
CLog::Log(LOGERROR, "CAddonCallbacksAddon - %s - could't get settings for add-on '%s'", __FUNCTION__, addonHelper->m_addon->Name().c_str());

View File

@ -47,21 +47,8 @@ if [ -n "$PKG_ADDON_REPOVERSION" -a ! "$PKG_ADDON_REPOVERSION" = "$ADDON_VERSION
exit 0
fi
if [ "$PKG_IS_ADDON" = "yes" ] ; then
$SCRIPTS/build $@
printf "%${BUILD_INDENT}c CREATE ADDON ($PROJECT/$TARGET_ARCH) $1\n" ' '>&$SILENT_OUT
export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE))
rm -rf $ADDON_BUILD
if [ "$(type -t addon)" = "function" ]; then
addon
else
echo "*** unsupported package format. please convert your package ***"
exit 1
fi
pack_addon() {
IFS=" "
for i in $PKG_ADDON_REQUIRES; do
REQUIRES_ADDONNAME=`echo $i | cut -f1 -d ":"`
@ -120,7 +107,7 @@ if [ "$PKG_IS_ADDON" = "yes" ] ; then
ADDON_INSTALL_DIR="$TARGET/$ADDONS/$ADDON_VERSION/$PROJECT/$TARGET_ARCH/$PKG_ADDON_ID"
if [ -f $ADDON_INSTALL_DIR/$PKG_ADDON_ID-$ADDONVER.zip ] ; then
echo "*** WARNING: $PKG_ADDON_ID-$ADDONVER.zip already exists. not overwriting it ***"
exit 0
return 0
fi
cd $ADDON_BUILD
echo "*** compressing Addon $PKG_ADDON_ID ... ***"
@ -136,4 +123,32 @@ if [ "$PKG_IS_ADDON" = "yes" ] ; then
cp $ADDON_BUILD/$PKG_ADDON_ID/icon.png $ADDON_INSTALL_DIR/icon.png
fi
fi
}
if [ "$PKG_IS_ADDON" = "yes" ] ; then
$SCRIPTS/build $@
printf "%${BUILD_INDENT}c CREATE ADDON ($PROJECT/$TARGET_ARCH) $1\n" ' '>&$SILENT_OUT
export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE))
rm -rf $ADDON_BUILD
if [ "$(type -t addon)" = "function" ]; then
addon
else
echo "*** unsupported package format. please convert your package ***"
exit 1
fi
# HACK for packages tat provide multiple addons like screensavers.rsxs
# addon's addon() in package.mk should take care for exporting
# MULTI_ADDONS="addon.boo1 addon.boo2 addon.boo3"
if [ -n "$MULTI_ADDONS" ] ; then
for _ADDON in $MULTI_ADDONS ; do
PKG_ADDON_ID=$_ADDON
pack_addon
done
else
pack_addon
fi
fi

View File

@ -0,0 +1,43 @@
#!/bin/sh
################################################################################
# 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
################################################################################
echo "getting sources..."
if [ ! -d screensavers.rsxs.git ]; then
git clone https://github.com/notspiff/screensavers.rsxs.git screensavers.rsxs.git
fi
cd screensavers.rsxs.git
git pull
GIT_REV=`git log -n1 --format=%h`
cd ..
echo "copying sources..."
rm -rf screensavers.rsxs-$GIT_REV
cp -R screensavers.rsxs.git screensavers.rsxs-$GIT_REV
echo "cleaning sources..."
rm -rf screensavers.rsxs-$GIT_REV/.git
echo "packing sources..."
tar cvJf screensavers.rsxs-$GIT_REV.tar.xz screensavers.rsxs-$GIT_REV
echo "remove temporary sourcedir..."
rm -rf screensavers.rsxs-$GIT_REV