%global forgeurl https://github.com/Psiphon-Labs/psiphon-tunnel-core %global version 2.0.32 %global commit 2e9065fd6f1fa7bf9a5753e67d3ac381206f84d0 %global date 20250611 %global gomodulesmode GO111MODULE=on %global source_date_epoch_from_changelog 0 %global _enable_debug_packages 0 %forgemeta Name: psitun Version: %{forgeversion} Release: %{autorelease} Summary: Psiphon Tunnel obfuscating proxy License: GPL-3.0-only URL: %{forgeurl} Source0: %{forgesource} Source1: %{name}-client@.service Source2: %{name}-server.service Source3: %{name}.howto BuildRequires: git-core BuildRequires: golang-bin BuildRequires: go-rpm-macros BuildRequires: systemd-rpm-macros %description Psiphon Tunnel is an obfuscating proxy solution. It allows to circumvent censorship and data discrimination. %prep %forgesetup %__mv -f ConsoleClient client %__mv -f Server server %build export GOPROXY="https://proxy.golang.org,direct" export GOFLAGS="-trimpath" export GO_LDFLAGS="-s -w" for CMD in client server do %gobuild -o %{name}-${CMD} ./${CMD} done %install for CMD in client server do %__install -p -d -m 755 %{buildroot}%{_sysconfdir}/%{name}/${CMD} %__install -p -D -m 755 -t %{buildroot}%{_bindir} %{name}-${CMD} %__install -p -D -m 644 ${CMD}/README.md %{buildroot}%{_pkgdocdir}/README-${CMD}.md done %__install -p -d -m 755 %{buildroot}%{_sharedstatedir}/%{name}/client %__install -p -D -m 644 -t %{buildroot}%{_unitdir} %{SOURCE1} %{SOURCE2} %__install -p -D -m 644 -t %{buildroot}%{_pkgdocdir} %{SOURCE3} README.md %post for UNIT in $(systemctl -P Id show %{name}-\*.service) do %systemd_post ${UNIT} done %preun for UNIT in $(systemctl -P Id show %{name}-\*.service) do %systemd_preun ${UNIT} done %postun for UNIT in $(systemctl -P Id show %{name}-\*.service) do %systemd_postun_with_restart ${UNIT} done %files %license LICENSE %doc %{_pkgdocdir} %{_sysconfdir}/* %{_sharedstatedir}/* %{_unitdir}/* %{_bindir}/*