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..1514114242 --- /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="7.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 +}