%global forgeurl https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake %global version0 2.10.1 %global date 20240905 %global commit 1f472b16a662fddd297e343acf7e5c820a713c90 %global _forgeversionsuffix %{scm}%(printf %.7s %{commit}) %global gomodulesmode GO111MODULE=on # اول این را صدا بزنید تا متغیرهای forge ساخته شوند %forgemeta Name: snowflake Version: %{forgeversion} Release: %autorelease Summary: Tor pluggable transport relying on WebRTC License: BSD-3-Clause URL: %{forgeurl} Source0: %{forgesource} Source1: go-vendor-tools-snowflake.toml Source2: vendor-snowflake.tar.bz2 BuildRequires: go-rpm-macros %description Snowflake is a pluggable transport for Tor that relies on WebRTC to route traffic through ephemeral proxies. %prep %forgeautosetup # استخراج آرشیو vendor آفلاین در ریشه کد منبع (Source2) %setup -q -T -D -a 2 %build # اعمال فلگ‌های استاندارد فدورا به همراه حالت کاملاً آفلاین وندور export GOFLAGS="%{?goflags} -trimpath -mod=vendor" export GO_LDFLAGS="-s -w" for MODULE in broker client probetest proxy server ; do %gobuild -o %{name}-${MODULE} ./${MODULE} done %install # ۱. نصب فایل‌های باینری اجرایی install -d -m 0755 %{buildroot}%{_bindir} for MODULE in broker client probetest proxy server ; do install -p -m 0755 %{name}-${MODULE} %{buildroot}%{_bindir}/ done # ۲. نصب صفحات راهنما (Man pages) install -d -m 0755 %{buildroot}%{_mandir}/man1 for MODULE in client proxy ; do install -p -m 0644 doc/%{name}-${MODULE}.1 %{buildroot}%{_mandir}/man1/ done # ۳. نصب مستندات و فایل‌های کانفیگ نمونه torrc install -d -m 0755 %{buildroot}%{_pkgdocdir} install -p -m 0644 README.md doc/broker-spec.txt doc/rendezvous-with-sqs.md doc/using-the-snowflake-library.md %{buildroot}%{_pkgdocdir}/ for MODULE in broker client probetest proxy server ; do install -p -m 0644 ${MODULE}/README.md %{buildroot}%{_pkgdocdir}/README-${MODULE}.md done for MODULE in client server ; do install -p -m 0644 ${MODULE}/torrc %{buildroot}%{_pkgdocdir}/${MODULE}.torrc done %files %license LICENSE %doc %{_pkgdocdir} %{_bindir}/snowflake-broker %{_bindir}/snowflake-client %{_bindir}/snowflake-probetest %{_bindir}/snowflake-proxy %{_bindir}/snowflake-server %{_mandir}/man1/snowflake-client.1* %{_mandir}/man1/snowflake-proxy.1* %changelog %autochangelog