diff options
Diffstat (limited to 'net-p2p/syncthing/syncthing-1.27.9.ebuild')
-rw-r--r-- | net-p2p/syncthing/syncthing-1.27.9.ebuild | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/net-p2p/syncthing/syncthing-1.27.9.ebuild b/net-p2p/syncthing/syncthing-1.27.9.ebuild new file mode 100644 index 000000000000..d45dff50f667 --- /dev/null +++ b/net-p2p/syncthing/syncthing-1.27.9.ebuild @@ -0,0 +1,114 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit desktop go-module systemd xdg-utils + +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 -> ${P}.tar.gz" + +S="${WORKDIR}"/${PN} + +LICENSE="Apache-2.0 BSD BSD-2 CC0-1.0 ISC MIT MPL-2.0 Unlicense" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +IUSE="selinux tools" + +RDEPEND="acct-group/syncthing + acct-user/syncthing + tools? ( >=acct-user/stdiscosrv-1 + >=acct-user/strelaysrv-1 ) + selinux? ( sec-policy/selinux-syncthing )" +BDEPEND=">=dev-lang/go-1.21.0" + +DOCS=( README.md AUTHORS CONTRIBUTING.md ) + +PATCHES=( + "${FILESDIR}"/${PN}-1.3.4-TestIssue5063_timeout.patch + "${FILESDIR}"/${PN}-1.18.4-tool_users.patch + "${FILESDIR}"/${PN}-1.23.2-tests_race.patch +) + +src_prepare() { + # Bug #679280 + xdg_environment_reset + + default + sed -i \ + 's|^ExecStart=.*|ExecStart=/usr/libexec/syncthing/stdiscosrv|' \ + cmd/stdiscosrv/etc/linux-systemd/stdiscosrv.service \ + || die + sed -i \ + 's|^ExecStart=.*|ExecStart=/usr/libexec/syncthing/strelaysrv|' \ + cmd/strelaysrv/etc/linux-systemd/strelaysrv.service \ + || die +} + +src_compile() { + GOARCH= go run build.go -version "v${PV}" -no-upgrade -build-out=bin/ \ + ${GOARCH:+-goarch="${GOARCH}"} \ + build $(usex tools "all" "") || die "build failed" +} + +src_test() { + go run build.go test || die "test failed" +} + +src_install() { + local icon_size + + doman man/*.[157] + einstalldocs + + dobin bin/syncthing + + domenu etc/linux-desktop/*.desktop + 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}{@,-resume}.service + systemd_douserunit etc/linux-systemd/user/${PN}.service + newconfd "${FILESDIR}"/${PN}.confd ${PN} + newinitd "${FILESDIR}"/${PN}.initd-r2 ${PN} + + 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/syncthing + local exe + for exe in bin/* ; do + [[ "${exe}" == "bin/syncthing" ]] || doexe "${exe}" + done + + systemd_dounit cmd/stdiscosrv/etc/linux-systemd/stdiscosrv.service + newconfd "${FILESDIR}"/stdiscosrv.confd stdiscosrv + newinitd "${FILESDIR}"/stdiscosrv.initd-r1 stdiscosrv + + systemd_dounit cmd/strelaysrv/etc/linux-systemd/strelaysrv.service + newconfd "${FILESDIR}"/strelaysrv.confd strelaysrv + newinitd "${FILESDIR}"/strelaysrv.initd-r1 strelaysrv + + insinto /etc/logrotate.d + newins "${FILESDIR}"/stdiscosrv.logrotate strelaysrv + newins "${FILESDIR}"/strelaysrv.logrotate strelaysrv + fi +} + +pkg_postinst() { + xdg_desktop_database_update + xdg_icon_cache_update +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_icon_cache_update +} |