From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Stewart Date: Sat, 28 May 2016 15:46:16 -0700 Subject: [Buildroot] [PATCH v6 1/3] runc: new package In-Reply-To: <1464475578-22239-1-git-send-email-christian@paral.in> References: <1464475578-22239-1-git-send-email-christian@paral.in> Message-ID: <1464475578-22239-2-git-send-email-christian@paral.in> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net runC is a CLI tool for spawning and running containers according to the OCP specification. runC is used by the latest Docker engine versions, however, runc itself is standalone and has no other dependencies. https://runc.io/ Signed-off-by: Christian Stewart --- Changes since v1: - use call github to generate source url Changes since v3: - fix indentation in Config.in - add dep on threads in Config.in - break gopath into separate variable - use HOST_GO_TARGET_ENV Changes since v4: - use RUNC_VERSION instead of commit hash - only show comment when build is possible with threads enabled --- package/Config.in | 1 + package/runc/Config.in | 13 +++++++++++++ package/runc/runc.hash | 2 ++ package/runc/runc.mk | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 package/runc/Config.in create mode 100644 package/runc/runc.hash create mode 100644 package/runc/runc.mk diff --git a/package/Config.in b/package/Config.in index 9d668bf..6c513ba 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1664,6 +1664,7 @@ endif if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/rsyslog/Config.in" endif + source "package/runc/Config.in" source "package/scrub/Config.in" source "package/scrypt/Config.in" source "package/smack/Config.in" diff --git a/package/runc/Config.in b/package/runc/Config.in new file mode 100644 index 0000000..1802e59 --- /dev/null +++ b/package/runc/Config.in @@ -0,0 +1,13 @@ +config BR2_PACKAGE_RUNC + bool "runc" + depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS + help + runC is a CLI tool for spawning and running containers + according to the OCP specification. + + https://github.com/opencontainers/runc + +comment "runc needs a toolchain w/ threads" + depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/runc/runc.hash b/package/runc/runc.hash new file mode 100644 index 0000000..c109c33 --- /dev/null +++ b/package/runc/runc.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 f9955daed1e73e842b2f28a258fba51f4e72a6b4b64cc3fc06415481d55ce000 runc-v0.1.1.tar.gz diff --git a/package/runc/runc.mk b/package/runc/runc.mk new file mode 100644 index 0000000..72b194d --- /dev/null +++ b/package/runc/runc.mk @@ -0,0 +1,46 @@ +################################################################################ +# +# runc +# +################################################################################ + +RUNC_VERSION = v0.1.1 +RUNC_SITE = $(call github,opencontainers,runc,$(RUNC_VERSION)) + +RUNC_LICENSE = Apache-2.0 +RUNC_LICENSE_FILES = LICENSE + +RUNC_DEPENDENCIES = host-go + +RUNC_GOPATH = "$(@D)/Godeps/_workspace" +RUNC_MAKE_ENV = $(HOST_GO_TARGET_ENV) \ + CGO_ENABLED=1 \ + GOBIN="$(@D)/bin" \ + GOPATH="$(RUNC_GOPATH)" + +RUNC_GLDFLAGS = \ + -X main.gitCommit=$(RUNC_VERSION) \ + -extldflags '-static' + +RUNC_GOTAGS = cgo static_build + +ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) +RUNC_GOTAGS += seccomp +RUNC_DEPENDENCIES += libseccomp +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)/usr/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)) -- 2.7.3