# Not using %%gometa, which would define this. %global gobuilddir %{_builddir}/_gobuild Name: lyrebird Version: 0.9.0 Release: 1%{?dist} Summary: Pluggable transports for Tor: obfs4, meek, Snowflake and WebTunnel # Lyrebird is BSD-2-Clause, with BSD-3-Clause code derived from Go, and two # GPL-3.0-or-later parts (transports/meeklite, internal/x25519ell2) linked # into the same binary. Vendored Go modules: go_vendor_license report, # Fedora 44, 2026-10-30; %%check verifies the expression. License: BSD-2-Clause AND BSD-3-Clause AND GPL-3.0-or-later AND 0BSD AND Apache-2.0 AND CC0-1.0 AND MIT URL: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird Source0: %{url}/-/archive/%{version}/%{name}-%{version}.tar.gz # go_vendor_archive create --config go-vendor-tools.toml \ # -O lyrebird-%%{version}-vendor.tar.bz2 lyrebird-%%{version} Source1: %{name}-%{version}-vendor.tar.bz2 Source2: go-vendor-tools.toml ExclusiveArch: %{golang_arches} BuildRequires: golang >= 1.26 BuildRequires: go-rpm-macros BuildRequires: go-vendor-tools %description Lyrebird is the Tor Project's pluggable transport program, a fork of obfs4proxy. It runs as a Tor ClientTransportPlugin or ServerTransportPlugin and implements obfs4, meek (domain fronting), Snowflake (WebRTC) and WebTunnel (HTTPS), so one binary serves every bridge type Tor Browser offers. Fedora's obfs4 package (obfs4proxy) can be installed alongside it. %prep %autosetup tar -xf %{SOURCE1} %generate_buildrequires %go_vendor_license_buildrequires -c %{SOURCE2} %build %global gomodulesmode GO111MODULE=on export GO_LDFLAGS="-X main.lyrebirdVersion=%{version}" %gobuild -o %{gobuilddir}/bin/lyrebird ./cmd/lyrebird %install install -Dpm 0755 %{gobuilddir}/bin/lyrebird %{buildroot}%{_bindir}/lyrebird install -Dpm 0644 doc/lyrebird.1 %{buildroot}%{_mandir}/man1/lyrebird.1 %go_vendor_license_install -c %{SOURCE2} %check %go_vendor_license_check -c %{SOURCE2} BSD-2-Clause AND BSD-3-Clause AND GPL-3.0-or-later AND 0BSD AND Apache-2.0 AND CC0-1.0 AND MIT %{buildroot}%{_bindir}/lyrebird -version 2>&1 | grep -Fx 'lyrebird %{version}' GO111MODULE=on GOFLAGS=-mod=vendor go test ./... %files -f %{go_vendor_license_filelist} %doc README.md ChangeLog doc/obfs4-spec.txt %{_bindir}/lyrebird %{_mandir}/man1/lyrebird.1* %changelog * Fri Oct 30 2026 Morgan Hough - 0.9.0-1 - Initial package