From 0099dbf826e21148f3da0a775ae40c67aa633be3 Mon Sep 17 00:00:00 2001 From: jc Date: Fri, 29 Apr 2016 23:24:22 +0200 Subject: [PATCH] syncthing: initial addon --- .../addons/service/syncthing/changelog.txt | 3 + .../addons/service/syncthing/icon/icon.png | Bin 0 -> 29662 bytes packages/addons/service/syncthing/package.mk | 86 ++++++++++++++++++ .../syncthing/source/bin/syncthing-service | 31 +++++++ .../service/syncthing/source/default.py | 35 +++++++ .../resources/language/English/strings.po | 14 +++ .../syncthing/source/resources/settings.xml | 7 ++ .../syncthing/source/settings-default.xml | 3 + .../system.d/service.system.syncthing.service | 16 ++++ 9 files changed, 195 insertions(+) create mode 100644 packages/addons/service/syncthing/changelog.txt create mode 100644 packages/addons/service/syncthing/icon/icon.png create mode 100644 packages/addons/service/syncthing/package.mk create mode 100644 packages/addons/service/syncthing/source/bin/syncthing-service create mode 100644 packages/addons/service/syncthing/source/default.py create mode 100644 packages/addons/service/syncthing/source/resources/language/English/strings.po create mode 100644 packages/addons/service/syncthing/source/resources/settings.xml create mode 100644 packages/addons/service/syncthing/source/settings-default.xml create mode 100644 packages/addons/service/syncthing/source/system.d/service.system.syncthing.service diff --git a/packages/addons/service/syncthing/changelog.txt b/packages/addons/service/syncthing/changelog.txt new file mode 100644 index 0000000000..b47649f5c3 --- /dev/null +++ b/packages/addons/service/syncthing/changelog.txt @@ -0,0 +1,3 @@ +8.0.100 +- Initial addon + diff --git a/packages/addons/service/syncthing/icon/icon.png b/packages/addons/service/syncthing/icon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c473dd9e4a7911c0bd29d2c0de4328f97dcb7146 GIT binary patch literal 29662 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 tAv7?4_rK!5JAwE8|9zT8e`D!^qzdZpD(th`{. +################################################################################ + +PKG_NAME="syncthing" +PKG_VERSION="0.12.22" +PKG_REV="100" +PKG_ARCH="any" +PKG_LICENSE="MPLv2" +PKG_SITE="https://syncthing.net/" +PKG_URL="https://github.com/syncthing/syncthing/archive/v${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain go:host" +PKG_PRIORITY="optional" +PKG_SECTION="service/system" + +PKG_SHORTDESC="Open Source Continuous File Synchronization" +PKG_LONGDESC="Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet." +PKG_MAINTAINER="Anton Voyl (awiouy at gmail dot com)" +PKG_ADDON_REPOVERSION="8.0" + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.service" +PKG_ADDON_PROVIDES="" +PKG_AUTORECONF="no" + +configure_target() { + + case $TARGET_ARCH in + x86_64) + export GOARCH=amd64 + ;; + arm) + export GOARCH=arm + case $TARGET_CPU in + arm1176jzf-s) + export GOARM=6 + ;; + cortex-a7|cortex-a9) + export GOARM=7 + ;; + esac + ;; + esac + + export GOOS=linux + export CGO_ENABLED=1 + export CGO_NO_EMULATION=1 + export CGO_CFLAGS=$CFLAGS + export LDFLAGS="-w -linkmode external -extldflags -Wl,--unresolved-symbols=ignore-in-shared-libs -extld $TARGET_CC -X main.Version=v$PKG_VERSION" + export GOLANG=$ROOT/$TOOLCHAIN/lib/golang/bin/go + export GOPATH=$ROOT/$PKG_BUILD:$ROOT/$PKG_BUILD/Godeps/_workspace + export GOROOT=$ROOT/$TOOLCHAIN/lib/golang + export PATH=$PATH:$GOROOT/bin + + mkdir -p $ROOT/$PKG_BUILD $ROOT/$PKG_BUILD/src/github.com/syncthing + ln -fs $ROOT/$PKG_BUILD $ROOT/$PKG_BUILD/src/github.com/syncthing/syncthing + +} + +make_target() { + mkdir -p bin + $GOLANG build -v -o bin/syncthing -a -tags noupgrade -ldflags "$LDFLAGS" ./cmd/syncthing +} + +makeinstall_target() { + : +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $ROOT/$PKG_BUILD/bin/syncthing $ADDON_BUILD/$PKG_ADDON_ID/bin +} diff --git a/packages/addons/service/syncthing/source/bin/syncthing-service b/packages/addons/service/syncthing/source/bin/syncthing-service new file mode 100644 index 0000000000..45812d867e --- /dev/null +++ b/packages/addons/service/syncthing/source/bin/syncthing-service @@ -0,0 +1,31 @@ +#!/bin/sh +################################################################################ +# 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 . +################################################################################ + +. /etc/profile +oe_setup_addon service.system.syncthing + +chmod +x $ADDON_DIR/bin/* + +STNODEFAULTFOLDER="y" syncthing -home=$ADDON_HOME \ + -gui-address="$gui_address" \ + -logflags=0 \ + -no-browser \ + -no-restart \ + & + diff --git a/packages/addons/service/syncthing/source/default.py b/packages/addons/service/syncthing/source/default.py new file mode 100644 index 0000000000..3999a0eb31 --- /dev/null +++ b/packages/addons/service/syncthing/source/default.py @@ -0,0 +1,35 @@ +################################################################################ +# 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 . +################################################################################ + +import subprocess +import xbmc +import xbmcaddon + + +class Monitor(xbmc.Monitor): + + def __init__(self, *args, **kwargs): + xbmc.Monitor.__init__(self) + self.id = xbmcaddon.Addon().getAddonInfo('id') + + def onSettingsChanged(self): + subprocess.call(['systemctl', 'restart', self.id]) + + +if __name__ == "__main__": + Monitor().waitForAbort() diff --git a/packages/addons/service/syncthing/source/resources/language/English/strings.po b/packages/addons/service/syncthing/source/resources/language/English/strings.po new file mode 100644 index 0000000000..2c7084c08f --- /dev/null +++ b/packages/addons/service/syncthing/source/resources/language/English/strings.po @@ -0,0 +1,14 @@ +# Kodi Media Center language file +# Addon Name: syncthing +# Addon id: service.system.syncthing +# Addon Provider: awiouy at gmail dot com +msgid "" +msgstr "" + +msgctxt "#30000" +msgid "GUI Address" +msgstr "" + +msgctxt "#30001" +msgid "GUI Address" +msgstr "" diff --git a/packages/addons/service/syncthing/source/resources/settings.xml b/packages/addons/service/syncthing/source/resources/settings.xml new file mode 100644 index 0000000000..442a8507d8 --- /dev/null +++ b/packages/addons/service/syncthing/source/resources/settings.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/packages/addons/service/syncthing/source/settings-default.xml b/packages/addons/service/syncthing/source/settings-default.xml new file mode 100644 index 0000000000..c36bbd0391 --- /dev/null +++ b/packages/addons/service/syncthing/source/settings-default.xml @@ -0,0 +1,3 @@ + + + diff --git a/packages/addons/service/syncthing/source/system.d/service.system.syncthing.service b/packages/addons/service/syncthing/source/system.d/service.system.syncthing.service new file mode 100644 index 0000000000..8e8839fef3 --- /dev/null +++ b/packages/addons/service/syncthing/source/system.d/service.system.syncthing.service @@ -0,0 +1,16 @@ +[Unit] +Description=Syncthing - Open Source Continuous File Synchronization +Documentation=http://docs.syncthing.net/ +After=network.target +Requires=network.target + +[Service] +Type=forking +ExecStart=/bin/sh /storage/.kodi/addons/service.system.syncthing/bin/syncthing-service +Restart=on-failure +SuccessExitStatus=3 4 +RestartForceExitStatus=3 4 + +[Install] +WantedBy=kodi.target +