mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-12-21 02:42:18 +00:00
125 lines
3 KiB
Bash
125 lines
3 KiB
Bash
# Copyright 1999-2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
inherit eapi9-ver desktop go-module systemd verify-sig xdg
|
|
|
|
DESCRIPTION="Open Source Continuous File Synchronization"
|
|
HOMEPAGE="https://syncthing.net https://github.com/syncthing/syncthing"
|
|
SRC_URI="
|
|
https://github.com/${PN}/${PN}/releases/download/v${PV}/${PN}-source-v${PV}.tar.gz
|
|
verify-sig? (
|
|
https://github.com/${PN}/${PN}/releases/download/v${PV}/${PN}-source-v${PV}.tar.gz.asc
|
|
)
|
|
"
|
|
S="${WORKDIR}"/${PN}
|
|
|
|
LICENSE="MPL-2.0 Apache-2.0 BSD BSD-2 CC0-1.0 ISC MIT Unlicense"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
|
|
IUSE="selinux tools"
|
|
|
|
DEPEND="
|
|
dev-db/sqlite:3
|
|
"
|
|
RDEPEND="
|
|
${DEPEND}
|
|
acct-group/syncthing
|
|
acct-user/syncthing
|
|
tools? (
|
|
>=acct-user/stdiscosrv-1
|
|
>=acct-user/strelaysrv-1
|
|
)
|
|
selinux? ( sec-policy/selinux-syncthing )
|
|
"
|
|
BDEPEND="
|
|
verify-sig? ( sec-keys/openpgp-keys-syncthing )
|
|
"
|
|
|
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/syncthing.asc
|
|
|
|
DOCS=( AUTHORS {GOALS,README}.md )
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}"/${PN}-1.3.4-TestIssue5063_timeout.patch
|
|
"${FILESDIR}"/${PN}-1.18.4-tool_users.patch
|
|
"${FILESDIR}"/${PN}-1.29.5-remove_race_in_tests.patch #955442
|
|
)
|
|
|
|
src_prepare() {
|
|
# Bug #679280
|
|
xdg_environment_reset
|
|
|
|
default
|
|
|
|
local srv
|
|
for srv in st{disco,relay}srv; do
|
|
sed -i \
|
|
's|^ExecStart=.*|ExecStart=/usr/libexec/${PN}/${srv}|' \
|
|
cmd/${srv}/etc/linux-systemd/${srv}.service || die
|
|
done;
|
|
}
|
|
|
|
src_compile() {
|
|
# https://github.com/mattn/go-sqlite3#linux
|
|
# -tags libsqlite3: use system sqlite3 instead of bundled
|
|
ego run build.go -version "v${PV}" -tags "libsqlite3" -no-upgrade -build-out=bin/ \
|
|
build $(usev tools all)
|
|
}
|
|
|
|
src_test() {
|
|
ego run build.go test
|
|
}
|
|
|
|
src_install() {
|
|
dobin bin/${PN}
|
|
|
|
doman man/*.[157]
|
|
einstalldocs
|
|
|
|
domenu etc/linux-desktop/${PN}-{start,ui}.desktop
|
|
local -i icon_size
|
|
for icon_size in 32 64 128 256 512; do
|
|
newicon -s ${icon_size} assets/logo-${icon_size}.png ${PN}.png
|
|
done
|
|
newicon -s scalable assets/logo-only.svg ${PN}.svg
|
|
|
|
systemd_dounit etc/linux-systemd/system/${PN}@.service
|
|
systemd_douserunit etc/linux-systemd/user/${PN}.service
|
|
newconfd "${FILESDIR}"/${PN}.confd-r1 ${PN}
|
|
newinitd "${FILESDIR}"/${PN}.initd-r4 ${PN}
|
|
exeinto /etc/user/init.d
|
|
newexe "${FILESDIR}"/syncthing.initd-user syncthing
|
|
|
|
keepdir /var/log/${PN}
|
|
insinto /etc/logrotate.d
|
|
newins "${FILESDIR}"/${PN}.logrotate ${PN}
|
|
|
|
insinto /etc/ufw/applications.d
|
|
doins etc/firewall-ufw/${PN}
|
|
|
|
if use tools; then
|
|
exeinto /usr/libexec/${PN}
|
|
insinto /etc/logrotate.d
|
|
|
|
local srv
|
|
for srv in st{disco,relay}srv; do
|
|
doexe bin/${srv}
|
|
systemd_dounit cmd/${srv}/etc/linux-systemd/${srv}.service
|
|
newconfd "${FILESDIR}"/${srv}.confd ${srv}
|
|
newinitd "${FILESDIR}"/${srv}.initd-r1 ${srv}
|
|
|
|
newins "${FILESDIR}"/${srv}.logrotate ${srv}
|
|
done
|
|
fi
|
|
}
|
|
|
|
pkg_postinst() {
|
|
xdg_pkg_postinst
|
|
|
|
if ver_replacing -lt 2.0 ; then
|
|
elog "Major changes in 2.0:"
|
|
elog "https://github.com/syncthing/syncthing/blob/v${PV}/relnotes/v2.0.md"
|
|
fi
|
|
}
|