A command line utility for various operations on container images and image repositories.
| runtime dependencies | libgpgme (Libraries/Crypto) |
|---|---|
| make dependencies | btrfs-progs (Filesystem and flash utilities) |
| git (Development tools) | |
| systemd (System tools) | |
| go | |
| go-md2man | |
| systemd | |
| libgpgme-dev | |
| libbtrfs-dev | |
| libdevmapper-dev |
apt install systemd libgpgme-dev libbtrfs-dev libdevmapper-dev
mkdir /data/buildroot/package/skopeo
cat > /data/buildroot/package/skopeo/Config.in<< 'EOF'
config BR2_PACKAGE_SKOPEO
bool "skopeo"
depends on BR2_PACKAGE_LIBGPGME
help
A command line utility for various operations on container images and image repositories.'
EOF
cat > /data/buildroot/package/skopeo/skopeo.mk<< 'EOF'
#############################################################
#
# skopeo
#
#############################################################
SKOPEO_VERSION = 1.6.1
SKOPEO_SOURCE = v$(SKOPEO_VERSION).tar.gz
SKOPEO_SITE = https://github.com/containers/skopeo/archive/refs/tags
SKOPEO_DEPENDENCIES = libgpgme lvm2
SKOPEO_INSTALL_STAGING = YES
define SKOPEO_CONFIGURE_CMDS
cd $(@D)/ && \
git clone https://github.com/containers/common.git && \
sed -i 's|.PHONY: bin/skopeo||' Makefile && \
sed -i 's|-gcflags "$(GOGCFLAGS)"||' Makefile
endef
define SKOPEO_BUILD_CMDS
cd $(@D)/ && \
PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig/" GOROOT=$(@D)/ GOPATH=$(@D)/go make bin/skopeo GO_DYN_FLAGS="-buildmode=pie -trimpath" BUILDTAGS='containers_image_ostree_stub'
endef
define SKOPEO_INSTALL_STAGING_CMDS
cd $(@D)/ && \
make DESTDIR="${STAGING_DIR}" PREFIX="/usr" install && \
install -vdm 755 "${STAGING_DIR}/etc/containers/oci/hooks.d/"
install -vdm 755 "${STAGING_DIR}/etc/containers/registries.conf.d/"
install -vdm 755 "${STAGING_DIR}/usr/share/containers/oci/hooks.d/"
install -vdm 755 "${STAGING_DIR}/var/lib/containers/"
install -vDm 644 $(@D)/common/pkg/config/containers.conf -t "${STAGING_DIR}/etc/containers/"
install -vDm 644 $(@D)/common/pkg/config/containers.conf -t "${STAGING_DIR}/usr/share/containers/"
install -vDm 644 $(@D)/common/pkg/seccomp/seccomp.json -t "${STAGING_DIR}/etc/containers/"
install -vDm 644 $(@D)/common/pkg/seccomp/seccomp.json -t "${STAGING_DIR}/usr/share/containers/"
install -vDm 644 $(@D)/default-policy.json "${STAGING_DIR}/etc/containers/policy.json"
install -vDm 644 $(@D)/default.yaml -t "${STAGING_DIR}/etc/containers/registries.d/"
endef
define SKOPEO_INSTALL_TARGET_CMDS
cd $(@D)/ && \
make DESTDIR="${TARGET_DIR}" PREFIX="/usr" install && \
install -vdm 755 "${TARGET_DIR}/etc/containers/oci/hooks.d/"
install -vdm 755 "${TARGET_DIR}/etc/containers/registries.conf.d/"
install -vdm 755 "${TARGET_DIR}/usr/share/containers/oci/hooks.d/"
install -vdm 755 "${TARGET_DIR}/var/lib/containers/"
install -vDm 644 $(@D)/common/pkg/config/containers.conf -t "${TARGET_DIR}/etc/containers/"
install -vDm 644 $(@D)/common/pkg/config/containers.conf -t "${TARGET_DIR}/usr/share/containers/"
install -vDm 644 $(@D)/common/pkg/seccomp/seccomp.json -t "${TARGET_DIR}/etc/containers/"
install -vDm 644 $(@D)/common/pkg/seccomp/seccomp.json -t "${TARGET_DIR}/usr/share/containers/"
install -vDm 644 $(@D)/default-policy.json "${TARGET_DIR}/etc/containers/policy.json"
install -vDm 644 $(@D)/default.yaml -t "${TARGET_DIR}/etc/containers/registries.d/"
endef
$(eval $(generic-package))
EOF
sed -i '/menu "Custom packages"/a source "package/skopeo/Config.in' /data/buildroot/package/Config.in