[Buildroot] [BUILDROOT][PATCHv2 1/3] balena: new package

Refik Tuzaklı refik.tuzakli at savronik.com.tr
Tue Jun 5 13:16:17 UTC 2018


 From 65b90eefab3fd936b5eec0e3004e5ec370c7d3b9 Mon Sep 17 00:00:00 2001
From: Refik Tuzakli <refik.tuzakli at savronik.com.tr>
Date: Tue, 5 Jun 2018 15:58:39 +0300
Subject: [PATCHv2 1/3] balena new package v2


This patch adds balena; Moby-based Container Engine for Embedded, IoT, 
and Edge uses.

Signed-off-by: Refik Tuzakli <refik.tuzakli at savronik.com.tr>
---
Changes v1 -> v2
     -converted to golang infrastructure and removed unnecessary variables \
         suggested by Thomas Petazzoni

  DEVELOPERS                 |  3 +++
  package/Config.in          |  1 +
  package/balena/Config.in   | 18 +++++++++++++++
  package/balena/balena.hash |  2 ++
  package/balena/balena.mk   | 56 
++++++++++++++++++++++++++++++++++++++++++++++
  5 files changed, 80 insertions(+)
  create mode 100644 package/balena/Config.in
  create mode 100644 package/balena/balena.hash
  create mode 100644 package/balena/balena.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 1ad3edc..ae3abe1 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1613,6 +1613,9 @@ N:    Rahul Jain <rahul.jain at imgtec.com>
  F:    package/uhttpd/
  F:    package/ustream-ssl/

+N:    Refik Tuzakli <refik.tuzakli at savronik.com.tr>
+F:    package/balena/
+
  N:    Renaud Aubin <root at renaud.io>
  F:    package/libhttpparser/

diff --git a/package/Config.in b/package/Config.in
index 1730201..21c980c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1984,6 +1984,7 @@ menu "System tools"
      source "package/atop/Config.in"
      source "package/attr/Config.in"
      source "package/audit/Config.in"
+    source "package/balena/Config.in"
      source "package/bootutils/Config.in"
      source "package/cgroupfs-mount/Config.in"
      source "package/circus/Config.in"
diff --git a/package/balena/Config.in b/package/balena/Config.in
new file mode 100644
index 0000000..1323cf2
--- /dev/null
+++ b/package/balena/Config.in
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_BALENA
+    bool "balena"
+    depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
+    depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
+    depends on BR2_TOOLCHAIN_HAS_THREADS
+    depends on BR2_INIT_SYSTEMD
+    depends on BR2_TOOLCHAIN_HAS_THREADS
+    depends on BR2_USE_MMU # needs fork()
+    depends on !BR2_STATIC_LIBS # It fails to build statically
+    select BR2_PACKAGE_LVM2
+    select BR2_PACKAGE_LVM2_STANDARD_INSTALL
+    help
+      Moby-based Container Engine for Embedded, IoT, and Edge uses
+
+      https://github.com/resin-os/balena
+
+comment "balena needs systemd"
+    depends on !BR2_INIT_SYSTEMD
diff --git a/package/balena/balena.hash b/package/balena/balena.hash
new file mode 100644
index 0000000..9d40895
--- /dev/null
+++ b/package/balena/balena.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 ae07affea7f50d9754957d972c9957f42938998dffc48cc57fca37e0b187359a 
balena-17.06-resin.tar.gz
diff --git a/package/balena/balena.mk b/package/balena/balena.mk
new file mode 100644
index 0000000..01e5ddf
--- /dev/null
+++ b/package/balena/balena.mk
@@ -0,0 +1,56 @@
+################################################################################
+#
+# balena
+#
+################################################################################
+
+BALENA_VERSION = 17.06-resin
+BALENA_COMMIT = 73136d1985f28a34705f537e90636cf208734048
+BALENA_SITE = $(call github,resin-os,balena,$(BALENA_VERSION))
+
+BALENA_LICENSE = Apache-2.0
+BALENA_LICENSE_FILES = LICENSE
+
+BALENA_DEPENDENCIES = host-pkgconf systemd lvm2
+
+BALENA_GOPATH = $(@D)/_gopath
+
+BALENA_CONFIGURE_ENV = GOPATH=${BALENA_GOPATH} \
+    $(TARGET_MAKE_ENV) \
+    $(HOST_GO_TARGET_ENV) \
+    DOCKER_GITCOMMIT=${BALENA_COMMIT} \
+    DOCKER_BUILDTAGS='exclude_graphdriver_btrfs exclude_graphdirver_zfs 
exclude_graphdriver_devicemapper'
+
+BALENA_MAKE_ENV = GOPATH=$(BALENA_GOPATH)
+
+BALENA_LDFLAGS += -extldflags '-static'
+
+BALENA_SRC_SUBDIR = github.com/docker/docker
+
+define BALENA_MAKE_DYNBINARY_BALENA
+    cd $(@D) && \
+        $(BALENA_CONFIGURE_ENV) \
+        bash ./hack/make.sh dynbinary-balena
+endef
+
+BALENA_POST_CONFIGURE_HOOKS += BALENA_MAKE_DYNBINARY_BALENA
+
+define BALENA_BUILD_CMDS
+    cd $(@D)/_gopath/src/github.com/docker/docker/cmd/mobynit; \
+    $(BALENA_MAKE_ENV) \
+    $(HOST_DIR)/bin/go build -v\
+        -ldflags "$(BALENA_LDFLAGS)"
+endef
+
+define BALENA_INSTALL_TARGET_CMDS
+    $(INSTALL) -D -m 0755 
$(@D)/bundles/17.06.0-dev/dynbinary-balena/balena \
+        $(TARGET_DIR)/usr/bin/balena
+    ln -sf balena $(TARGET_DIR)/usr/bin/balenad
+    ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd
+    ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-shim
+    ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-ctr
+    ln -sf balena $(TARGET_DIR)/usr/bin/balena-runc
+    ln -sf balena $(TARGET_DIR)/usr/bin/balena-proxy
+endef
+
+$(eval $(golang-package))
-- 
1.9.1

-- 

Refik Tuzaklı
Embedded Software Engineer
IT and Simulation Group

Savronik A.Ş.

Organize Sanayi Bölgesi

20. Cadde No: 19 26110

Eskişehir Turkey

Tel   : (+90 222) 236 1590

Faks: (+90 222) 236 1589
www.savronik.com.tr

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180605/f3eec772/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: refik_tuzakli.vcf
Type: text/x-vcard
Size: 4 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180605/f3eec772/attachment-0002.vcf>


More information about the buildroot mailing list