podman
71 строка · 2.3 Кб
1SHELL := bash
2
3ARCH ?= aarch64
4ifeq ($(ARCH), aarch64)
5GOARCH:=arm64
6else
7GOARCH:=$(ARCH)
8endif
9GVPROXY_VERSION ?= 0.7.3
10VFKIT_VERSION ?= 0.5.1
11GVPROXY_RELEASE_URL ?= https://github.com/containers/gvisor-tap-vsock/releases/download/v$(GVPROXY_VERSION)/gvproxy-darwin
12VFKIT_RELEASE_URL ?= https://github.com/crc-org/vfkit/releases/download/v$(VFKIT_VERSION)/vfkit-unsigned
13PACKAGE_DIR ?= out/packaging
14TMP_BIN ?= tmp-bin
15PACKAGE_ROOT ?= root
16PKG_NAME := podman-installer-macos-$(GOARCH).pkg
17
18default: pkginstaller
19
20podman_version:
21make -B -C ../../ test/version/version
22
23$(TMP_BIN)/gvproxy:
24mkdir -p $(TMP_BIN)
25cd $(TMP_BIN) && curl -sLo gvproxy $(GVPROXY_RELEASE_URL)
26
27$(TMP_BIN)/vfkit:
28mkdir -p $(TMP_BIN)
29cd $(TMP_BIN) && curl -sLo vfkit $(VFKIT_RELEASE_URL)
30
31packagedir: podman_version package_root Distribution welcome.html
32mkdir -p $(PACKAGE_DIR)
33cp -r Resources $(PACKAGE_DIR)/
34cp welcome.html $(PACKAGE_DIR)/Resources/
35cp Distribution $(PACKAGE_DIR)/
36cp -r scripts $(PACKAGE_DIR)/
37cp -r $(PACKAGE_ROOT) $(PACKAGE_DIR)/
38cp package.sh $(PACKAGE_DIR)/
39cd $(PACKAGE_DIR) && pkgbuild --analyze --root ./root component.plist
40../../test/version/version > $(PACKAGE_DIR)/VERSION
41echo -n $(ARCH) > $(PACKAGE_DIR)/ARCH
42cp ../../LICENSE $(PACKAGE_DIR)/Resources/LICENSE.txt
43cp vfkit.entitlements $(PACKAGE_DIR)/
44
45package_root: clean-pkgroot $(TMP_BIN)/gvproxy $(TMP_BIN)/vfkit
46mkdir -p $(PACKAGE_ROOT)/podman/bin
47cp $(TMP_BIN)/gvproxy $(PACKAGE_ROOT)/podman/bin/
48cp $(TMP_BIN)/vfkit $(PACKAGE_ROOT)/podman/bin/
49chmod a+x $(PACKAGE_ROOT)/podman/bin/*
50# Leaving for future considerations
51# mkdir $(PACKAGE_ROOT)/podman/config
52# cp ../../pkg/machine/ocipull/policy.json $(PACKAGE_ROOT)/podman/config/policy.json
53
54%: %.in podman_version
55@sed -e 's/__VERSION__/'$(shell ../../test/version/version)'/g' $< >$@
56
57pkginstaller: packagedir
58cd $(PACKAGE_DIR) && ./package.sh ..
59
60_notarize: pkginstaller
61xcrun notarytool submit --apple-id $(NOTARIZE_USERNAME) --password $(NOTARIZE_PASSWORD) --team-id=$(NOTARIZE_TEAM) -f json --wait out/$(PKG_NAME)
62
63notarize: _notarize
64xcrun stapler staple out/$(PKG_NAME)
65
66.PHONY: clean clean-pkgroot
67clean:
68rm -rf $(TMP_BIN) $(PACKAGE_ROOT) $(PACKAGE_DIR) out Distribution welcome.html ../../test/version/version
69
70clean-pkgroot:
71rm -rf $(PACKAGE_ROOT) $(PACKAGE_DIR) Distribution welcome.html
72