All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 1/3] golang: new package
@ 2015-07-14 22:17 Christian Stewart
  2015-07-14 22:17 ` [Buildroot] [PATCH v2 2/3] aufs-util: " Christian Stewart
  2015-07-14 22:17 ` [Buildroot] [PATCH v2 3/3] lxcdocker: " Christian Stewart
  0 siblings, 2 replies; 3+ messages in thread
From: Christian Stewart @ 2015-07-14 22:17 UTC (permalink / raw
  To: buildroot

This patch introduces golang as a host and target package, allowing for cross-platform go builds.

Signed-off-by: Christian Stewart <christian@paral.in>
---
 package/Config.in                                  |  1 +
 package/golang/0001-add-no-march-option-gccp.patch | 19 ++++++++++++
 .../0002-remove-unnecessary-march-ld-flag.patch    | 29 ++++++++++++++++++
 package/golang/Config.in                           | 12 ++++++++
 package/golang/golang.hash                         |  1 +
 package/golang/golang.mk                           | 35 ++++++++++++++++++++++
 6 files changed, 97 insertions(+)
 create mode 100644 package/golang/0001-add-no-march-option-gccp.patch
 create mode 100644 package/golang/0002-remove-unnecessary-march-ld-flag.patch
 create mode 100644 package/golang/Config.in
 create mode 100644 package/golang/golang.hash
 create mode 100644 package/golang/golang.mk

diff --git a/package/Config.in b/package/Config.in
index 5beb450..b49c94f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -455,6 +455,7 @@ menu "Erlang libraries/modules"
 	source "package/erlang-p1-zlib/Config.in"
 endmenu
 endif
+	source "package/golang/Config.in"
 	source "package/guile/Config.in"
 	source "package/haserl/Config.in"
 	source "package/jamvm/Config.in"
diff --git a/package/golang/0001-add-no-march-option-gccp.patch b/package/golang/0001-add-no-march-option-gccp.patch
new file mode 100644
index 0000000..87231aa
--- /dev/null
+++ b/package/golang/0001-add-no-march-option-gccp.patch
@@ -0,0 +1,19 @@
+Adds an option to not add the problematic -m parameter to GCC.
+
+Signed-off-by: Christian Stewart <christian@paral.in>
+
+diff -Nau golang.orig/src/cmd/cgo/gcc.go golang/src/cmd/cgo/gcc.go
+--- golang.orig/src/cmd/cgo/gcc.go.orig	2015-07-09 15:53:55.720794139 -0700
++++ golang/src/cmd/cgo/gcc.go	2015-07-09 17:46:43.664496374 -0700
+@@ -736,6 +736,11 @@
+ 
+ // gccMachine returns the gcc -m flag to use, either "-m32", "-m64" or "-marm".
+ func (p *Package) gccMachine() []string {
++
++	if os.Getenv("CGO_NO_EMULATION") == "1" {
++		return nil
++	}
++
+ 	switch goarch {
+ 	case "amd64":
+ 		return []string{"-m64"}
diff --git a/package/golang/0002-remove-unnecessary-march-ld-flag.patch b/package/golang/0002-remove-unnecessary-march-ld-flag.patch
new file mode 100644
index 0000000..7cc20f4
--- /dev/null
+++ b/package/golang/0002-remove-unnecessary-march-ld-flag.patch
@@ -0,0 +1,29 @@
+Removes defining -m parameter to LD, which is unnecessary in buildroot.
+
+Signed-off-by: Christian Stewart <christian@paral.in>
+
+diff -Nau golang.orig/src/cmd/ld/lib.c golang/src/cmd/ld/lib.c
+--- golang.orig/src/cmd/ld/lib.c.orig	2015-07-09 18:38:44.192359082 -0700
++++ golang/src/cmd/ld/lib.c	2015-07-09 18:39:02.108358294 -0700
+@@ -589,20 +589,7 @@
+ 	if(extld == nil)
+ 		extld = "gcc";
+ 	argv[argc++] = extld;
+-	switch(thechar){
+-	case '8':
+-		argv[argc++] = "-m32";
+-		break;
+-	case '6':
+-		argv[argc++] = "-m64";
+-		break;
+-	case '5':
+-		argv[argc++] = "-marm";
+-		break;
+-	}
+-	if(!debug['s'] && !debug_s) {
+-		argv[argc++] = "-gdwarf-2"; 
+-	} else {
++	if(debug['s'] || debug_s) {
+ 		argv[argc++] = "-s";
+ 	}
+ 	if(HEADTYPE == Hdarwin)
diff --git a/package/golang/Config.in b/package/golang/Config.in
new file mode 100644
index 0000000..6e179fa
--- /dev/null
+++ b/package/golang/Config.in
@@ -0,0 +1,12 @@
+comment "golang needs a toolchain w/ threads"
+	depends on BR2_USE_MMU
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+config BR2_PACKAGE_GOLANG
+  depends on BR2_USE_MMU
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	bool "golang"
+	help
+	  Go compiler and cli tool.
+
+	  http://golang.org/
diff --git a/package/golang/golang.hash b/package/golang/golang.hash
new file mode 100644
index 0000000..c7a9fa9
--- /dev/null
+++ b/package/golang/golang.hash
@@ -0,0 +1 @@
+sha256 3e5d07bc5214a1ffe187cf6406c5b5a80ee44f12f6bca97a5463db0afee2f6ac  golang-1.4.2.tar.gz
diff --git a/package/golang/golang.mk b/package/golang/golang.mk
new file mode 100644
index 0000000..3460dff
--- /dev/null
+++ b/package/golang/golang.mk
@@ -0,0 +1,35 @@
+################################################################################
+#
+# GOLANG
+#
+################################################################################
+
+GOLANG_VERSION = 1.4.2
+GOLANG_SITE = $(call github,golang,go,go$(GOLANG_VERSION))
+GOLANG_LICENSE_FILES = LICENSE
+
+GOLANG = $(HOST_DIR)/usr/bin/go
+GOLANGFMT = $(HOST_DIR)/usr/bin/gofmt
+
+define GOLANG_BUILD_CMDS
+	cd $(@D)/src/ && CC_FOR_TARGET="$(TARGET_CC)" LD_FOR_TARGET="$(TARGET_LD)" GOOS=linux GOARCH=$(ARCH) GOROOT_FINAL="/usr/src/go" ./make.bash
+endef
+
+define GOLANG_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/bin/linux_$(ARCH)/* $(TARGET_DIR)/usr/bin/
+	mkdir -p $(TARGET_DIR)/usr/src/go/
+	$(INSTALL) -D $(@D)/* $(TARGET_DIR)/usr/src/go/
+endef
+
+define HOST_GOLANG_BUILD_CMDS
+	cd $(@D)/src/ && CC_FOR_TARGET="$(TARGET_CC)" GOOS=linux GOARCH=$(ARCH) GOROOT_FINAL=$(HOST_DIR)/usr/src/go/ bash ./make.bash
+endef
+
+define HOST_GOLANG_INSTALL_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/bin/go $(@D)/bin/gofmt $(HOST_DIR)/usr/bin/
+	mkdir -p $(HOST_DIR)/usr/src/go/
+	cp -r $(@D)/* $(HOST_DIR)/usr/src/go/
+endef
+
+$(eval $(host-generic-package))
+$(eval $(generic-package))
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH v2 2/3] aufs-util: new package
  2015-07-14 22:17 [Buildroot] [PATCH v2 1/3] golang: new package Christian Stewart
@ 2015-07-14 22:17 ` Christian Stewart
  2015-07-14 22:17 ` [Buildroot] [PATCH v2 3/3] lxcdocker: " Christian Stewart
  1 sibling, 0 replies; 3+ messages in thread
From: Christian Stewart @ 2015-07-14 22:17 UTC (permalink / raw
  To: buildroot

This compiles aufs-util, built for recent kernels.

Signed-off-by: Christian Stewart <christian@paral.in>
---
 package/Config.in                |  1 +
 package/aufs-util/Config.in      |  6 ++++++
 package/aufs-util/aufs-util.hash |  1 +
 package/aufs-util/aufs-util.mk   | 28 ++++++++++++++++++++++++++++
 4 files changed, 36 insertions(+)
 create mode 100644 package/aufs-util/Config.in
 create mode 100644 package/aufs-util/aufs-util.hash
 create mode 100644 package/aufs-util/aufs-util.mk

diff --git a/package/Config.in b/package/Config.in
index b49c94f..5500564 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -149,6 +149,7 @@ endif
 endmenu
 
 menu "Filesystem and flash utilities"
+	source "package/aufs-util/Config.in"
 	source "package/btrfs-progs/Config.in"
 	source "package/cifs-utils/Config.in"
 	source "package/cramfs/Config.in"
diff --git a/package/aufs-util/Config.in b/package/aufs-util/Config.in
new file mode 100644
index 0000000..1afb79b
--- /dev/null
+++ b/package/aufs-util/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_AUFS_UTIL
+	bool "aufs-util"
+	help
+	  Aufs command line utilities.
+
+	  http://sourceforge.net/p/aufs/aufs-util/
diff --git a/package/aufs-util/aufs-util.hash b/package/aufs-util/aufs-util.hash
new file mode 100644
index 0000000..8f38991
--- /dev/null
+++ b/package/aufs-util/aufs-util.hash
@@ -0,0 +1 @@
+sha256 d3b0005405840eff5dfe4e28cf86e54224d696295eefd05655a66d8710047f04  aufs-util-3.9-20130907.tar.gz
diff --git a/package/aufs-util/aufs-util.mk b/package/aufs-util/aufs-util.mk
new file mode 100644
index 0000000..c2a8e1a
--- /dev/null
+++ b/package/aufs-util/aufs-util.mk
@@ -0,0 +1,28 @@
+################################################################################
+#
+# aufs-util
+#
+################################################################################
+
+AUFS_UTIL_VERSION = "3.9-20130907"
+AUFS_UTIL_DEPENDENCIES = linux linux-headers
+AUFS_UTIL_SITE = $(call github,morfoh,aufs-util,aufs-util-$(AUFS_UTIL_VERSION))
+AUFS_UTIL_LICENSE = GNU
+
+# Slight hack for a bug with aufsmvdown
+# Remove user setting from install command
+define AUFS_UTIL_CONFIGURE_CMDS
+	$(SED) 's/\.a\[/\.stbr\[/g' $(@D)/aumvdown.c
+	$(SED) 's/\-o root \-g root //g' $(@D)/Makefile
+endef
+
+define AUFS_UTIL_BUILD_CMDS
+	$(MAKE) -C $(LINUX_BUILDDIR) headers_install
+	$(MAKE) -C $(@D) CPPFLAGS="-I $(LINUX_BUILDDIR)/usr/include/" HOSTCC="$(CC)" HOSTLD="$(LD)" INSTALL="$(INSTALL)" all
+endef
+
+define AUFS_UTIL_INSTALL_TARGET_CMDS
+	$(MAKE) -C $(@D) INSTALL="$(INSTALL)" DESTDIR="$(TARGET_DIR)" install
+endef
+
+$(eval $(generic-package))
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH v2 3/3] lxcdocker: new package
  2015-07-14 22:17 [Buildroot] [PATCH v2 1/3] golang: new package Christian Stewart
  2015-07-14 22:17 ` [Buildroot] [PATCH v2 2/3] aufs-util: " Christian Stewart
@ 2015-07-14 22:17 ` Christian Stewart
  1 sibling, 0 replies; 3+ messages in thread
From: Christian Stewart @ 2015-07-14 22:17 UTC (permalink / raw
  To: buildroot

Introduce docker daemon and client.

[Maxime:
 - add options for daemon or client only
 - add configurable filesystem driver type
 - add user definitions
 - remove unnecessary dependencies
Thanks for the review]

Signed-off-by: Christian Stewart <christian@paral.in>
---
 package/Config.in                |  1 +
 package/lxcdocker/Config.in      | 44 ++++++++++++++++++++++
 package/lxcdocker/lxcdocker.hash |  1 +
 package/lxcdocker/lxcdocker.mk   | 79 ++++++++++++++++++++++++++++++++++++++++
 4 files changed, 125 insertions(+)
 create mode 100644 package/lxcdocker/Config.in
 create mode 100644 package/lxcdocker/lxcdocker.hash
 create mode 100644 package/lxcdocker/lxcdocker.mk

diff --git a/package/Config.in b/package/Config.in
index 5500564..58bc49e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1425,6 +1425,7 @@ endif
 	source "package/kmod/Config.in"
 	source "package/kvmtool/Config.in"
 	source "package/lxc/Config.in"
+	source "package/lxcdocker/Config.in"
 	source "package/monit/Config.in"
 	source "package/ncdu/Config.in"
 	source "package/numactl/Config.in"
diff --git a/package/lxcdocker/Config.in b/package/lxcdocker/Config.in
new file mode 100644
index 0000000..8f6d0d0
--- /dev/null
+++ b/package/lxcdocker/Config.in
@@ -0,0 +1,44 @@
+config BR2_PACKAGE_LXCDOCKER
+	bool "lxcdocker"
+	select BR2_PACKAGE_SQLITE
+	select BR2_PACKAGE_UTIL_LINUX
+	select BR2_PACKAGE_UTIL_LINUX_BINARIES
+	select BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT
+	select BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT
+	select BR2_PACKAGE_UTIL_LINUX_MOUNT
+	help
+		Application container engine.
+
+		https://github.com/docker/docker
+
+if BR2_PACKAGE_LXCDOCKER
+
+config BR2_PACKAGE_LXCDOCKER_DAEMON
+  bool "docker build system daemon"
+  default y
+
+config BR2_PACKAGE_LXCDOCKER_EXPERIMENTAL
+  bool "docker build experimental features"
+
+if BR2_PACKAGE_LXCDOCKER_DAEMON
+
+config BR2_PACKAGE_LXCDOCKER_DRIVER_BTRFS
+  bool "docker btrfs filesystem driver"
+  default y
+	select BR2_PACKAGE_BTRFS_PROGS
+
+config BR2_PACKAGE_LXCDOCKER_DRIVER_AUFS
+  bool "docker aufs filesystem driver"
+  select BR2_PACKAGE_AUFS_UTIL
+
+config BR2_PACKAGE_LXCDOCKER_DRIVER_DEVICEMAPPER
+  bool "docker devicemapper filesystem driver"
+	select BR2_PACKAGE_LVM2
+
+config BR2_PACKAGE_LXCDOCKER_DRIVER_VFS
+  bool "docker vfs filesystem driver"
+	select BR2_PACKAGE_GVFS
+
+endif
+
+endif
diff --git a/package/lxcdocker/lxcdocker.hash b/package/lxcdocker/lxcdocker.hash
new file mode 100644
index 0000000..c0244e7
--- /dev/null
+++ b/package/lxcdocker/lxcdocker.hash
@@ -0,0 +1 @@
+sha256 34416118a5d04eae511267fbfab044a927c36434b96dc6fcd705be35a32e01f9  lxcdocker-1.7.1-rc3.tar.gz
diff --git a/package/lxcdocker/lxcdocker.mk b/package/lxcdocker/lxcdocker.mk
new file mode 100644
index 0000000..287ac42
--- /dev/null
+++ b/package/lxcdocker/lxcdocker.mk
@@ -0,0 +1,79 @@
+################################################################################
+#
+# lxcdocker
+#
+################################################################################
+
+LXCDOCKER_VERSION = 1.7.1-rc3
+LXCDOCKER_SITE = $(call github,docker,docker,v$(LXCDOCKER_VERSION))
+LXCDOCKER_DEPENDENCIES = linux-headers sqlite host-golang
+LXCDOCKER_LICENSE = Apache
+LXCDOCKER_LICENSE_FILES = LICENSE
+LXCDOCKER_BUILD_TAGS = exclude_graphdriver_overlayfs
+
+ifeq ($(BR2_PACKAGE_LXCDOCKER_DAEMON),y)
+LXCDOCKER_BUILD_TAGS += daemon
+endif
+
+ifeq ($(BR2_PACKAGE_LXCDOCKER_EXPERIMENTAL),y)
+LXCDOCKER_BUILD_TAGS += experimental
+endif
+
+ifeq ($(BR2_PACKAGE_LXCDOCKER_DRIVER_BTRFS),y)
+LXCDOCKER_DEPENDENCIES += btrfs-progs
+else
+LXCDOCKER_BUILD_TAGS += exclude_graphdriver_btrfs
+endif
+
+ifeq ($(BR2_PACKAGE_LXCDOCKER_DRIVER_AUFS),y)
+LXCDOCKER_DEPENDENCIES += aufs-util
+else
+LXCDOCKER_BUILD_TAGS += exclude_graphdriver_aufs
+endif
+
+ifeq ($(BR2_PACKAGE_LXCDOCKER_DRIVER_DEVICEMAPPER),y)
+LXCDOCKER_DEPENDENCIES += lvm2
+else
+LXCDOCKER_BUILD_TAGS += exclude_graphdriver_devicemapper
+endif
+
+ifeq ($(BR2_PACKAGE_LXCDOCKER_DRIVER_VFS),y)
+LXCDOCKER_DEPENDENCIES += gvfs
+else
+LXCDOCKER_BUILD_TAGS += exclude_graphdriver_vfs
+endif
+
+define LXCDOCKER_CONFIGURE_CMDS
+	export GITCOMMIT=$(LXCDOCKER_VERSION) && \
+	export VERSION=$(LXCDOCKER_VERSION_ID) && \
+	export GOPATH=$(TARGET_DIR)/usr/src/go/ && \
+	echo "clone git github.com/golang/protobuf ab974be44dc3b7b8a1fb306fb32fe9b9f3864b3d" >> $(@D)/hack/vendor.sh && \
+	cd $(@D) && ./hack/vendor.sh
+	ln -fs $(@D) $(@D)/vendor/src/github.com/docker/docker
+endef
+
+define LXCDOCKER_BUILD_CMDS
+	export GOPATH="$(@D)/.gopath:$(@D)/vendor"; \
+	export GOOS=linux; \
+	export GOARCH=$(ARCH); \
+	export CGO_ENABLED=1; \
+	export CGO_NO_EMULATION=1; \
+	export CGO_CFLAGS='-I$(STAGING_DIR)/usr/include/ -I$(TARGET_DIR)/usr/include -I$(LINUX_HEADERS_DIR)/fs/'; \
+	export LDFLAGS="-X main.GITCOMMIT $(LXCDOCKER_VERSION) -X main.VERSION $(LXCDOCKER_VERSION_ID) -w -linkmode external -extldflags '-Wl,--unresolved-symbols=ignore-in-shared-libs' -extld '$(TARGET_CC_NOCCACHE)'"; \
+	export CC="$(TARGET_CC_NOCCACHE)"; \
+	export LD="$(TARGET_LD)"; \
+	cd $(@D); \
+ 	mkdir -p bin; \
+	bash ./hack/make/.go-autogen; \
+	$(GOLANG) build -v -o "$(@D)/bin/docker" -a -tags "$(LXCDOCKER_BUILD_TAGS)" -ldflags "$$LDFLAGS" ./docker
+endef
+
+define LXCDOCKER_INSTALL_TARGET_CMDS
+	cp -L $(@D)/bin/docker $(TARGET_DIR)/usr/bin/docker
+endef
+
+define LXCDOCKER_USERS
+	- - docker -1 * - - - Docker Application Container Framework
+endef
+
+$(eval $(generic-package))
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-07-14 22:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-14 22:17 [Buildroot] [PATCH v2 1/3] golang: new package Christian Stewart
2015-07-14 22:17 ` [Buildroot] [PATCH v2 2/3] aufs-util: " Christian Stewart
2015-07-14 22:17 ` [Buildroot] [PATCH v2 3/3] lxcdocker: " Christian Stewart

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.