123 lines
4.1 KiB
Makefile
123 lines
4.1 KiB
Makefile
################################################################################
|
|
#
|
|
# podman
|
|
#
|
|
################################################################################
|
|
|
|
PODMAN_VERSION = v5.4.1
|
|
PODMAN_SITE = https://github.com/containers/podman
|
|
PODMAN_SITE_METHOD = git
|
|
|
|
PODMAN_LICENSE = Apache-2.0
|
|
PODMAN_LICENSE_FILES = LICENSE
|
|
|
|
PODMAN_DEPENDENCIES = host-pkgconf libgpgme
|
|
|
|
PODMAN_GOMOD = github.com/containers/podman/v5
|
|
PODMAN_BUILD_TARGETS = cmd/podman
|
|
PODMAN_TAGS = selinux
|
|
|
|
# https://podman.io/docs/installation#get-source-code mandates that flag be
|
|
# set, as device-mapper is not officially supported.
|
|
PODMAN_TAGS += exclude_graphdriver_devicemapper
|
|
|
|
# This is supposedly optional, but a basic (busybox:latest) image does not
|
|
# even start without seccomp support, unless by passing extra options at
|
|
# runtime (--security-opt=seccomp=unconfined), which can't be made the default.
|
|
PODMAN_DEPENDENCIES += libseccomp
|
|
PODMAN_TAGS += seccomp
|
|
|
|
# This is required for rootless containers, i.e containers started by non-root
|
|
PODMAN_DEPENDENCIES += shadow
|
|
PODMAN_TAGS += libsubid
|
|
|
|
ifeq ($(BR2_PACKAGE_BTRFS_PROGS),y)
|
|
PODMAN_DEPENDENCIES += btrfs-progs
|
|
define PODMAN_LINUX_CONFIG_FIXUPS_BTRFS
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_BTRFS_FS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_BTRFS_FS_POSIX_ACL)
|
|
endef
|
|
else
|
|
PODMAN_TAGS += exclude_graphdriver_btrfs
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBAPPARMOR),y)
|
|
PODMAN_DEPENDENCIES += libapparmor
|
|
PODMAN_TAGS += apparmor
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD),y)
|
|
PODMAN_DEPENDENCIES += systemd
|
|
PODMAN_TAGS += systemd
|
|
endif
|
|
|
|
PODMAN_INIT_NAME = $(call qstrip,$(BR2_PACKAGE_PODMAN_INIT_NAME))
|
|
ifneq ($(PODMAN_INIT_NAME),)
|
|
PODMAN_INIT_PATH = /usr/libexec/podman/$(PODMAN_INIT_NAME)
|
|
define PODMAN_HELPER_INIT
|
|
$(Q)ln -sf ../../bin/$(PODMAN_INIT_NAME) $(TARGET_DIR)$(PODMAN_INIT_PATH)
|
|
$(Q)mkdir -p $(TARGET_DIR)/etc/containers/containers.conf.d
|
|
$(Q)printf '[containers]\ninit_path = "%s"\n' "$(PODMAN_INIT_PATH)" \
|
|
>$(TARGET_DIR)/etc/containers/containers.conf.d/50-buildroot-init.conf
|
|
endef
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_PODMAN_NET_PASST),y)
|
|
define PODMAN_HELPER_PASST
|
|
$(Q)ln -sf ../../bin/pasta $(TARGET_DIR)/usr/libexec/podman/pasta
|
|
endef
|
|
else
|
|
define PODMAN_HELPER_SLIRP4NETNS
|
|
$(Q)ln -sf ../../bin/slirp4netns $(TARGET_DIR)/usr/libexec/podman/slirp4netns
|
|
$(Q)mkdir -p $(TARGET_DIR)/etc/containers/containers.conf.d
|
|
$(Q)printf '[network]\ndefault_rootless_network_cmd = "slirp4netns"\n' \
|
|
>$(TARGET_DIR)/etc/containers/containers.conf.d/50-buildroot-net-backend.conf
|
|
endef
|
|
endif
|
|
|
|
define PODMAN_LINUX_CONFIG_FIXUPS
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_CPUSETS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_BPF_SYSCALL)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_POSIX_MQUEUE)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_MEMCG)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_SCHED)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_FREEZER)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_DEVICE)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_CPUACCT)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_PIDS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_BPF)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_NAMESPACES)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_UTS_NS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_IPC_NS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_PID_NS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_USER_NS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_NET_NS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_SECCOMP)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_OVERLAY_FS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_KEYS)
|
|
$(PODMAN_LINUX_CONFIG_FIXUPS_BTRFS)
|
|
endef
|
|
|
|
define PODMAN_CONFIG
|
|
$(Q)$(INSTALL) -D -m 0644 \
|
|
$(PODMAN_PKGDIR)/policy.json \
|
|
$(TARGET_DIR)/etc/containers/policy.json
|
|
$(Q)$(INSTALL) -D -m 0644 \
|
|
$(PODMAN_PKGDIR)/registries.conf \
|
|
$(TARGET_DIR)/etc/containers/registries.conf
|
|
endef
|
|
PODMAN_POST_INSTALL_TARGET_HOOKS += PODMAN_CONFIG
|
|
|
|
define PODMAN_HELPERS
|
|
$(Q)mkdir -p $(TARGET_DIR)/usr/libexec/podman
|
|
$(Q)ln -sf ../../bin/aardvark-dns $(TARGET_DIR)/usr/libexec/podman/aardvark-dns
|
|
$(Q)ln -sf ../../bin/netavark $(TARGET_DIR)/usr/libexec/podman/netavark
|
|
$(PODMAN_HELPER_INIT)
|
|
$(PODMAN_HELPER_PASST)
|
|
$(PODMAN_HELPER_SLIRP4NETNS)
|
|
endef
|
|
PODMAN_POST_INSTALL_TARGET_HOOKS += PODMAN_HELPERS
|
|
|
|
$(eval $(golang-package))
|