zerotier-one/zerotier-one.spec

106 lines
2.8 KiB
RPMSpec

Name: zerotier-one
Version: 1.12.2
Release: alt1
Summary: ZeroTier network virtualization service
License: BUSL-1.1
#ZeroTier BUSL 1.1
Group: Networking/Other
Url: https://www.zerotier.com
# Source-url: # upstream submodule packaged with ./*.sh
Source: %name-%version.tar
# Cargo modules for build rust code in the zeroidc dir
Source1: %name-development-%version.tar
ExcludeArch: armh
BuildRequires: udev-rules clang libstdc++-devel
BuildRequires: rust-cargo
BuildRequires: libssl-devel libminiupnpc-devel
# for man pages
BuildRequires: /usr/bin/ronn
Requires: udev-rules
Requires(pre): %_sbindir/useradd, %_bindir/getent
%description
ZeroTier is a software defined networking layer for Earth.
It can be used for on-premise network virtualization, as a peer to peer VPN
for mobile teams, for hybrid or multi-data-center cloud deployments, or just
about anywhere else secure software defined virtual networking is useful.
This is our OS-level client service. It allows Mac, Linux, Windows,
FreeBSD, and soon other types of clients to join ZeroTier virtual networks
like conventional VPNs or VLANs. It can run on native systems, VMs, or
containers (Docker, OpenVZ, etc.).
%prep
%setup -a1
mkdir -p zeroidc/.cargo
###
grep 'vendored-sources' zeroidc/.cargo/config.toml || cat >> zeroidc/.cargo/config.toml <<EOF
[source.crates-io]
replace-with = "vendored-sources"
[source."git+https://github.com/glimberg/rust-jwt"]
git = "https://github.com/glimberg/rust-jwt.git"
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "$PWD/vendor"
[net]
offline = true
EOF
#==
cp -a vendor/time vendor/time-patched
perl -0777 -pi -e 's/let items = format_items\s*\n\s*\.map\(\|res\|\s*res\.map\(Into::into\)\)\s*\n\s*\.collect::<Result<Box<_>, _>>\(\)\?\s*;/let items = format_items.collect::<Result<Box<_>, _>>()?;/s' \
vendor/time-patched/src/format_description/parse/mod.rs
###
grep zeroidc/Cargo.toml 'time-patched' || cat >> zeroidc/Cargo.toml <<EOF
[patch.crates-io]
time = { path = "../vendor/time-patched" }
EOF
#==
%build
%make_build ZT_USE_MINIUPNPC=1 %{?_smp_mflags} one
%pre
%_bindir/getent passwd zerotier-one || %_sbindir/useradd -r -d /var/lib/zerotier-one -s /sbin/nologin zerotier-one
%install
%makeinstall_std
mkdir -p %buildroot%_unitdir/
cp debian/zerotier-one.service %buildroot%_unitdir/%name.service
%files
%{_sbindir}/*
#%{_mandir}/*
%{_mandir}/man1/*
%{_mandir}/man8/zerotier-one.8.xz
%{_localstatedir}/*
%{_unitdir}/%{name}.service
%post
%systemd_post zerotier-one.service
%preun
%systemd_preun zerotier-one.service
%postun
%systemd_postun_with_restart zerotier-one.service
%changelog
* Mon Dec 25 2023 Vitaly Lipatov <lav@altlinux.ru> 1.12.2-alt1
- new version 1.12.2 (with rpmrb script)
* Sun Apr 23 2023 Vitaly Lipatov <lav@altlinux.ru> 1.10.6-alt1
- initial build for ALT Sisyphus