- Add support for AppArmor - Gracefully stop containers and pods on shutdown I found out that If you change location of containers to persistent storage instead of tmpfs, starting them will fail unless they have been stopped. If this is the case that reboot has occurred before pods and containers have been stopped, they cannot be started, they have to be removed and re-created. Change in initscript tries to avoid that. Even if containers are running at tmpfs, this won't hurt. Still, if something happens and system hangs/reboots/etc, script won't save you from that. It's just a attempt to make things better. I also enabled AppArmor support for future possibilities. Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
112 lines
3.5 KiB
Makefile
112 lines
3.5 KiB
Makefile
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=podman
|
|
PKG_VERSION:=3.1.1
|
|
PKG_RELEASE:=$(AUTORELEASE)
|
|
PKG_HASH:=4e6fb106c6363566b6edc4ac6caee0bdf6b788e01255c3b3bfcb64f4b6842229
|
|
|
|
PKG_SOURCE_URL:=https://github.com/containers/podman/archive/v$(PKG_VERSION)
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
|
|
|
PKG_LICENSE:=Apache-2.0
|
|
PKG_LICENSE_FILES:=LICENSE
|
|
PKG_MAINTAINER:=Oskari Rauta <oskari.rauta@gmail.com>
|
|
|
|
PKG_BUILD_DEPENDS:=golang/host protobuf/host
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_USE_MIPS16:=0
|
|
|
|
GO_PKG:=github.com/containers/podman/
|
|
GO_PKG_BUILD_PKG:=github.com/containers/podman/v3/cmd/podman/
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include ../../lang/golang/golang-package.mk
|
|
|
|
define Download/default-registries
|
|
URL:=https://raw.githubusercontent.com/projectatomic/registries/da9a9c87781823f45401ca49da04e269c9e3100e
|
|
URL_FILE:=registries.fedora
|
|
FILE:=registries.fedora-da9a9c8778
|
|
HASH:=bc2b58c209aa8ca35b6814ec9a3c64716d4970b884ade460b65000e56024dfee
|
|
endef
|
|
|
|
define Download/default-policy
|
|
URL:=https://raw.githubusercontent.com/containers/skopeo/362f70b056a1f5d2bd4184527a0ae0d20c4d35d3
|
|
URL_FILE:=default-policy.json
|
|
FILE:=default-policy.json-362f70b056
|
|
HASH:=cddfaa8e6a7e5497b67cc0dd8e8517058d0c97de91bf46fff867528415f2d946
|
|
endef
|
|
|
|
define Package/podman/Default
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
TITLE:=Podman
|
|
DEPENDS:=$(GO_ARCH_DEPENDS) +conmon +cni +cni-plugins +btrfs-progs +glib2 +gnupg2 +iptables +libgpg-error +libseccomp +libgpgme +nsenter +zoneinfo-simple +kmod-veth
|
|
URL:=https://podman.io
|
|
endef
|
|
|
|
define Package/podman
|
|
$(call Package/podman/Default)
|
|
CONFLICTS:=podman-selinux
|
|
VARIANT:=default
|
|
PROVIDES:=podman
|
|
endef
|
|
|
|
define Package/podman-selinux
|
|
$(call Package/podman/Default)
|
|
TITLE+= with SELinux support
|
|
DEPENDS+= libselinux
|
|
VARIANT:=selinux
|
|
PROVIDES:=podman
|
|
endef
|
|
|
|
define Package/podman/description
|
|
Podman: A tool for managing OCI containers and pods
|
|
endef
|
|
|
|
define Package/podman-selinux/description
|
|
Podman: A tool for managing OCI containers and pods
|
|
SELinux enabled.
|
|
endef
|
|
|
|
define Package/podman/conffiles
|
|
/etc/containers/policy.json
|
|
/etc/containers/storage.conf
|
|
/etc/containers/registries.conf
|
|
/etc/containers/containers.conf
|
|
/etc/cni/net.d/87-podman-bridge.conflist
|
|
endef
|
|
|
|
Package/podman-selinux/conffiles = $(Package/podman/conffiles)
|
|
|
|
ifeq ($(BUILD_VARIANT),selinux)
|
|
GO_PKG_TAGS=seccomp,exclude_graphdriver_devicemapper,selinux,apparmor
|
|
else
|
|
GO_PKG_TAGS=seccomp,exclude_graphdriver_devicemapper,apparmor
|
|
endif
|
|
|
|
define Build/Prepare
|
|
$(call Build/Prepare/Default)
|
|
$(eval $(call Download,default-registries))
|
|
$(eval $(call Download,default-policy))
|
|
endef
|
|
|
|
define Package/podman/install
|
|
$(call GoPackage/Package/Install/Bin,$(1))
|
|
$(INSTALL_DIR) $(1)/etc/containers
|
|
$(INSTALL_CONF) $(DL_DIR)/default-policy.json-362f70b056 $(1)/etc/containers/policy.json
|
|
$(INSTALL_CONF) $(DL_DIR)/registries.fedora-da9a9c8778 $(1)/etc/containers/registries.conf
|
|
$(INSTALL_CONF) $(PKG_BUILD_DIR)/vendor/github.com/containers/storage/storage.conf $(1)/etc/containers/storage.conf
|
|
$(INSTALL_CONF) ./files/containers.conf $(1)/etc/containers/containers.conf
|
|
$(INSTALL_DIR) $(1)/etc/cni/net.d
|
|
$(INSTALL_CONF) $(PKG_BUILD_DIR)/cni/87-podman-bridge.conflist $(1)/etc/cni/net.d/
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) ./files/podman.init $(1)/etc/init.d/podman
|
|
$(SED) 's/driver = \"\"/driver = \"overlay\"/g' $(1)/etc/containers/storage.conf
|
|
endef
|
|
|
|
Package/podman-selinux/install = $(Package/podman/install)
|
|
|
|
$(eval $(call GoBinPackage,podman))
|
|
$(eval $(call BuildPackage,podman))
|
|
$(eval $(call GoBinPackage,podman-selinux))
|
|
$(eval $(call BuildPackage,podman-selinux))
|