diff --git a/config/addon/xbmc.service.pluginsource.xml b/config/addon/xbmc.service.pluginsource.xml
new file mode 100644
index 0000000000..754a131cdb
--- /dev/null
+++ b/config/addon/xbmc.service.pluginsource.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+@REQUIRES@
+
+
+ @PKG_ADDON_PROVIDES@
+
+
+
+
+ @PKG_SHORTDESC@
+
+@PKG_LONGDESC@
+
+
+@PKG_DISCLAIMER@
+
+ all
+
+
diff --git a/packages/addons/addon-depends/enet/package.mk b/packages/addons/addon-depends/enet/package.mk
new file mode 100644
index 0000000000..8bacd38418
--- /dev/null
+++ b/packages/addons/addon-depends/enet/package.mk
@@ -0,0 +1,39 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016 Team LibreELEC
+#
+# LibreELEC 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.
+#
+# LibreELEC 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 LibreELEC. If not, see .
+################################################################################
+
+PKG_NAME="enet"
+PKG_VERSION="1.3.13"
+PKG_REV="1"
+PKG_ARCH="any"
+PKG_LICENSE=""
+PKG_SITE=""
+PKG_URL="http://enet.bespin.org/download/$PKG_NAME-$PKG_VERSION.tar.gz"
+PKG_DEPENDS_TARGET="toolchain"
+PKG_PRIORITY="optional"
+PKG_SECTION="network"
+PKG_SHORTDESC="ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol)"
+PKG_LONGDESC="ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol)"
+
+PKG_IS_ADDON="no"
+PKG_AUTORECONF="yes"
+
+PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
+
+post_makeinstall_target() {
+ rm -r $INSTALL
+}
diff --git a/packages/addons/addon-depends/moonlight-common-c/package.mk b/packages/addons/addon-depends/moonlight-common-c/package.mk
new file mode 100644
index 0000000000..f8f506266f
--- /dev/null
+++ b/packages/addons/addon-depends/moonlight-common-c/package.mk
@@ -0,0 +1,41 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016 Team LibreELEC
+#
+# LibreELEC 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.
+#
+# LibreELEC 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 LibreELEC. If not, see .
+################################################################################
+
+PKG_NAME="moonlight-common-c"
+PKG_VERSION="a6d9ab0"
+PKG_REV="1"
+PKG_ARCH="any"
+PKG_LICENSE="GPLv3"
+PKG_SITE="https://github.com/irtimmer/moonlight-common-c"
+PKG_URL="https://github.com/irtimmer/moonlight-common-c/archive/$PKG_VERSION.tar.gz"
+PKG_DEPENDS_TARGET="toolchain"
+PKG_PRIORITY="optional"
+PKG_SECTION=""
+PKG_SHORTDESC="Shared C code for the implementation of Nvidia's GameStream protocol"
+PKG_LONGDESC="Shared C code for the implementation of Nvidia's GameStream protocol"
+
+PKG_IS_ADDON="no"
+PKG_AUTORECONF="no"
+
+make_target() {
+ :
+}
+
+makeinstall_target() {
+ :
+}
diff --git a/packages/addons/addon-depends/moonlight-embedded/package.mk b/packages/addons/addon-depends/moonlight-embedded/package.mk
new file mode 100644
index 0000000000..9f28d12670
--- /dev/null
+++ b/packages/addons/addon-depends/moonlight-embedded/package.mk
@@ -0,0 +1,57 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016 Team LibreELEC
+#
+# LibreELEC 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.
+#
+# LibreELEC 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 LibreELEC. If not, see .
+################################################################################
+
+PKG_NAME="moonlight-embedded"
+PKG_VERSION="2.2.0"
+PKG_REV="1"
+PKG_ARCH="arm aarch64"
+PKG_LICENSE="GPLv3"
+PKG_SITE="https://github.com/irtimmer/moonlight-embedded"
+PKG_URL="https://github.com/irtimmer/moonlight-embedded/archive/v$PKG_VERSION.tar.gz"
+PKG_DEPENDS_TARGET="toolchain curl libcec pulseaudio ffmpeg systemd alsa-lib moonlight-common-c libevdev enet opus"
+PKG_PRIORITY="optional"
+PKG_SECTION=""
+PKG_SHORTDESC="Gamestream client for embedded systems"
+PKG_LONGDESC="Moonlight Embedded is an open source implementation of NVIDIA's GameStream, as used by the NVIDIA Shield, but built for Linux"
+
+PKG_IS_ADDON="no"
+PKG_AUTORECONF="no"
+
+if [ "$KODIPLAYER_DRIVER" = "bcm2835-driver" ]; then
+ PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET bcm2835-driver"
+elif [ "$KODIPLAYER_DRIVER" = "libfslvpuwrap" ]; then
+ PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET imx-gpu-viv"
+elif [ "$KODIPLAYER_DRIVER" = "libamcodec" ]; then
+ PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libamcodec"
+fi
+
+pre_build_target() {
+ cp -a $(get_build_dir moonlight-common-c)/* $ROOT/$PKG_BUILD/third_party/moonlight-common-c
+}
+
+configure_target() {
+ cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
+ ..
+}
+
+makeinstall_target() {
+ :
+}
diff --git a/packages/addons/addon-depends/moonlight-embedded/patches/moonlight-embedded-0001-link-against-libm.patch b/packages/addons/addon-depends/moonlight-embedded/patches/moonlight-embedded-0001-link-against-libm.patch
new file mode 100644
index 0000000000..5180081714
--- /dev/null
+++ b/packages/addons/addon-depends/moonlight-embedded/patches/moonlight-embedded-0001-link-against-libm.patch
@@ -0,0 +1,12 @@
+diff -Naur a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2016-04-03 05:34:15.000000000 -0700
++++ b/CMakeLists.txt 2016-05-04 14:33:19.840052271 -0700
+@@ -139,7 +139,7 @@
+
+ set_property(TARGET moonlight PROPERTY COMPILE_DEFINITIONS ${MOONLIGHT_DEFINITIONS})
+ target_include_directories(moonlight PRIVATE ${GAMESTREAM_INCLUDE_DIR} ${MOONLIGHT_COMMON_INCLUDE_DIR} ${OPUS_INCLUDE_DIRS} ${EVDEV_INCLUDE_DIRS} ${UDEV_INCLUDE_DIRS})
+-target_link_libraries(moonlight ${EVDEV_LIBRARIES} ${ALSA_LIBRARY} ${OPUS_LIBRARY} ${UDEV_LIBRARIES} ${CMAKE_DL_LIBS})
++target_link_libraries(moonlight ${EVDEV_LIBRARIES} ${ALSA_LIBRARY} ${OPUS_LIBRARY} ${UDEV_LIBRARIES} ${CMAKE_DL_LIBS} m)
+
+ add_subdirectory(docs)
+
diff --git a/packages/addons/addon-depends/opus/package.mk b/packages/addons/addon-depends/opus/package.mk
new file mode 100644
index 0000000000..ceed50dbb5
--- /dev/null
+++ b/packages/addons/addon-depends/opus/package.mk
@@ -0,0 +1,36 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016 Team LibreELEC
+#
+# LibreELEC 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.
+#
+# LibreELEC 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 LibreELEC. If not, see .
+################################################################################
+
+PKG_NAME="opus"
+PKG_VERSION="1.1.2"
+PKG_REV="1"
+PKG_ARCH="any"
+PKG_LICENSE="BSD"
+PKG_SITE="http://www.opus-codec.org"
+PKG_URL="http://downloads.us.xiph.org/releases/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz"
+PKG_DEPENDS_TARGET="toolchain"
+PKG_PRIORITY="optional"
+PKG_SECTION="audio"
+PKG_SHORTDESC="Codec designed for interactive speech and audio transmission over the Internet"
+PKG_LONGDESC="Codec designed for interactive speech and audio transmission over the Internet"
+
+PKG_IS_ADDON="no"
+PKG_AUTORECONF="yes"
+
+PKG_CONFIGURE_OPTS_TARGET="--enable-static \
+ --disable-shared"
diff --git a/packages/addons/script/moonlight/icon/icon.png b/packages/addons/script/moonlight/icon/icon.png
new file mode 100644
index 0000000000..3a4bb5533c
Binary files /dev/null and b/packages/addons/script/moonlight/icon/icon.png differ
diff --git a/packages/addons/script/moonlight/package.mk b/packages/addons/script/moonlight/package.mk
new file mode 100644
index 0000000000..82dfcdd1c0
--- /dev/null
+++ b/packages/addons/script/moonlight/package.mk
@@ -0,0 +1,78 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016 Team LibreELEC
+#
+# LibreELEC 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.
+#
+# LibreELEC 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 LibreELEC. If not, see .
+################################################################################
+
+PKG_NAME="moonlight"
+PKG_VERSION="c371ff8"
+PKG_REV="0"
+PKG_ARCH="arm aarch64"
+PKG_LICENSE="GPLv2"
+PKG_SITE="https://github.com/dead/moonlight-openelec-rpi2"
+PKG_URL="https://github.com/dead/moonlight-openelec-rpi2/archive/$PKG_VERSION.tar.gz"
+PKG_SOURCE_DIR="moonlight-openelec-rpi2-$PKG_VERSION*"
+PKG_DEPENDS_TARGET="toolchain moonlight-embedded"
+PKG_PRIORITY="optional"
+PKG_SECTION="script"
+PKG_SHORTDESC="Moonlight-embedded Addon for LibreELEC"
+PKG_LONGDESC="Moonlight-embedded Addon for LibreELEC"
+PKG_AUTORECONF="no"
+
+PKG_IS_ADDON="yes"
+PKG_ADDON_REPOVERSION="8.0"
+PKG_ADDON_TYPE="xbmc.service.pluginsource"
+PKG_ADDON_PROVIDES="executable"
+PKG_ADDON_NAME="Moonlight"
+PKG_MAINTAINER="dead (gustavobenn@hotmail.com)"
+
+make_target() {
+ :
+}
+
+makeinstall_target() {
+ :
+}
+
+addon() {
+ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID
+ cp -PR $ROOT/$PKG_BUILD/script.moonlight/* $ADDON_BUILD/$PKG_ADDON_ID
+
+ # let's use our addon.xml instead
+ rm $ADDON_BUILD/$PKG_ADDON_ID/addon.xml
+
+ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
+ cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/moonlight $ADDON_BUILD/$PKG_ADDON_ID/bin
+
+ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib
+ cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libgamestream/libgamestream.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
+ cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libgamestream/libmoonlight-common.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
+
+ if [ "$KODIPLAYER_DRIVER" = "bcm2835-driver" ]; then
+ cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libmoonlight-pi.so $ADDON_BUILD/$PKG_ADDON_ID/lib
+ elif [ "$KODIPLAYER_DRIVER" = "libfslvpuwrap" ]; then
+ cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libmoonlight-imx.so $ADDON_BUILD/$PKG_ADDON_ID/lib
+ elif [ "$KODIPLAYER_DRIVER" = "libamcodec" ]; then
+ cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libmoonlight-aml.so $ADDON_BUILD/$PKG_ADDON_ID/lib
+ fi
+
+ cp -P $(get_build_dir libevdev)/.install_pkg/usr/lib/libevdev.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
+
+ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/etc
+ cp -P $(get_build_dir moonlight-embedded)/moonlight.conf $ADDON_BUILD/$PKG_ADDON_ID/etc
+
+ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/share/moonlight
+ cp -PR $(get_build_dir moonlight-embedded)/mappings $ADDON_BUILD/$PKG_ADDON_ID/share/moonlight
+}