From b101a0c7ce6ef1eb41bef786831e58fa4d1b069f Mon Sep 17 00:00:00 2001
From: Amy Fong <amy.fong@windriver.com>
Date: Mon, 27 Jul 2015 14:10:20 -0400
Subject: [PATCH] golang: use oe-meta-go
Update meta-virtualization to use go package from oe-meta-go.
The package golang-cross is go-cross in the oe-meta-go.
Signed-off-by: Amy Fong <amy.fong@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
golang doesn't work with ccache. In the current state, a lot of parsing
happens where it'll grab the first string in CC or LD and uses that for
its builds. When ccache is enabled, it results in trying to do builds
with just ccache.
The brokeness is seen when building with apps that uses cgo, like docker.
To enable ccache to work, some string comparisons and changes to parsing
had to be made.
Signed-off-by: Amy Fong <amy.fong@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
On glibc 2.20+, the _BSD_SOURCE and _SVID_SOURCE feature test macros are
deprecated as of glibc 2.19.90 (2.20 devel), we define _DEFAULT_SOURCE
instead.
(fixed upstream)
https://groups.google.com/forum/#!topic/golang-codereviews/S4TARFCxu2k
Signed-off-by: Amy Fong <amy.fong@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
The lack of a proper ability to regenerate configure causes the cross
compile detect logic to fail (shown below). It is easiest to just
force the cross compile option at configure time.
| configure: error: in `/opt/buildtmp/work/cortexa7t2hf-vfp-neon-wrs-linux-gnueabi/python-gevent/1.0.1-r0/gevent-1.0.1/build/temp.linux-x86_64-2.7/libev':
| configure: error: cannot run C compiled programs.
| If you meant to cross compile, use `--host'.
| See `config.log' for more details
| Running '/bin/sh /opt/buildtmp/work/cortexa7t2hf-vfp-neon-wrs-linux-gnueabi/python-gevent/1.0.1-r0/gevent-1.0.1/libev/configure > configure-output.txt' in /opt/buildtmp/work/cortexa7t2hf-vfp-neon-wrs-linux-gnueabi/python-gevent/1.0.1-r0/gevent-1.0.1/build/temp.linux-x86_64-2.7/libev
| building 'gevent.core' extension
| creating build/temp.linux-x86_64-2.7/gevent
| ccache arm-wrs-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard -mfpu=neon -marm -mthumb-interwork -mtune=cortex-a7 --sysroot=/opt/buildtmp/sysroots/fsl-ls10xx -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -O2 -pipe -g -fPIC -DLIBEV_EMBED=1 -DEV_COMMON= -DEV_CLEANUP_ENABLE=0 -DEV_EMBED_ENABLE=0 -DEV_PERIODIC_ENABLE=0 -Ibuild/temp.linux-x86_64-2.7/libev -Ilibev -I/opt/buildtmp/sysroots/fsl-ls10xx/usr/include/python2.7 -c gevent/gevent.core.c -o build/temp.linux-x86_64-2.7/gevent/gevent.core.o
| In file included from gevent/libev.h:2:0,
| from gevent/gevent.core.c:313:
| libev/ev.c:45:22: fatal error: config.h: No such file or directory
| # include "config.h"
| ^
| compilation terminated.
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Uprev docker to 1.6.2
go-capability is upreved to a later git commit
go-dbus is upreved to version 2
go-distribution-digest is added as a new dependency. Only the
digest part of go-distribution is needed/kept here,
hence go-distribution-digest
go-logrus is upreved to 0.7.1
Remove PR since it's no longer used
Signed-off-by: Amy Fong <amy.fong@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
The ccache on some hosts will cause the golang-cross package to fail
with the error:
| cmd/fix
| cmd/yacc
| runtime/cgo
| go build runtime/cgo: no buildable Go source files in /proj/bitbake_build/tmp/work/x86_64-wrs-linux/golang-cross/1.3-r0/go/src/pkg/runtime/cgo
| WARNING: /proj/bitbake_build/tmp/work/x86_64-wrs-linux/golang-cross/1.3-r0/temp/do_compile/run.do_compile.14152:1 exit 1 from
| sh -x ./make.bash
| ERROR: Function failed: do_compile
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Work around an issue with python 2.7 not always having SSLv3 available
by allowing v2 or v3 certificates.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Docker's build process will clone missing dependencies which
circumvents the bitbake fetcher. This is a bad thing in many ways, for
example this will not respect BB_NO_NETWORK and DL_DIR settings. To
work around this we are able to provide recipes for each of the
missing dependencies.
The dependencies are all in GO and are required to be added to the
sysroot such that the docker build can find them via GOPATH at build
time. The docker recipe was updated to add these new packages as
dependencies and the explicit clone of go-cli was removed.
After these change we are able to complete the build with networking
disabled after completing a fetchall. Docker functionality was tested
on an image built with these changes and it functions as it did
before.
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Amy Fong <amy.fong@windriver.com>
These are a set of dependencies required to build and run docker and
docker-registry which had previously existed in
meta-cloud-services. By moving these from meta-cloud-services to
meta-virtualization we can build and use docker without needing to
include meta-cloud-services. Since meta-cloud-services depends on
meta-virtualization these recipes will still be available for use with
packages/images in meta-cloud-services.
There is a concern that meta-cloud-services contains many python
packages as there exists tight dependency for specific package
versions, this move does not prevent this tight binding from
continuing using various mechanisms made available to layers.
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Amy Fong <amy.fong@windriver.com>
This package is derived from meta-golang:
https://github.com/digitallumens/meta-golang.git
commit 3fa6c8af6b4762de2f4e6740e327a5a71c29e6e1
In the meta-golang version, golang depends on a gcc-cross that causes
conflicts with our toolchain. So the golang-cross recipe was extracted
and then the following changes were made to work in wrlinux:
- our TARGET_ARCH is x86-64, golang-cross wants amd64
- in the former recipe, compile fails because it can't find header files
and libraries because --sysroot is dropped. So I redefined the target
cc and target cxx as cc and cxx at the start of the compile rule since
cc gets redefined in there somewhere.
Signed-off-by: Amy Fong <amy.fong@windriver.com>
This is the old 2.7.2 version and it will be found when the
2.7.9 version goes looking for the patch of the same name,
causing do_patch() to fail.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
It is questionable if we need this at all anymore (we probably don't),
but for now, there's no reason to not match the versions.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
redefining THISDIR and using FILESPATH is no longer required in a
"modern" bbappend, and in fact breaks other layers that also patch
python.
Removing THISDIR and using FILESEXTRAPATHS_prepend fixes both issues.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>