# Not using %%gometa, which would define this. %global gobuilddir %{_builddir}/_gobuild %global vendor_license 0BSD AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-3.0-only AND GPL-3.0-or-later AND ISC AND MIT Name: ooniprobe Version: 3.31.0 Release: 1%{?dist} Summary: Measure internet censorship from your own network # probe-cli is GPL-3.0-only (its LICENSE is the bare GPL-3.0 text; the # sources carry no version statement). The binaries embed the DB-IP Lite # country and ASN database from github.com/ooni/probe-assets, which is # CC-BY-4.0. The rest comes from the vendored Go modules (go_vendor_license # report, rawhide, 2026-10-31); %%check verifies that expression. License: CC-BY-4.0 AND %{vendor_license} URL: https://ooni.org/ Source0: https://github.com/ooni/probe-cli/archive/v%{version}/probe-cli-%{version}.tar.gz # go_vendor_archive create --config go-vendor-tools.toml \ # -O probe-cli-%%{version}-vendor.tar.bz2 probe-cli-%%{version}.tar.gz Source1: probe-cli-%{version}-vendor.tar.bz2 Source2: go-vendor-tools.toml ExclusiveArch: %{golang_arches} BuildRequires: golang >= 1.26 BuildRequires: go-rpm-macros BuildRequires: go-vendor-tools # mattn/go-sqlite3 (cgo) for the results database, built against the # system library (libsqlite3 tag) rather than its bundled copy BuildRequires: gcc BuildRequires: pkgconfig(sqlite3) # The tor and torsf experiments start the tor binary. Recommends: tor %description OONI Probe runs network measurement tests that show whether websites, instant messaging apps and censorship circumvention tools are blocked from where you are, and whether there is a middlebox tampering with your traffic. Results go to the Open Observatory of Network Interference, which publishes them as open data for researchers, journalists and human rights groups. This package contains ooniprobe, the command-line client, and miniooni, the research client that runs single experiments with custom inputs. Measurements are public and may reveal your network (ASN) and country. Read https://ooni.org/about/risks/ before running OONI Probe. %prep %autosetup -n probe-cli-%{version} tar -xf %{SOURCE1} # Psiphon is disabled (see go-vendor-tools.toml); its modules are not # vendored. rm internal/feature/psiphonfeat/psiphon_enabled.go %if %{fedora} < 45 # Upstream's go.mod asks for Go 1.27, but no vendored module needs more # than 1.26, which is what Fedora 43 and 44 ship. go mod edit -go=1.26.0 -toolchain=none %endif %generate_buildrequires %go_vendor_license_buildrequires -c %{SOURCE2} %build %global gomodulesmode GO111MODULE=on # nouserauth: the anonymous-credentials library is Rust (ooniprobe-rs, not # packaged). Without it measurements are submitted without a credential, # which is what the client also does when the backend offers none. export BUILDTAGS="ooni_feature_disable_psiphon libsqlite3 nouserauth" %gobuild -o %{gobuilddir}/bin/ooniprobe ./cmd/ooniprobe %gobuild -o %{gobuilddir}/bin/miniooni ./internal/cmd/miniooni %install install -Dpm 0755 %{gobuilddir}/bin/ooniprobe %{buildroot}%{_bindir}/ooniprobe install -Dpm 0755 %{gobuilddir}/bin/miniooni %{buildroot}%{_bindir}/miniooni %go_vendor_license_install -c %{SOURCE2} %check %go_vendor_license_check -c %{SOURCE2} %{vendor_license} %{buildroot}%{_bindir}/ooniprobe version | grep -Fx '%{version}' %{buildroot}%{_bindir}/miniooni --version 2>&1 | grep -F '%{version}' %files -f %{go_vendor_license_filelist} %doc Readme.md NOTICE.md %{_bindir}/ooniprobe %{_bindir}/miniooni %changelog * Sat Oct 31 2026 Morgan Hough - 3.31.0-1 - Initial package