diff --git a/packages/mediacenter/kodi-binary-addons/screensavers.rsxs/package.mk b/packages/mediacenter/kodi-binary-addons/screensavers.rsxs/package.mk
new file mode 100644
index 0000000000..526651b8fe
--- /dev/null
+++ b/packages/mediacenter/kodi-binary-addons/screensavers.rsxs/package.mk
@@ -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 .
+################################################################################
+
+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"
+}
diff --git a/packages/mediacenter/kodi/patches/kodi-995.01-addonpath.patch b/packages/mediacenter/kodi/patches/kodi-995.01-addonpath.patch
new file mode 100644
index 0000000000..7e260e40cd
--- /dev/null
+++ b/packages/mediacenter/kodi/patches/kodi-995.01-addonpath.patch
@@ -0,0 +1,28 @@
+From 2a2ddb51f931d5f606638a0a3d6d76c261f09659 Mon Sep 17 00:00:00 2001
+From: Arne Morten Kvarving
+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());
diff --git a/scripts/create_addon b/scripts/create_addon
index b54007e8b1..2148feb305 100755
--- a/scripts/create_addon
+++ b/scripts/create_addon
@@ -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
diff --git a/tools/mkpkg/mkpkg_screensavers.rsxs b/tools/mkpkg/mkpkg_screensavers.rsxs
new file mode 100755
index 0000000000..7413ba198b
--- /dev/null
+++ b/tools/mkpkg/mkpkg_screensavers.rsxs
@@ -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