# Maintainer: David Runge pkgname=containers-common pkgver=0.52.0 pkgrel=1 epoch=1 _image_pkgver=5.25.0 _podman_pkgver=4.5.0 _shortnames_pkgver=2023.02.20 _skopeo_pkgver=1.12.0 _storage_pkgver=1.46.1 pkgdesc="Configuration files and manpages for containers" arch=(any) url="https://github.com/containers" license=(Apache) depends=('container-network-stack>1') makedepends=(go-md2man) checkdepends=(ripgrep) backup=( etc/containers/containers.conf etc/containers/mounts.conf etc/containers/policy.json etc/containers/registries.conf etc/containers/seccomp.json etc/containers/storage.conf ) # configuration override directories need to exist options=(emptydirs) source=( common-$pkgver.tar.gz::https://github.com/containers/common/archive/v$pkgver.tar.gz image-$_image_pkgver.tar.gz::https://github.com/containers/image/archive/v$_image_pkgver.tar.gz podman-$_podman_pkgver.tar.gz::https://github.com/containers/podman/archive/v$_podman_pkgver.tar.gz skopeo-$_skopeo_pkgver.tar.gz::https://github.com/containers/skopeo/archive/v$_skopeo_pkgver.tar.gz storage-$_storage_pkgver.tar.gz::https://github.com/containers/storage/archive/v$_storage_pkgver.tar.gz shortnames-$_shortnames_pkgver.tar.gz::https://github.com/containers/shortnames/archive/refs/tags/v$_shortnames_pkgver.tar.gz mounts.conf $pkgname-0.48.0-init_path.patch ) sha512sums=('15d2d83082bd41524b1fd0ddd04d8802ecd9f5f9b53360c18625d0211c4b6e837b3d779203371589f2c3f416b1cf6c49394cadca37c3d5f0de9c21bc043db626' '7983c344cdc6ad442844ecdf1945d871a3356e4979b598cadb510b7270180981a6d46d6cf42a8974311a5ad8ae3a5cedba3f7101123ef8b019ef46d905eae0e6' '8a699dc01fc3d7c4a9e5ef4f166170303fc30e0f6695c61f763944e1cb755e75896108e0c4166d184fe49e3a6859f045aa3883047ebba9290e851fc128d77cac' '33ae61179e16c2d9d44c746be4c0beb59f2b15ec94f493ecd0589f712e237e6bb4d53f8a7276e9598acb5009b39834a2338a405771f05d1f864c31ab10f4c5f9' 'b0ff6d539b0cbb2fcfb0b2541f85c2c8a690e7adac2145407852851578fdf341fb0fee2aac18e5158715aa9ee9a3c7ba2c12fe946e2648984a927bc9ef9dbaf3' '856dbbeb2acda276e9605bd1ecec0f8d65952c597ee2af61dd8909d7d3c04e5ef06c40b69ec4a98f79e623c536850f614c1b0af3a19637e300e7d3a285933193' '11fa515bbb0686d2b49c4fd2ab35348cb19f9c6780d6eb951a33b07ed7b7c72a676627f36e8c74e1a2d15e306d4537178f0e127fd3490f6131d078e56b46d5e1' '4a6526d01f192f0eb4dcbd28c019a2b0db6dc2128af644e8e89992e5dcfa45a02c739b06ee01e22606b5cb847213c002f8ab5f87a576846ac73f73eed9b2b469') b2sums=('1305bde88da35dea7d7447d04a8e80251d506a481fb40889062d7eab292cda1be92991842974a79e129eab6e24ee41f1c03d309da3f795ad8c8b27f3771b8a04' '6be245610e16d3d94a9fa0c02431854b294a19a69b961270ae6331e6e315b4e08d03aa29f0898d1ddf446efeacc77afea73a117d1707a4dc016b956aefd0b1e7' 'ba28e77626bb4bcdb85b20031e12cf93f2eb3174b678cb8e99557df13e2cdf377ea402eb373a51ea44302f878f8e1cdedda14a2f3ad8c9e88895754fc50c272e' '10f6183918e5a56f307db34528b1eeac65806c27645c3aaae124dc3042cb5e62b23c7fbd825b382b0cda29f89bca0f52ace3e3f666019ce31a235caea9145725' '50259358385af501e40e5f1c1db88b06632fa76430254ac4d2dbd437bff01955de4e3ed701a58c5cd3c5b5710dfb6ab262a457c58e20edd4353d33284e8fca6c' '165a4c51bd284078990c94059145bb6b4bd5de4d8595eb2ccd2acc6fe8561e7edc300b7edadc684675ee281d7ada1c3a6d5aa0117c640ec22c2d2ef7e46486b5' '2f4b0af3271103362a898e7fcc3ec05f06755902ad664ac3107bb8debb8b2ac0d50de311d5fc651279a817a56e3ff05864a7e77c0d8fc628ff7411bfb98c9b69' '89e95f468785f6ca1309b0de37921702bd4eb6fb191afc0d93454bec7b7096a1b84e19408b5a0abcdfd89ce2ebd228879cbc42a0d409425fb41caab6a8f049f5') prepare() { sed -r 's/(GOMD2MAN = ).*/\1 go-md2man/' -i storage-$_storage_pkgver/docs/Makefile patch -Np1 -d common-$pkgver -i ../$pkgname-0.48.0-init_path.patch mkdir -vp build/{man1,man5} } build() { ( printf "Creating common man pages...\n" cd common-$pkgver for _man_page in docs/*.md pkg/hooks/docs/*.md; do go-md2man -in $_man_page -out ../build/man5/$(basename ${_man_page//.md}) done ) ( printf "Creating image man pages...\n" cd image-$_image_pkgver mkdir -vp man5 mv -v docs/*.5.md man5/ for _man_page in docs/*.md; do go-md2man -in $_man_page -out ../build/man1/$(basename ${_man_page//.md}).1 done for _man_page in man5/*.md; do go-md2man -in $_man_page -out ../build/man5/$(basename ${_man_page//.md}) done ) ( printf "Creating storage documentation...\n" cd storage-$_storage_pkgver make -C docs ) } check() { local _podman_common_ver _podman_common_ver="$(rg "github.com/containers/common" podman-$_podman_pkgver/go.mod | cut -d ' ' -f2 | sed 's/v//')" _podman_image_ver="$(rg "github.com/containers/image" podman-$_podman_pkgver/go.mod | cut -d ' ' -f2 | sed 's/v//')" _podman_storage_ver="$(rg "github.com/containers/storage" podman-$_podman_pkgver/go.mod | cut -d ' ' -f2 | sed 's/v//')" printf "Common version in podman: %s\n" $_podman_common_ver printf "Image version in podman: %s\n" $_podman_image_ver printf "Storage version in podman: %s\n" $_podman_storage_ver # NOTE: we are comparing the major.minor version of containers/common required by podman with the one of containers/common that we are trying to build # https://github.com/containers/common/issues/923 if (( $(vercmp "${_podman_common_ver%.*}" "${pkgver%.*}") != 0 )); then printf "The podman package in version %s requires containers/common in version %s but we are trying to build version %s\n" $_podman_pkgver ${_podman_common_ver%.*} ${pkgver%.*} exit 1 fi if (( $(vercmp "${_podman_image_ver%.*}" "${_image_pkgver%.*}") != 0 )); then printf "The podman package in version %s requires containers/image in version %s but we are trying to use version %s\n" $_podman_pkgver ${_podman_image_ver%.*} ${_image_pkgver%.*} exit 1 fi if (( $(vercmp "${_podman_storage_ver%.*}" "${_storage_pkgver%.*}") != 0 )); then printf "The podman package in version %s requires containers/storage in version %s but we are trying to use version %s\n" $_podman_pkgver ${_podman_storage_ver%.*} ${_storage_pkgver%.*} exit 1 fi } package() { # directories install -vdm 755 "$pkgdir/etc/containers/containers.conf.d/" install -vdm 755 "$pkgdir/etc/containers/oci/hooks.d/" install -vdm 755 "$pkgdir/etc/containers/registries.conf.d/" install -vdm 755 "$pkgdir/usr/share/containers/oci/hooks.d/" install -vdm 755 "$pkgdir/var/lib/containers/" # configs install -vDm 644 mounts.conf -t "$pkgdir/etc/containers/" ( cd common-$pkgver # configs install -vDm 644 pkg/config/containers.conf -t "$pkgdir/etc/containers/" install -vDm 644 pkg/config/containers.conf -t "$pkgdir/usr/share/containers/" install -vDm 644 pkg/seccomp/seccomp.json -t "$pkgdir/etc/containers/" install -vDm 644 pkg/seccomp/seccomp.json -t "$pkgdir/usr/share/containers/" ) ( cd image-$_image_pkgver # configs install -vDm 644 registries.conf -t "$pkgdir/etc/containers/" ) ( cd shortnames-$_shortnames_pkgver install -vDm 644 shortnames.conf "$pkgdir/etc/containers/registries.conf.d/00-shortnames.conf" ) ( cd skopeo-$_skopeo_pkgver # configs install -vDm 644 default-policy.json "$pkgdir/etc/containers/policy.json" install -vDm 644 default.yaml -t "$pkgdir/etc/containers/registries.d/" ) ( cd storage-$_storage_pkgver # configs install -vDm 644 storage.conf -t "$pkgdir/etc/containers/" install -vDm 644 storage.conf -t "$pkgdir/usr/share/containers/" # man pages install -vDm 644 docs/*.1 -t "$pkgdir/usr/share/man/man1/" install -vDm 644 docs/*.5 -t "$pkgdir/usr/share/man/man5/" ) # man pages install -vDm 644 build/man1/*.1 "$pkgdir/usr/share/man/man1/" install -vDm 644 build/man5/*.5 "$pkgdir/usr/share/man/man5/" }