Browse Source

package/qbee-agent: new package

This patch add qbee-agent, an open source device management software
for Linux devices.

Signed-off-by: Jon Henrik Bjørnstad <jonhenrik@qbee.io>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Jon Henrik Bjørnstad 1 year ago
parent
commit
322500d1bd

+ 3 - 0
DEVELOPERS

@@ -1650,6 +1650,9 @@ F:	package/sdbusplus/
 N:	Jon Ringle <jringle@gridpoint.com>
 N:	Jon Ringle <jringle@gridpoint.com>
 F:	package/mbpoll/
 F:	package/mbpoll/
 
 
+N:	Jon Henrik Bjørnstad <jonhenrik@qbee.io>
+F:	package/qbee-agent/
+
 N:	Jonathan Ben Avraham <yba@tkos.co.il>
 N:	Jonathan Ben Avraham <yba@tkos.co.il>
 F:	arch/Config.in.xtensa
 F:	arch/Config.in.xtensa
 F:	package/autofs/
 F:	package/autofs/

+ 1 - 0
package/Config.in

@@ -2797,6 +2797,7 @@ menu "System tools"
 	source "package/procs/Config.in"
 	source "package/procs/Config.in"
 	source "package/psmisc/Config.in"
 	source "package/psmisc/Config.in"
 	source "package/pwgen/Config.in"
 	source "package/pwgen/Config.in"
+	source "package/qbee-agent/Config.in"
 	source "package/quota/Config.in"
 	source "package/quota/Config.in"
 	source "package/quotatool/Config.in"
 	source "package/quotatool/Config.in"
 	source "package/rauc/Config.in"
 	source "package/rauc/Config.in"

+ 25 - 0
package/qbee-agent/Config.in

@@ -0,0 +1,25 @@
+config BR2_PACKAGE_QBEE_AGENT
+	bool "qbee-agent"
+	depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
+	depends on BR2_USE_MMU # bash
+	depends on !BR2_STATIC_LIBS # shadow
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 # shadow
+	select BR2_PACKAGE_IPTABLES # runtime
+	select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash
+	select BR2_PACKAGE_SHADOW # runtime
+	select BR2_PACKAGE_BASH # runtime
+	help
+	  Qbee is a device management platform that comprise of an
+	  open-source agent and a hosted SaaS backend.  This config
+	  installs pre-built static binaries made with the official
+	  public signing key for qbee.io. The binaries will work
+	  seamlessly with the qbee.io device management backend.
+
+	  https://github.com/qbee-io/qbee-agent
+	  https://qbee.io
+
+comment "qbee-agent needs a toolchain w/ headers >= 4.14, dynamic library"
+	depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
+	depends on BR2_USE_MMU
+	depends on BR2_STATIC_LIBS || \
+		!BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14

+ 3 - 0
package/qbee-agent/qbee-agent.hash

@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  d329d6d1c885ec4d410ab8c5f93320ab603cef860311a6b392edd5b903039a81  qbee-agent-2024.09-go2.tar.gz
+sha256  02d07d96be99eb042b01ba650079a440ce26a78c5e0e1e8060c33a8c9e200404  LICENSE

+ 38 - 0
package/qbee-agent/qbee-agent.mk

@@ -0,0 +1,38 @@
+################################################################################
+#
+# qbee-agent package
+#
+################################################################################
+
+# keep QBEE_AGENT_COMMIT_ID in sync when updating
+QBEE_AGENT_VERSION = 2024.09
+QBEE_AGENT_SITE = $(call github,qbee-io,qbee-agent,$(QBEE_AGENT_VERSION))
+QBEE_AGENT_LICENSE = Apache-2.0
+QBEE_AGENT_LICENSE_FILES = LICENSE
+
+QBEE_AGENT_COMMIT_ID = c30d43b8e64cfef960cee9475b58ae083e4ad246
+
+QBEE_AGENT_GOMOD = go.qbee.io/agent
+
+QBEE_AGENT_LDFLAGS = -s -w \
+	-X $(QBEE_AGENT_GOMOD)/app.Version=$(QBEE_AGENT_VERSION) \
+	-X $(QBEE_AGENT_GOMOD)/app.Commit=$(QBEE_AGENT_COMMIT_ID)
+
+define QBEE_AGENT_INSTALL_CERT
+	$(INSTALL) -D -m 0600 $(@D)/package/share/ssl/ca.cert \
+		$(TARGET_DIR)/etc/qbee/ppkeys/ca.cert
+endef
+
+QBEE_AGENT_POST_INSTALL_TARGET_HOOKS += QBEE_AGENT_INSTALL_CERT
+
+define QBEE_AGENT_INSTALL_INIT_SYSTEMD
+	$(INSTALL) -D -m 0644 $(@D)/package/init-scripts/systemd/qbee-agent.service \
+		$(TARGET_DIR)/usr/lib/systemd/system/qbee-agent.service
+endef
+
+define QBEE_AGENT_INSTALL_INIT_SYSV
+	$(INSTALL) -D -m 755 $(@D)/package/init-scripts/sysvinit/qbee-agent \
+		$(TARGET_DIR)/etc/init.d/S99qbee-agent
+endef
+
+$(eval $(golang-package))