* [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.