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 zcmeAS@N?(olHy`uVBq!ia0y~yV4MKL983%h4E%Q&&Sqd>kSuYHC<)F_D=AMbN@Z|N z$xljE@XSq2PYp^XQ2>tmIipR1P$QlnRqTfhJUHue<-iOJci zB??KY>6v-9O7C~?S5nAKu~iB;^)>Jz9|8>y;bpa#8ycOYHUSrfv+#z;JjjJKqcqr>Q^Kd=o{)8=;!8w`~~)KaY;}r!Wmdq z7l%|9r0NHy7U!21C8q|ZrYR#?h2J8O!UA7kEB~U*^vt}(9GCp$(%jU%5>FRfrHb4F zy_C!pD>rjEjIU1O` zni?9qnpqk;xmh?Fxtd#=xVpKSSitmp<`tJD<|U`X?9I$fv4ZNg#H-iJxhOTUB)=#m zKR*YS0s=DfOY(~|@(UE4gUu8)d=ry1^FRWcpa=qozLiUAQD#|cid#{Bt^zoOtunE= zz|9iP=SD`3uFlSm#zsa)#+H@_N>IHiFT zWwV14=bls?V6=O8Lgt~xr2a4Ve0+6xCi3mDmhRzYbC-ECr$yI$Q%+>%(zBIipM2U^ z{R%(tWs$W!eV2N9?XA~;GtzghUVZQPweNeYzRK;d{G7I~hqpjx?N;lZYv0YX{@H7* zdo7>k^dGO1jdoTg%iX53ZWlHD`K}_=Q6%%}v+Y3*PniNbUp*1(dUX6W>)K5X<-VOt zCE}XmbMFS`>2Ue1{@NreAsmsqmZ?-vdR^`FMT>toiOL8^@Go|XeORVDbJqLGyR|}- zjx4lxQth9sy|9=6waAsy@2^9+95NeN?`(`NG0E{ zUZE8yBiFYrIMlT#_;82nij^m`jj|8OPF0KEdzv}IS9RK!xb*v~dU@F#sf}9~`upyT z2r2p&`{>cOwu}vCUruKJD3D5ssVxte`5v0J@O-IcyQ}PvmfN$u?qojRqnB&atD9Ao zn0s>S&L^F}Ak+1C$OlGMm$02_owv2@;}1N%&Fp@4#X8?Z zn|SJWc0`_a3k%K6&B|J{y17E@!IihCmEUc!Q(wTt6&jgzZBNOHm3O7Uv0Ucx4NvEcd3lthbt$gykBp*pI6Md+Q9GX{t1o8 z-c9k2j#(GG@>p=x>WT|7Ki@eVjh|t4ZTd6r+TzYxcTeh<3M|~6aP3%;%j#;mYi1l_ zlV%r{%09d7>&47lEy0haq|P!%ERZ{XJhybE<2nXYtu^5S8&*jBKb0~{y{OP0e8xO@ zkNaItp*0U?>@WymP)BwTlX+dYAUnI`;v0D@Vbd|N}nnR8S0q(}3zZV5; z7A>4>DdefGJ$LE7H3vT@Uc7a1gO&`-^3cFHQmiV|?_U@BTwug^TDB})=Wbm%&!fA% zO-WI_@@ETYC;xJ}dwq56ijuGAQzPYuFZT(34(oW3`Lna>Ac& z<PS&Q%13uUmDU_kxQ4+e_u@((n70YlkmYZc-_1DUc}UDBRtz(VQ*cG(jMD-64H|K;cpo|32xtnK^r_(}qZ7kHgXzy66&nb)zO)c^;S%_5X7j=1 zL~573FgyE-H09N+wwPVr^hWlz^!*D50(BcVY|OhnOIqHo$RQC%Ez zHpo$F_PM9m<~g}`vM4nKs&`pVS{`!c&(9ij26u)4#wQF*JQ|{|9ntLAaW|T^Epp1N zIo*!)-Y~Wu7eb#EcuJT#jN?DZ|{a<H+S9&9sb-s-#a~|UVbD~)yf`J# zYmVeo^>&TTCehX}jiZk`?|$VHkQJ&Yzu9(#GzA;a@tnwz{^BXuon!$vL5B{7#!pO(6V6OfDV}_∾nMjh2?@M}OD# zCmFM>1+>O=6FJ9=bcw)dwdGh_qF|qZqO){lV6@K zbFk-hL20=Y_eYVBXYyP>pYc$+<7}>d-tJtOdD_)oo9~`Dy^cGg_wJ0a?Ap}@-;1hl zxyG!Rt0=DCq2}>4cipe)@e|6|70y}4XzN}S`Ec6*X>Db*U3wz7=4D$ryo#DRX*w(q?HMu>hoK1#RCyIZszjz_8;p;QuU2fkdnCK^% zzFH&HfB(aet-*SauFc_@zGl(PkYYdm0Fm0FGu4N`|9oO|{LHcE&WB?-iy2SP{U6n! zb>wkD^*h=5uG;=jf(n-{x?=Ko);AAXR)!!?#d!_Sm&Z2=w`W>$UjDc%HZt~Sx$mK4 z2Q)nwPI(kC``5Jo#aowO_@Q%Dg5mp%_wno<0r?G|lzyC!J@vT!z{S4~>lv*#UdWqK zTCqxJQmCZ4Ec2RW7Ixv;voubLeB4>Q?!apQwrqdK&KKRz=kI#$DNF)zm9(KCS*wtVdBn#(|Ai4-|@D?*4cyI3V2qad1fR-Gf_9 zYBn8zp!)D+b<5iNXZ-K&b|t>rRyEVEo#Aw@XztF&-X~MIPiBfM_H?c*%A5E4(God^ zo2!-MZf#?=DQiEHu=vCmG(^&82VOxaE73?*7Sq@1F4NUFGF3d->gM=F1k=GexcY7V(yrmF-#_klov{>Dp$e`tRa9 z0#>i&*NY0hl((?uGfU6e_0Miq|NLwHX{F8yZ-rIA<{VwffAxM-(W6fFT`a4Y&AMj0 zAnvcMir1Aj+QExu=Ks!awfMl~YyNqUjBEI>Ci|v82cL-7{=1Q$_0z=cfvc_P=RY6! zx9s)b^)Sjb$=-@HB5$+3@~y7ko!|d)pI46Z<`Zc%{UBi=IpwtAsdYRHtqix{GFVvO zs@gcQZ1cO8NQrdDNfIrIUZuh(UL2b3oN#N$o8|0GtW1(jjB-Z}%a-5b>R@VMiF(5R zU*S%r?sUH$+C^7a@-VOI?UT(an%Þq|g)?>T>bxPY$k}nE~#IB9rPcy_Wn=D=BXwv-G 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 literal 0 HcmV?d00001 diff --git a/packages/addons/service/syncthing/package.mk b/packages/addons/service/syncthing/package.mk new file mode 100644 index 0000000000..3e1af754c9 --- /dev/null +++ b/packages/addons/service/syncthing/package.mk @@ -0,0 +1,86 @@ +################################################################################ +# 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="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 +