1################################################################################ 2# 3# balena-engine 4# 5################################################################################ 6 7BALENA_ENGINE_VERSION = 20.10.26 8BALENA_ENGINE_SITE = $(call github,balena-os,balena-engine,v$(BALENA_ENGINE_VERSION)) 9 10BALENA_ENGINE_LICENSE = Apache-2.0 11BALENA_ENGINE_LICENSE_FILES = LICENSE 12 13BALENA_ENGINE_GOMOD = github.com/docker/docker 14 15BALENA_ENGINE_LDFLAGS = \ 16 -X $(BALENA_ENGINE_GOMOD)/dockerversion.GitCommit= \ 17 -X $(BALENA_ENGINE_GOMOD)/dockerversion.Version=$(BALENA_ENGINE_VERSION) \ 18 -X github.com/containerd/containerd/version.Version=N/A \ 19 -X github.com/docker/cli/cli/version.BuildTime= \ 20 -X github.com/docker/cli/cli/version.GitCommit= \ 21 -X github.com/docker/cli/cli/version.Version=N/A \ 22 -X github.com/opencontainers/runc.version=N/A 23 24BALENA_ENGINE_TAGS = \ 25 cgo \ 26 no_btrfs \ 27 no_cri \ 28 no_devmapper \ 29 no_zfs \ 30 exclude_disk_quota \ 31 exclude_graphdriver_btrfs \ 32 exclude_graphdriver_devicemapper \ 33 exclude_graphdriver_zfs 34 35BALENA_ENGINE_BUILD_TARGETS = cmd/balena-engine 36 37# create the go.mod file with language version go1.19 38# remove the conflicting vendor/modules.txt 39# remove the conflicting vendor/archive (not allowed in go1.20) 40# https://github.com/moby/moby/issues/44618#issuecomment-1343565705 41define BALENA_ENGINE_FIX_VENDORING 42 printf "module $(BALENA_ENGINE_GOMOD)\n\ngo 1.19\n" > $(@D)/go.mod 43 rm -f $(@D)/vendor/modules.txt 44 rm -rf $(@D)/vendor/archive 45endef 46BALENA_ENGINE_POST_EXTRACT_HOOKS += BALENA_ENGINE_FIX_VENDORING 47 48ifeq ($(BR2_INIT_SYSTEMD),y) 49BALENA_ENGINE_DEPENDENCIES += systemd 50BALENA_ENGINE_TAGS += journald 51endif 52 53define BALENA_ENGINE_INSTALL_INIT_SYSTEMD 54 $(INSTALL) -D -m 644 $(@D)/contrib/init/systemd/balena-engine.service \ 55 $(TARGET_DIR)/usr/lib/systemd/system/balena-engine.service 56 $(INSTALL) -D -m 644 $(@D)/contrib/init/systemd/balena-engine.socket \ 57 $(TARGET_DIR)/usr/lib/systemd/system/balena-engine.socket 58endef 59 60define BALENA_ENGINE_USERS 61 - - balena-engine -1 * - - - balenaEngine daemon 62endef 63 64define BALENA_ENGINE_LINUX_CONFIG_FIXUPS 65 $(call KCONFIG_ENABLE_OPT,CONFIG_POSIX_MQUEUE) 66 $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS) 67 $(call KCONFIG_ENABLE_OPT,CONFIG_NAMESPACES) 68 $(call KCONFIG_ENABLE_OPT,CONFIG_UTS_NS) 69 $(call KCONFIG_ENABLE_OPT,CONFIG_IPC_NS) 70 $(call KCONFIG_ENABLE_OPT,CONFIG_PID_NS) 71 $(call KCONFIG_ENABLE_OPT,CONFIG_NET_NS) 72 $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER) 73 $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK) 74 $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_ADDRTYPE) 75 $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_CONNTRACK) 76 $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_IPTABLES) 77 $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_FILTER) 78 $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_NAT) 79 $(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE) 80 $(call KCONFIG_ENABLE_OPT,CONFIG_VETH) 81endef 82 83define BALENA_ENGINE_INSTALL_SYMLINK 84 ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-daemon 85 ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-containerd 86 ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-containerd-shim 87 ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-containerd-ctr 88 ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-runc 89 ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-proxy 90 $(if $(BR2_PACKAGE_TINI),ln -f -s tini $(TARGET_DIR)/usr/bin/balena-engine-init) 91endef 92BALENA_ENGINE_POST_INSTALL_TARGET_HOOKS += BALENA_ENGINE_INSTALL_SYMLINK 93 94$(eval $(golang-package)) 95