%global forgeurl https://github.com/SagerNet/sing-box %global version %(date +%Y%m%d) %global commit ebf8a213b67a26f7ad8b4a86d1764e23a4fa6eb1 %global _forgeversionsuffix %{scm}%(printf %.7s %{commit}) %global gomodulesmode GO111MODULE=on %global source_date_epoch_from_changelog 0 %global _enable_debug_packages 0 %forgemeta Name: sing-box Version: %{forgeversion} Release: %{autorelease} Summary: Universal proxy platform License: GPL-3.0-or-later URL: %{forgeurl} Source0: %{forgesource} BuildRequires: git-core BuildRequires: golang-bin < 1.25 BuildRequires: go-rpm-macros BuildRequires: systemd-rpm-macros %description sing-box is a multiprotocol proxy platform. It allows to circumvent censorship and data discrimination. %prep %forgeautosetup %build export GOPROXY="https://proxy.golang.org,direct" export GOFLAGS="-trimpath" export GO_LDFLAGS="-s -w $(%__cat release/LDFLAGS)" export GO_BUILDTAGS="$(%__sed -e 's/,/ /g' release/DEFAULT_BUILD_TAGS_OTHERS)" %gobuild -o %{name} ./cmd/%{name} %install %__install -p -m 644 -D -t %{buildroot}%{_sysconfdir}/%{name} release/config/config.json %__install -p -m 644 -D -t %{buildroot}%{_unitdir} release/config/%{name}*.service %__install -p -m 755 -D -t %{buildroot}%{_bindir} %{name} %__install -p -m 644 -D -t %{buildroot}%{_licensedir}/%{name} LICENSE %__install -p -m 644 -D -t %{buildroot}%{_pkgdocdir} README.md %__install -p -m 644 -D -t %{buildroot}%{_datadir}/polkit-1/rules.d release/config/%{name}.rules %__install -p -m 644 -D -T release/config/%{name}.sysusers %{buildroot}%{_sysusersdir}/%{name}.conf %__install -p -m 644 -D -T release/config/%{name}-split-dns.xml %{buildroot}%{_datadir}/dbus-1/system.d/%{name}.conf %__install -p -m 644 -D -T release/completions/%{name}.bash %{buildroot}%{_datadir}/bash-completion/completions/%{name} %__install -p -m 644 -D -T release/completions/%{name}.fish %{buildroot}%{_datadir}/fish/vendor_completions.d/%{name} %__install -p -m 644 -D -T release/completions/%{name}.zsh %{buildroot}%{_datadir}/zsh/site-functions/_%{name} %__cp -f -R -t %{buildroot}%{_pkgdocdir} docs/* %post %systemd_post %{name}.service %{name}@.service %preun %systemd_preun %{name}.service %{name}@.service %postun %systemd_postun_with_restart %{name}.service %{name}@\*.service %files %license %{_licensedir}/* %doc %{_pkgdocdir} %config(noreplace) %{_sysconfdir}/* %{_sysusersdir}/* %{_unitdir}/* %{_bindir}/* %{_datadir}/dbus-1/system.d/* %{_datadir}/polkit-1/rules.d/* %{_datadir}/bash-completion/completions/* %{_datadir}/fish/vendor_completions.d/* %{_datadir}/zsh/site-functions/*