175 lines
7.3 KiB
RPMSpec
175 lines
7.3 KiB
RPMSpec
# Below definitions are used to deliver config files from a particular branch
|
|
# of c/image, c/common, c/storage vendored in all of Buildah, Podman and Skopeo.
|
|
# These vendored components must have the same version. If it is not the case,
|
|
# pick the oldest version on c/image, c/common, c/storage vendored in
|
|
# Buildah/Podman/Skopeo.
|
|
%global skopeo_branch v1.8.0
|
|
%global podman_branch v4.5.1
|
|
%global image_branch v5.25.0
|
|
%global common_branch v0.52.0
|
|
%global storage_branch v1.46.1
|
|
%global shortnames_branch main
|
|
|
|
%global github_containers https://raw.githubusercontent.com/containers
|
|
|
|
Epoch: 4
|
|
Name: containers-common
|
|
Version: 1
|
|
Release: 3
|
|
Summary: Common configuration and documentation for containers.
|
|
URL: https://github.com/containers/common
|
|
License: Apache-2.0
|
|
BuildArch: noarch
|
|
BuildRequires: go
|
|
Requires: container-selinux
|
|
Requires: oci-runtime
|
|
Recommends: fuse-overlayfs
|
|
Recommends: slirp4netns
|
|
Provides: skopeo-containers = %{epoch}:%{version}-%{release}
|
|
Obsoletes: %{name} <= 1:1.2.1-28
|
|
Source0: https://github.com/cpuguy83/go-md2man/archive/v1.0.10.tar.gz
|
|
Source1: %{github_containers}/common/%{common_branch}/docs/containers.conf.5.md
|
|
Source2: %{github_containers}/common/%{common_branch}/pkg/config/containers.conf
|
|
Source3: %{github_containers}/common/%{common_branch}/pkg/seccomp/seccomp.json
|
|
Source4: %{github_containers}/common/%{common_branch}/pkg/subscriptions/mounts.conf
|
|
Source5: %{github_containers}/image/%{image_branch}/docs/containers-auth.json.5.md
|
|
Source6: %{github_containers}/image/%{image_branch}/docs/containers-certs.d.5.md
|
|
Source7: %{github_containers}/image/%{image_branch}/docs/containers-policy.json.5.md
|
|
Source8: %{github_containers}/image/%{image_branch}/docs/containers-registries.conf.5.md
|
|
Source9: %{github_containers}/image/%{image_branch}/docs/containers-registries.conf.d.5.md
|
|
Source10: %{github_containers}/image/%{image_branch}/docs/containers-registries.d.5.md
|
|
Source11: %{github_containers}/image/%{image_branch}/docs/containers-signature.5.md
|
|
Source12: %{github_containers}/image/%{image_branch}/docs/containers-transports.5.md
|
|
Source13: %{github_containers}/image/%{image_branch}/registries.conf
|
|
Source14: %{github_containers}/common/%{common_branch}/docs/containers-mounts.conf.5.md
|
|
Source15: %{github_containers}/shortnames/%{shortnames_branch}/shortnames.conf
|
|
Source16: %{github_containers}/skopeo/%{skopeo_branch}/default.yaml
|
|
Source17: %{github_containers}/skopeo/%{skopeo_branch}/default-policy.json
|
|
Source18: %{github_containers}/storage/%{storage_branch}/docs/containers-storage.conf.5.md
|
|
Source19: %{github_containers}/storage/%{storage_branch}/storage.conf
|
|
Source20: %{github_containers}/common/%{common_branch}/docs/Containerfile.5.md
|
|
Source21: %{github_containers}/common/%{common_branch}/docs/containerignore.5.md
|
|
#Source22: %{github_containers}/common/%{common_branch}/docs/links/.containerignore.5
|
|
Source22: %{github_containers}/common/%{common_branch}/docs/links/containerignore.5
|
|
|
|
%description
|
|
This package contains common configuration files and documentation for container
|
|
tools ecosystem, such as Podman, Buildah and Skopeo.
|
|
|
|
It is required because the most of configuration files and docs come from projects
|
|
which are vendored into Podman, Buildah, Skopeo, etc. but they are not packaged
|
|
separately.
|
|
|
|
%prep
|
|
tar -xf %SOURCE0
|
|
cp %{SOURCE1} .
|
|
cp %{SOURCE2} .
|
|
cp %{SOURCE3} .
|
|
cp %{SOURCE4} .
|
|
cp %{SOURCE5} .
|
|
cp %{SOURCE6} .
|
|
cp %{SOURCE7} .
|
|
cp %{SOURCE8} .
|
|
cp %{SOURCE9} .
|
|
cp %{SOURCE10} .
|
|
cp %{SOURCE11} .
|
|
cp %{SOURCE12} .
|
|
cp %{SOURCE13} .
|
|
cp %{SOURCE14} .
|
|
cp %{SOURCE15} 000-shortnames.conf
|
|
cp %{SOURCE16} .
|
|
cp %{SOURCE17} policy.json
|
|
cp %{SOURCE18} .
|
|
cp %{SOURCE19} .
|
|
cp %{SOURCE20} .
|
|
cp %{SOURCE21} .
|
|
cp %{SOURCE22} .containerignore.5
|
|
|
|
%build
|
|
GO_MD2MAN_PATH="$(pwd)%{_bindir}"
|
|
mkdir -p _build/bin $GO_MD2MAN_PATH
|
|
cd go-md2man-*
|
|
go build -mod=vendor -o ../_build/bin/go-md2man .
|
|
cp ../_build/bin/go-md2man $GO_MD2MAN_PATH/go-md2man
|
|
export PATH=$GO_MD2MAN_PATH:$PATH
|
|
cd -
|
|
|
|
mkdir -p man5
|
|
for FILE in $(ls *.5.md); do
|
|
go-md2man -in $FILE -out man5/$(basename $FILE .md)
|
|
done
|
|
|
|
cp man5/containerignore.5 man5/.containerignore.5
|
|
sed -i "s/rhel/openEuler/g" mounts.conf
|
|
|
|
%install
|
|
# install config and policy files for registries
|
|
install -dp %{buildroot}%{_sysconfdir}/containers/{certs.d,oci/hooks.d,systemd}
|
|
install -dp %{buildroot}%{_sharedstatedir}/containers/sigstore
|
|
install -dp %{buildroot}%{_datadir}/containers/systemd
|
|
install -Dp -m0644 default.yaml -t %{buildroot}%{_sysconfdir}/containers/registries.d
|
|
install -Dp -m0644 storage.conf -t %{buildroot}%{_datadir}/containers
|
|
install -Dp -m0644 registries.conf -t %{buildroot}%{_sysconfdir}/containers
|
|
install -Dp -m0644 000-shortnames.conf -t %{buildroot}%{_sysconfdir}/containers/registries.conf.d
|
|
install -Dp -m0644 policy.json -t %{buildroot}%{_sysconfdir}/containers
|
|
|
|
# install manpages
|
|
for FILE in $(ls -a man5 | grep 5); do
|
|
install -Dp -m0644 man5/$FILE -t %{buildroot}%{_mandir}/man5
|
|
done
|
|
|
|
# install config files for mounts, containers and seccomp
|
|
install -m0644 mounts.conf %{buildroot}%{_datadir}/containers/mounts.conf
|
|
install -m0644 seccomp.json %{buildroot}%{_datadir}/containers/seccomp.json
|
|
install -m0644 containers.conf %{buildroot}%{_datadir}/containers/containers.conf
|
|
|
|
# install secrets patch directory
|
|
install -d -p -m 755 %{buildroot}/%{_datadir}/openEuler/secrets
|
|
ln -s ../../../..%{_sysconfdir}/pki/entitlement %{buildroot}%{_datadir}/openEuler/secrets/etc-pki-entitlement
|
|
ln -s ../../../..%{_sysconfdir}/rhsm %{buildroot}%{_datadir}/openEuler/secrets/rhsm
|
|
ln -s ../../../..%{_sysconfdir}/yum.repos.d/openEuler.repo %{buildroot}%{_datadir}/openEuler/secrets/openEuler.repo
|
|
|
|
%post
|
|
if [[ $1 == 1 ]]; then
|
|
if ! grep ^short-name-mode.*= %{_sysconfdir}/containers/registries.conf > /dev/null; then
|
|
echo 'short-name-mode="enforcing"' >> %{_sysconfdir}/containers/registries.conf
|
|
fi
|
|
fi
|
|
|
|
%files
|
|
%dir %{_sysconfdir}/containers
|
|
%dir %{_sysconfdir}/containers/certs.d
|
|
%dir %{_sysconfdir}/containers/oci
|
|
%dir %{_sysconfdir}/containers/oci/hooks.d
|
|
%dir %{_sysconfdir}/containers/registries.conf.d
|
|
%dir %{_sysconfdir}/containers/registries.d
|
|
%config(noreplace) %{_sysconfdir}/containers/policy.json
|
|
%config(noreplace) %{_sysconfdir}/containers/registries.conf
|
|
%config(noreplace) %{_sysconfdir}/containers/registries.conf.d/000-shortnames.conf
|
|
%config(noreplace) %{_sysconfdir}/containers/registries.d/default.yaml
|
|
%ghost %{_sysconfdir}/containers/storage.conf
|
|
%ghost %{_sysconfdir}/containers/containers.conf
|
|
%dir %{_sharedstatedir}/containers/sigstore
|
|
%{_mandir}/man5/Containerfile.5.gz
|
|
%{_mandir}/man5/containerignore.5.gz
|
|
%{_mandir}/man5/.containerignore.5.gz
|
|
%{_mandir}/man5/containers*.5.gz
|
|
%dir %{_datadir}/containers
|
|
%dir %{_datadir}/containers/systemd
|
|
%{_datadir}/containers/storage.conf
|
|
%{_datadir}/containers/containers.conf
|
|
%{_datadir}/containers/mounts.conf
|
|
%{_datadir}/containers/seccomp.json
|
|
%dir %{_datadir}/openEuler/secrets
|
|
%{_datadir}/openEuler/secrets/*
|
|
|
|
%changelog
|
|
* Thu Jan 18 2024 lijian <lijian2@kylinos.cn> - 4:1-3
|
|
- Avoid building systems that cannot handle hidden files
|
|
|
|
* Wed Oct 18 2023 wangyueliang <wangyueliang@kylinos.cn> - 4:1-2
|
|
- Unify containers-common to the corresponding version in the openEuler community
|
|
|
|
* Mon Mar 21 2022 fushanqing <fushanqing@kylinos.cn> - 4:1-1
|
|
- Init package
|