Blob Blame History Raw
# debuginfo doesn't work yet
%global debug_package %{nil}

%global netavark_version v1.1.0
%global netavark_branch v1.1.0-rhel
%global netavark_commit0 e868e02552bd1be28d8eb6a193f2e92b0e0643bf
%global netavark_shortcommit0 %(c=%{netavark_commit0}; echo ${c:0:7})

Epoch: 2
Name: netavark
Version: 1.1.0
Release: 7%{?dist}
License: ASL 2.0 and BSD and MIT
ExclusiveArch: %{rust_arches}
Summary: OCI network stack
URL: https://github.com/containers/%{name}
%if 0%{?netavark_branch:1}
Source0: https://github.com/containers/netavark/tarball/%{netavark_commit0}/%{netavark_branch}-%{netavark_shortcommit0}.tar.gz
%else
Source0: https://github.com/containers/netavark/archive/%{netavark_commit0}/netavark-%{netavark_version}-%{netavark_shortcommit0}.tar.gz
%endif
Source1: https://github.com/containers/netavark/releases/download/%{netavark_version}/netavark-%{netavark_version}-vendor.tar.gz
Source2: netavark.1
BuildRequires: cargo
Recommends: aardvark-dns >= 1.0.3
Provides: container-network-stack = 2
BuildRequires: make
BuildRequires: rust-srpm-macros
BuildRequires: git-core

%description
%{summary}

Netavark is a rust based network stack for containers. It is being
designed to work with Podman but is also applicable for other OCI
container management applications.

Netavark is a tool for configuring networking for Linux containers.
Its features include:
* Configuration of container networks via JSON configuration file
* Creation and management of required network interfaces,
    including MACVLAN networks
* All required firewall configuration to perform NAT and port
    forwarding as required for containers
* Support for iptables and firewalld at present, with support
    for nftables planned in a future release
* Support for rootless containers
* Support for IPv4 and IPv6
* Support for container DNS resolution via aardvark-dns.

%prep
tar fx %{SOURCE0}
%if 0%{?netavark_branch:1}
pushd containers-netavark-%{netavark_shortcommit0}
%else
pushd netavark-%{netavark_commit0}
%endif

tar fx %{SOURCE1}
mkdir -p .cargo

cat >.cargo/config << EOF
[source.crates-io]
replace-with = "vendored-sources"

[source.vendored-sources]
directory = "vendor"
EOF

%build
%if 0%{?netavark_branch:1}
pushd containers-netavark-%{netavark_shortcommit0}
%else
pushd netavark-%{netavark_commit0}
%endif
%__scm_setup_git -q
%{__make} build

cd docs
cp %{SOURCE2} .

%install
%if 0%{?netavark_branch:1}
pushd containers-netavark-%{netavark_shortcommit0}
%else
pushd netavark-%{netavark_commit0}
%endif
%{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} install

%files
%if 0%{?netavark_branch:1}
%license containers-netavark-%{netavark_shortcommit0}/LICENSE
%else
%license netavark-%{netavark_commit0}/LICENSE
%endif
%dir %{_libexecdir}/podman
%{_libexecdir}/podman/%{name}
%{_mandir}/man1/%{name}.1*

%changelog
* Thu Oct 20 2022 Jindrich Novy <jnovy@redhat.com> - 2:1.1.0-7
- fix "Two aardvark-dns instances trying to use the same port
  on the same interface"
- Resolves: #2136306

* Fri Aug 05 2022 Jindrich Novy <jnovy@redhat.com> - 2:1.1.0-6
- add gating.yaml
- Related: #2061316

* Fri Aug 05 2022 Jindrich Novy <jnovy@redhat.com> - 2:1.1.0-5
- properly disable i686
- Related: #2061316

* Thu Aug 04 2022 Jindrich Novy <jnovy@redhat.com> - 2:1.1.0-4
- manually exclude i686 as build still fails
- Related: #2061316

* Thu Aug 04 2022 Jindrich Novy <jnovy@redhat.com> - 2:1.1.0-3
- set Epoch to preserve update path and build for go arches only
- Related: #2061316

* Thu Aug 04 2022 Jindrich Novy <jnovy@redhat.com> - 1.1.0-2
- fix deps to go-md2man
- Related: #2061316

* Wed Aug 03 2022 Jindrich Novy <jnovy@redhat.com> - 1.1.0-1
- initial import
- Related: #2061316