mpc: update to 0.35
[feed/packages.git] / utils / podman / Makefile
1 include $(TOPDIR)/rules.mk
2
3 PKG_NAME:=podman
4 PKG_VERSION:=4.8.0
5 PKG_RELEASE:=1
6
7 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
8 PKG_SOURCE_URL:=https://github.com/containers/podman/archive/v$(PKG_VERSION)
9 PKG_HASH:=cd0afd1fb493b0c099fd8634525f318f35e4e84c1d7735d8426a722a4d5c8409
10
11 PKG_LICENSE:=Apache-2.0
12 PKG_LICENSE_FILES:=LICENSE
13 PKG_MAINTAINER:=Oskari Rauta <oskari.rauta@gmail.com>
14
15 PKG_BUILD_DEPENDS:=golang/host protobuf/host btrfs-progs
16 PKG_BUILD_PARALLEL:=1
17 PKG_BUILD_FLAGS:=no-mips16
18 PKG_INSTALL:=1
19
20 include $(INCLUDE_DIR)/package.mk
21 include ../../lang/golang/golang-package.mk
22
23 define Download/default-registries
24 URL:=https://raw.githubusercontent.com/projectatomic/registries/da9a9c87781823f45401ca49da04e269c9e3100e
25 URL_FILE:=registries.fedora
26 FILE:=registries.fedora-da9a9c8778
27 HASH:=bc2b58c209aa8ca35b6814ec9a3c64716d4970b884ade460b65000e56024dfee
28 endef
29
30 define Download/default-policy
31 URL:=https://raw.githubusercontent.com/containers/skopeo/362f70b056a1f5d2bd4184527a0ae0d20c4d35d3
32 URL_FILE:=default-policy.json
33 FILE:=default-policy.json-362f70b056
34 HASH:=cddfaa8e6a7e5497b67cc0dd8e8517058d0c97de91bf46fff867528415f2d946
35 endef
36
37 define Package/podman
38 SECTION:=utils
39 CATEGORY:=Utilities
40 TITLE:=Podman
41 URL:=https://podman.io
42 DEPENDS:=$(GO_ARCH_DEPENDS) +conmon +libgpgme +libseccomp +nsenter +zoneinfo-simple +kmod-veth +slirp4netns +netavark +aardvark-dns +catatonit +crun +PODMAN_SELINUX_SUPPORT:libselinux
43 endef
44
45 define Package/podman/description
46 Podman: A tool for managing OCI containers and pods
47 endef
48
49 define Package/podman/config
50 menu "Configuration"
51
52 config PODMAN_SELINUX_SUPPORT
53 bool "Enable SELinux support"
54 default n
55
56 endmenu
57 endef
58
59 define Package/podman/conffiles
60 /etc/containers/policy.json
61 /etc/containers/storage.conf
62 /etc/containers/registries.conf
63 /etc/containers/containers.conf
64 /etc/containers/networks/podman.json
65 endef
66
67 ifdef CONFIG_PODMAN_SELINUX_SUPPORT
68 GO_PKG_TAGS=seccomp,exclude_graphdriver_devicemapper,selinux,apparmor
69 else
70 GO_PKG_TAGS=seccomp,exclude_graphdriver_devicemapper,apparmor
71 endif
72
73 MAKE_VARS += \
74 GO_INSTALL_BIN_PATH="$(strip $(GO_PKG_INSTALL_BIN_PATH))" \
75 BUILD_DIR="$(PKG_BUILD_DIR)" \
76 GO_BUILD_DIR="$(GO_PKG_BUILD_DIR)" \
77 GO_BUILD_BIN_DIR="$(GO_PKG_BUILD_BIN_DIR)" \
78 GO_BUILD_DEPENDS_PATH="$(GO_PKG_BUILD_DEPENDS_PATH)" \
79 GO_BUILD_DEPENDS_SRC="$(GO_PKG_BUILD_DEPENDS_SRC)" \
80 GOOS="$(GO_OS)" \
81 GOARCH="$(GO_ARCH)" \
82 CC="$(TARGET_CC)" \
83 CXX="$(TARGET_CXX)" \
84 CGO_CFLAGS="$(filter-out $(GO_CFLAGS_TO_REMOVE),$(TARGET_CFLAGS))" \
85 CGO_CPPFLAGS="$(TARGET_CPPFLAGS)" \
86 CGO_CXXFLAGS="$(filter-out $(GO_CFLAGS_TO_REMOVE),$(TARGET_CXXFLAGS))" \
87 CGO_LDFLAGS="$(TARGET_LDFLAGS)" \
88 GOPATH="$(GO_PKG_BUILD_DIR)" \
89 GOCACHE="$(GO_BUILD_CACHE_DIR)" \
90 GOMODCACHE="$(GO_MOD_CACHE_DIR)" \
91 GOFLAGS="$(GO_PKG_GCFLAGS)" \
92 GO_PKG_CFLAGS="$(GO_PKG_CFLAGS)" \
93 CGO_ENABLED=1 \
94 GOENV=off \
95 PREFIX=/usr \
96 LIBEXECDIR=/usr/lib \
97 LIBEXECPODMAN=/usr/lib/podman \
98 SHAREDIR_CONTAINERS=/usr/share/containers \
99 ETCDIR=/etc \
100 TMPFILESDIR=/var/run/podman \
101 BUILDTAGS="$(GO_PKG_TAGS)" \
102 EXTRA_LDFLAGS="$(GO_PKG_LDFLAGS)"
103
104 define Build/Prepare
105 $(call Build/Prepare/Default)
106 $(eval $(call Download,default-registries))
107 $(eval $(call Download,default-policy))
108 endef
109
110 ifneq ($(CONFIG_USE_MUSL),)
111 TARGET_CFLAGS += -D_LARGEFILE64_SOURCE
112 endif
113
114 define Package/podman/install
115 $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib/podman
116 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{podman,podman-remote} $(1)/usr/bin/
117 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/podman/{rootlessport,quadlet} $(1)/usr/lib/podman/
118 $(LN) podman $(1)/usr/bin/podmansh
119 $(INSTALL_DIR) $(1)/etc/containers
120 $(INSTALL_DATA) $(DL_DIR)/default-policy.json-362f70b056 $(1)/etc/containers/policy.json
121 $(INSTALL_DATA) $(DL_DIR)/registries.fedora-da9a9c8778 $(1)/etc/containers/registries.conf
122 $(INSTALL_DATA) $(PKG_BUILD_DIR)/vendor/github.com/containers/storage/storage.conf $(1)/etc/containers/storage.conf
123 $(INSTALL_DATA) ./files/containers.conf $(1)/etc/containers/containers.conf
124 $(INSTALL_DIR) $(1)/etc/containers/networks
125 $(INSTALL_CONF) ./files/podman.json $(1)/etc/containers/networks
126 $(INSTALL_DIR) $(1)/usr/share/containers
127 $(INSTALL_DATA) $(PKG_BUILD_DIR)/vendor/github.com/containers/common/pkg/seccomp/seccomp.json $(1)/usr/share/containers/
128 $(INSTALL_DIR) $(1)/etc/init.d
129 $(INSTALL_BIN) ./files/podman.init $(1)/etc/init.d/podman
130 $(SED) 's/driver = \"\"/driver = \"overlay\"/g' $(1)/etc/containers/storage.conf
131 endef
132
133 $(eval $(call BuildPackage,podman))