[Buildroot] [PATCH 1/1] Add rtl8821au, lxcdocker, go, host-go, aufs-util packages
Christian Stewart
christian at paral.in
Tue Jul 14 17:27:40 UTC 2015
Signed-off-by: Christian Stewart <christian at paral.in>
---
package/Config.in | 3 ++
package/Config.in.host | 1 +
package/aufs-util/Config.in | 6 +++
package/aufs-util/aufs-util.mk | 38 +++++++++++++++++
package/go/0001-add-no-march-option-gccp.patch | 19 +++++++++
.../go/0002-remove-unnecessary-march-ld-flag.patch | 29 +++++++++++++
package/go/Config.in | 6 +++
package/go/Config.in.host | 6 +++
package/go/go.mk | 40 ++++++++++++++++++
package/lxcdocker/Config.in | 15 +++++++
package/lxcdocker/lxcdocker.mk | 47 ++++++++++++++++++++++
package/rtl8821au/Config.in | 6 +++
package/rtl8821au/rtl8821au.mk | 25 ++++++++++++
13 files changed, 241 insertions(+)
create mode 100644 package/aufs-util/Config.in
create mode 100644 package/aufs-util/aufs-util.mk
create mode 100644 package/go/0001-add-no-march-option-gccp.patch
create mode 100644 package/go/0002-remove-unnecessary-march-ld-flag.patch
create mode 100644 package/go/Config.in
create mode 100644 package/go/Config.in.host
create mode 100644 package/go/go.mk
create mode 100644 package/lxcdocker/Config.in
create mode 100644 package/lxcdocker/lxcdocker.mk
create mode 100644 package/rtl8821au/Config.in
create mode 100644 package/rtl8821au/rtl8821au.mk
diff --git a/package/Config.in b/package/Config.in
index 5beb450..19c59cd 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"
@@ -455,6 +456,7 @@ menu "Erlang libraries/modules"
source "package/erlang-p1-zlib/Config.in"
endmenu
endif
+ source "package/go/Config.in"
source "package/guile/Config.in"
source "package/haserl/Config.in"
source "package/jamvm/Config.in"
@@ -1423,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/Config.in.host b/package/Config.in.host
index 1e047aa..b124b9b 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -11,6 +11,7 @@ menu "Host utilities"
source "package/genext2fs/Config.in.host"
source "package/genimage/Config.in.host"
source "package/genpart/Config.in.host"
+ source "package/go/Config.in.host"
source "package/imx-usb-loader/Config.in.host"
source "package/lpc3250loader/Config.in.host"
source "package/mke2img/Config.in.host"
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.mk b/package/aufs-util/aufs-util.mk
new file mode 100644
index 0000000..ef2ca21
--- /dev/null
+++ b/package/aufs-util/aufs-util.mk
@@ -0,0 +1,38 @@
+################################################################################
+#
+# aufs-util
+#
+################################################################################
+
+
+# Version depends on the kernel version.
+# todo: find an effective way of detecting the right version to use
+AUFS_UTIL_VERSION = a25c0d434889cab53df62fc0a6f9e9d679470990
+AUFS_UTIL_DEPENDENCIES = linux linux-headers
+AUFS_UTIL_SITE = $(call github,morfoh,aufs-util,$(AUFS_UTIL_VERSION))
+AUFS_UTIL_LICENSE = GNU
+AUFS_UTIL_INSTALL_STAGING = NO
+AUFS_UTIL_INSTALL_TARGET = YES
+
+# Force it to build for any kernel, even if it might not work
+#define AUFS_UTIL_CONFIGURE_CMDS
+# $(SED) 's/7/0/' $(@D)/ver.c
+#endef
+
+# 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))
diff --git a/package/go/0001-add-no-march-option-gccp.patch b/package/go/0001-add-no-march-option-gccp.patch
new file mode 100644
index 0000000..26c3542
--- /dev/null
+++ b/package/go/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 at paral.in>
+
+diff -Nau go.orig/src/cmd/cgo/gcc.go go/src/cmd/cgo/gcc.go
+--- go.orig/src/cmd/cgo/gcc.go.orig 2015-07-09 15:53:55.720794139 -0700
++++ go/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/go/0002-remove-unnecessary-march-ld-flag.patch b/package/go/0002-remove-unnecessary-march-ld-flag.patch
new file mode 100644
index 0000000..e63c9f9
--- /dev/null
+++ b/package/go/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 at paral.in>
+
+diff -Nau go.orig/src/cmd/ld/lib.c go/src/cmd/ld/lib.c
+--- go.orig/src/cmd/ld/lib.c.orig 2015-07-09 18:38:44.192359082 -0700
++++ go/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/go/Config.in b/package/go/Config.in
new file mode 100644
index 0000000..9abf895
--- /dev/null
+++ b/package/go/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_GO
+ bool "go"
+ help
+ Go compiler and cli tool.
+
+ http://golang.org/
diff --git a/package/go/Config.in.host b/package/go/Config.in.host
new file mode 100644
index 0000000..5496706
--- /dev/null
+++ b/package/go/Config.in.host
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_HOST_GO
+ bool "host go"
+ help
+ Go for the host system.
+
+ http://golang.org/
diff --git a/package/go/go.mk b/package/go/go.mk
new file mode 100644
index 0000000..fbf69d4
--- /dev/null
+++ b/package/go/go.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# GO
+#
+################################################################################
+
+GO_VERSION = 883bc6ed0ea815293fe6309d66f967ea60630e87
+GO_SITE = $(call github,golang,go,$(GO_VERSION))
+GO_LICENSE_FILES = LICENSE
+GO_INSTALL_STAGING = NO
+GO_INSTALL_TARGET = YES
+
+HOST_GO_DEPENDENCIES =
+GO_DEPENDENCIES =
+
+GO = $(HOST_DIR)/usr/bin/go
+GOFMT = $(HOST_DIR)/usr/bin/gofmt
+
+define GO_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 GO_INSTALL_TARGET_CMDS
+ cp $(@D)/bin/linux_$(ARCH)/* $(TARGET_DIR)/usr/bin/
+ mkdir -p $(TARGET_DIR)/usr/src/go/
+ cp -r $(@D)/* $(TARGET_DIR)/usr/src/go/
+endef
+
+define HOST_GO_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_GO_INSTALL_CMDS
+ cp $(@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))
diff --git a/package/lxcdocker/Config.in b/package/lxcdocker/Config.in
new file mode 100644
index 0000000..a8a32ba
--- /dev/null
+++ b/package/lxcdocker/Config.in
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_LXCDOCKER
+ bool "lxcdocker"
+ select BR2_PACKAGE_HOST_GO
+ select BR2_PACKAGE_BTRFS_PROGS
+ select BR2_PACKAGE_SQLITE
+ select BR2_PACKAGE_LVM2
+ 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
+ Container management system for LXC.
+
+ https://github.com/docker/docker
diff --git a/package/lxcdocker/lxcdocker.mk b/package/lxcdocker/lxcdocker.mk
new file mode 100644
index 0000000..86d7d3d
--- /dev/null
+++ b/package/lxcdocker/lxcdocker.mk
@@ -0,0 +1,47 @@
+################################################################################
+#
+# lxcdocker
+#
+################################################################################
+
+LXCDOCKER_VERSION = f8f912ac2a10ae81bbc6274dd1fb203269260263
+LXCDOCKER_VERSION_ID = "1.7.1-rc1"
+LXCDOCKER_SITE = $(call github,docker,docker,$(LXCDOCKER_VERSION))
+LXCDOCKER_INSTALL_STAGING = NO
+LXCDOCKER_INSTALL_TARGET = YES
+
+# Perhaps suboptimal to let something in the tree clone subrepos.
+# Not exactly sure what a better solution here would be.
+# In Go, you need the source for these packages.
+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$(TARGET_DIR)/usr/include/'; \
+ 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; \
+ $(GO) build -v -o "$(@D)/bin/docker" -a -tags "daemon" -ldflags "$$LDFLAGS" ./docker
+endef
+
+define LXCDOCKER_INSTALL_TARGET_CMDS
+ cp -L $(@D)/bin/docker $(TARGET_DIR)/usr/bin/docker
+endef
+
+LXCDOCKER_DEPENDENCIES = lxc btrfs-progs sqlite lvm2 host-go
+
+$(eval $(generic-package))
diff --git a/package/rtl8821au/Config.in b/package/rtl8821au/Config.in
new file mode 100644
index 0000000..1269bc6
--- /dev/null
+++ b/package/rtl8821au/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RTL8821AU
+ bool "rtl8821au"
+ help
+ rtl8821au wireless driver
+
+ https://github.com/abperiasamy/rtl8812AU_8821AU_linux
diff --git a/package/rtl8821au/rtl8821au.mk b/package/rtl8821au/rtl8821au.mk
new file mode 100644
index 0000000..d80fd28
--- /dev/null
+++ b/package/rtl8821au/rtl8821au.mk
@@ -0,0 +1,25 @@
+################################################################################
+#
+# rtl8821au
+#
+################################################################################
+
+RTL8821AU_VERSION = ac82a3077933789686cdb1e0a4b026fa8da91b34
+RTL8821AU_SITE = $(call github,paralin,rtl8821au,$(RTL8821AU_VERSION))
+RTL8821AU_INSTALL_STAGING = NO
+RTL8821AU_INSTALL_TARGET = YES
+
+define RTL8821AU_BUILD_CMDS
+ $(SED) "s/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g" -i $(@D)/Makefile
+ $(MAKE) -C $(@D) ARCH="$(ARCH)" KVER="$(LINUX_VERSION_PROBED)" USER_EXTRA_CFLAGS="-DCONFIG_LITTLE_ENDIAN" CROSS_COMPILE="$(CROSS_COMPILE)" KSRC="$(LINUX_BUILDDIR)" CC="$(TARGET_CC)" LD="$(TARGET_LD)" modules
+endef
+
+define RTL8821AU_INSTALL_TARGET_CMDS
+ mkdir -p $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/kernel/drivers/net/wireless/
+ $(INSTALL) -p -m 644 $(@D)/8821au.ko $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/kernel/drivers/net/wireless/
+ $(HOST_DIR)/sbin/depmod -a --basedir=$(TARGET_DIR) $(LINUX_VERSION_PROBED)
+endef
+
+RTL8821AU_DEPENDENCIES = linux
+
+$(eval $(generic-package))
--
2.1.4
More information about the buildroot
mailing list