a415a1
# Bellow definitions are used to deliver config files from a particular branch
a415a1
# of c/image, c/common, c/storage vendored in all podman, skopeo, buildah.
a415a1
# These vendored components must have the same version. If it is not the case,
a415a1
# pick the oldest version on c/image, c/common, c/storage vendored in
a415a1
# podman/skopeo/podman.
bafb64
%global skopeo_branch main
bafb64
%global image_branch v5.19.1
bafb64
%global common_branch v0.47.4
bafb64
%global storage_branch v1.38.2
a415a1
%global shortnames_branch main
a415a1
a415a1
Epoch: 2
a415a1
Name: containers-common
a415a1
Version: 1
bafb64
Release: 22%{?dist}
a415a1
Summary: Common configuration and documentation for containers
a415a1
License: ASL 2.0
bafb64
BuildRequires: /usr/bin/go-md2man
a415a1
Provides: skopeo-containers = %{epoch}:%{version}-%{release}
a415a1
Requires: (container-selinux >= 2:2.162.1 if selinux-policy)
a415a1
Requires: oci-runtime
a415a1
%if 0%{?rhel} >= 9 || 0%{?fedora}
a415a1
Requires: crun >= 0.19
a415a1
%else
a415a1
Requires: runc
a415a1
%endif
a415a1
Requires: system-release
a415a1
Suggests: subscription-manager
a415a1
Recommends: fuse-overlayfs
a415a1
Recommends: slirp4netns
a415a1
Source1: https://raw.githubusercontent.com/containers/storage/%{storage_branch}/storage.conf
a415a1
Source2: https://raw.githubusercontent.com/containers/storage/%{storage_branch}/docs/containers-storage.conf.5.md
a415a1
Source3: mounts.conf
a415a1
Source4: https://raw.githubusercontent.com/containers/image/%{image_branch}/docs/containers-registries.conf.5.md
a415a1
#Source5: https://raw.githubusercontent.com/containers/image/%%{image_branch}/registries.conf
a415a1
Source5: registries.conf
a415a1
Source6: https://raw.githubusercontent.com/containers/image/%{image_branch}/docs/containers-policy.json.5.md
bafb64
Source7: https://raw.githubusercontent.com/containers/common/%{common_branch}/pkg/seccomp/seccomp.json
a415a1
Source8: https://raw.githubusercontent.com/containers/common/%{common_branch}/docs/containers-mounts.conf.5.md
a415a1
Source9: https://raw.githubusercontent.com/containers/image/%{image_branch}/docs/containers-signature.5.md
a415a1
Source10: https://raw.githubusercontent.com/containers/image/%{image_branch}/docs/containers-transports.5.md
a415a1
Source11: https://raw.githubusercontent.com/containers/image/%{image_branch}/docs/containers-certs.d.5.md
a415a1
Source12: https://raw.githubusercontent.com/containers/image/%{image_branch}/docs/containers-registries.d.5.md
a415a1
Source13: https://raw.githubusercontent.com/containers/common/%{common_branch}/pkg/config/containers.conf
a415a1
Source14: https://raw.githubusercontent.com/containers/common/%{common_branch}/docs/containers.conf.5.md
a415a1
Source15: https://raw.githubusercontent.com/containers/image/%{image_branch}/docs/containers-auth.json.5.md
a415a1
Source16: https://raw.githubusercontent.com/containers/image/%{image_branch}/docs/containers-registries.conf.d.5.md
a415a1
Source17: https://raw.githubusercontent.com/containers/shortnames/%{shortnames_branch}/shortnames.conf
a415a1
Source19: 001-rhel-shortnames-pyxis.conf
a415a1
Source20: 002-rhel-shortnames-overrides.conf
a415a1
Source21: RPM-GPG-KEY-redhat-release
a415a1
Source22: registry.access.redhat.com.yaml
a415a1
Source23: registry.redhat.io.yaml
a415a1
#Source24: https://raw.githubusercontent.com/containers/skopeo/%%{skopeo_branch}/default-policy.json
a415a1
Source24: default-policy.json
a415a1
Source25: https://raw.githubusercontent.com/containers/skopeo/%{skopeo_branch}/default.yaml
a415a1
# scripts used for synchronization with upstream and shortname generation
a415a1
Source100: update.sh
a415a1
Source101: update-vendored.sh
a415a1
Source102: pyxis.sh
a415a1
bafb64
%global aardvark_dns_version v1.0.0
bafb64
%global aardvark_dns_commit0 5cd145d2ccf420cef739751e1c26e1ddca06d048
bafb64
%global aardvark_dns_shortcommit0 %(c=%{aardvark_dns_commit0}; echo ${c:0:7})
bafb64
Source200: https://github.com/containers/aardvark-dns/archive/%{aardvark_dns_commit0}/aardvark-dns-%{aardvark_dns_version}-%{aardvark_dns_shortcommit0}.tar.gz
bafb64
bafb64
%global netavark_version v1.0.0
bafb64
%global netavark_commit0 1c7c51a53641fb363f3e07582d6646cbc844938a
bafb64
%global netavark_shortcommit0 %(c=%{netavark_commit0}; echo ${c:0:7})
bafb64
Source300: https://github.com/containers/netavark/archive/%{netavark_commit0}/netavark-%{netavark_version}-%{netavark_shortcommit0}.tar.gz
bafb64
a415a1
%description
a415a1
This package contains common configuration files and documentation for container
a415a1
tools ecosystem, such as Podman, Buildah and Skopeo.
a415a1
a415a1
It is required because the most of configuration files and docs come from projects
a415a1
which are vendored into Podman, Buildah, Skopeo, etc. but they are not packaged
a415a1
separately.
a415a1
bafb64
%package -n aardvark-dns
bafb64
Version: 1.0.0
bafb64
Release: 22%{?dist}
bafb64
URL: https://github.com/containers/aardvark-dns
bafb64
Summary: Authoritative DNS server for A/AAAA container records
bafb64
License: ASL 2.0 and BSD and MIT
bafb64
BuildRequires: cargo
bafb64
BuildRequires: git-core
bafb64
BuildRequires: make
bafb64
BuildRequires: rust-srpm-macros
bafb64
BuildRequires: rust-toolset
bafb64
ExclusiveArch: %{rust_arches}
bafb64
bafb64
%description -n aardvark-dns
bafb64
%{summary}
bafb64
bafb64
Forwards other request to configured resolvers.
bafb64
Read more about configuration in `src/backend/mod.rs`.
bafb64
bafb64
%package -n netavark
bafb64
Version: 1.0.0
bafb64
Release: 22%{?dist}
bafb64
URL: https://github.com/containers/netavark
bafb64
Summary: OCI network stack
bafb64
License: ASL 2.0 and BSD and MIT
bafb64
BuildRequires: cargo
bafb64
BuildRequires: make
bafb64
BuildRequires: rust-srpm-macros
bafb64
BuildRequires: rust-toolset
bafb64
BuildRequires: git-core
bafb64
BuildRequires: /usr/bin/go-md2man
bafb64
Recommends: aardvark-dns
bafb64
Provides: container-network-stack = 2
bafb64
ExclusiveArch: %{rust_arches}
bafb64
bafb64
%description -n netavark
bafb64
%{summary}
bafb64
bafb64
Netavark is a rust based network stack for containers. It is being
bafb64
designed to work with Podman but is also applicable for other OCI
bafb64
container management applications.
bafb64
bafb64
Netavark is a tool for configuring networking for Linux containers.
bafb64
Its features include:
bafb64
* Configuration of container networks via JSON configuration file
bafb64
* Creation and management of required network interfaces,
bafb64
    including MACVLAN networks
bafb64
* All required firewall configuration to perform NAT and port
bafb64
    forwarding as required for containers
bafb64
* Support for iptables and firewalld at present, with support
bafb64
    for nftables planned in a future release
bafb64
* Support for rootless containers
bafb64
* Support for IPv4 and IPv6
bafb64
* Support for container DNS resolution via aardvark-dns.
bafb64
a415a1
%prep
bafb64
tar fx %{SOURCE200}
bafb64
tar fx %{SOURCE300}
a415a1
a415a1
%build
bafb64
%if 0%{?build_rustflags:1}
bafb64
export RUSTFLAGS="%{build_rustflags}"
bafb64
%endif
bafb64
bafb64
pushd aardvark-dns-%{aardvark_dns_commit0}
bafb64
%__scm_setup_git -q
bafb64
%make_build build
bafb64
popd
bafb64
bafb64
pushd netavark-%{netavark_commit0}
bafb64
%__scm_setup_git -q
bafb64
%make_build build
bafb64
pushd docs
bafb64
go-md2man -in netavark.1.md -out netavark.1
bafb64
popd
bafb64
%{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} install
bafb64
popd
a415a1
a415a1
%install
bafb64
pushd aardvark-dns-%{aardvark_dns_commit0}
bafb64
%{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} install
bafb64
popd
bafb64
bafb64
pushd netavark-%{netavark_commit0}
bafb64
%{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} install
bafb64
popd
bafb64
a415a1
install -dp %{buildroot}%{_sysconfdir}/containers/{certs.d,oci/hooks.d,registries.d,registries.conf.d}
a415a1
install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/storage.conf
a415a1
install -m0644 %{SOURCE5} %{buildroot}%{_sysconfdir}/containers/registries.conf
a415a1
install -m0644 %{SOURCE17} %{buildroot}%{_sysconfdir}/containers/registries.conf.d/000-shortnames.conf
a415a1
install -m0644 %{SOURCE19} %{buildroot}%{_sysconfdir}/containers/registries.conf.d/001-rhel-shortnames.conf
a415a1
install -m0644 %{SOURCE20} %{buildroot}%{_sysconfdir}/containers/registries.conf.d/002-rhel-shortnames-overrides.conf
a415a1
a415a1
# for signature verification
a415a1
%if !0%{?rhel} || 0%{?centos}
a415a1
install -dp %{buildroot}%{_sysconfdir}/pki/rpm-gpg
a415a1
install -m0644 %{SOURCE21} %{buildroot}%{_sysconfdir}/pki/rpm-gpg
a415a1
%endif
a415a1
install -dp %{buildroot}%{_sysconfdir}/containers/registries.d
a415a1
install -m0644 %{SOURCE22} %{buildroot}%{_sysconfdir}/containers/registries.d
a415a1
install -m0644 %{SOURCE23} %{buildroot}%{_sysconfdir}/containers/registries.d
a415a1
install -m0644 %{SOURCE24} %{buildroot}%{_sysconfdir}/containers/policy.json
a415a1
install -dp %{buildroot}%{_sharedstatedir}/containers/sigstore
a415a1
install -m0644 %{SOURCE25} %{buildroot}%{_sysconfdir}/containers/registries.d/default.yaml
a415a1
a415a1
# for containers-common
a415a1
install -dp %{buildroot}%{_mandir}/man5
a415a1
go-md2man -in %{SOURCE2} -out %{buildroot}%{_mandir}/man5/containers-storage.conf.5
a415a1
go-md2man -in %{SOURCE4} -out %{buildroot}%{_mandir}/man5/containers-registries.conf.5
a415a1
go-md2man -in %{SOURCE6} -out %{buildroot}%{_mandir}/man5/containers-policy.json.5
a415a1
go-md2man -in %{SOURCE8} -out %{buildroot}%{_mandir}/man5/containers-mounts.conf.5
a415a1
go-md2man -in %{SOURCE9} -out %{buildroot}%{_mandir}/man5/containers-signature.5
a415a1
go-md2man -in %{SOURCE10} -out %{buildroot}%{_mandir}/man5/containers-transports.5
a415a1
go-md2man -in %{SOURCE11} -out %{buildroot}%{_mandir}/man5/containers-certs.d.5
a415a1
go-md2man -in %{SOURCE12} -out %{buildroot}%{_mandir}/man5/containers-registries.d.5
a415a1
go-md2man -in %{SOURCE14} -out %{buildroot}%{_mandir}/man5/containers.conf.5
a415a1
go-md2man -in %{SOURCE15} -out %{buildroot}%{_mandir}/man5/containers-auth.json.5
a415a1
go-md2man -in %{SOURCE16} -out %{buildroot}%{_mandir}/man5/containers-registries.conf.d.5
a415a1
a415a1
install -dp %{buildroot}%{_datadir}/containers
a415a1
install -m0644 %{SOURCE3} %{buildroot}%{_datadir}/containers/mounts.conf
a415a1
install -m0644 %{SOURCE7} %{buildroot}%{_datadir}/containers/seccomp.json
a415a1
install -m0644 %{SOURCE13} %{buildroot}%{_datadir}/containers/containers.conf
a415a1
a415a1
# install secrets patch directory
a415a1
install -d -p -m 755 %{buildroot}/%{_datadir}/rhel/secrets
a415a1
# rhbz#1110876 - update symlinks for subscription management
a415a1
ln -s %{_sysconfdir}/pki/entitlement %{buildroot}%{_datadir}/rhel/secrets/etc-pki-entitlement
a415a1
ln -s %{_sysconfdir}/rhsm %{buildroot}%{_datadir}/rhel/secrets/rhsm
a415a1
ln -s %{_sysconfdir}/yum.repos.d/redhat.repo %{buildroot}%{_datadir}/rhel/secrets/redhat.repo
a415a1
a415a1
# ship preconfigured /etc/containers/registries.d/ files with containers-common - #1903813
a415a1
cat <<EOF > %{buildroot}%{_sysconfdir}/containers/registries.d/registry.access.redhat.com.yaml
a415a1
docker:
a415a1
     registry.access.redhat.com:
a415a1
         sigstore: https://access.redhat.com/webassets/docker/content/sigstore
a415a1
EOF
a415a1
a415a1
cat <<EOF > %{buildroot}%{_sysconfdir}/containers/registries.d/registry.redhat.io.yaml
a415a1
docker:
a415a1
     registry.redhat.io:
a415a1
         sigstore: https://registry.redhat.io/containers/sigstore
a415a1
EOF
a415a1
a415a1
%files
a415a1
%dir %{_sysconfdir}/containers
a415a1
%dir %{_sysconfdir}/containers/certs.d
a415a1
%dir %{_sysconfdir}/containers/registries.d
a415a1
%{_sysconfdir}/containers/registries.d/registry.redhat.io.yaml
a415a1
%{_sysconfdir}/containers/registries.d/registry.access.redhat.com.yaml
a415a1
%dir %{_sysconfdir}/containers/oci
a415a1
%dir %{_sysconfdir}/containers/oci/hooks.d
a415a1
%dir %{_sysconfdir}/containers/registries.conf.d
a415a1
%if !0%{?rhel} || 0%{?centos}
a415a1
%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
a415a1
%endif
a415a1
%config(noreplace) %{_sysconfdir}/containers/policy.json
a415a1
%config(noreplace) %{_sysconfdir}/containers/registries.d/default.yaml
a415a1
%config(noreplace) %{_sysconfdir}/containers/storage.conf
a415a1
%config(noreplace) %{_sysconfdir}/containers/registries.conf
a415a1
%config(noreplace) %{_sysconfdir}/containers/registries.conf.d/*.conf
a415a1
%config(noreplace) %{_sysconfdir}/containers/registries.d/*.yaml
a415a1
%ghost %{_sysconfdir}/containers/containers.conf
a415a1
%dir %{_sharedstatedir}/containers/sigstore
a415a1
%{_mandir}/man5/*
a415a1
%dir %{_datadir}/containers
a415a1
%{_datadir}/containers/mounts.conf
a415a1
%{_datadir}/containers/seccomp.json
a415a1
%{_datadir}/containers/containers.conf
a415a1
%dir %{_datadir}/rhel/secrets
a415a1
%{_datadir}/rhel/secrets/*
a415a1
bafb64
%files -n aardvark-dns
bafb64
%license aardvark-dns-%{aardvark_dns_commit0}/LICENSE
bafb64
%dir %{_libexecdir}/podman
bafb64
%{_libexecdir}/podman/aardvark-dns
bafb64
bafb64
%files -n netavark
bafb64
%license netavark-%{netavark_commit0}/LICENSE
bafb64
%dir %{_libexecdir}/podman
bafb64
%{_libexecdir}/podman/netavark
bafb64
%{_mandir}/man1/netavark.1*
bafb64
a415a1
%changelog
bafb64
* Wed Feb 23 2022 Lokesh Mandvekar <lsm5@redhat.com> - 2:1-22
bafb64
- build rust packages with RUSTFLAGS set to make ExecShield happy
bafb64
- Related: #2001445
bafb64
bafb64
* Mon Feb 21 2022 Lokesh Mandvekar <lsm5@redhat.com> - 2:1-21
bafb64
- do not specify infra_image in containers.conf
bafb64
- needed to resolve gating test failures
bafb64
- Related: #2001445
bafb64
bafb64
* Fri Feb 18 2022 Jindrich Novy <jnovy@redhat.com> - 2:1-20
bafb64
- update to netavark-1.0.0 and aardvark-dns-1.0.0
bafb64
- Related: #2001445
bafb64
bafb64
* Thu Feb 17 2022 Jindrich Novy <jnovy@redhat.com> - 2:1-19
bafb64
- package aarvark-dns and netavark as part of the containers-common
bafb64
- Related: #2001445
bafb64
bafb64
* Thu Feb 17 2022 Jindrich Novy <jnovy@redhat.com> - 2:1-18
bafb64
- update shortnames and vendored components
bafb64
- Related: #2001445
bafb64
bafb64
* Wed Feb 16 2022 Jindrich Novy <jnovy@redhat.com> - 2:1-17
bafb64
- containers.conf should contain network_backend = "cni" in RHEL8.6
bafb64
- Related: #2001445
bafb64
bafb64
* Fri Feb 11 2022 Jindrich Novy <jnovy@redhat.com> - 2:1-16
bafb64
- update vendored components and configuration files
bafb64
- Related: #2001445
bafb64
bafb64
* Fri Feb 04 2022 Jindrich Novy <jnovy@redhat.com> - 2:1-15
bafb64
- sync vendored components
bafb64
- Related: #2001445
bafb64
bafb64
* Fri Feb 04 2022 Jindrich Novy <jnovy@redhat.com> - 2:1-14
bafb64
- sync vendored components
bafb64
- Related: #2001445
bafb64
bafb64
* Mon Jan 17 2022 Jindrich Novy <jnovy@redhat.com> - 2:1-13
bafb64
- update shortnames from Pyxis
bafb64
- Related: #2001445
bafb64
bafb64
* Thu Dec 09 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-12
bafb64
- do not allow broken content from Pyxis to land in shortnames.conf
bafb64
- Related: #2001445
bafb64
bafb64
* Wed Dec 08 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-11
bafb64
- sync vendored components
bafb64
- update shortnames from Pyxis
bafb64
- Related: #2001445
bafb64
bafb64
* Wed Dec 01 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-10
bafb64
- use log_driver = "journald" and events_logger = "journald" for RHEL9
bafb64
- Related: #2001445
bafb64
bafb64
* Tue Nov 16 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-9
bafb64
- consume seccomp.json from the oldest vendored version of c/common,
bafb64
  not main branch
bafb64
- Related: #2001445
bafb64
bafb64
* Wed Nov 10 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-8
bafb64
- update vendored components
bafb64
- Related: #2001445
bafb64
bafb64
* Tue Nov 02 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-7
bafb64
- make log_driver = "k8s-file" default in containers.conf
bafb64
- Related: #2001445
bafb64
bafb64
* Wed Oct 13 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-6
bafb64
- sync vendored components
bafb64
- Related: #2001445
bafb64
bafb64
* Wed Sep 29 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-5
bafb64
- update to the new vendored components
bafb64
- Related: #2001445
bafb64
bafb64
* Fri Sep 24 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-4
bafb64
- update to the new vendored components
bafb64
- Related: #2001445
bafb64
bafb64
* Fri Sep 10 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-3
bafb64
- update to the new vendored components
bafb64
- Related: #2001445
bafb64
a415a1
* Wed Aug 11 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-2
a415a1
- synchronize config files for RHEL-8.5
a415a1
- Related: #1934415
a415a1
a415a1
* Wed Aug 11 2021 Jindrich Novy <jnovy@redhat.com> - 2:1-1
a415a1
- initial import
a415a1
- Related: #1934415