summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirkjan Ochtman <djc@gentoo.org>2016-06-24 22:04:51 +0200
committerDirkjan Ochtman <djc@gentoo.org>2016-06-24 22:04:51 +0200
commit7deebb7157b1b7713488676ad049926f6aaf7217 (patch)
tree2b51b09b6c7926566837359d377377fd3cf18175 /net-p2p
parentmail-filter/rspamd: remove old versions (diff)
downloadgentoo-7deebb7157b1b7713488676ad049926f6aaf7217.tar.gz
gentoo-7deebb7157b1b7713488676ad049926f6aaf7217.tar.bz2
gentoo-7deebb7157b1b7713488676ad049926f6aaf7217.zip
net-p2p/syncthing: add tools flag
Thanks to Alexey Korepanov for implementing this. Package-Manager: portage-2.2.28
Diffstat (limited to 'net-p2p')
-rw-r--r--net-p2p/syncthing/files/relaysrv.systemd.patch13
-rw-r--r--net-p2p/syncthing/files/syncthing-relaysrv.confd3
-rw-r--r--net-p2p/syncthing/files/syncthing-relaysrv.initd30
-rw-r--r--net-p2p/syncthing/files/syncthing-relaysrv.logrotate6
-rw-r--r--net-p2p/syncthing/files/syncthing.logrotate5
-rw-r--r--net-p2p/syncthing/metadata.xml5
-rw-r--r--net-p2p/syncthing/syncthing-0.13.7-r1.ebuild108
7 files changed, 166 insertions, 4 deletions
diff --git a/net-p2p/syncthing/files/relaysrv.systemd.patch b/net-p2p/syncthing/files/relaysrv.systemd.patch
new file mode 100644
index 00000000000..2cff1dc7d9a
--- /dev/null
+++ b/net-p2p/syncthing/files/relaysrv.systemd.patch
@@ -0,0 +1,13 @@
+diff --git src/github.com/syncthing/syncthing/cmd/relaysrv/etc/linux-systemd/syncthing-relaysrv.service src/github.com/syncthing/syncthing/cmd/relaysrv/etc/linux-systemd/syncthing-relaysrv.service
+index b9d3173..7f8e2c0 100644
+--- src/github.com/syncthing/syncthing/cmd/relaysrv/etc/linux-systemd/syncthing-relaysrv.service
++++ src/github.com/syncthing/syncthing/cmd/relaysrv/etc/linux-systemd/syncthing-relaysrv.service
+@@ -5,7 +5,7 @@ After=network.target
+ [Service]
+ User=syncthing-relaysrv
+ Group=syncthing-relaysrv
+-ExecStart=/usr/bin/relaysrv
++ExecStart=/usr/libexec/syncthing/relaysrv
+ WorkingDirectory=/var/lib/syncthing-relaysrv
+
+ PrivateTmp=true
diff --git a/net-p2p/syncthing/files/syncthing-relaysrv.confd b/net-p2p/syncthing/files/syncthing-relaysrv.confd
new file mode 100644
index 00000000000..2effc399720
--- /dev/null
+++ b/net-p2p/syncthing/files/syncthing-relaysrv.confd
@@ -0,0 +1,3 @@
+# Options to pass to relaysrv
+# see relaysrv --help for more information
+SR_OPTS=
diff --git a/net-p2p/syncthing/files/syncthing-relaysrv.initd b/net-p2p/syncthing/files/syncthing-relaysrv.initd
new file mode 100644
index 00000000000..860c5f38aa8
--- /dev/null
+++ b/net-p2p/syncthing/files/syncthing-relaysrv.initd
@@ -0,0 +1,30 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+SR_USER=syncthing-relaysrv
+SR_GROUP=syncthing-relaysrv
+SR_HOMEDIR=/var/lib/syncthing-relaysrv
+SR_LOGFILE=/var/log/syncthing/relaysrv.log
+
+
+description="Relay service for syncthing"
+command="/usr/libexec/syncthing/relaysrv"
+command_args="${SR_OPTS}"
+pidfile="/run/relaysrv.pid"
+start_stop_daemon_args="--background
+ --user ${SR_USER}
+ --group ${SR_GROUP}
+ --chdir \"${SR_HOMEDIR}\"
+ --make-pidfile
+ --stdout \"${SR_LOGFILE}\"
+ --stderr \"${SR_LOGFILE}\"
+ "
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath -q -d -o ${SR_USER}:${SR_GROUP} ${SR_HOMEDIR}
+ checkpath -q -f -o ${SR_USER}:${SR_GROUP} ${SR_LOGFILE}
+}
diff --git a/net-p2p/syncthing/files/syncthing-relaysrv.logrotate b/net-p2p/syncthing/files/syncthing-relaysrv.logrotate
new file mode 100644
index 00000000000..f168cbfc413
--- /dev/null
+++ b/net-p2p/syncthing/files/syncthing-relaysrv.logrotate
@@ -0,0 +1,6 @@
+/var/log/syncthing/relaysrv.log {
+ missingok
+ notifempty
+ sharedscripts
+ copytruncate
+}
diff --git a/net-p2p/syncthing/files/syncthing.logrotate b/net-p2p/syncthing/files/syncthing.logrotate
index 37c43209a12..11310e381af 100644
--- a/net-p2p/syncthing/files/syncthing.logrotate
+++ b/net-p2p/syncthing/files/syncthing.logrotate
@@ -2,8 +2,5 @@
missingok
notifempty
sharedscripts
- postrotate
- kill -0 $(</run/syncthing.pid) && \
- /etc/init.d/syncthing restart > /dev/null 2>&1 || true
- endscript
+ copytruncate
}
diff --git a/net-p2p/syncthing/metadata.xml b/net-p2p/syncthing/metadata.xml
index 78bfd3011c5..df7f0025782 100644
--- a/net-p2p/syncthing/metadata.xml
+++ b/net-p2p/syncthing/metadata.xml
@@ -18,6 +18,11 @@
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.
</longdescription>
+ <use>
+ <flag name="tools">
+ Install discosrv, relaysrv and other tools to /usr/libexec/synsthing/.
+ </flag>
+ </use>
<upstream>
<remote-id type="github">syncthing/syncthing</remote-id>
<bugs-to>https://github.com/syncthing/syncthing/issues</bugs-to>
diff --git a/net-p2p/syncthing/syncthing-0.13.7-r1.ebuild b/net-p2p/syncthing/syncthing-0.13.7-r1.ebuild
new file mode 100644
index 00000000000..fdc40118d3c
--- /dev/null
+++ b/net-p2p/syncthing/syncthing-0.13.7-r1.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+EGO_PN="github.com/syncthing/syncthing"
+EGIT_COMMIT=v${PV}
+
+inherit golang-vcs-snapshot systemd user versionator
+
+DESCRIPTION="Open Source Continuous File Synchronization"
+HOMEPAGE="https://syncthing.net"
+SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~arm"
+IUSE="tools"
+
+DEPEND=""
+RDEPEND=""
+
+DOCS="README.md AUTHORS CONTRIBUTING.md"
+
+pkg_setup() {
+ enewgroup ${PN}
+ enewuser ${PN} -1 -1 /var/lib/${PN} ${PN}
+
+ if use tools ; then
+ # separate user for relaysrv
+ enewgroup ${PN}-relaysrv
+ enewuser ${PN}-relaysrv -1 -1 /var/lib/${PN}-relaysrv ${PN}-relaysrv
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/relaysrv.systemd.patch"
+ eapply_user
+}
+
+src_compile() {
+ export GOPATH="${S}:$(get_golibdir_gopath)"
+ cd src/${EGO_PN}
+ # If we pass "build" to build.go, it builds only syncthing itself, and
+ # places the binary in the root folder. If we do not pass "build", all the
+ # tools are built, and all binaries are placed in folder ./bin.
+ ST_BUILD="build"
+ if use tools ; then
+ ST_BUILD=""
+ fi
+ go run build.go -version "v${PV}" -no-upgrade ${ST_BUILD} || die "build failed"
+}
+
+src_test() {
+ cd src/${EGO_PN}
+ go run build.go test || die "test failed"
+}
+
+src_install() {
+ cd src/${EGO_PN}
+ doman man/*.[157]
+
+ if use tools ; then
+ dobin bin/syncthing
+ exeinto /usr/libexec/syncthing
+ for exe in bin/* ; do
+ [ "${exe}" = "bin/syncthing" ] || doexe "${exe}"
+ done
+ else
+ dobin syncthing
+ fi
+
+ # openrc and systemd service files
+ systemd_dounit "${S}"/src/${EGO_PN}/etc/linux-systemd/system/${PN}@.service \
+ "${S}"/src/${EGO_PN}/etc/linux-systemd/system/${PN}-resume.service
+ systemd_douserunit "${S}"/src/${EGO_PN}/etc/linux-systemd/user/${PN}.service
+ newconfd "${FILESDIR}/${PN}.confd" ${PN}
+ newinitd "${FILESDIR}/${PN}.initd" ${PN}
+
+ keepdir /var/{lib,log}/${PN}
+ fowners ${PN}:${PN} /var/{lib,log}/${PN}
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/${PN}.logrotate" ${PN}
+
+ if use tools ; then
+ # openrc and systemd service files
+ systemd_dounit "${S}"/src/${EGO_PN}/cmd/relaysrv/etc/linux-systemd/${PN}-relaysrv.service
+ newconfd "${FILESDIR}/${PN}-relaysrv.confd" ${PN}-relaysrv
+ newinitd "${FILESDIR}/${PN}-relaysrv.initd" ${PN}-relaysrv
+
+ keepdir /var/lib/${PN}-relaysrv
+ fowners ${PN}-relaysrv:${PN}-relaysrv /var/{lib,log}/${PN}
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/syncthing-relaysrv.logrotate" syncthing-relaysrv
+ fi
+}
+
+pkg_postinst() {
+ if [[ $(get_version_component_range 2) -gt \
+ $(get_version_component_range 2 ${REPLACING_VERSIONS}) ]]; then
+ ewarn "Version ${PV} is not protocol-compatible with version" \
+ "0.$(($(get_version_component_range 2) - 1)).x or lower."
+ ewarn "Make sure all your devices are running at least version" \
+ "0.$(get_version_component_range 2).0."
+ fi
+}