%global debug_package %{nil} Name: yggdrasil Version: 0.5.14 Release: 2%{?dist} Summary: An experiment in scalable routing as an encrypted IPv6 overlay network License: LGPL-3.0-only URL: https://yggdrasil-network.github.io/ Source0: https://github.com/yggdrasil-network/yggdrasil-go/archive/refs/tags/v%{version}.tar.gz Source1: yggdrasil.sysusers %{?systemd_requires} BuildRequires: systemd-rpm-macros BuildRequires: golang >= 1.25 BuildRequires: git-core %description Yggdrasil is a proof-of-concept to explore a wholly different approach to network routing. Whereas current computer networks depend heavily on very centralised design and configuration, Yggdrasil breaks this mould by making use of a global spanning tree to form a scalable IPv6 encrypted mesh network. %prep %setup -qn yggdrasil-go-%{version} %build export GOPROXY="https://proxy.golang.org,direct" export GOSUMDB="sum.golang.org" export CGO_CPPFLAGS="${CPPFLAGS}" export CGO_CFLAGS="${CFLAGS}" export CGO_CXXFLAGS="${CXXFLAGS}" export CGO_LDFLAGS="${LDFLAGS}" for cmd in ./cmd/*; do go build \ -buildmode=pie \ -trimpath \ -mod=readonly \ -ldflags "-w -s -linkmode=external \ -X github.com/yggdrasil-network/yggdrasil-go/src/version.buildName=yggdrasil \ -X github.com/yggdrasil-network/yggdrasil-go/src/version.buildVersion=%{version}" \ -v \ -o "$(basename "$cmd")" \ "$cmd" done %install install -D -p -m 0755 yggdrasil %{buildroot}%{_bindir}/yggdrasil install -D -p -m 0755 yggdrasilctl %{buildroot}%{_bindir}/yggdrasilctl install -D -p -m 0755 genkeys %{buildroot}%{_bindir}/yggdrasil-genkeys install -D -p -m 0644 contrib/systemd/yggdrasil.service %{buildroot}%{_unitdir}/yggdrasil.service install -D -p -m 0644 contrib/systemd/yggdrasil-default-config.service %{buildroot}%{_unitdir}/yggdrasil-default-config.service install -D -p -m 0644 %{S:1} %{buildroot}%{_sysusersdir}/yggdrasil.conf %check %pre %sysusers_create_compat %{S:1} %post %systemd_post yggdrasil.service %preun %systemd_preun yggdrasil.service %postun %systemd_postun_with_restart yggdrasil.service %files %{_bindir}/yggdrasil %{_bindir}/yggdrasilctl %{_bindir}/yggdrasil-genkeys %{_unitdir}/yggdrasil.service %{_unitdir}/yggdrasil-default-config.service %{_sysusersdir}/yggdrasil.conf %license LICENSE %doc README.md %changelog