From patchwork Sat Dec 30 10:02:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Angelo Compagnucci X-Patchwork-Id: 854078 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=amarulasolutions-com.20150623.gappssmtp.com header.i=@amarulasolutions-com.20150623.gappssmtp.com header.b="NoLOSX7t"; dkim-atps=neutral Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3z7zXG1hbMz9s7g for ; Sat, 30 Dec 2017 21:02:21 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 85A8D8661A; Sat, 30 Dec 2017 10:02:19 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0pTydvAV-eOS; Sat, 30 Dec 2017 10:02:18 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 7F92386020; Sat, 30 Dec 2017 10:02:18 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id CD8831C0B30 for ; Sat, 30 Dec 2017 10:02:16 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id CB38C86004 for ; Sat, 30 Dec 2017 10:02:16 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OicxqqKnlr0S for ; Sat, 30 Dec 2017 10:02:15 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com [74.125.82.46]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 0F3F686020 for ; Sat, 30 Dec 2017 10:02:15 +0000 (UTC) Received: by mail-wm0-f46.google.com with SMTP id i11so51034811wmf.4 for ; Sat, 30 Dec 2017 02:02:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=4uP6EfEdg2rSbJdTAOfQEYc3jbgWaM1UhS9WK0PP4JE=; b=NoLOSX7tRxvIqRSyG7smV1di3H78KRU1R4Y6416gaerHuYAMpAEJ6JVVTo0cT63Ti+ /OsYDLCb7S0eAF/+HYlrJOBiR+pM051+N3eiF5l2WT2q3ufj7UnmefBRdbKDyj7ERlqn 40WNgMtV9nr2tox1/bJrWamOxNk+AfCDSTHrzS9H2r8N4eMOI6a1YHIWuad/XCpszhBj trjINUH7D0ZzOj/3ABowSM7/F69okrZQDSXPwqHaAp7QP7Py4P8+kcoHg9GYeTQu1b5o ITkM63h3k1sLYFr6ExbxDGlXUbZIcvJstBYNRabu93M9N+oMJxT4SAINiVp2w4EsHlMG S5nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4uP6EfEdg2rSbJdTAOfQEYc3jbgWaM1UhS9WK0PP4JE=; b=TaADULsxZO/H9cfm0zL+xOhKOxnqBJGSAkdcF2TioUAUVf4PBLtC1Qhk2vVVZHcv9F 8XL/8Cb67895/rwkVIK1zpHlNuXRGfKNozZRXAqwqRjgBuiT4ndkHt9NnmZkV6nrpDOH X8D04kF8sRuBHaiX965KZHJgd8KIwLMSxLE2Q2XqlQeXEDQ/lxrJpDY8iptx+O1UtAwY kSH4NYthgm9ZRti6Tdx9mNgQep+V0JwJcep3iESErr185ssYY/qpR4gB3fcI4GJv/kNj E7YDOmjdOBf/S3tE79w1eTAkokd19MywllWfeLQ0arerQyZJf5fHuJHxeUjXE7lfMfVc XcKQ== X-Gm-Message-State: AKGB3mLuOXVwVaEhujIb/WR8eosx9+lMUW4OnIVvdDt+clXt2nYkG0Xn sjVNFQLaiOh5JK5OaS6k3DHt3MHu8q0= X-Google-Smtp-Source: ACJfBotZTp0INlUoHCShT/4z36PyJM033vSvD6EOVEN8703o1sw2hJAuiRRHQej3uS9+7AuA/Fd3JQ== X-Received: by 10.28.141.11 with SMTP id p11mr6417518wmd.149.1514628133213; Sat, 30 Dec 2017 02:02:13 -0800 (PST) Received: from localhost.localdomain ([89.202.204.147]) by smtp.gmail.com with ESMTPSA id n65sm66180723wrb.17.2017.12.30.02.02.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 30 Dec 2017 02:02:12 -0800 (PST) From: Angelo Compagnucci To: buildroot@buildroot.org Date: Sat, 30 Dec 2017 11:02:01 +0100 Message-Id: <1514628127-15938-2-git-send-email-angelo@amarulasolutions.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> References: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> Subject: [Buildroot] [PATCH v2 1/7] package/pkg-golang: new package infrastructure X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Angelo Compagnucci MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: Angelo Compagnucci This patch adds a new infrastructure for golang based packages. Signed-off-by: Angelo Compagnucci --- Changes: v1 -> v2: Renamed GOBIN to GO_BIN for clarity package/Makefile.in | 1 + package/pkg-golang.mk | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 package/pkg-golang.mk diff --git a/package/Makefile.in b/package/Makefile.in index a1a5316..60d98d0 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -429,3 +429,4 @@ include package/pkg-kconfig.mk include package/pkg-rebar.mk include package/pkg-kernel-module.mk include package/pkg-waf.mk +include package/pkg-golang.mk diff --git a/package/pkg-golang.mk b/package/pkg-golang.mk new file mode 100644 index 0000000..f6052a6 --- /dev/null +++ b/package/pkg-golang.mk @@ -0,0 +1,121 @@ +################################################################################ +# Golang package infrastructure +# +# This file implements an infrastructure that eases development of +# package .mk files for Go packages. It should be used for all +# packages that are written in go. +# +# See the Buildroot documentation for details on the usage of this +# infrastructure +# +# +# In terms of implementation, this golang infrastructure requires +# the .mk file to only specify metadata information about the +# package: name, version, download URL, etc. +# +# We still allow the package .mk file to override what the different +# steps are doing, if needed. For example, if _BUILD_CMDS is +# already defined, it is used as the list of commands to perform to +# build the package, instead of the default golang behavior. The +# package can also define some post operation hooks. +# +################################################################################ + +GO_BIN = $(HOST_DIR)/bin/go + +################################################################################ +# inner-golang-package -- defines how the configuration, compilation and +# installation of a Go package should be done, implements a few hooks to +# tune the build process for Go specificities and calls the generic package +# infrastructure to generate the necessary make targets +# +# argument 1 is the lowercase package name +# argument 2 is the uppercase package name, including a HOST_ prefix +# for host packages +# argument 3 is the uppercase package name, without the HOST_ prefix +# for host packages +# argument 4 is the type (target or host) +################################################################################ + +define inner-golang-package + +$(2)_GOPATH ?= _gopath +$(2)_GO_ENV ?= $$(HOST_GO_TARGET_ENV) \ + GOPATH="$$(@D)/$$($(2)_GOPATH)" \ + CGO_ENABLED=$$(HOST_GO_CGO_ENABLED) + +ifeq ($(BR2_STATIC_LIBS),y) + $(2)_GO_LDFLAGS += -extldflags '-static' +endif + +ifdef $(2)_GO_LDFLAGS + $(2)_BUILD_OPTS += -ldflags "$$($(2)_GO_LDFLAGS)" +endif + +ifdef $(2)_GO_TAGS + $(2)_BUILD_OPTS += -tags "$$($(2)_GO_TAGS)" +endif + +# Target packages need the Go compiler on the host. +$(2)_DEPENDENCIES += host-go + +# +# The go build/install command installs the binaries inside +# gopath/bin/linux_GOARCH/ when cross compilation is enabled. +# We set this variable here to be used by packages if needed. +# +$(2)_BINDIR = $$($(2)_GOPATH)/bin/linux_$$(GO_GOARCH) + +# +# Source files in Go should be uncompressed in a precise folder in the +# hierarchy of GOPATH. It usually resolves around domain/vendor/software. +# +$(2)_GO_SRC_PATH ?= $$(call domain,$($(2)_SITE))/$$(firstword $$(subst /, ,$$(call notdomain,$($(2)_SITE)))) +$(2)_SRC_PATH = $$(@D)/$$($(2)_GOPATH)/src/$$($(2)_GO_SRC_PATH)/$(1) + +# +# Configure step. Only define it if not already defined by the package +# .mk file. +# +ifndef $(2)_CONFIGURE_CMDS +define $(2)_CONFIGURE_CMDS + mkdir -p $$(@D)/$$($(2)_GOPATH)/bin + mkdir -p $$(@D)/$$($(2)_GOPATH)/src/$$($(2)_GO_SRC_PATH) + ln -sf $$(@D) $$($(2)_SRC_PATH) +endef +endif + +# +# Build step. Only define it if not already defined by the package .mk file. +# We use the install command instead of build command here because the +# install command also moves the package binaries in gopath/bin/linux_GOARCH/. +# Using the install command also leverages the go build infrastructure +# for building and installing multiple binaries. +# +ifndef $(2)_BUILD_CMDS +define $(2)_BUILD_CMDS + cd $$($(2)_SRC_PATH) && $$($(2)_GO_ENV) $$(GO_BIN) install -v $$($(2)_BUILD_OPTS) +endef +endif + +# +# Target installation step. Only define it if not already defined by the +# package .mk file. +# +ifndef $(2)_INSTALL_TARGET_CMDS +define $(2)_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $$(@D)/$$($(2)_BINDIR)/$(1) $(TARGET_DIR)/usr/bin/ +endef +endif + +# Call the generic package infrastructure to generate the necessary make +# targets +$(call inner-generic-package,$(1),$(2),$(3),$(4)) + +endef # inner-golang-package + +################################################################################ +# golang-package -- the target generator macro for Go packages +################################################################################ + +golang-package = $(call inner-golang-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) From patchwork Sat Dec 30 10:02:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Angelo Compagnucci X-Patchwork-Id: 854080 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=amarulasolutions-com.20150623.gappssmtp.com header.i=@amarulasolutions-com.20150623.gappssmtp.com header.b="zsvPXFVu"; dkim-atps=neutral Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3z7zXM3L7gz9t32 for ; Sat, 30 Dec 2017 21:02:27 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id C6B042ED7A; Sat, 30 Dec 2017 10:02:24 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ozs1r4ifuRoS; Sat, 30 Dec 2017 10:02:23 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 001A82E97C; Sat, 30 Dec 2017 10:02:22 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 245451C0B30 for ; Sat, 30 Dec 2017 10:02:18 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 21CF7874F2 for ; Sat, 30 Dec 2017 10:02:18 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SHLyrvUtAk4x for ; Sat, 30 Dec 2017 10:02:17 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr0-f171.google.com (mail-wr0-f171.google.com [209.85.128.171]) by hemlock.osuosl.org (Postfix) with ESMTPS id 94F2786CDD for ; Sat, 30 Dec 2017 10:02:16 +0000 (UTC) Received: by mail-wr0-f171.google.com with SMTP id o15so11112069wrf.12 for ; Sat, 30 Dec 2017 02:02:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=F+Okb6/JrNL4IYojyHFdfRV1XfkHqyn3EjA+0V3KENs=; b=zsvPXFVunqsQzPdvZaOakbzMGgfV8IKmfr14AbSL971tP9ScNraPNtW06Sm1vs6BZ9 n1XRjjoozDSQVWuQqyIPKXcrRmIxi/AKWSbCv0g0+Om3DS2oH1jTcxARs4/3jsLQGvzF j1vY/j6BHo3ccKNwj9D5Ge0GhfQ8Hx7Hi2fr1azzHUlUKNYaTXzDtz/4B8zSIYjD0xll ixYq1h6fPjvmGhb+8U6Kt6iwdGaVAyhH2oMcfQr2SQ6TYrrcMne2AxqK2f6stg4ieuHJ qvfs203CSkzUSGDUmB7jb/oPj/pMSffnphW93XSuYo7DsBfW9r5LxojSG6hFyB9QruKb HEmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=F+Okb6/JrNL4IYojyHFdfRV1XfkHqyn3EjA+0V3KENs=; b=pDRiAOFNrIaQCS0UwEutVqJMwAOmZ5j5ptzcDW/W+JGpmTOlOSinr7xXWAnQQlF0vd CDIBmjRfR9F88n5vE/rNRI7GyT7p1ePS+eCuyNrZ1OlSxc2ffPlSHgTrsL6zea3CCLCb Ip5bN6EiHcL0AIxSGftvect5W5Xp5ljFquFDboBwK2fnlcvgk2desu//O8Oy3gIj4KY5 Oq/sSFzMn99Vk7A06MAkGr7inM6hrlW6GHTqH8cLVQP/s4haLdtxuIF61MrF2ExLvsAA na5Y/d8vovnf+DYPYHYFnKPk/pnkovKkkrWlw73EIUpZ1o7LHGbpmmZoSbHRYvJpT9AR e0OA== X-Gm-Message-State: AKGB3mLK/RLvH9APBWgnhh3Bx6dyVtOExjCcDFklqnxd8F4UQlfe0uph pe9J02GNroVkY+55jvhfnFuwGsareDU= X-Google-Smtp-Source: ACJfBouUXOzg3tT6sUbekExt0C4iICnTpvjxGNth2Q3TZGrl+bvkK+RKFxN/if75i2cB4qVrl1wSKg== X-Received: by 10.223.161.208 with SMTP id v16mr34170003wrv.103.1514628134745; Sat, 30 Dec 2017 02:02:14 -0800 (PST) Received: from localhost.localdomain ([89.202.204.147]) by smtp.gmail.com with ESMTPSA id n65sm66180723wrb.17.2017.12.30.02.02.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 30 Dec 2017 02:02:13 -0800 (PST) From: Angelo Compagnucci To: buildroot@buildroot.org Date: Sat, 30 Dec 2017 11:02:02 +0100 Message-Id: <1514628127-15938-3-git-send-email-angelo@amarulasolutions.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> References: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> Subject: [Buildroot] [PATCH v2 2/7] docs/manual: adding documentation for the golang infrastructure X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Angelo Compagnucci MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: Angelo Compagnucci This patch adds the documentation for the golang infrastructure. Signed-off-by: Angelo Compagnucci --- Changes: v1 -> v2: Adding documentation for go TAGS docs/manual/adding-packages-golang.txt | 116 +++++++++++++++++++++++++++++++++ docs/manual/adding-packages.txt | 2 + 2 files changed, 118 insertions(+) create mode 100644 docs/manual/adding-packages-golang.txt diff --git a/docs/manual/adding-packages-golang.txt b/docs/manual/adding-packages-golang.txt new file mode 100644 index 0000000..5d6de3a --- /dev/null +++ b/docs/manual/adding-packages-golang.txt @@ -0,0 +1,116 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for Go packages + +This infrastructure applies to Go packages that use the standard +build system and use bundled dependencies. + +[[golang-package-tutorial]] + +==== +golang-package+ tutorial + +First, let's see how to write a +.mk+ file for a go package, +with an example : + +------------------------ +01: ################################################################################ +02: # +03: # go-foo +04: # +05: ################################################################################ +06: +07: GO_FOO_VERSION = 1.0 +08: GO_FOO_SOURCE = go-foo-$(GO_FOO_VERSION).tar.xz +09: GO_FOO_SITE = http://www.foosoftware.org/download +10: GO_FOO_LICENSE = BSD-3-Clause +11: GO_FOO_LICENSE_FILES = LICENSE +12: +13: $(eval $(golang-package)) +------------------------ + +On line 7, we declare the version of the package. + +On line 8 and 9, we declare the name of the tarball (xz-ed tarball +recommended) and the location of the tarball on the Web. Buildroot +will automatically download the tarball from this location. + +On line 10 and 11, we give licensing details about the package (its +license on line 10, and the file containing the license text on line +11). + +Finally, on line 13, we invoke the +golang-package+ macro that +generates all the Makefile rules that actually allow the package to be +built. + +[[golang-package-reference]] + +==== +golang-package+ reference + +As a policy packages can freely choose their name (existing example in +Buildroot is +flannel+). + +In their +Config.in+ file, they should depend on ++BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS+ and ++BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS+ cause host-go will compile when Buildroot will add the +dependency automatically. + +The main macro of the Go package infrastructure is ++golang-package+. It is similar to the +generic-package+ macro. + +Just like the generic infrastructure, the Go infrastructure works +by defining a number of variables before calling the +golang-package+. + +All the package metadata information variables that exist in the +xref:generic-package-reference[generic package infrastructure] also +exist in the Go infrastructure: +GO_FOO_VERSION+, ++GO_FOO_SOURCE+, +GO_FOO_PATCH+, +GO_FOO_SITE+, ++GO_FOO_SUBDIR+, +GO_FOO_DEPENDENCIES+, +GO_FOO_LICENSE+, ++GO_FOO_LICENSE_FILES+, +GO_FOO_INSTALL_STAGING+, etc. + +Note that: + + * It is not necessary to add +go+ or +host-go+ in the + +GO_FOO_DEPENDENCIES+ variable of a package, since these basic + dependencies are automatically added as needed by the Go + package infrastructure. + +A few additional variables, specific to the Go infrastructure, can +optionally be defined, depending on the package's needs. Many of them +are only useful in very specific cases, typical packages will +therefore only use a few of them, or none. + +* If your package need a custom GOPATH to be compiled in, you can use the + +GO_FOO_GOPATH+. + +* +GO_FOO_GO_SRC_PATH+ is the path where your source will be compiled + relatively to the GOPATH. + The golang package infrastructure tries to guess the correct + sub folder to compile in but if guessing is not correct for you or your + package behaves differently, you can use this variable to + redefine the path. + +* +GOO_FOO_GO_LDFLAGS+ and +GO_FOO_GO_TAGS+ can be used to pass + respectively the LDFLAGS or the TAGS to the build command. + +GOO_FOO_GO_LDFLAGS+ and +GO_FOO_GO_TAGS+ will be combined into + the proper command line options to be passed to the compiler. + +* If you need to customize the install location for you binaries, you + can use +GOO_FOO_BINDIR+ to know where the binaries are. + +* If you need to customize the building tags you can use GOO_FOO_GO_TAGS + +With the Go infrastructure, all the steps required to build and +install the packages are already defined, and they generally work well +for most Go-based packages. However, when required, it is still +possible to customize what is done in any particular step: + +* By adding a post-operation hook (after extract, patch, configure, + build or install). See xref:hooks[] for details. + +* By overriding one of the steps. For example, even if the Go + infrastructure is used, if the package +.mk+ file defines its own + +GO_FOO_BUILD_CMDS+ variable, it will be used instead of the + default Go one. However, using this method should be restricted + to very specific cases. Do not use it in the general case. + diff --git a/docs/manual/adding-packages.txt b/docs/manual/adding-packages.txt index e542124..56991ab 100644 --- a/docs/manual/adding-packages.txt +++ b/docs/manual/adding-packages.txt @@ -36,6 +36,8 @@ include::adding-packages-waf.txt[] include::adding-packages-meson.txt[] +include::adding-packages-golang.txt[] + include::adding-packages-kernel-module.txt[] include::adding-packages-asciidoc.txt[] From patchwork Sat Dec 30 10:02:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Angelo Compagnucci X-Patchwork-Id: 854083 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=amarulasolutions-com.20150623.gappssmtp.com header.i=@amarulasolutions-com.20150623.gappssmtp.com header.b="KQhN5ByO"; dkim-atps=neutral Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3z7zXV6rP4z9t2M for ; Sat, 30 Dec 2017 21:02:34 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 077B486B10; Sat, 30 Dec 2017 10:02:33 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id w_YUaqB1QwwO; Sat, 30 Dec 2017 10:02:31 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id C9DD0866BF; Sat, 30 Dec 2017 10:02:31 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id AA7991C0B30 for ; Sat, 30 Dec 2017 10:02:25 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id A369D851DE for ; Sat, 30 Dec 2017 10:02:25 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id R23HqWvRd8VV for ; Sat, 30 Dec 2017 10:02:20 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr0-f193.google.com (mail-wr0-f193.google.com [209.85.128.193]) by whitealder.osuosl.org (Postfix) with ESMTPS id 0F3F584EAD for ; Sat, 30 Dec 2017 10:02:18 +0000 (UTC) Received: by mail-wr0-f193.google.com with SMTP id f8so32510780wre.4 for ; Sat, 30 Dec 2017 02:02:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=K60RWIrQms9lzgBEn64Yz01JdGzN6lqhDRXWFMTwwO8=; b=KQhN5ByOOsCnVtx4V53jtPoYEpM2izenKBsi8wX+v5vTknijPFXXUecdZLvd9AHK6S cLOOjEMNlcJgqKeUoafSn5DaElJ3uTGP1TxLS+C8g8wMUzEZaaf7z+ZborDx+TbhfPa2 94+69P1wEa7iW5KAJ9FhXDYZs87l0KZdvM41ssWlRCZfKdcpmuQKmTDsiJowb90XvM+A 0FtEs6tvOtlPrz0iPSJAhdkutMzd/VBF4phH43SWU6IdGVLrOoIINCyRe3ICBcCzVI1P hgt80GA5Nq25V/pVcSKw/qnIzcs3e0FZnwBqyIFUvxkBFnhQNb9CfKybkKipJwFFuvUO mC6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=K60RWIrQms9lzgBEn64Yz01JdGzN6lqhDRXWFMTwwO8=; b=l245FDLAH1yvQaEy0+kijNYVzl9FhUFw5uWHGxTT+b1ql4VY/AukvIGAmFSMzDnb6K lHvjDbGJB9Tbp+PgNiyqF3Yezu11QpQYoLQoypT0QIaqGzP58E6CKIV5gz/lZk5vmOf0 NDoCSSyarEX+WXJADH81XVZ3JcdlJ0g2dH+hqNhI7+pSOGOGAdPmXoDWN1r/1Z+ZtVBM vSxnESliWvxaudxWQrTscjsmzB6FTY4jn3dSS47yOJyy260ua2o/7l77lZ1idh7Db4Ea 2F0HdvoFyf5sn78A7KPRnBHNQLgESu3UwId50XoOWwkaEOYsjALA4ZM0zNKVF8OL594s eaZQ== X-Gm-Message-State: AKGB3mL9Mtuqi3TX28WGmP8FfL6/rDR68uEROQfP3xqviQXgJP4XaQaQ qcaLGtHv107xWkwDmwl70bZ/9Kai7M0= X-Google-Smtp-Source: ACJfBouMS4CEufiY7WvVPIBuQdaRGuNCPftEUnTVh5KdiGe4rPWVw1VEHeAtOOgiFw9D/2iDGy3huw== X-Received: by 10.223.179.215 with SMTP id x23mr36337395wrd.198.1514628136201; Sat, 30 Dec 2017 02:02:16 -0800 (PST) Received: from localhost.localdomain ([89.202.204.147]) by smtp.gmail.com with ESMTPSA id n65sm66180723wrb.17.2017.12.30.02.02.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 30 Dec 2017 02:02:15 -0800 (PST) From: Angelo Compagnucci To: buildroot@buildroot.org Date: Sat, 30 Dec 2017 11:02:03 +0100 Message-Id: <1514628127-15938-4-git-send-email-angelo@amarulasolutions.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> References: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> Subject: [Buildroot] [PATCH v2 3/7] package/flannel: converting to golang infrastructure X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Angelo Compagnucci MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: Angelo Compagnucci This patch converts the flannel package to the new golang infrastructure. Signed-off-by: Angelo Compagnucci --- package/flannel/flannel.mk | 32 ++++---------------------------- 1 file changed, 4 insertions(+), 28 deletions(-) diff --git a/package/flannel/flannel.mk b/package/flannel/flannel.mk index bbb2c72..78f9a09 100644 --- a/package/flannel/flannel.mk +++ b/package/flannel/flannel.mk @@ -11,36 +11,12 @@ FLANNEL_SOURCE = $(FLANNEL_VERSION).tar.gz FLANNEL_LICENSE = Apache-2.0 FLANNEL_LICENSE_FILES = LICENSE -FLANNEL_DEPENDENCIES = host-go - -FLANNEL_MAKE_ENV = \ - $(HOST_GO_TARGET_ENV) \ - GOBIN="$(@D)/bin" \ - GOPATH="$(@D)/gopath" \ - CGO_ENABLED=1 - -FLANNEL_GLDFLAGS = \ - -X github.com/coreos/flannel/version.Version=$(FLANNEL_VERSION) - -ifeq ($(BR2_STATIC_LIBS),y) -FLANNEL_GLDFLAGS += -extldflags '-static' -endif - -define FLANNEL_CONFIGURE_CMDS - # Put sources at prescribed GOPATH location. - mkdir -p $(@D)/gopath/src/github.com/coreos - ln -s $(@D) $(@D)/gopath/src/github.com/coreos/flannel -endef - -define FLANNEL_BUILD_CMDS - cd $(@D) && $(FLANNEL_MAKE_ENV) $(HOST_DIR)/bin/go \ - build -v -o $(@D)/bin/flanneld -ldflags "$(FLANNEL_GLDFLAGS)" . -endef +FLANNEL_GO_LDFLAGS = -X github.com/coreos/flannel/version.Version=$(FLANNEL_VERSION) +# Install flannel to its well known location. define FLANNEL_INSTALL_TARGET_CMDS - # Install flannel to its well known location. - $(INSTALL) -D -m 0755 $(@D)/bin/flanneld $(TARGET_DIR)/opt/bin/flanneld + $(INSTALL) -D -m 0755 $(@D)/$(FLANNEL_BINDIR)/flannel $(TARGET_DIR)/opt/bin/flanneld $(INSTALL) -D -m 0755 $(@D)/dist/mk-docker-opts.sh $(TARGET_DIR)/opt/bin/mk-docker-opts.sh endef -$(eval $(generic-package)) +$(eval $(golang-package)) From patchwork Sat Dec 30 10:02:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Angelo Compagnucci X-Patchwork-Id: 854084 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.133; helo=hemlock.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=amarulasolutions-com.20150623.gappssmtp.com header.i=@amarulasolutions-com.20150623.gappssmtp.com header.b="lNQnIslo"; dkim-atps=neutral Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3z7zXX0cM2z9t2M for ; Sat, 30 Dec 2017 21:02:36 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id D191D87557; Sat, 30 Dec 2017 10:02:31 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6GLWad-coMU4; Sat, 30 Dec 2017 10:02:30 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 09CA287527; Sat, 30 Dec 2017 10:02:30 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id EA3DC1C0B30 for ; Sat, 30 Dec 2017 10:02:24 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id D4C95858F4 for ; Sat, 30 Dec 2017 10:02:24 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bSEBF8ZCu+cY for ; Sat, 30 Dec 2017 10:02:20 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr0-f193.google.com (mail-wr0-f193.google.com [209.85.128.193]) by whitealder.osuosl.org (Postfix) with ESMTPS id 408C7851DE for ; Sat, 30 Dec 2017 10:02:19 +0000 (UTC) Received: by mail-wr0-f193.google.com with SMTP id w68so30874676wrc.10 for ; Sat, 30 Dec 2017 02:02:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=9zGdCr3YQZpuzztuyPalf8oX/ichAFXi9GZU9CpcIAY=; b=lNQnIslo+/DDlSH6NAJcZ3zmtYrDlNNn04u08UsB9DuegiZjcBYHqUkyTnLJoW4SmM y+2vCrPYZgSP5MBGdurCrPmcBGvdjZlq/mSLXeaXWEugBtmnNE/F9Qf5rbI809gORYG1 81eu+e2po1Abkn5bYPbTmLX+T6sXXhtjQIimLPQRjh1Ttav+I4uQHDB42Yv7smiDheBZ 2m1e0g2m36ZgVgm68tmh7EfkvprKVoinFdXO+hSZnbS+w+3BZsmbQe/Seicmuzt81hQX 3j89tL7U/bFO31ULpH9kDF+qBeLJ2U1TBjuy85++O0Gn/Fz8ydEG7lpIuBm6GWu0BXbx KaEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=9zGdCr3YQZpuzztuyPalf8oX/ichAFXi9GZU9CpcIAY=; b=WBJ0ME46Ij8KXAbOGdlQyCSMwUD433sZjIXrAWr5WKzGYjdvYb8OUUQeRobNKlOTXr 5/LcmKBa+6xz6eANw2z2R88C2kM5yEYQbIo5AmJYpfmqOOW1euNULby7pFOmzi6Y31QE XheF9VW2M8Vm4EwdfLZ3TUDvXjIKHJXwZMaw0sr35KlrfyTlovitEMg//cHbDt/gP8Rz fSwJc2OK7QQjLaxy8hrkJ4bt9lwWaMDlHX3N/hE2ebYx1wOWSHvoh06SYBoqDXBk3Uin ZJFMbl7lTs6BK7Y3Hqorw6dG7bJZrBr0F8wzJaAXerD4JMXiYtlqShA7V/1ISZk8ZNpP FKMA== X-Gm-Message-State: AKGB3mIqLCdZR3zcsJaTG/3k9ac1qtNW7GIBWeVJac9iocx/mAbNhf43 dZAh6D2JZLCZyB8dL14bKQVPvp/uT8k= X-Google-Smtp-Source: ACJfBotiktYWJ1lsph27sxos/+kqJkBx8fQjfHbjkcyBybk8PXim7jEz3MIz10jjSf+j+dlmy6guoQ== X-Received: by 10.223.135.39 with SMTP id a36mr21779272wra.50.1514628137517; Sat, 30 Dec 2017 02:02:17 -0800 (PST) Received: from localhost.localdomain ([89.202.204.147]) by smtp.gmail.com with ESMTPSA id n65sm66180723wrb.17.2017.12.30.02.02.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 30 Dec 2017 02:02:16 -0800 (PST) From: Angelo Compagnucci To: buildroot@buildroot.org Date: Sat, 30 Dec 2017 11:02:04 +0100 Message-Id: <1514628127-15938-5-git-send-email-angelo@amarulasolutions.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> References: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> Subject: [Buildroot] [PATCH v2 4/7] package/runc: converting to golang infrastructure X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Angelo Compagnucci MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: Angelo Compagnucci This patch converts the runc package to the new golang infrastructure. Signed-off-by: Angelo Compagnucci --- package/runc/runc.mk | 37 +++++-------------------------------- 1 file changed, 5 insertions(+), 32 deletions(-) diff --git a/package/runc/runc.mk b/package/runc/runc.mk index fb3fec2..f497b6d 100644 --- a/package/runc/runc.mk +++ b/package/runc/runc.mk @@ -9,42 +9,15 @@ RUNC_SITE = $(call github,opencontainers,runc,$(RUNC_VERSION)) RUNC_LICENSE = Apache-2.0 RUNC_LICENSE_FILES = LICENSE -RUNC_DEPENDENCIES = host-go +RUNC_GOPATH = Godeps/_workspace -RUNC_GOPATH = "$(@D)/Godeps/_workspace" -RUNC_MAKE_ENV = $(HOST_GO_TARGET_ENV) \ - CGO_ENABLED=1 \ - GOBIN="$(@D)/bin" \ - GOPATH="$(RUNC_GOPATH)" \ - PATH=$(BR_PATH) +RUNC_GO_LDFLAGS = -X main.gitCommit=$(RUNC_VERSION) -RUNC_GLDFLAGS = \ - -X main.gitCommit=$(RUNC_VERSION) - -ifeq ($(BR2_STATIC_LIBS),y) -RUNC_GLDFLAGS += -extldflags '-static' -endif - -RUNC_GOTAGS = cgo static_build +RUNC_GO_TAGS = cgo static_build ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) -RUNC_GOTAGS += seccomp +RUNC_GO_TAGS += seccomp RUNC_DEPENDENCIES += libseccomp host-pkgconf endif -define RUNC_CONFIGURE_CMDS - mkdir -p $(RUNC_GOPATH)/src/github.com/opencontainers - ln -s $(@D) $(RUNC_GOPATH)/src/github.com/opencontainers/runc -endef - -define RUNC_BUILD_CMDS - cd $(@D) && $(RUNC_MAKE_ENV) $(HOST_DIR)/bin/go \ - build -v -o $(@D)/bin/runc \ - -tags "$(RUNC_GOTAGS)" -ldflags "$(RUNC_GLDFLAGS)" . -endef - -define RUNC_INSTALL_TARGET_CMDS - $(INSTALL) -D -m 0755 $(@D)/bin/runc $(TARGET_DIR)/usr/bin/runc -endef - -$(eval $(generic-package)) +$(eval $(golang-package)) From patchwork Sat Dec 30 10:02:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Angelo Compagnucci X-Patchwork-Id: 854081 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=amarulasolutions-com.20150623.gappssmtp.com header.i=@amarulasolutions-com.20150623.gappssmtp.com header.b="dvHBNktt"; dkim-atps=neutral Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3z7zXN2kjyz9t3B for ; Sat, 30 Dec 2017 21:02:28 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 89CC186004; Sat, 30 Dec 2017 10:02:26 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TZk4cIni1_3m; Sat, 30 Dec 2017 10:02:23 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id D3B27865F7; Sat, 30 Dec 2017 10:02:23 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 863CF1C0B30 for ; Sat, 30 Dec 2017 10:02:21 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 8159C865F7 for ; Sat, 30 Dec 2017 10:02:21 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nUDsM_QemYZb for ; Sat, 30 Dec 2017 10:02:20 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr0-f174.google.com (mail-wr0-f174.google.com [209.85.128.174]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 98F108662C for ; Sat, 30 Dec 2017 10:02:20 +0000 (UTC) Received: by mail-wr0-f174.google.com with SMTP id f8so32510834wre.4 for ; Sat, 30 Dec 2017 02:02:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0C9x+bu1QH1uBOp3j1LGbjYOMUn+DB4mhhlGrq5B4Qw=; b=dvHBNkttarTRolZRI1b55lxsB/JicrU75yQ3IR1NBSerc2+X0tGSxt8xi3vR5vAwHe Ejvty9ACroqZZblq3tY1RIBph7cvjfvnYA79YnWxjH9iDXutxqknWKtnTI3O4PYZ4yDP D39D4hGMvaxMlSK6MuDtZ/PWZ1ySCUySByd0/Jqecc5ma4pVo4tCppSe0KyeKViInKvW uaBLBtSd3ZN6FbqESF2yqd7dX/2JJdPYAJBWYCbyQxepoK44PdSQ6PJRf5ZyKAJWwIVi L4YY0o8ssqL7se6lzXRjccaGxIcuIag2sffEuBwdjPSKqGwLopVn9tPepVlVU6X2UuYu idHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=0C9x+bu1QH1uBOp3j1LGbjYOMUn+DB4mhhlGrq5B4Qw=; b=K9BKW2NsYeUr3uOMtO8e5ofOzzVMC2tr2PTEPchCS+fgpabW2eFH9lZyyg7ttBY+xL COTQtZgvI3lRuCdg0Xz3wq5/A8G9O1FGAnQllOBI9+y96ilyhh1Yks+SF5QRxeJslAnn gD1VWb5eSljRLk9rQsbdggtdRtE2LWPvDUvOhHGh/y553FGK+nrNiN25sYYOBItTHXUB n5wc/pK1//p0XA1xpo8qwtAhd0HiDdCv4T+IWKEl9P8D5SLnXuQRrD9Rw9NszT/BHEIu gSOLW1Oham0fhx3ZPMuTzmYt0ubMslyVgud9kElPjFSan7NMvRWf+8Gj1dgi2CyU8Wxy 0JuQ== X-Gm-Message-State: AKGB3mIviPTw81eQfzXoGxiy7IXqCO3An2yzcxnqUYoAI5EEC1nSOoBG 6bBijEZJSahMDXoKha13N+IoNyqHeCE= X-Google-Smtp-Source: ACJfBossvwb1viKYg54jNPllJoCkNb0ePh8fm7rP3JPjp4k/Yq5qz+yaA9PBep8Ttnv7fweYG6iu0Q== X-Received: by 10.223.157.209 with SMTP id q17mr16679194wre.241.1514628138796; Sat, 30 Dec 2017 02:02:18 -0800 (PST) Received: from localhost.localdomain ([89.202.204.147]) by smtp.gmail.com with ESMTPSA id n65sm66180723wrb.17.2017.12.30.02.02.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 30 Dec 2017 02:02:18 -0800 (PST) From: Angelo Compagnucci To: buildroot@buildroot.org Date: Sat, 30 Dec 2017 11:02:05 +0100 Message-Id: <1514628127-15938-6-git-send-email-angelo@amarulasolutions.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> References: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> Subject: [Buildroot] [PATCH v2 5/7] package/docker-containerd: converting to golang infrastructure X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Angelo Compagnucci MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: Angelo Compagnucci This patch converts the docker-containerd package to the new golang infrastructure. Signed-off-by: Angelo Compagnucci --- Changes: v1 -> v2: Updated GO_BIN definition package/docker-containerd/docker-containerd.mk | 37 +++++++++++--------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/package/docker-containerd/docker-containerd.mk b/package/docker-containerd/docker-containerd.mk index ffbadb0..5d21172 100644 --- a/package/docker-containerd/docker-containerd.mk +++ b/package/docker-containerd/docker-containerd.mk @@ -9,39 +9,32 @@ DOCKER_CONTAINERD_SITE = $(call github,docker,containerd,$(DOCKER_CONTAINERD_VER DOCKER_CONTAINERD_LICENSE = Apache-2.0 DOCKER_CONTAINERD_LICENSE_FILES = LICENSE.code -DOCKER_CONTAINERD_DEPENDENCIES = host-go +DOCKER_CONTAINERD_GOPATH = vendor -DOCKER_CONTAINERD_GOPATH = "$(@D)/vendor" -DOCKER_CONTAINERD_MAKE_ENV = $(HOST_GO_TARGET_ENV) \ - CGO_ENABLED=1 \ - GOBIN="$(@D)/bin" \ - GOPATH="$(DOCKER_CONTAINERD_GOPATH)" - -DOCKER_CONTAINERD_GLDFLAGS = \ +DOCKER_CONTAINERD_GO_LDFLAGS = \ -X github.com/docker/containerd.GitCommit=$(DOCKER_CONTAINERD_VERSION) -ifeq ($(BR2_STATIC_LIBS),y) -DOCKER_CONTAINERD_GLDFLAGS += -extldflags '-static' -endif - -define DOCKER_CONTAINERD_CONFIGURE_CMDS - mkdir -p $(DOCKER_CONTAINERD_GOPATH)/src/github.com/docker - ln -s $(@D) $(DOCKER_CONTAINERD_GOPATH)/src/github.com/docker/containerd - mkdir -p $(DOCKER_CONTAINERD_GOPATH)/src/github.com/opencontainers - ln -s $(RUNC_SRCDIR) $(DOCKER_CONTAINERD_GOPATH)/src/github.com/opencontainers/runc +define DOCKER_CONTAINERD_LINK_DIR + ln -sf $(@D) $(@D)/$(DOCKER_CONTAINERD_GOPATH)/src/github.com/docker/containerd + mkdir -p $(@D)/$(DOCKER_CONTAINERD_GOPATH)/src/github.com/opencontainers + ln -s $(RUNC_SRCDIR) $(@D)/$(DOCKER_CONTAINERD_GOPATH)/src/github.com/opencontainers/runc endef +DOCKER_CONTAINERD_POST_CONFIGURE_HOOKS += DOCKER_CONTAINERD_LINK_DIR + define DOCKER_CONTAINERD_BUILD_CMDS $(foreach d,ctr containerd containerd-shim,\ - cd $(@D); $(DOCKER_CONTAINERD_MAKE_ENV) $(HOST_DIR)/bin/go build \ - -v -o $(@D)/bin/$(d) -ldflags "$(DOCKER_CONTAINERD_GLDFLAGS)" ./$(d)$(sep)) + cd $(@D)/$(DOCKER_CONTAINERD_GOPATH)/src/github.com/docker/containerd; \ + $(DOCKER_CONTAINERD_GO_ENV) \ + $(GO_BIN) install -v \ + $(DOCKER_CONTAINERD_BUILD_OPTS) ./$(d)$(sep)) endef define DOCKER_CONTAINERD_INSTALL_TARGET_CMDS ln -fs runc $(TARGET_DIR)/usr/bin/docker-runc - $(INSTALL) -D -m 0755 $(@D)/bin/containerd $(TARGET_DIR)/usr/bin/docker-containerd - $(INSTALL) -D -m 0755 $(@D)/bin/containerd-shim $(TARGET_DIR)/usr/bin/containerd-shim + $(INSTALL) -D -m 0755 $(@D)/$(DOCKER_CONTAINERD_BINDIR)/containerd $(TARGET_DIR)/usr/bin/docker-containerd + $(INSTALL) -D -m 0755 $(@D)/$(DOCKER_CONTAINERD_BINDIR)/containerd-shim $(TARGET_DIR)/usr/bin/containerd-shim ln -fs containerd-shim $(TARGET_DIR)/usr/bin/docker-containerd-shim endef -$(eval $(generic-package)) +$(eval $(golang-package)) From patchwork Sat Dec 30 10:02:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Angelo Compagnucci X-Patchwork-Id: 854082 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=amarulasolutions-com.20150623.gappssmtp.com header.i=@amarulasolutions-com.20150623.gappssmtp.com header.b="ExOalFNy"; dkim-atps=neutral Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3z7zXR2zKkz9s7g for ; Sat, 30 Dec 2017 21:02:31 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id CBE9522FEE; Sat, 30 Dec 2017 10:02:28 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hZbbJMrrlVgT; Sat, 30 Dec 2017 10:02:27 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id A22C426DCB; Sat, 30 Dec 2017 10:02:27 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id A43661C0B30 for ; Sat, 30 Dec 2017 10:02:23 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 9FEF42ED7A for ; Sat, 30 Dec 2017 10:02:23 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aXQT7NXN+yJl for ; Sat, 30 Dec 2017 10:02:22 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr0-f175.google.com (mail-wr0-f175.google.com [209.85.128.175]) by silver.osuosl.org (Postfix) with ESMTPS id E743B22FEE for ; Sat, 30 Dec 2017 10:02:21 +0000 (UTC) Received: by mail-wr0-f175.google.com with SMTP id w107so17492507wrb.9 for ; Sat, 30 Dec 2017 02:02:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=JiDWU4hqgkQEdtgCcGbFGEZ1Erzwfzx1tRydv/8hMGs=; b=ExOalFNy7UT66O3fSEU0+zN2RVg45z2NzFjAkN2thttSXhq9zOrnCUan2MWFr8Fd7Q i14FhhcqFpe7XQUMu7zQdHZ2a3WJ2s5OeloqsjdSgBw0Y5Y1Bq+qAsdQrjf/STMljgum 7/v+n2hrzxKCDdqibgaFo+w4rTDeAdgMO0DtOiU6yDIMQVZQ46ORTfuumqzNuCsaic2O RAfvxNZ2LuQRYjkFYRkt2axRxMV915GuLZdopznUA1pp2wkWaayJgni/mY2aoARUNrfq q8JEGGHFqbxErmpoOOVuYc1QJYjb1vd+AQKFooYu46CI4AiZrBCoJFBRnLXt6hkT2RYm IbnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=JiDWU4hqgkQEdtgCcGbFGEZ1Erzwfzx1tRydv/8hMGs=; b=MWhy99TPrATamocAmy0rkfjmobpHQbiJjNCEzGGfXhwiRegY21CIh/5cjLWtKlazZ9 z0oRVsRh3xJpORXqCBEVRYKtl5x05pKgSv4UYYhuV4EJNcrUdy3C0gtzqdqamHY82yMV 5JpLiYgdU9gEod1tq+MS/0+V+Pi1cfb9iBan1iE0217/FtGAT3zsczWT3WBWnAEneJlW b9hrnm8GxIQYMZ6SWzXiYqQh40W6ewl8PZ14PTzzAhya5Iy/WK2kgNPggG+/qI/LlpMg baZi1Qg1G+gqfzkUhDeho1DG2v4/2KWWSi3wrqthmpZbLHko6KN585Pkl0i6I3GAyHLh 0FGg== X-Gm-Message-State: AKGB3mI2Tt+S/IWVykL+7SfAx98NyVp7JIgWZuclLNXdlKtaJR0ifuIw sKga+YyRpyzg9QTxDJ0yfPZwnXURL58= X-Google-Smtp-Source: ACJfBovT7Dpv+jhvE4cWAEEBzSeQPor6NWFgPgVo4aqD43IBRA/jSJe8y4Fs9XLU411xGusyqWjC0g== X-Received: by 10.223.200.145 with SMTP id k17mr26992851wrh.96.1514628140229; Sat, 30 Dec 2017 02:02:20 -0800 (PST) Received: from localhost.localdomain ([89.202.204.147]) by smtp.gmail.com with ESMTPSA id n65sm66180723wrb.17.2017.12.30.02.02.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 30 Dec 2017 02:02:19 -0800 (PST) From: Angelo Compagnucci To: buildroot@buildroot.org Date: Sat, 30 Dec 2017 11:02:06 +0100 Message-Id: <1514628127-15938-7-git-send-email-angelo@amarulasolutions.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> References: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> Subject: [Buildroot] [PATCH v2 6/7] package/docker-engine: converting to golang infrastructure X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Angelo Compagnucci MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" This patch converts the docker-engine package to the new golang infrastructure. Signed-off-by: Angelo Compagnucci --- package/docker-engine/docker-engine.mk | 53 +++++++++++----------------------- 1 file changed, 17 insertions(+), 36 deletions(-) diff --git a/package/docker-engine/docker-engine.mk b/package/docker-engine/docker-engine.mk index 8928f07..33b825e 100644 --- a/package/docker-engine/docker-engine.mk +++ b/package/docker-engine/docker-engine.mk @@ -13,70 +13,53 @@ DOCKER_ENGINE_LICENSE_FILES = LICENSE DOCKER_ENGINE_DEPENDENCIES = host-go host-pkgconf -DOCKER_ENGINE_GOPATH = "$(@D)/gopath" -DOCKER_ENGINE_MAKE_ENV = $(HOST_GO_TARGET_ENV) \ - CGO_ENABLED=1 \ - CGO_NO_EMULATION=1 \ - GOBIN="$(@D)/bin" \ - GOPATH="$(DOCKER_ENGINE_GOPATH)" \ - PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ - $(TARGET_MAKE_ENV) - -DOCKER_ENGINE_GLDFLAGS = \ +DOCKER_ENGINE_GO_LDFLAGS = \ -X main.GitCommit=$(DOCKER_ENGINE_VERSION) \ -X main.Version=$(DOCKER_ENGINE_VERSION) -ifeq ($(BR2_STATIC_LIBS),y) -DOCKER_ENGINE_GLDFLAGS += -extldflags '-static' -else -ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT),y) -DOCKER_ENGINE_GLDFLAGS_DOCKER += -extldflags '-static' -endif -endif - -DOCKER_ENGINE_BUILD_TAGS = cgo exclude_graphdriver_zfs autogen +DOCKER_ENGINE_GO_TAGS = cgo exclude_graphdriver_zfs autogen DOCKER_ENGINE_BUILD_TARGETS = docker ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) -DOCKER_ENGINE_BUILD_TAGS += seccomp +DOCKER_ENGINE_GO_TAGS += seccomp DOCKER_ENGINE_DEPENDENCIES += libseccomp endif ifeq ($(BR2_INIT_SYSTEMD),y) -DOCKER_ENGINE_BUILD_TAGS += journald +DOCKER_ENGINE_GO_TAGS += journald DOCKER_ENGINE_DEPENDENCIES += systemd endif ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y) -DOCKER_ENGINE_BUILD_TAGS += daemon +DOCKER_ENGINE_GO_TAGS += daemon DOCKER_ENGINE_BUILD_TARGETS += dockerd endif ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_EXPERIMENTAL),y) -DOCKER_ENGINE_BUILD_TAGS += experimental +DOCKER_ENGINE_GO_TAGS += experimental endif ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS),y) DOCKER_ENGINE_DEPENDENCIES += btrfs-progs else -DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_btrfs +DOCKER_ENGINE_GO_TAGS += exclude_graphdriver_btrfs endif ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_DEVICEMAPPER),y) DOCKER_ENGINE_DEPENDENCIES += lvm2 else -DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_devicemapper +DOCKER_ENGINE_GO_TAGS += exclude_graphdriver_devicemapper endif ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_VFS),y) DOCKER_ENGINE_DEPENDENCIES += gvfs else -DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_vfs +DOCKER_ENGINE_GO_TAGS += exclude_graphdriver_vfs endif define DOCKER_ENGINE_CONFIGURE_CMDS - mkdir -p $(DOCKER_ENGINE_GOPATH)/src/github.com/docker - ln -fs $(@D) $(DOCKER_ENGINE_GOPATH)/src/github.com/docker/docker + mkdir -p $(@D)/$(DOCKER_ENGINE_GOPATH)/src/github.com/docker + ln -s $(@D) $(@D)/$(DOCKER_ENGINE_GOPATH)/src/github.com/docker/docker cd $(@D) && \ GITCOMMIT="$$(echo $(DOCKER_ENGINE_COMMIT) | head -c7)" \ BUILDTIME="$$(date)" \ @@ -105,20 +88,18 @@ endif define DOCKER_ENGINE_BUILD_CMDS $(foreach target,$(DOCKER_ENGINE_BUILD_TARGETS), \ - cd $(@D)/gopath/src/github.com/docker/docker; \ - $(DOCKER_ENGINE_MAKE_ENV) \ - $(HOST_DIR)/bin/go build -v \ - -o $(@D)/bin/$(target) \ - -tags "$(DOCKER_ENGINE_BUILD_TAGS)" \ - -ldflags "$(DOCKER_ENGINE_GLDFLAGS) $(DOCKER_ENGINE_GLDFLAGS_$(call UPPERCASE,$(target)))" \ + cd $(DOCKER_ENGINE_SRC_PATH); \ + $(DOCKER_ENGINE_GO_ENV) \ + $(GO_BIN) install -v \ + $(DOCKER_ENGINE_BUILD_OPTS) \ github.com/docker/docker/cmd/$(target) ) endef define DOCKER_ENGINE_INSTALL_TARGET_CMDS $(foreach target,$(DOCKER_ENGINE_BUILD_TARGETS), \ - $(INSTALL) -D -m 0755 $(@D)/bin/$(target) $(TARGET_DIR)/usr/bin/$(target) + $(INSTALL) -D -m 0755 $(@D)/$(DOCKER_ENGINE_BINDIR)/$(target) $(TARGET_DIR)/usr/bin/$(target) ) endef -$(eval $(generic-package)) +$(eval $(golang-package)) From patchwork Sat Dec 30 10:02:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Angelo Compagnucci X-Patchwork-Id: 854085 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=amarulasolutions-com.20150623.gappssmtp.com header.i=@amarulasolutions-com.20150623.gappssmtp.com header.b="hsqPH8v7"; dkim-atps=neutral Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3z7zXd70Kxz9t2M for ; Sat, 30 Dec 2017 21:02:41 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 6101E87974; Sat, 30 Dec 2017 10:02:39 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id S60l5oLDpt4A; Sat, 30 Dec 2017 10:02:31 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id C6D1E858F4; Sat, 30 Dec 2017 10:02:30 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 36A3E1C0B30 for ; Sat, 30 Dec 2017 10:02:25 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 33B87866BF for ; Sat, 30 Dec 2017 10:02:25 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GEimMBf4RV9P for ; Sat, 30 Dec 2017 10:02:24 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr0-f177.google.com (mail-wr0-f177.google.com [209.85.128.177]) by fraxinus.osuosl.org (Postfix) with ESMTPS id CA1BF86004 for ; Sat, 30 Dec 2017 10:02:23 +0000 (UTC) Received: by mail-wr0-f177.google.com with SMTP id o101so14657604wrb.6 for ; Sat, 30 Dec 2017 02:02:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=BCdV5O/3soxjQjOO//hV7TBvliMS1z+KM5iWG+guY6k=; b=hsqPH8v7rn9TFfPH+SdM0XxYLWPxzi+mw/p9GAC1IG2DLwk1zq1wzYrGOVuGtoAZpt C/bZQtyAxSNEweWq+QvDr11b6BqPhuB3TeAO0jDqCUZep1WHNZwDlRauuMHyCmGUpZ3r 2HMgIrBCiYM8TX7UrHiQsQ0e3fJ2kkYUB/GZ0QjmcAslhrujllrmCciNxkcLAmxSOhSQ GAWzAkV6/4rA+CTcxPOH5IlrPrgtkr8zkA2E9Qzqcde33PmWs2ZRmYfYVUeJEWxto8Rl W6HfVjdt1G9lISFSp5YRJVPPQs1z/1aon4BfQrMMxK0el91GM8TMR48D0nbf/oWt7zwi V/Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=BCdV5O/3soxjQjOO//hV7TBvliMS1z+KM5iWG+guY6k=; b=Icm+fSSFNGsSerkM6OE7JmUobB6SYGg/sIH+WS18GPmquHz1ZgEjQGset6uhvYxbxh DQfDRh2fH63H9zewbi8i4LC++t0pNQED2wkprP2Pku+Lh1O16XFz/RlwcHn6djJ0CYNn NDK0Isde2aQqPxs10BUtPeBbwGad7uCeAA5m/oV6AF1UyElzLCm2zC7kx4a03fClgjCi tLQQ6vP02Rxd3ZhuMaDQAWkSv0E7XuB2gXR+GzfTN0qP1S7n30aIruoZiNb3s2okmHW2 wndzLIdaz/AN0GXPsYoSIBD42csQAmRTSNKe9+SKd22lqkqKHRBwUNPDQh+9tQqeOwCh X26g== X-Gm-Message-State: AKGB3mKO0tetsamUPQmsl2KCCN529jsilgv0X4iapdaoqB/+P3G8ujcT u11gA2OdOAvT23uLN/WjrX14ZlOUSW4= X-Google-Smtp-Source: ACJfBot59cBX/UorqRkS7fX5MsNo35o73JteJMGuLWUfW1rhmkACRqE5dhauzi23gRWuThfno/dR2A== X-Received: by 10.223.179.215 with SMTP id x23mr36337613wrd.198.1514628141836; Sat, 30 Dec 2017 02:02:21 -0800 (PST) Received: from localhost.localdomain ([89.202.204.147]) by smtp.gmail.com with ESMTPSA id n65sm66180723wrb.17.2017.12.30.02.02.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 30 Dec 2017 02:02:21 -0800 (PST) From: Angelo Compagnucci To: buildroot@buildroot.org Date: Sat, 30 Dec 2017 11:02:07 +0100 Message-Id: <1514628127-15938-8-git-send-email-angelo@amarulasolutions.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> References: <1514628127-15938-1-git-send-email-angelo@amarulasolutions.com> Subject: [Buildroot] [PATCH v2 7/7] package/mender: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Angelo Compagnucci MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: Angelo Compagnucci This patch add mender, an open source over-the-air (OTA) software updater for embedded Linux devices. Signed-off-by: Angelo Compagnucci --- package/Config.in | 1 + package/mender/Config.in | 14 +++++++++ package/mender/mender-device-identity | 52 ++++++++++++++++++++++++++++++++ package/mender/mender-inventory-hostinfo | 21 +++++++++++++ package/mender/mender-inventory-network | 47 +++++++++++++++++++++++++++++ package/mender/mender.conf | 14 +++++++++ package/mender/mender.hash | 2 ++ package/mender/mender.mk | 31 +++++++++++++++++++ package/mender/mender.service | 15 +++++++++ package/mender/server.crt | 22 ++++++++++++++ package/mender/tenant.conf | 0 11 files changed, 219 insertions(+) create mode 100644 package/mender/Config.in create mode 100644 package/mender/mender-device-identity create mode 100644 package/mender/mender-inventory-hostinfo create mode 100644 package/mender/mender-inventory-network create mode 100644 package/mender/mender.conf create mode 100644 package/mender/mender.hash create mode 100644 package/mender/mender.mk create mode 100644 package/mender/mender.service create mode 100644 package/mender/server.crt create mode 100644 package/mender/tenant.conf diff --git a/package/mender/tenant.conf b/package/mender/tenant.conf new file mode 100644 index 0000000..e69de29 diff --git a/package/Config.in b/package/Config.in index bd39a37..5104fc0 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1941,6 +1941,7 @@ menu "System tools" source "package/kvmtool/Config.in" source "package/libostree/Config.in" source "package/lxc/Config.in" + source "package/mender/Config.in" source "package/monit/Config.in" source "package/ncdu/Config.in" source "package/numactl/Config.in" diff --git a/package/mender/Config.in b/package/mender/Config.in new file mode 100644 index 0000000..201128a --- /dev/null +++ b/package/mender/Config.in @@ -0,0 +1,14 @@ +config BR2_PACKAGE_MENDER + bool "mender" + 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 + + help + Mender is an open source over-the-air (OTA) software updater for + embedded Linux devices. Mender comprises a client running at the + embedded device, as well as a server that manages deployments + across many devices. + + https://github.com/mendersoftware/mender diff --git a/package/mender/mender-device-identity b/package/mender/mender-device-identity new file mode 100644 index 0000000..d87f843 --- /dev/null +++ b/package/mender/mender-device-identity @@ -0,0 +1,52 @@ +#!/bin/sh + +# Example script called by Mender agent to collect device identity data. The +# script needs to be located at +# $(datadir)/mender/identity/mender-device-identity path for the agent to find +# it. The script shall exit with non-0 status on errors. In this case the agent +# will discard any output the script may have produced. +# +# The script shall output identity data in = format, one +# entry per line. Example +# +# $ ./mender-device-identity +# mac=de:ad:ca:fe:00:01 +# cpuid=1112233 +# +# The example script collects the MAC address of a network interface with the +# type ARPHRD_ETHER and it will pick the interface with the lowest ifindex +# number if there are multiple interfaces with that type. The identity data is +# output in the following format: +# +# mac=00:01:02:03:04:05 +# + +set -ue + +SCN=/sys/class/net +min=65535 +arphrd_ether=1 +ifdev= + +# find iface with lowest ifindex, skip non ARPHRD_ETHER types (lo, sit ...) +for dev in $SCN/*; do + iftype=$(cat $dev/type) + if [ $iftype -ne $arphrd_ether ]; then + continue + fi + + idx=$(cat $dev/ifindex) + if [ $idx -lt $min ]; then + min=$idx + ifdev=$dev + fi +done + +if [ -z "$ifdev" ]; then + echo "no suitable interfaces found" >&2 + exit 1 +else + echo "using interface $ifdev" >&2 + # grab MAC address + echo "mac=$(cat $ifdev/address)" +fi diff --git a/package/mender/mender-inventory-hostinfo b/package/mender/mender-inventory-hostinfo new file mode 100644 index 0000000..cf508fd --- /dev/null +++ b/package/mender/mender-inventory-hostinfo @@ -0,0 +1,21 @@ +#!/bin/sh +# +# The example script collects information about current host +# + +set -ue + +LC_ALL=C +export LC_ALL + +grep 'model name' /proc/cpuinfo | uniq | awk -F': ' ' + // { printf("cpu_model=%s\n", $2);} +' +echo "kernel=$(cat /proc/version)" + +cat /proc/meminfo | awk ' +/MemTotal/ {printf("mem_total_kB=%d\n", $2)} +' + +echo "hostname=$(cat /etc/hostname)" + diff --git a/package/mender/mender-inventory-network b/package/mender/mender-inventory-network new file mode 100644 index 0000000..b017c4e --- /dev/null +++ b/package/mender/mender-inventory-network @@ -0,0 +1,47 @@ +#!/bin/sh +# +# Example script called by Mender agent to collect inventory data for a +# particular devce. The script needs to be located in $(datadir)/mender and its +# name shall start with `mender-inventory-` prefix. The script shall exit with +# non-0 status on errors. In this case the agent will discard any output the +# script may have produced. +# +# The script shall output inventory data in = format, one entry per +# line. Entries appearing multiple times will be joined in a list under the same +# key. +# +# $ ./mender-inventory-network +# mac_br-fbfdad18c33c=02:42:7e:74:96:85 +# network_interfaces=br-fbfdad18c33c +# ipv4_br-fbfdad18c33c=172.21.0.1/16 +# mac_enp0s25=de:ad:be:ef:bb:05 +# network_interfaces=enp0s25 +# ipv4_enp0s25=123.22.0.197/16 +# ipv4_enp0s25=10.20.20.105/16 +# ipv6_enp0s25=fe80::2aad:beff:feef:bb05/64 +# +# +# The example script collects the list of network interfaces, as well as +# ethernet and IP addresses of each of the interfaces. +# + +set -ue + +SCN=/sys/class/net +min=65535 +ifdev= + +# find iface with lowest ifindex, except loopback +for devpath in $SCN/*; do + dev=$(basename $devpath) + if [ $dev = "lo" ]; then + continue + fi + echo "mac_$dev=$(cat $devpath/address)" + echo "network_interfaces=$dev" + + ip addr show dev $dev | awk -v dev=$dev ' + /inet / { printf("ipv4_%s=%s\n", dev, $2) } + /inet6 / {printf("ipv6_%s=%s\n", dev, $2) } + ' +done diff --git a/package/mender/mender.conf b/package/mender/mender.conf new file mode 100644 index 0000000..a5c7c54 --- /dev/null +++ b/package/mender/mender.conf @@ -0,0 +1,14 @@ +{ + "ClientProtocol": "http", + "HttpsClient": { + "Certificate": "", + "Key": "" + }, + "RootfsPartA": "@MENDER_ROOTFS_PART_A@", + "RootfsPartB": "@MENDER_ROOTFS_PART_B@", + "UpdatePollIntervalSeconds": @MENDER_UPDATE_POLL_INTERVAL_SECONDS@, + "InventoryPollIntervalSeconds": @MENDER_INVENTORY_POLL_INTERVAL_SECONDS@, + "RetryPollIntervalSeconds": @MENDER_RETRY_POLL_INTERVAL_SECONDS@, + "ServerURL": "@MENDER_SERVER_URL@", + "ServerCertificate": "@MENDER_CERT_LOCATION@" +} diff --git a/package/mender/mender.hash b/package/mender/mender.hash new file mode 100644 index 0000000..574b675 --- /dev/null +++ b/package/mender/mender.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 a2fd103185431946c3455fef0c08909d13413a09638463266e5b6889df8163c5 mender-1.2.1.tar.gz diff --git a/package/mender/mender.mk b/package/mender/mender.mk new file mode 100644 index 0000000..40d270c --- /dev/null +++ b/package/mender/mender.mk @@ -0,0 +1,31 @@ +################################################################################ +# +# mender +# +################################################################################ + +MENDER_VERSION = 1.2.1 +MENDER_SOURCE = mender-$(MENDER_VERSION).tar.gz +MENDER_SITE = $(call github,mendersoftware,mender,$(MENDER_VERSION)) + +define MENDER_INSTALL_TARGET_CMDS + $(INSTALL) -dm 0755 $(TARGET_DIR)/etc/mender/ + $(INSTALL) -dm 0755 $(TARGET_DIR)/var/share/mender/identity/ + $(INSTALL) -dm 0755 $(TARGET_DIR)/var/share/mender/inventory/ + $(INSTALL) -D -m 0644 package/mender/mender.conf \ + $(TARGET_DIR)/etc/mender/mender.conf + $(INSTALL) -D -m 0644 package/mender/tenant.conf \ + $(TARGET_DIR)/etc/mender/mender.conf + $(INSTALL) -D -m 0644 package/mender/server.crt \ + $(TARGET_DIR)/etc/mender/server.crt + $(INSTALL) -D -m 0755 package/mender/mender-device-identity \ + $(TARGET_DIR)/var/share/mender/identity/mender-device-identity + $(INSTALL) -D -m 0755 package/mender/mender-inventory-network \ + $(TARGET_DIR)/var/share/mender/inventory/mender-inventory-network + $(INSTALL) -D -m 0755 package/mender/mender-inventory-hostinfo \ + $(TARGET_DIR)/var/share/mender/inventory/mender-inventory-hostinfo + $(INSTALL) -D -m 0644 package/mender/mender.service \ + $(TARGET_DIR)/usr/lib/systemd/system/mender.service +endef + +$(eval $(golang-package)) diff --git a/package/mender/mender.service b/package/mender/mender.service new file mode 100644 index 0000000..ec77fbc --- /dev/null +++ b/package/mender/mender.service @@ -0,0 +1,15 @@ +[Unit] +Description=Mender OTA update service +After=systemd-resolved.service + +[Service] +Type=idle +User=root +Group=root +ExecStartPre=/bin/mkdir -p -m 0700 /data/mender +ExecStartPre=/bin/ln -sf /etc/mender/tenant.conf /var/lib/mender/authtentoken +ExecStart=/usr/bin/mender -daemon +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/package/mender/server.crt b/package/mender/server.crt new file mode 100644 index 0000000..79a57e1 --- /dev/null +++ b/package/mender/server.crt @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIBfTCCASOgAwIBAgIJAJOS76a0qWuZMAoGCCqGSM49BAMCMBsxGTAXBgNVBAMM +EGRvY2tlci5tZW5kZXIuaW8wHhcNMTYxMjE0MTk1MjQ2WhcNMjYxMjEyMTk1MjQ2 +WjAbMRkwFwYDVQQDDBBkb2NrZXIubWVuZGVyLmlvMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAE7AVYis6MWGPGQYU1/tlLEnskRifDIhvkRb8Y4nQPekRkLkiBYYT3 +iJ46wHrnejbHaLstU9GRdKWOmOuU6HGdO6NQME4wHQYDVR0OBBYEFGOIU4q++Vz8 +9HuT1jg9V+wFeJcyMB8GA1UdIwQYMBaAFGOIU4q++Vz89HuT1jg9V+wFeJcyMAwG +A1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIhAPLnEeWPNeN7eDCEYRitBfyO +X1yf2kzOm4ohBE5GY9gzAiBCq7HOSkzQDkelmQCCCpGXf/UwYNgQJjSoeGfk0j1a +TQ== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIBhDCCASmgAwIBAgIJALQrf4QDot4IMAoGCCqGSM49BAMCMB4xHDAaBgNVBAMM +E3MzLmRvY2tlci5tZW5kZXIuaW8wHhcNMTYxMjE0MTk1MjQ2WhcNMjYxMjEyMTk1 +MjQ2WjAeMRwwGgYDVQQDDBNzMy5kb2NrZXIubWVuZGVyLmlvMFkwEwYHKoZIzj0C +AQYIKoZIzj0DAQcDQgAEEc/Y3T+l3DvINePkpvVZORMIdHVs29jgsl48ia7z/NRX +HlKtKxVGJyFN5Y7sBZeLgBYH3F4Bo3KfmxI7ad0tI6NQME4wHQYDVR0OBBYEFIUm +cip00QZYpe4ULflbGNJan+Y9MB8GA1UdIwQYMBaAFIUmcip00QZYpe4ULflbGNJa +n+Y9MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSQAwRgIhANHij9VZBDHOUPaC +pFiagnWnYL2HBR72W1xTKQbrLLTXAiEAvpwA4HzSnGmLd3010+jqQuMRHArN5WaX +h0fy7niBbIQ= +-----END CERTIFICATE-----