1################################################################################
2#
3# mender
4#
5################################################################################
6
7MENDER_VERSION = 3.4.0
8MENDER_SITE = $(call github,mendersoftware,mender,$(MENDER_VERSION))
9MENDER_LICENSE = Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MIT, OLDAP-2.8
10MENDER_CPE_ID_VENDOR = northern.tech
11
12# Vendor license paths generated with:
13#    awk '{print $2}' LIC_FILES_CHKSUM.sha256 | grep vendor
14MENDER_LICENSE_FILES = \
15	LICENSE \
16	LIC_FILES_CHKSUM.sha256 \
17	vendor/github.com/mendersoftware/mender-artifact/LICENSE \
18	vendor/github.com/mendersoftware/openssl/LICENSE \
19	vendor/github.com/minio/sha256-simd/LICENSE \
20	vendor/github.com/mendersoftware/progressbar/LICENSE \
21	vendor/github.com/pkg/errors/LICENSE \
22	vendor/github.com/godbus/dbus/LICENSE \
23	vendor/github.com/gorilla/websocket/LICENSE \
24	vendor/github.com/klauspost/compress/LICENSE \
25	vendor/github.com/pmezard/go-difflib/LICENSE \
26	vendor/golang.org/x/sys/LICENSE \
27	vendor/github.com/bmatsuo/lmdb-go/LICENSE.md \
28	vendor/github.com/remyoudompheng/go-liblzma/LICENSE \
29	vendor/golang.org/x/term/LICENSE \
30	vendor/github.com/davecgh/go-spew/LICENSE \
31	vendor/github.com/klauspost/pgzip/LICENSE \
32	vendor/github.com/klauspost/cpuid/v2/LICENSE \
33	vendor/github.com/sirupsen/logrus/LICENSE \
34	vendor/github.com/stretchr/testify/LICENSE \
35	vendor/github.com/ungerik/go-sysfs/LICENSE \
36	vendor/github.com/urfave/cli/v2/LICENSE \
37	vendor/github.com/stretchr/objx/LICENSE \
38	vendor/gopkg.in/yaml.v3/LICENSE \
39	vendor/github.com/mattn/go-isatty/LICENSE \
40	vendor/github.com/bmatsuo/lmdb-go/LICENSE.mdb.md
41
42MENDER_DEPENDENCIES = host-pkgconf openssl
43
44MENDER_LDFLAGS = -X github.com/mendersoftware/mender/conf.Version=$(MENDER_VERSION)
45
46MENDER_UPDATE_MODULES_FILES = \
47	directory \
48	script \
49	single-file \
50	$(if $(BR2_PACKAGE_DOCKER_CLI),docker) \
51	$(if $(BR2_PACKAGE_RPM),rpm)
52
53define MENDER_INSTALL_CONFIG_FILES
54	$(INSTALL) -d -m 755 $(TARGET_DIR)/etc/mender/scripts
55	echo -n "3" > $(TARGET_DIR)/etc/mender/scripts/version
56
57	$(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/mender.conf \
58		$(TARGET_DIR)/etc/mender/mender.conf
59	$(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/server.crt \
60		$(TARGET_DIR)/etc/mender/server.crt
61
62	$(INSTALL) -D -m 0755 $(@D)/support/mender-device-identity \
63		$(TARGET_DIR)/usr/share/mender/identity/mender-device-identity
64	$(foreach f,bootloader-integration hostinfo network os rootfs-type, \
65		$(INSTALL) -D -m 0755 $(@D)/support/mender-inventory-$(f) \
66			$(TARGET_DIR)/usr/share/mender/inventory/mender-inventory-$(f)
67	)
68
69	$(INSTALL) -D -m 0755 $(MENDER_PKGDIR)/artifact_info \
70			$(TARGET_DIR)/etc/mender/artifact_info
71
72	$(INSTALL) -D -m 0755 $(MENDER_PKGDIR)/device_type \
73			$(TARGET_DIR)/etc/mender/device_type
74
75	mkdir -p $(TARGET_DIR)/var/lib
76	ln -snf /var/run/mender $(TARGET_DIR)/var/lib/mender
77	$(foreach f,$(MENDER_UPDATE_MODULES_FILES), \
78		$(INSTALL) -D -m 0755 $(@D)/support/modules/$(notdir $(f)) \
79			$(TARGET_DIR)/usr/share/mender/modules/v3/$(notdir $(f))
80	)
81endef
82
83MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_CONFIG_FILES
84
85ifeq ($(BR2_PACKAGE_XZ),y)
86MENDER_DEPENDENCIES += xz
87else
88MENDER_TAGS += nolzma
89endif
90
91ifeq ($(BR2_PACKAGE_DBUS)$(BR2_PACKAGE_LIBGLIB2),yy)
92MENDER_DEPENDENCIES += libglib2
93define MENDER_INSTALL_DBUS_AUTHENTICATION_MANAGER_CONF
94	$(INSTALL) -D -m 0755 $(@D)/support/dbus/io.mender.AuthenticationManager.conf \
95		$(TARGET_DIR)/etc/dbus-1/system.d/io.mender.AuthenticationManager.conf
96
97	$(INSTALL) -D -m 0755 $(@D)/support/dbus/io.mender.UpdateManager.conf \
98		$(TARGET_DIR)/etc/dbus-1/system.d/io.mender.UpdateManager.conf
99endef
100MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_DBUS_AUTHENTICATION_MANAGER_CONF
101else
102MENDER_TAGS += nodbus
103endif
104
105define MENDER_INSTALL_INIT_SYSTEMD
106	$(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/mender-client.service \
107		$(TARGET_DIR)/usr/lib/systemd/system/mender-client.service
108endef
109
110define MENDER_INSTALL_INIT_SYSV
111	$(INSTALL) -D -m 755 $(MENDER_PKGDIR)/S42mender \
112		$(TARGET_DIR)/etc/init.d/S42mender
113endef
114
115$(eval $(golang-package))
116