From 7b0418675ac562e44bacd326106769102bfe5186 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 14 May 2025 06:33:04 +0000 Subject: [PATCH] import CS netavark-1.14.1-1.el10 --- .gitignore | 4 +- .netavark.metadata | 2 - SOURCES/netavark.1 | 51 --------------- SPECS/netavark.spec | 92 -------------------------- netavark.spec | 156 ++++++++++++++++++++++++++++++++++++++++++++ sources | 2 + 6 files changed, 160 insertions(+), 147 deletions(-) delete mode 100644 .netavark.metadata delete mode 100644 SOURCES/netavark.1 delete mode 100644 SPECS/netavark.spec create mode 100644 netavark.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index b34ec1b..c9e110d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/1.1.0.tar.gz -SOURCES/netavark-v1.1.0-vendor.tar.gz +netavark-v1.14.1-vendor.tar.gz +v1.14.1.tar.gz diff --git a/.netavark.metadata b/.netavark.metadata deleted file mode 100644 index 6c6f2d7..0000000 --- a/.netavark.metadata +++ /dev/null @@ -1,2 +0,0 @@ -5f22fd74fc25d71335f8ca5cd5aa74c383d30576 SOURCES/1.1.0.tar.gz -63dcfdcb2b5917a213f89469aa4e643f92230410 SOURCES/netavark-v1.1.0-vendor.tar.gz diff --git a/SOURCES/netavark.1 b/SOURCES/netavark.1 deleted file mode 100644 index 0c505ea..0000000 --- a/SOURCES/netavark.1 +++ /dev/null @@ -1,51 +0,0 @@ -.nh -.TH netavark(1) -.SH NAME -.PP -netavark - Configure a given network namespace for use by a container - -.SH SYNOPSIS -.PP -\fBnetavark\fP [\fIoptions\fP] \fIcommand\fP \fInetwork namespace path\fP - -.SH DESCRIPTION -.PP -Netavark configures a network namespace according to a configuration read from STDIN. The configuration is JSON formatted. - -.SH GLOBAL OPTIONS -.SS \fB--file\fP, \fB-f\fP -.PP -Instead of reading from STDIN, read the configuration to be applied from the given file. \fB-f -\fP may also be used to flag reading from STDIN. - -.SH COMMANDS -.SS netavark setup -.PP -The setup command configures the given network namespace with the given configuration, creating any interfaces and firewall rules necessary. - -.SS netavark teardown -.PP -The teardown command is the inverse of the setup command, undoing any configuration applied. Some interfaces may not be deleted (bridge interfaces, for example, will not be removed). - -.SS CONFIGURATION FORMAT -.PP -The configuration accepted is the same for both setup and teardown. It is JSON formatted. - -.PP -Format is https://github.com/containers/podman/blob/cd7b48198c38c5028540e85dc72dd3406f4318f0/libpod/network/types/network.go#L164-L173 but we will also send a Networks array including all the network definitions (https://github.com/containers/podman/blob/cd7b48198c38c5028540e85dc72dd3406f4318f0/libpod/network/types/network.go#L32-L62) -TODO: Transcribe configuration into here in a nice tabular format - -.SH EXAMPLE -.PP -netavark setup /run/user/1000/podman/netns/d11d1f9c499d - -.PP -netavark -f /run/podman/828b0508ae64.conf teardown /run/podman/netns/828b0508ae64 - -.SH SEE ALSO -.PP -podman(1) - -.SH HISTORY -.PP -September 2021, Originally compiled by Matt Heon mheon@redhat.com -\[la]mailto:mheon@redhat.com\[ra] diff --git a/SPECS/netavark.spec b/SPECS/netavark.spec deleted file mode 100644 index e0b950f..0000000 --- a/SPECS/netavark.spec +++ /dev/null @@ -1,92 +0,0 @@ -# debuginfo doesn't work yet -%global debug_package %{nil} - -Epoch: 2 -Name: netavark -Version: 1.1.0 -Release: 6%{?dist} -License: ASL 2.0 and BSD and MIT -ExclusiveArch: %{rust_arches} -Summary: OCI network stack -URL: https://github.com/containers/%{name} -Source0: %{url}/archive/v%{version}/%{version}.tar.gz -Source1: %{url}/releases/download/v%{version}/%{name}-v%{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 -%autosetup -Sgit -tar fx %{SOURCE1} -mkdir -p .cargo - -cat >.cargo/config << EOF -[source.crates-io] -replace-with = "vendored-sources" - -[source.vendored-sources] -directory = "vendor" -EOF - -%build -%{__make} build - -cd docs -cp %{SOURCE2} . - -%install -%{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} install - -%files -%license LICENSE -%dir %{_libexecdir}/podman -%{_libexecdir}/podman/%{name} -%{_mandir}/man1/%{name}.1* - -%changelog -* Tue Aug 09 2022 Jindrich Novy - 2:1.1.0-6 -- bump Epoch to preserve upgrade path -- Related: #2061390 - -* Tue Aug 09 2022 Jindrich Novy - 1.1.0-5 -- remove dependency on md2man -- Related: #2061390 - -* Tue Aug 09 2022 Jindrich Novy - 1.1.0-4 -- fix arches -- Related: #2061390 - -* Tue Aug 09 2022 Jindrich Novy - 1.1.0-3 -- add gating.yaml -- Related: #2061390 - -* Thu Aug 04 2022 Jindrich Novy - 1.1.0-2 -- require /usr/bin/go-md2man directly - -* Wed Aug 03 2022 Jindrich Novy - 1.1.0-1 -- initial import -- Related: #2061390 diff --git a/netavark.spec b/netavark.spec new file mode 100644 index 0000000..32abcea --- /dev/null +++ b/netavark.spec @@ -0,0 +1,156 @@ +# Building from fedora dependencies not possible +# Latest upstream rtnetlink frequently required +# sha2, zbus, zvariant are currently out of date + +%global with_debug 1 + +%if 0%{?with_debug} +%global _find_debuginfo_dwz_opts %{nil} +%global _dwz_low_mem_die_limit 0 +%else +%global debug_package %{nil} +%endif + +# Minimum X.Y dep for aardvark-dns +%define major_minor %((v=%{version}; echo ${v%.*})) + +# Set default firewall to nftables on CentOS Stream 10+, RHEL 10+, Fedora 41+ +# and default to iptables on all other environments +# The `rhel` macro is defined on CentOS Stream, RHEL as well as Fedora ELN. +%if (%{defined rhel} && 0%{?rhel} >= 10) || (%{defined fedora} && 0%{?fedora} >= 41) +%define default_fw nftables +%else +%define default_fw iptables +%endif + +Name: netavark +# Set a different Epoch for copr builds +%if %{defined copr_username} +Epoch: 102 +%else +Epoch: 2 +%endif +Version: 1.14.1 +Release: 1%{?dist} +# The `AND` needs to be uppercase in the License for SPDX compatibility +License: Apache-2.0 AND BSD-3-Clause AND MIT +%if %{defined golang_arches_future} +ExclusiveArch: %{golang_arches_future} +%else +ExclusiveArch: aarch64 ppc64le s390x x86_64 +%endif +Summary: OCI network stack +URL: https://github.com/containers/%{name} +# Tarballs fetched from upstream's release page +Source0: %{url}/archive/v%{version}.tar.gz +Source1: %{url}/releases/download/v%{version}/%{name}-v%{version}-vendor.tar.gz +BuildRequires: cargo +BuildRequires: %{_bindir}/go-md2man +# aardvark-dns and %%{name} are usually released in sync +Requires: aardvark-dns >= %{epoch}:%{major_minor} +Provides: container-network-stack = 2 +%if "%{default_fw}" == "nftables" +Requires: nftables +%else +Requires: iptables +%endif +BuildRequires: make +BuildRequires: protobuf-c +BuildRequires: protobuf-compiler +%if %{defined rhel} +# rust-toolset requires the `local` repo enabled on non-koji ELN build environments +BuildRequires: rust-toolset +%else +BuildRequires: rust-packaging +BuildRequires: rust-srpm-macros +%endif +BuildRequires: git-core +BuildRequires: systemd +BuildRequires: systemd-devel + +%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 +%autosetup -Sgit %{name}-%{version} +# Following steps are only required on environments like koji which have no +# network access and thus depend on the vendored tarball. Copr pulls +# dependencies directly from the network. +%if !%{defined copr_username} +tar fx %{SOURCE1} +%if 0%{?fedora} || 0%{?rhel} >= 10 +%cargo_prep -v vendor +%else +%cargo_prep -V 1 +%endif +%endif + +%build +NETAVARK_DEFAULT_FW=%{default_fw} %{__make} CARGO="%{__cargo}" build +%if (0%{?fedora} || 0%{?rhel} >= 10) && !%{defined copr_username} +%cargo_license_summary +%{cargo_license} > LICENSE.dependencies +%cargo_vendor_manifest +%endif + +cd docs +%{__make} + +%install +%{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} install + +%preun +%systemd_preun %{name}-dhcp-proxy.service +%systemd_preun %{name}-firewalld-reload.service + +%postun +%systemd_postun %{name}-dhcp-proxy.service +%systemd_postun %{name}-firewalld-reload.service + +%files +%license LICENSE +%if (0%{?fedora} || 0%{?rhel} >= 10) && !%{defined copr_username} +%license LICENSE.dependencies +%license cargo-vendor.txt +%endif +%dir %{_libexecdir}/podman +%{_libexecdir}/podman/%{name}* +%{_mandir}/man1/%{name}.1* +%{_mandir}/man7/%{name}-firewalld.7* +%{_unitdir}/%{name}-dhcp-proxy.service +%{_unitdir}/%{name}-dhcp-proxy.socket +%{_unitdir}/%{name}-firewalld-reload.service + +%changelog +* Thu Mar 20 2025 Jindrich Novy - 2:1.14.1-1 +- update to https://github.com/containers/netavark/releases/tag/v1.14.1 +- Related: RHEL-80817 + +* Mon Feb 10 2025 Jindrich Novy - 2:1.14.0-1 +- update to https://github.com/containers/netavark/releases/tag/v1.14.0 +- Related: RHEL-58990 + +* Fri Dec 06 2024 Jindrich Novy - 2:1.13.1-1 +- update to https://github.com/containers/netavark/releases/tag/v1.13.1 +- Related: RHEL-58990 + +* Wed Oct 30 2024 Jindrich Novy - 2:1.13.0-1 +- update to https://github.com/containers/netavark/releases/tag/v1.13.0 +- Resolves: RHEL-65324 diff --git a/sources b/sources new file mode 100644 index 0000000..97d4d16 --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +SHA512 (netavark-v1.14.1-vendor.tar.gz) = 84545bcb791a698a20d3b1f41502beaa568a5e519156cbb6e9d28bef34a24ed006a87cd77c8d972f63ad9c3ef9049637b15bd0d446d80c88dcdd9f268486959a +SHA512 (v1.14.1.tar.gz) = 705f210077f47ec1d27837468778c9a5af55e4fbc03056db14f8818cf055b386234b91cd799391e37fb5dbd55b3407f0e025b0e7e2205bc334d13929dd755920