Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 05/12] xf86-input-keyboard: Remove git recipe
From: Jussi Kukkonen @ 2016-12-12 10:11 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481536730.git.jussi.kukkonen@intel.com>

Last used revision was from 8 years ago.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 .../xorg-driver/xf86-input-keyboard_git.bb               | 16 ----------------
 1 file changed, 16 deletions(-)
 delete mode 100644 meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb

diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb
deleted file mode 100644
index dfb08f7..0000000
--- a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require xorg-driver-input.inc
-
-SUMMARY = "X.Org X server -- keyboard input driver"
-
-DESCRIPTION = "keyboard is an Xorg input driver for keyboards. The \
-driver supports the standard OS-provided keyboard interface.  The driver \
-functions as a keyboard input device, and may be used as the X server's \
-core keyboard."
-
-SRCREV = "3e28d68b50d291938734e9684b8296ca864f3892"
-PV = "1.3.2+git${SRCPV}"
-PR = "${INC_PR}.0"
-
-SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-keyboard"
-S = "${WORKDIR}/git"
-
-- 
2.1.4



^ permalink raw reply related

* [PATCH 06/12] xf86-input-mouse: Upgrade 1.9.1 -> 1.9.2
From: Jussi Kukkonen @ 2016-12-12 10:11 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481536730.git.jussi.kukkonen@intel.com>

Tiny update with ABI 23/24 support.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 .../{xf86-input-mouse_1.9.1.bb => xf86-input-mouse_1.9.2.bb}         | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-mouse_1.9.1.bb => xf86-input-mouse_1.9.2.bb} (76%)

diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.1.bb b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.2.bb
similarity index 76%
rename from meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.1.bb
rename to meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.2.bb
index 1f0b78a..0750476 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.1.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.2.bb
@@ -10,6 +10,5 @@ driver."
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=90ea9f90d72b6d9327dede5ffdb2a510"
 
-SRC_URI[md5sum] = "77085b649c5c0b333565ba562f573951"
-SRC_URI[sha256sum] = "3485d375779c08406f0789feedde15933dc703158a086ddac638598f479fc5ce"
-
+SRC_URI[md5sum] = "ce2d679283a22c8e0dccdd9248594845"
+SRC_URI[sha256sum] = "f425d5b05c6ab412a27e0a1106bb83f9e2662b307210abbe48270892387f4b2f"
-- 
2.1.4



^ permalink raw reply related

* [PATCH 07/12] xf86-input-mouse: Remove git recipe
From: Jussi Kukkonen @ 2016-12-12 10:11 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481536730.git.jussi.kukkonen@intel.com>

Last used revision is from 8 years ago.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 .../xorg-driver/xf86-input-mouse_git.bb                | 18 ------------------
 1 file changed, 18 deletions(-)
 delete mode 100644 meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb

diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb
deleted file mode 100644
index d79a2e4..0000000
--- a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-require xorg-driver-input.inc
-
-SUMMARY = "X.Org X server -- mouse input driver"
-
-DESCRIPTION = "mouse is an Xorg input driver for mice. The driver \
-supports most available mouse types and interfaces.  The mouse driver \
-functions as a pointer input device, and may be used as the X server's \
-core pointer. Multiple mice are supported by multiple instances of this \
-driver."
-
-SRCREV = "ea5cfe804e112f320f14ad896c7802d53551d3e6"
-PV = "1.3.0+git${SRCPV}"
-PR = "${INC_PR}.0"
-
-SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-mouse \
-           file://unbreak.patch"
-S = "${WORKDIR}/git"
-
-- 
2.1.4



^ permalink raw reply related

* [PATCH 08/12] xf86-input-synaptics: Upgrade 1.8.3 -> 1.9.0
From: Jussi Kukkonen @ 2016-12-12 10:11 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481536730.git.jussi.kukkonen@intel.com>

Bug fixes, new hw support, support for XINPUT ABI 23.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 .../{xf86-input-synaptics_1.8.3.bb => xf86-input-synaptics_1.9.0.bb}  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-synaptics_1.8.3.bb => xf86-input-synaptics_1.9.0.bb} (79%)

diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.8.3.bb b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.0.bb
similarity index 79%
rename from meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.8.3.bb
rename to meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.0.bb
index b47c82c..d327a3b 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.8.3.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.0.bb
@@ -10,7 +10,7 @@ advanced features of the touchpad to become available."
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=55aacd3535a741824955c5eb8f061398"
 
-SRC_URI[md5sum] = "4e3c8bed1ab4a67db2160c2c3d7e2a34"
-SRC_URI[sha256sum] = "d39f100c74f3673778b53f17bab7690161925e25dd998a15dd8cc69b52e83f01"
+SRC_URI[md5sum] = "58e5b7722a402114093bf193962d1e3a"
+SRC_URI[sha256sum] = "afba3289d7a40217a19d90db98ce181772f9ca6d77e1898727b0afcf02073b5a"
 
 DEPENDS += "libxi mtdev libxtst libevdev"
-- 
2.1.4



^ permalink raw reply related

* [PATCH 09/12] xf86-input-synaptics: Remove git recipe
From: Jussi Kukkonen @ 2016-12-12 10:11 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481536730.git.jussi.kukkonen@intel.com>

Last source revision is from 8 years ago.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 .../xorg-driver/xf86-input-synaptics_git.bb            | 18 ------------------
 1 file changed, 18 deletions(-)
 delete mode 100644 meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb

diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb
deleted file mode 100644
index 140f633..0000000
--- a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-require xorg-driver-input.inc
-
-SUMMARY = "X.Org X server -- synaptics touchpad input driver"
-
-DESCRIPTION = "synaptics is an Xorg input driver for the touchpads from \
-Synaptics Incorporated. Even though these touchpads (by default, \
-operating in a compatibility mode emulating a standard mouse) can be \
-handled by the normal evdev or mouse drivers, this driver allows more \
-advanced features of the touchpad to become available."
-
-SRCREV = "934bc0012f948c52aadc8eda912f7728fb7394a2"
-PV = "0.15.2+git${SRCPV}"
-PR = "${INC_PR}.1"
-
-SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-synaptics"
-S = "${WORKDIR}/git"
-
-DEPENDS += "libxi mtdev libxtst"
-- 
2.1.4



^ permalink raw reply related

* [PATCH 11/12] xf86-video-vmware: Upgrade 13.1.0 -> 13.2.1
From: Jussi Kukkonen @ 2016-12-12 10:11 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481536730.git.jussi.kukkonen@intel.com>

Bug fixes, ABI 23 support.
Rebase the add-option-for-vmwgfx patch.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 .../0002-add-option-for-vmwgfx.patch               | 37 ++++++++++++----------
 ...mware_13.1.0.bb => xf86-video-vmware_13.2.1.bb} |  4 +--
 2 files changed, 23 insertions(+), 18 deletions(-)
 rename meta/recipes-graphics/xorg-driver/{xf86-video-vmware_13.1.0.bb => xf86-video-vmware_13.2.1.bb} (78%)

diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch b/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch
index 6039d08..5bda720 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch
@@ -1,17 +1,18 @@
-Upstream-Status:Submitted
-Signed-off-by: Ross Burton <ross.burton@intel.com>
+From da6612659a279bcb02f70622b53a3894fbc11052 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Fri, 9 Dec 2016 14:35:45 +0200
+Subject: [PATCH] Add option for vmwgfx
 
-From f103d6f570671c649ccd7b225e6d6c9f14371888 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Wed, 25 Jun 2014 16:16:44 +0100
-Subject: [PATCH 2/2] add option for vmwgfx
+Upstream-Status:Submitted
 
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
 ---
- configure.ac |   49 ++++++++++++++++++++-----------------------------
- 1 file changed, 20 insertions(+), 29 deletions(-)
+ configure.ac | 51 +++++++++++++++++++++------------------------------
+ 1 file changed, 21 insertions(+), 30 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index be40ed7..8e15307 100644
+index 9f259ce..f3fec57 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -64,6 +64,13 @@ AC_ARG_ENABLE(vmwarectrl-client,
@@ -40,7 +41,7 @@ index be40ed7..8e15307 100644
  PKG_CHECK_EXISTS([xorg-server >= 1.12.0],
                   [AC_DEFINE([HAVE_XORG_SERVER_1_12_0], 1,
                   [Has version 1.12.0 or greater of the Xserver])])
-@@ -114,39 +116,28 @@ AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
+@@ -114,34 +116,22 @@ AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
  
  AC_SUBST([moduledir])
  
@@ -62,6 +63,7 @@ index be40ed7..8e15307 100644
 -#
 +AC_MSG_CHECKING([whether to build Kernel Mode Setting and 3D])
 +if test x$VMWGFX = xyes; then
++	AC_MSG_RESULT([yes])
 +	PKG_CHECK_MODULES([LIBDRM], [libdrm])
 +	# Check for prime.
  	PKG_CHECK_EXISTS([libdrm >= 2.4.38],
@@ -75,15 +77,18 @@ index be40ed7..8e15307 100644
 -AC_MSG_CHECKING([whether to build Kernel Mode Setting and 3D])
 -if test x$BUILD_VMWGFX = xyes; then
 -	AC_MSG_RESULT([yes])
+-        AC_DEFINE([BUILD_VMWGFX], 1, [Building the vmwgfx driver path])
 +	# Early versions of mesa 10 forgot to bump the XA major version number
 +	# in the xa_tracker.h header
 +	PKG_CHECK_MODULES([XATRACKER], [xatracker >= 0.4.0],
 +			  [PKG_CHECK_EXISTS([xatracker = 2.0.0],
-+	                  [AC_DEFINE([HAVE_XA_2], 1,
-+               		  [Has version 2 of XA])])])
-         AC_DEFINE([BUILD_VMWGFX], 1, [Building the vmwgfx driver path])
-+	AC_MSG_RESULT([yes])
- else
++			  [AC_DEFINE([HAVE_XA_2], 1,
++				     [Has version 2 of XA])])])
++	AC_DEFINE([BUILD_VMWGFX], 1, [Building the vmwgfx driver path])
+ 	libudev_check=yes
+ 	AC_ARG_WITH([libudev],
+ 		[AS_HELP_STRING([--without-libudev],
+@@ -158,7 +148,8 @@ else
  	AC_MSG_RESULT([no])
  fi
  
@@ -94,5 +99,5 @@ index be40ed7..8e15307 100644
  AC_CONFIG_FILES([
                  Makefile
 -- 
-1.7.10.4
+2.1.4
 
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.1.0.bb b/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.2.1.bb
similarity index 78%
rename from meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.1.0.bb
rename to meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.2.1.bb
index 8c891e6..706d35d 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.1.0.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.2.1.bb
@@ -10,8 +10,8 @@ DEPENDS += "virtual/libx11 xineramaproto videoproto libpciaccess"
 
 SRC_URI += "file://0002-add-option-for-vmwgfx.patch"
 
-SRC_URI[md5sum] = "0cba22fed4cb639d5c4276f7892c543d"
-SRC_URI[sha256sum] = "3c1d244e4b1b77e92126957965cdc9fb82de4c215c0706a3a8aaff6939e4a0cc"
+SRC_URI[md5sum] = "4c3912e4d8947f6c2fc1ee9e2f211d74"
+SRC_URI[sha256sum] = "e2f7f7101fba7f53b268e7a25908babbf155b3984fb5268b3d244eb6c11bf62b"
 
 COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)'
 
-- 
2.1.4



^ permalink raw reply related

* [PATCH 01/12] libxfont2: Add recipe
From: Jussi Kukkonen @ 2016-12-12 10:11 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481536730.git.jussi.kukkonen@intel.com>

This is the same old libxfont but with a new API.
xserver-xorg 1.19 depends on libxfont2.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 meta/recipes-graphics/xorg-lib/libxfont2_2.0.1.bb | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100644 meta/recipes-graphics/xorg-lib/libxfont2_2.0.1.bb

diff --git a/meta/recipes-graphics/xorg-lib/libxfont2_2.0.1.bb b/meta/recipes-graphics/xorg-lib/libxfont2_2.0.1.bb
new file mode 100644
index 0000000..402ab0d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxfont2_2.0.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "XFont2: X Font rasterisation library"
+
+DESCRIPTION = "libXfont2 provides various services for X servers, most \
+notably font selection and rasterisation (through external libraries \
+such as freetype)."
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT & MIT-style & BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a46c8040f2f737bcd0c435feb2ab1c2c"
+
+DEPENDS += "freetype xtrans fontsproto libfontenc zlib"
+
+XORG_PN = "libXfont2"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "0d9f6dd9c23bf4bcbfb00504b566baf5"
+SRC_URI[sha256sum] = "e9fbbb475ddd171b3a6a54b989cbade1f6f874fc35d505ebc5be426bc6e4db7e"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-- 
2.1.4



^ permalink raw reply related

* [PATCH 03/12] xf86-input-evdev: Upgrade 2.10.3 -> 2.10.4
From: Jussi Kukkonen @ 2016-12-12 10:11 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481536730.git.jussi.kukkonen@intel.com>

Tiny update to XINPUT ABI 24.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 .../{xf86-input-evdev_2.10.3.bb => xf86-input-evdev_2.10.4.bb}        | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-evdev_2.10.3.bb => xf86-input-evdev_2.10.4.bb} (83%)

diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.3.bb b/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.4.bb
similarity index 83%
rename from meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.3.bb
rename to meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.4.bb
index f81c3ec..c660a1d 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.3.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.4.bb
@@ -16,5 +16,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fefe33b1cf0cacba0e72e3b0fa0f0e16"
 
 DEPENDS += "mtdev libevdev"
 
-SRC_URI[md5sum] = "aa3363ce5061d0c4d1e7f7019b99716d"
-SRC_URI[sha256sum] = "5aa21ba4be8df927e5676a99c7f4f0343abc089f5451b7e73e39536f29b332a2"
+SRC_URI[md5sum] = "0f209d13b39427c1a6d38d70059b1e8f"
+SRC_URI[sha256sum] = "bbf6a03fbce1a6c0c7d874eef519fd0a854bf01b515c745d41fa551ce6490cc2"
-- 
2.1.4



^ permalink raw reply related

* [PATCH 10/12] xf86-video-omap: Upgrade 0.4.4 -> 0.4.5
From: Jussi Kukkonen @ 2016-12-12 10:11 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481536730.git.jussi.kukkonen@intel.com>

Support ABI 23.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 .../{xf86-video-omap_0.4.4.bb => xf86-video-omap_0.4.5.bb}            | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/xorg-driver/{xf86-video-omap_0.4.4.bb => xf86-video-omap_0.4.5.bb} (89%)

diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omap_0.4.4.bb b/meta/recipes-graphics/xorg-driver/xf86-video-omap_0.4.5.bb
similarity index 89%
rename from meta/recipes-graphics/xorg-driver/xf86-video-omap_0.4.4.bb
rename to meta/recipes-graphics/xorg-driver/xf86-video-omap_0.4.5.bb
index 7895449..e652394 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-video-omap_0.4.4.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omap_0.4.5.bb
@@ -24,8 +24,8 @@ LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=10ce5de3b111315ea652a5f74ec0c602"
 DEPENDS += "virtual/libx11 libdrm xf86driproto"
 
-SRC_URI[md5sum] = "a364e151a537948f75bb8c9b840a31da"
-SRC_URI[sha256sum] = "a7192690b8638f5c8d611a1bae07cc13081e22edd4070f37a2f5c3f8d79e7ebc"
+SRC_URI[md5sum] = "3b8ea5e8fba63355c0dc6681c49d5fe5"
+SRC_URI[sha256sum] = "93e7d42107521e61f61980eaea64fb452e87b7b94272e48938ac8d904ccfab5a"
 
 CFLAGS += " -I${STAGING_INCDIR}/xorg "
 
-- 
2.1.4



^ permalink raw reply related

* [PATCH 04/12] xf86-input-keyboard: Upgrade 1.8.1 -> 1.9.0
From: Jussi Kukkonen @ 2016-12-12 10:11 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481536730.git.jussi.kukkonen@intel.com>

Small update with ABI 23 support.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 .../{xf86-input-keyboard_1.8.1.bb => xf86-input-keyboard_1.9.0.bb}    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-keyboard_1.8.1.bb => xf86-input-keyboard_1.9.0.bb} (73%)

diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.8.1.bb b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb
similarity index 73%
rename from meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.8.1.bb
rename to meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb
index 6fe51ac..1896fff 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.8.1.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb
@@ -9,5 +9,5 @@ core keyboard."
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=ea2099d24ac9e316a6d4b9f20b3d4e10"
 
-SRC_URI[md5sum] = "96ccc43d389b970afbd3893875dfd678"
-SRC_URI[sha256sum] = "1ac8ff39bf9da7d2fc7fd6c24515726e8138340c0518ab8c606e008cf93ca211"
+SRC_URI[md5sum] = "a3a3f0dd32361dcdbd406e894dafe090"
+SRC_URI[sha256sum] = "f7c900f21752683402992b288d5a2826de7a6c0c0abac2aadd7e8a409e170388"
-- 
2.1.4



^ permalink raw reply related

* [PATCH 12/12] xf86-input-libinput: Upgrade 0.22 -> 0.23
From: Jussi Kukkonen @ 2016-12-12 10:11 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481536730.git.jussi.kukkonen@intel.com>

Bug fixes + libinput now supports tablets (but wacom driver is
used instead if it is installed).

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 .../{xf86-input-libinput_0.22.0.bb => xf86-input-libinput_0.23.0.bb}  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-libinput_0.22.0.bb => xf86-input-libinput_0.23.0.bb} (63%)

diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.22.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.23.0.bb
similarity index 63%
rename from meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.22.0.bb
rename to meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.23.0.bb
index a102bbf..5c49abd 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.22.0.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.23.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5e6b20ea2ef94a998145f0ea3f788ee0"
 
 DEPENDS += "libinput"
 
-SRC_URI[md5sum] = "e4364319f15f97dc2ef0ef62c8616826"
-SRC_URI[sha256sum] = "c762b4072ed448e2ae9f35cebd7fec8df7fd42b3ae61462cc3b2f720a873eae2"
+SRC_URI[md5sum] = "56ff43915a273c787ea8b93ccb83f835"
+SRC_URI[sha256sum] = "0b53ebdfe8f8fc7554dd92af1b1c3088a6d3ec4ae1a33fc76f57d635c736a9dc"
 
 FILES_${PN} += "${datadir}/X11/xorg.conf.d"
-- 
2.1.4



^ permalink raw reply related

* Re: [PATCH] edgerouter.conf: enable generation of wic.bmap
From: Ed Bartosh @ 2016-12-12 10:58 UTC (permalink / raw)
  To: Christopher Larson; +Cc: Patches and discussions about the oe-core layer
In-Reply-To: <CABcZANk5QnzFAWwAjbaHAQvCw=XXViOnh5jg=cvRiD_B=mEpKA@mail.gmail.com>

On Sat, Dec 10, 2016 at 11:40:38AM -0700, Christopher Larson wrote:
> On Fri, Dec 9, 2016 at 10:46 AM, Ed Bartosh <ed.bartosh@linux.intel.com>
> wrote:
> 
> > Enabled generation of block map(bmap) files for wic images
> > built for edgerouter machine. This should simplify flashing
> > images with bmaptool.
> >
> > [YOCTO #10621]
> >
> > Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
> >
> 
> I think this is more of a distro decision than machine, whether they want
> to support use of bmaptool for their users/customers. It’d be nice if it
> was easier to control compression from the distro, too. For example, if we
> want to distribute wic.bz2+wic.bmap in our installers, it’d be nice to be
> able to switch to that for all machines that use wic. I’m not sure how best
> to pull that off, however. Something to think about for the future.

Thanks for pointing out to it. I did it this way for two reasons:
- IMAGE_FSTYPES was already modified in edgerouter.conf
- I wanted to enable generation of wic.bmap for subset of machines, i.e.
  only for hardware reference BSPs mentioned in README.hardware

If there is a better to do it I'd be happy to update my patch.

--
Regards,
Ed


^ permalink raw reply

* Re: [PATCH 1/2] go: Add recipes for golang compilers and tools
From: Gary Thomas @ 2016-12-12 12:36 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <20161110003935.1858-1-raj.khem@gmail.com>

On 2016-11-10 01:39, Khem Raj wrote:
> This is converging the recipes for go from
> meta-virtualization and oe-meta-go
>
> Add recipes for go 1.7
>
> go.bbclass is added to ease out writing
> recipes for go packages
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  meta/classes/go.bbclass                            |  74 +++++++
>  meta/classes/goarch.bbclass                        |  40 ++++
>  meta/recipes-devtools/go/go-1.4.inc                |  15 ++
>  .../go/go-1.4/016-armhf-elf-header.patch           |  24 +++
>  ...ckport-cmd-link-support-new-386-amd64-rel.patch | 225 +++++++++++++++++++++
>  meta/recipes-devtools/go/go-1.4/syslog.patch       |  62 ++++++
>  meta/recipes-devtools/go/go-1.6.inc                |  19 ++
>  .../go/go-1.6/armhf-elf-header.patch               |  23 +++
>  .../go/go-1.6/fix-cc-handling.patch                |  50 +++++
>  .../go/go-1.6/fix-target-cc-for-build.patch        |  17 ++
>  meta/recipes-devtools/go/go-1.6/gotooldir.patch    |  30 +++
>  .../go/go-1.6/split-host-and-target-build.patch    |  63 ++++++
>  meta/recipes-devtools/go/go-1.6/syslog.patch       |  62 ++++++
>  meta/recipes-devtools/go/go-1.7.inc                |  18 ++
>  .../go/go-1.7/armhf-elf-header.patch               |  23 +++
>  .../go/go-1.7/fix-cc-handling.patch                |  50 +++++
>  .../go/go-1.7/fix-target-cc-for-build.patch        |  17 ++
>  meta/recipes-devtools/go/go-1.7/gotooldir.patch    |  30 +++
>  .../go/go-1.7/split-host-and-target-build.patch    |  62 ++++++
>  meta/recipes-devtools/go/go-1.7/syslog.patch       |  62 ++++++
>  meta/recipes-devtools/go/go-common.inc             |  21 ++
>  meta/recipes-devtools/go/go-native.inc             |  54 +++++
>  meta/recipes-devtools/go/go-native_1.4.bb          |   2 +
>  meta/recipes-devtools/go/go.inc                    |  74 +++++++
>  meta/recipes-devtools/go/go_1.6.bb                 |   4 +
>  meta/recipes-devtools/go/go_1.7.bb                 |   4 +
>  26 files changed, 1125 insertions(+)
>  create mode 100644 meta/classes/go.bbclass
>  create mode 100644 meta/classes/goarch.bbclass
>  create mode 100644 meta/recipes-devtools/go/go-1.4.inc
>  create mode 100644 meta/recipes-devtools/go/go-1.4/016-armhf-elf-header.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.4/go-cross-backport-cmd-link-support-new-386-amd64-rel.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.4/syslog.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.6.inc
>  create mode 100644 meta/recipes-devtools/go/go-1.6/armhf-elf-header.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.6/fix-cc-handling.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.6/fix-target-cc-for-build.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.6/gotooldir.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.6/split-host-and-target-build.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.6/syslog.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.7.inc
>  create mode 100644 meta/recipes-devtools/go/go-1.7/armhf-elf-header.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.7/fix-cc-handling.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.7/fix-target-cc-for-build.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.7/gotooldir.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.7/split-host-and-target-build.patch
>  create mode 100644 meta/recipes-devtools/go/go-1.7/syslog.patch
>  create mode 100644 meta/recipes-devtools/go/go-common.inc
>  create mode 100644 meta/recipes-devtools/go/go-native.inc
>  create mode 100644 meta/recipes-devtools/go/go-native_1.4.bb
>  create mode 100644 meta/recipes-devtools/go/go.inc
>  create mode 100644 meta/recipes-devtools/go/go_1.6.bb
>  create mode 100644 meta/recipes-devtools/go/go_1.7.bb
>
> diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
> new file mode 100644
> index 0000000..e10864d
> --- /dev/null
> +++ b/meta/classes/go.bbclass
> @@ -0,0 +1,74 @@
> +inherit goarch
> +
> +GOROOT_class-native = "${STAGING_LIBDIR_NATIVE}/go"
> +GOROOT = "${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
> +GOBIN_FINAL_class-native = "${GOROOT_FINAL}/bin"
> +GOBIN_FINAL = "${GOROOT_FINAL}/bin/${GOOS}_${GOARCH}"
> +
> +export GOOS = "${TARGET_GOOS}"
> +export GOARCH = "${TARGET_GOARCH}"
> +export GOARM = "${TARGET_GOARM}"
> +export CGO_ENABLED = "1"
> +export GOROOT
> +export GOROOT_FINAL = "${libdir}/${TARGET_SYS}/go"
> +export GOBIN_FINAL
> +export GOPKG_FINAL = "${GOROOT_FINAL}/pkg/${GOOS}_${GOARCH}"
> +export GOSRC_FINAL = "${GOROOT_FINAL}/src"
> +export GO_GCFLAGS = "${TARGET_CFLAGS}"
> +export GO_LDFLAGS = "${TARGET_LDFLAGS}"
> +export CGO_CFLAGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_CFLAGS}"
> +export CGO_CPPFLAGS = "${TARGET_CPPFLAGS}"
> +export CGO_CXXFLAGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_CXXFLAGS}"
> +export CGO_LDFLAGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_LDFLAGS}"
> +
> +DEPENDS += "go-cross"
> +DEPENDS_class-native += "go-native"
> +
> +INHIBIT_PACKAGE_STRIP = "1"
> +
> +FILES_${PN}-staticdev += "${GOSRC_FINAL}/${GO_IMPORT}"
> +FILES_${PN}-staticdev += "${GOPKG_FINAL}/${GO_IMPORT}*"
> +
> +GO_INSTALL ?= "${GO_IMPORT}/..."
> +
> +do_go_compile() {
> +	GOPATH=${S}:${STAGING_LIBDIR}/${TARGET_SYS}/go go env
> +	if test -n "${GO_INSTALL}" ; then
> +		GOPATH=${S}:${STAGING_LIBDIR}/${TARGET_SYS}/go go install -v ${GO_INSTALL}
> +	fi
> +}
> +
> +do_go_install() {
> +	rm -rf ${WORKDIR}/staging
> +	install -d ${WORKDIR}/staging${GOROOT_FINAL} ${D}${GOROOT_FINAL}
> +	tar -C ${S} -cf - . | tar -C ${WORKDIR}/staging${GOROOT_FINAL} -xpvf -
> +
> +	find ${WORKDIR}/staging${GOROOT_FINAL} \( \
> +		-name \*.indirectionsymlink -o \
> +		-name .git\* -o                \
> +		-name .hg -o                   \
> +		-name .svn -o                  \
> +		-name .pc\* -o                 \
> +		-name patches\*                \
> +		\) -print0 | \
> +	xargs -r0 rm -rf
> +
> +	tar -C ${WORKDIR}/staging${GOROOT_FINAL} -cf - . | \
> +	tar -C ${D}${GOROOT_FINAL} -xpvf -
> +
> +	chown -R root:root "${D}${GOROOT_FINAL}"
> +
> +	if test -e "${D}${GOBIN_FINAL}" ; then
> +		install -d -m 0755 "${D}${bindir}"
> +		find "${D}${GOBIN_FINAL}" ! -type d -print0 | xargs -r0 mv --target-directory="${D}${bindir}"
> +		rmdir -p "${D}${GOBIN_FINAL}" || true
> +	fi
> +}
> +
> +do_compile() {
> +	do_go_compile
> +}
> +
> +do_install() {
> +	do_go_install
> +}
> diff --git a/meta/classes/goarch.bbclass b/meta/classes/goarch.bbclass
> new file mode 100644
> index 0000000..bb330b1
> --- /dev/null
> +++ b/meta/classes/goarch.bbclass
> @@ -0,0 +1,40 @@
> +BUILD_GOOS = "${@go_map_os(d.getVar('BUILD_OS', True), d)}"
> +BUILD_GOARCH = "${@go_map_arch(d.getVar('BUILD_ARCH', True), d)}"
> +BUILD_GOTUPLE = "${BUILD_GOOS}_${BUILD_GOARCH}"
> +HOST_GOOS = "${@go_map_os(d.getVar('HOST_OS', True), d)}"
> +HOST_GOARCH = "${@go_map_arch(d.getVar('HOST_ARCH', True), d)}"
> +HOST_GOARM = "${@go_map_arm(d.getVar('HOST_ARCH', True), d.getVar('TUNE_FEATURES', True), d)}"
> +HOST_GOTUPLE = "${HOST_GOOS}_${HOST_GOARCH}"
> +TARGET_GOOS = "${@go_map_os(d.getVar('TARGET_OS', True), d)}"
> +TARGET_GOARCH = "${@go_map_arch(d.getVar('TARGET_ARCH', True), d)}"
> +TARGET_GOARM = "${@go_map_arm(d.getVar('TARGET_ARCH', True), d.getVar('TUNE_FEATURES', True), d)}"
> +TARGET_GOTUPLE = "${TARGET_GOOS}_${TARGET_GOARCH}"
> +GO_BUILD_BINDIR = "${@['bin/${HOST_GOTUPLE}','bin'][d.getVar('BUILD_GOTUPLE',True) == d.getVar('HOST_GOTUPLE',True)]}"
> +
> +def go_map_arch(a, d):
> +    import re
> +    if re.match('i.86', a):
> +        return '386'
> +    elif a == 'x86_64':
> +        return 'amd64'
> +    elif re.match('arm.*', a):
> +        return 'arm'
> +    elif re.match('aarch64.*', a):
> +        return 'arm64'
> +    elif re.match('p(pc|owerpc)(|64)', a):
> +        return 'powerpc'
> +    else:
> +        bb.error("cannot map '%s' to a Go architecture" % a)
> +
> +def go_map_arm(a, f, d):
> +    import re
> +    if re.match('arm.*', a) and re.match('arm.*7.*', f):
> +        return '7'
> +    return ''
> +
> +def go_map_os(o, d):
> +    if o.startswith('linux'):
> +        return 'linux'
> +    return o
> +
> +
> diff --git a/meta/recipes-devtools/go/go-1.4.inc b/meta/recipes-devtools/go/go-1.4.inc
> new file mode 100644
> index 0000000..a65459f
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.4.inc
> @@ -0,0 +1,15 @@
> +require go-common.inc
> +
> +PV = "1.4.3"
> +GO_BASEVERSION = "1.4"
> +FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
> +
> +SRC_URI += "\
> +        file://016-armhf-elf-header.patch \
> +        file://go-cross-backport-cmd-link-support-new-386-amd64-rel.patch \
> +        file://syslog.patch \
> +"
> +
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=591778525c869cdde0ab5a1bf283cd81"
> +SRC_URI[md5sum] = "dfb604511115dd402a77a553a5923a04"
> +SRC_URI[sha256sum] = "9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959"
> diff --git a/meta/recipes-devtools/go/go-1.4/016-armhf-elf-header.patch b/meta/recipes-devtools/go/go-1.4/016-armhf-elf-header.patch
> new file mode 100644
> index 0000000..e6e414e
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.4/016-armhf-elf-header.patch
> @@ -0,0 +1,24 @@
> +Description: Use correct ELF header for armhf binaries.
> +Author: Adam Conrad <adconrad@ubuntu.com>
> +Last-Update: 2013-07-08
> +
> +Upstream-Status: Pending
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +
> +Index: go/src/cmd/ld/elf.c
> +===================================================================
> +--- go.orig/src/cmd/ld/elf.c	2015-02-20 10:49:58.763451586 -0800
> ++++ go/src/cmd/ld/elf.c	2015-02-20 10:49:27.895478521 -0800
> +@@ -57,7 +57,11 @@
> + 	case '5':
> + 		// we use EABI on both linux/arm and freebsd/arm.
> + 		if(HEADTYPE == Hlinux || HEADTYPE == Hfreebsd)
> +-			hdr.flags = 0x5000002; // has entry point, Version5 EABI
> ++#ifdef __ARM_PCS_VFP
> ++			hdr.flags = 0x5000402; // has entry point, Version5 EABI, hard-float ABI
> ++#else
> ++			hdr.flags = 0x5000202; // has entry point, Version5 EABI, soft-float ABI
> ++#endif
> + 		// fallthrough
> + 	default:
> + 		hdr.phoff = ELF32HDRSIZE;	/* Must be be ELF32HDRSIZE: first PHdr must follow ELF header */
> diff --git a/meta/recipes-devtools/go/go-1.4/go-cross-backport-cmd-link-support-new-386-amd64-rel.patch b/meta/recipes-devtools/go/go-1.4/go-cross-backport-cmd-link-support-new-386-amd64-rel.patch
> new file mode 100644
> index 0000000..95ca9d3
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.4/go-cross-backport-cmd-link-support-new-386-amd64-rel.patch
> @@ -0,0 +1,225 @@
> +From d6eefad445831c161fca130f9bdf7b3848aac23c Mon Sep 17 00:00:00 2001
> +From: Paul Gortmaker <paul.gortmaker@windriver.com>
> +Date: Tue, 29 Mar 2016 21:14:33 -0400
> +Subject: [PATCH] go-cross: backport "cmd/link: support new 386/amd64
> + relocations"
> +
> +Newer binutils won't support building older go-1.4.3 as per:
> +
> +https://github.com/golang/go/issues/13114
> +
> +Upstream commit 914db9f060b1fd3eb1f74d48f3bd46a73d4ae9c7 (see subj)
> +was identified as the fix and nominated for 1.4.4 but that release
> +never happened.  The paths in 1.4.3 aren't the same as go1.6beta1~662
> +where this commit appeared, but the NetBSD folks indicated what a
> +1.4.3 backport would look like here: https://gnats.netbsd.org/50777
> +
> +This is based on that, but without the BSD wrapper infrastructure
> +layer that makes things look like patches of patches.
> +
> +Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> +
> +Upstream-Status: Backport [ Partial ]
> +
> +diff --git a/src/cmd/6l/asm.c b/src/cmd/6l/asm.c
> +index 18b5aa311981..2e9d339aef87 100644
> +--- a/src/cmd/6l/asm.c
> ++++ b/src/cmd/6l/asm.c
> +@@ -118,6 +118,8 @@ adddynrel(LSym *s, Reloc *r)
> + 		return;
> + 	
> + 	case 256 + R_X86_64_GOTPCREL:
> ++	case 256 + R_X86_64_GOTPCRELX:
> ++	case 256 + R_X86_64_REX_GOTPCRELX:
> + 		if(targ->type != SDYNIMPORT) {
> + 			// have symbol
> + 			if(r->off >= 2 && s->p[r->off-2] == 0x8b) {
> +diff --git a/src/cmd/8l/asm.c b/src/cmd/8l/asm.c
> +index 98c04240374f..cff29488e8af 100644
> +--- a/src/cmd/8l/asm.c
> ++++ b/src/cmd/8l/asm.c
> +@@ -115,6 +115,7 @@ adddynrel(LSym *s, Reloc *r)
> + 		return;		
> + 	
> + 	case 256 + R_386_GOT32:
> ++	case 256 + R_386_GOT32X:
> + 		if(targ->type != SDYNIMPORT) {
> + 			// have symbol
> + 			if(r->off >= 2 && s->p[r->off-2] == 0x8b) {
> +diff --git a/src/cmd/ld/elf.h b/src/cmd/ld/elf.h
> +index e84d996f2596..bbf2cfaa3cc0 100644
> +--- a/src/cmd/ld/elf.h
> ++++ b/src/cmd/ld/elf.h
> +@@ -478,32 +478,47 @@ typedef struct {
> +  * Relocation types.
> +  */
> +
> +-#define	R_X86_64_NONE	0	/* No relocation. */
> +-#define	R_X86_64_64	1	/* Add 64 bit symbol value. */
> +-#define	R_X86_64_PC32	2	/* PC-relative 32 bit signed sym value. */
> +-#define	R_X86_64_GOT32	3	/* PC-relative 32 bit GOT offset. */
> +-#define	R_X86_64_PLT32	4	/* PC-relative 32 bit PLT offset. */
> +-#define	R_X86_64_COPY	5	/* Copy data from shared object. */
> +-#define	R_X86_64_GLOB_DAT 6	/* Set GOT entry to data address. */
> +-#define	R_X86_64_JMP_SLOT 7	/* Set GOT entry to code address. */
> +-#define	R_X86_64_RELATIVE 8	/* Add load address of shared object. */
> +-#define	R_X86_64_GOTPCREL 9	/* Add 32 bit signed pcrel offset to GOT. */
> +-#define	R_X86_64_32	10	/* Add 32 bit zero extended symbol value */
> +-#define	R_X86_64_32S	11	/* Add 32 bit sign extended symbol value */
> +-#define	R_X86_64_16	12	/* Add 16 bit zero extended symbol value */
> +-#define	R_X86_64_PC16	13	/* Add 16 bit signed extended pc relative symbol value */
> +-#define	R_X86_64_8	14	/* Add 8 bit zero extended symbol value */
> +-#define	R_X86_64_PC8	15	/* Add 8 bit signed extended pc relative symbol value */
> +-#define	R_X86_64_DTPMOD64 16	/* ID of module containing symbol */
> +-#define	R_X86_64_DTPOFF64 17	/* Offset in TLS block */
> +-#define	R_X86_64_TPOFF64 18	/* Offset in static TLS block */
> +-#define	R_X86_64_TLSGD	19	/* PC relative offset to GD GOT entry */
> +-#define	R_X86_64_TLSLD	20	/* PC relative offset to LD GOT entry */
> +-#define	R_X86_64_DTPOFF32 21	/* Offset in TLS block */
> +-#define	R_X86_64_GOTTPOFF 22	/* PC relative offset to IE GOT entry */
> +-#define	R_X86_64_TPOFF32 23	/* Offset in static TLS block */
> +-
> +-#define	R_X86_64_COUNT	24	/* Count of defined relocation types. */
> ++#define	R_X86_64_NONE           0
> ++#define	R_X86_64_64             1
> ++#define	R_X86_64_PC32           2
> ++#define	R_X86_64_GOT32          3
> ++#define	R_X86_64_PLT32          4
> ++#define	R_X86_64_COPY           5
> ++#define	R_X86_64_GLOB_DAT       6
> ++#define	R_X86_64_JMP_SLOT       7
> ++#define	R_X86_64_RELATIVE       8
> ++#define	R_X86_64_GOTPCREL       9
> ++#define	R_X86_64_32             10
> ++#define	R_X86_64_32S            11
> ++#define	R_X86_64_16             12
> ++#define	R_X86_64_PC16           13
> ++#define	R_X86_64_8              14
> ++#define	R_X86_64_PC8            15
> ++#define	R_X86_64_DTPMOD64       16
> ++#define	R_X86_64_DTPOFF64       17
> ++#define	R_X86_64_TPOFF64        18
> ++#define	R_X86_64_TLSGD          19
> ++#define	R_X86_64_TLSLD          20
> ++#define	R_X86_64_DTPOFF32       21
> ++#define	R_X86_64_GOTTPOFF       22
> ++#define	R_X86_64_TPOFF32        23
> ++#define	R_X86_64_PC64           24
> ++#define	R_X86_64_GOTOFF64       25
> ++#define	R_X86_64_GOTPC32        26
> ++#define	R_X86_64_GOT64          27
> ++#define	R_X86_64_GOTPCREL64     28
> ++#define	R_X86_64_GOTPC64        29
> ++#define	R_X86_64_GOTPLT64       30
> ++#define	R_X86_64_PLTOFF64       31
> ++#define	R_X86_64_SIZE32         32
> ++#define	R_X86_64_SIZE64         33
> ++#define	R_X86_64_GOTPC32_TLSDEC 34
> ++#define	R_X86_64_TLSDESC_CALL   35
> ++#define	R_X86_64_TLSDESC        36
> ++#define	R_X86_64_IRELATIVE      37
> ++#define	R_X86_64_PC32_BND       40
> ++#define	R_X86_64_GOTPCRELX      41
> ++#define	R_X86_64_REX_GOTPCRELX  42
> +
> +
> + #define	R_ALPHA_NONE		0	/* No reloc */
> +@@ -581,39 +596,42 @@ typedef struct {
> + #define	R_ARM_COUNT		38	/* Count of defined relocation types. */
> +
> +
> +-#define	R_386_NONE	0	/* No relocation. */
> +-#define	R_386_32	1	/* Add symbol value. */
> +-#define	R_386_PC32	2	/* Add PC-relative symbol value. */
> +-#define	R_386_GOT32	3	/* Add PC-relative GOT offset. */
> +-#define	R_386_PLT32	4	/* Add PC-relative PLT offset. */
> +-#define	R_386_COPY	5	/* Copy data from shared object. */
> +-#define	R_386_GLOB_DAT	6	/* Set GOT entry to data address. */
> +-#define	R_386_JMP_SLOT	7	/* Set GOT entry to code address. */
> +-#define	R_386_RELATIVE	8	/* Add load address of shared object. */
> +-#define	R_386_GOTOFF	9	/* Add GOT-relative symbol address. */
> +-#define	R_386_GOTPC	10	/* Add PC-relative GOT table address. */
> +-#define	R_386_TLS_TPOFF	14	/* Negative offset in static TLS block */
> +-#define	R_386_TLS_IE	15	/* Absolute address of GOT for -ve static TLS */
> +-#define	R_386_TLS_GOTIE	16	/* GOT entry for negative static TLS block */
> +-#define	R_386_TLS_LE	17	/* Negative offset relative to static TLS */
> +-#define	R_386_TLS_GD	18	/* 32 bit offset to GOT (index,off) pair */
> +-#define	R_386_TLS_LDM	19	/* 32 bit offset to GOT (index,zero) pair */
> +-#define	R_386_TLS_GD_32	24	/* 32 bit offset to GOT (index,off) pair */
> +-#define	R_386_TLS_GD_PUSH 25	/* pushl instruction for Sun ABI GD sequence */
> +-#define	R_386_TLS_GD_CALL 26	/* call instruction for Sun ABI GD sequence */
> +-#define	R_386_TLS_GD_POP 27	/* popl instruction for Sun ABI GD sequence */
> +-#define	R_386_TLS_LDM_32 28	/* 32 bit offset to GOT (index,zero) pair */
> +-#define	R_386_TLS_LDM_PUSH 29	/* pushl instruction for Sun ABI LD sequence */
> +-#define	R_386_TLS_LDM_CALL 30	/* call instruction for Sun ABI LD sequence */
> +-#define	R_386_TLS_LDM_POP 31	/* popl instruction for Sun ABI LD sequence */
> +-#define	R_386_TLS_LDO_32 32	/* 32 bit offset from start of TLS block */
> +-#define	R_386_TLS_IE_32	33	/* 32 bit offset to GOT static TLS offset entry */
> +-#define	R_386_TLS_LE_32	34	/* 32 bit offset within static TLS block */
> +-#define	R_386_TLS_DTPMOD32 35	/* GOT entry containing TLS index */
> +-#define	R_386_TLS_DTPOFF32 36	/* GOT entry containing TLS offset */
> +-#define	R_386_TLS_TPOFF32 37	/* GOT entry of -ve static TLS offset */
> +-
> +-#define	R_386_COUNT	38	/* Count of defined relocation types. */
> ++#define	R_386_NONE          0
> ++#define	R_386_32            1
> ++#define	R_386_PC32          2
> ++#define	R_386_GOT32         3
> ++#define	R_386_PLT32         4
> ++#define	R_386_COPY          5
> ++#define	R_386_GLOB_DAT      6
> ++#define	R_386_JMP_SLOT      7
> ++#define	R_386_RELATIVE      8
> ++#define	R_386_GOTOFF        9
> ++#define	R_386_GOTPC         10
> ++#define	R_386_TLS_TPOFF     14
> ++#define	R_386_TLS_IE        15
> ++#define	R_386_TLS_GOTIE     16
> ++#define	R_386_TLS_LE        17
> ++#define	R_386_TLS_GD        18
> ++#define	R_386_TLS_LDM       19
> ++#define	R_386_TLS_GD_32     24
> ++#define	R_386_TLS_GD_PUSH   25
> ++#define	R_386_TLS_GD_CALL   26
> ++#define	R_386_TLS_GD_POP    27
> ++#define	R_386_TLS_LDM_32    28
> ++#define	R_386_TLS_LDM_PUSH  29
> ++#define	R_386_TLS_LDM_CALL  30
> ++#define	R_386_TLS_LDM_POP   31
> ++#define	R_386_TLS_LDO_32    32
> ++#define	R_386_TLS_IE_32     33
> ++#define	R_386_TLS_LE_32     34
> ++#define	R_386_TLS_DTPMOD32  35
> ++#define	R_386_TLS_DTPOFF32  36
> ++#define	R_386_TLS_TPOFF32   37
> ++#define	R_386_TLS_GOTDESC   39
> ++#define	R_386_TLS_DESC_CALL 40
> ++#define	R_386_TLS_DESC      41
> ++#define	R_386_IRELATIVE     42
> ++#define	R_386_GOT32X        43
> +
> + #define	R_PPC_NONE		0	/* No relocation. */
> + #define	R_PPC_ADDR32		1
> +diff --git a/src/cmd/ld/ldelf.c b/src/cmd/ld/ldelf.c
> +index dd5fa0d2a839..2e2fbd17377f 100644
> +--- a/src/cmd/ld/ldelf.c
> ++++ b/src/cmd/ld/ldelf.c
> +@@ -888,12 +888,15 @@ reltype(char *pn, int elftype, uchar *siz)
> + 	case R('6', R_X86_64_PC32):
> + 	case R('6', R_X86_64_PLT32):
> + 	case R('6', R_X86_64_GOTPCREL):
> ++	case R('6', R_X86_64_GOTPCRELX):
> ++	case R('6', R_X86_64_REX_GOTPCRELX):
> + 	case R('8', R_386_32):
> + 	case R('8', R_386_PC32):
> + 	case R('8', R_386_GOT32):
> + 	case R('8', R_386_PLT32):
> + 	case R('8', R_386_GOTOFF):
> + 	case R('8', R_386_GOTPC):
> ++	case R('8', R_386_GOT32X):
> + 		*siz = 4;
> + 		break;
> + 	case R('6', R_X86_64_64):
> +--
> +2.7.2
> +
> diff --git a/meta/recipes-devtools/go/go-1.4/syslog.patch b/meta/recipes-devtools/go/go-1.4/syslog.patch
> new file mode 100644
> index 0000000..29be06f
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.4/syslog.patch
> @@ -0,0 +1,62 @@
> +Add timeouts to logger
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +
> +diff -r -u go/src/log/syslog/syslog.go /home/achang/GOCOPY/go/src/log/syslog/syslog.go
> +--- go/src/log/syslog/syslog.go	2013-11-28 13:38:28.000000000 -0800
> ++++ /home/achang/GOCOPY/go/src/log/syslog/syslog.go	2014-10-03 11:44:37.710403200 -0700
> +@@ -33,6 +33,9 @@
> + const severityMask = 0x07
> + const facilityMask = 0xf8
> +
> ++var writeTimeout = 1 * time.Second
> ++var connectTimeout = 1 * time.Second
> ++
> + const (
> + 	// Severity.
> +
> +@@ -100,6 +103,7 @@
> + type serverConn interface {
> + 	writeString(p Priority, hostname, tag, s, nl string) error
> + 	close() error
> ++	setWriteDeadline(t time.Time) error
> + }
> +
> + type netConn struct {
> +@@ -273,7 +277,11 @@
> + 		nl = "\n"
> + 	}
> +
> +-	err := w.conn.writeString(p, w.hostname, w.tag, msg, nl)
> ++	err := w.conn.setWriteDeadline(time.Now().Add(writeTimeout))
> ++	if err != nil {
> ++		return 0, err
> ++	}
> ++	err = w.conn.writeString(p, w.hostname, w.tag, msg, nl)
> + 	if err != nil {
> + 		return 0, err
> + 	}
> +@@ -305,6 +313,10 @@
> + 	return n.conn.Close()
> + }
> +
> ++func (n *netConn) setWriteDeadline(t time.Time) error {
> ++	return n.conn.SetWriteDeadline(t)
> ++}
> ++
> + // NewLogger creates a log.Logger whose output is written to
> + // the system log service with the specified priority. The logFlag
> + // argument is the flag set passed through to log.New to create
> +diff -r -u go/src/log/syslog/syslog_unix.go /home/achang/GOCOPY/go/src/log/syslog/syslog_unix.go
> +--- go/src/log/syslog/syslog_unix.go	2013-11-28 13:38:28.000000000 -0800
> ++++ /home/achang/GOCOPY/go/src/log/syslog/syslog_unix.go	2014-10-03 11:44:39.010403175 -0700
> +@@ -19,7 +19,7 @@
> + 	logPaths := []string{"/dev/log", "/var/run/syslog"}
> + 	for _, network := range logTypes {
> + 		for _, path := range logPaths {
> +-			conn, err := net.Dial(network, path)
> ++			conn, err := net.DialTimeout(network, path, connectTimeout)
> + 			if err != nil {
> + 				continue
> + 			} else {
> diff --git a/meta/recipes-devtools/go/go-1.6.inc b/meta/recipes-devtools/go/go-1.6.inc
> new file mode 100644
> index 0000000..769c1d8
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.6.inc
> @@ -0,0 +1,19 @@
> +require go-common.inc
> +
> +PV = "1.6.3"
> +GO_BASEVERSION = "1.6"
> +FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
> +
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=591778525c869cdde0ab5a1bf283cd81"
> +
> +SRC_URI += "\
> +       file://armhf-elf-header.patch \
> +       file://syslog.patch \
> +       file://fix-target-cc-for-build.patch \
> +       file://fix-cc-handling.patch \
> +       file://split-host-and-target-build.patch \
> +       file://gotooldir.patch \
> +"
> +SRC_URI[md5sum] = "bf3fce6ccaadd310159c9e874220e2a2"
> +SRC_URI[sha256sum] = "6326aeed5f86cf18f16d6dc831405614f855e2d416a91fd3fdc334f772345b00"
> +
> diff --git a/meta/recipes-devtools/go/go-1.6/armhf-elf-header.patch b/meta/recipes-devtools/go/go-1.6/armhf-elf-header.patch
> new file mode 100644
> index 0000000..1e3a16b
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.6/armhf-elf-header.patch
> @@ -0,0 +1,23 @@
> +Encode arm EABI ( hard/soft ) calling convention in ELF header
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +Index: go/src/cmd/link/internal/ld/elf.go
> +===================================================================
> +--- go.orig/src/cmd/link/internal/ld/elf.go
> ++++ go/src/cmd/link/internal/ld/elf.go
> +@@ -827,7 +827,13 @@
> + 	// 32-bit architectures
> + 	case '5':
> + 		// we use EABI on both linux/arm and freebsd/arm.
> +-		if HEADTYPE == obj.Hlinux || HEADTYPE == obj.Hfreebsd {
> ++		if HEADTYPE == obj.Hlinux {
> ++			if Ctxt.Goarm == 7 {
> ++				ehdr.flags = 0x5000402 // has entry point, Version5 EABI, hard float
> ++			} else {
> ++				ehdr.flags = 0x5000202 // has entry point, Version5 EABI, soft float
> ++			}
> ++		} else if HEADTYPE == obj.Hfreebsd {
> + 			// We set a value here that makes no indication of which
> + 			// float ABI the object uses, because this is information
> + 			// used by the dynamic linker to compare executables and
> diff --git a/meta/recipes-devtools/go/go-1.6/fix-cc-handling.patch b/meta/recipes-devtools/go/go-1.6/fix-cc-handling.patch
> new file mode 100644
> index 0000000..983323a
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.6/fix-cc-handling.patch
> @@ -0,0 +1,50 @@
> +Accept CC with multiple words in its name
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +Index: go/src/cmd/go/build.go
> +===================================================================
> +--- go.orig/src/cmd/go/build.go	2015-07-29 14:48:40.323185807 -0700
> ++++ go/src/cmd/go/build.go	2015-07-30 07:37:40.529818586 -0700
> +@@ -2805,12 +2805,24 @@
> + 	return b.ccompilerCmd("CC", defaultCC, objdir)
> + }
> +
> ++// gccCmd returns a gcc command line prefix
> ++// defaultCC is defined in zdefaultcc.go, written by cmd/dist.
> ++func (b *builder) gccCmdForReal() []string {
> ++	return envList("CC", defaultCC)
> ++}
> ++
> + // gxxCmd returns a g++ command line prefix
> + // defaultCXX is defined in zdefaultcc.go, written by cmd/dist.
> + func (b *builder) gxxCmd(objdir string) []string {
> + 	return b.ccompilerCmd("CXX", defaultCXX, objdir)
> + }
> +
> ++// gxxCmd returns a g++ command line prefix
> ++// defaultCXX is defined in zdefaultcc.go, written by cmd/dist.
> ++func (b *builder) gxxCmdForReal() []string {
> ++	return envList("CXX", defaultCXX)
> ++}
> ++
> + // ccompilerCmd returns a command line prefix for the given environment
> + // variable and using the default command when the variable is empty.
> + func (b *builder) ccompilerCmd(envvar, defcmd, objdir string) []string {
> +Index: go/src/cmd/go/env.go
> +===================================================================
> +--- go.orig/src/cmd/go/env.go	2015-07-29 14:48:40.323185807 -0700
> ++++ go/src/cmd/go/env.go	2015-07-30 07:40:54.461655721 -0700
> +@@ -52,10 +52,9 @@
> +
> + 	if goos != "plan9" {
> + 		cmd := b.gccCmd(".")
> +-		env = append(env, envVar{"CC", cmd[0]})
> ++		env = append(env, envVar{"CC", strings.Join(b.gccCmdForReal(), " ")})
> + 		env = append(env, envVar{"GOGCCFLAGS", strings.Join(cmd[3:], " ")})
> +-		cmd = b.gxxCmd(".")
> +-		env = append(env, envVar{"CXX", cmd[0]})
> ++		env = append(env, envVar{"CXX", strings.Join(b.gxxCmdForReal(), " ")})
> + 	}
> +
> + 	if buildContext.CgoEnabled {
> diff --git a/meta/recipes-devtools/go/go-1.6/fix-target-cc-for-build.patch b/meta/recipes-devtools/go/go-1.6/fix-target-cc-for-build.patch
> new file mode 100644
> index 0000000..2f6156e
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.6/fix-target-cc-for-build.patch
> @@ -0,0 +1,17 @@
> +Put Quotes around CC_FOR_TARGET since it can be mutliple words e.g. in OE
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +Index: go/src/make.bash
> +===================================================================
> +--- go.orig/src/make.bash	2015-07-29 13:28:11.334031696 -0700
> ++++ go/src/make.bash	2015-07-29 13:36:55.814465630 -0700
> +@@ -158,7 +158,7 @@
> + fi
> +
> + echo "##### Building packages and commands for $GOOS/$GOARCH."
> +-CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
> ++CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
> + echo
> +
> + rm -f "$GOTOOLDIR"/go_bootstrap
> diff --git a/meta/recipes-devtools/go/go-1.6/gotooldir.patch b/meta/recipes-devtools/go/go-1.6/gotooldir.patch
> new file mode 100644
> index 0000000..9467025
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.6/gotooldir.patch
> @@ -0,0 +1,30 @@
> +Define tooldir in relation to GOTOOLDIR env var
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +Index: go/src/go/build/build.go
> +===================================================================
> +--- go.orig/src/go/build/build.go
> ++++ go/src/go/build/build.go
> +@@ -1388,7 +1388,7 @@ func init() {
> + }
> +
> + // ToolDir is the directory containing build tools.
> +-var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
> ++var ToolDir = envOr("GOTOOLDIR", filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH))
> +
> + // IsLocalImport reports whether the import path is
> + // a local import path, like ".", "..", "./foo", or "../foo".
> +Index: go/src/cmd/go/build.go
> +===================================================================
> +--- go.orig/src/cmd/go/build.go
> ++++ go/src/cmd/go/build.go
> +@@ -1312,7 +1312,7 @@ func (b *builder) build(a *action) (err
> + 		}
> +
> + 		cgoExe := tool("cgo")
> +-		if a.cgo != nil && a.cgo.target != "" {
> ++		if a.cgo != nil && a.cgo.target != "" && os.Getenv("GOTOOLDIR") == "" {
> + 			cgoExe = a.cgo.target
> + 		}
> + 		outGo, outObj, err := b.cgo(a.p, cgoExe, obj, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, cxxfiles, a.p.MFiles)
> diff --git a/meta/recipes-devtools/go/go-1.6/split-host-and-target-build.patch b/meta/recipes-devtools/go/go-1.6/split-host-and-target-build.patch
> new file mode 100644
> index 0000000..afbae02
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.6/split-host-and-target-build.patch
> @@ -0,0 +1,63 @@
> +Add new option --target-only to build target components
> +Separates the host and target pieces of build
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +Index: go/src/make.bash
> +===================================================================
> +--- go.orig/src/make.bash
> ++++ go/src/make.bash
> +@@ -143,12 +143,23 @@ if [ "$1" = "--no-clean" ]; then
> + 	buildall=""
> + 	shift
> + fi
> +-./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap
> +-# Delay move of dist tool to now, because bootstrap may clear tool directory.
> +-mv cmd/dist/dist "$GOTOOLDIR"/dist
> +-echo
> +
> +-if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then
> ++do_host_build="yes"
> ++do_target_build="yes"
> ++if [ "$1" = "--target-only" ]; then
> ++	do_host_build="no"
> ++	shift
> ++elif [ "$1" = "--host-only" ]; then
> ++	do_target_build="no"
> ++	shift
> ++fi
> ++
> ++if [ "$do_host_build" = "yes" ]; then
> ++	./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap
> ++	# Delay move of dist tool to now, because bootstrap may clear tool directory.
> ++	mv cmd/dist/dist "$GOTOOLDIR"/dist
> ++	echo
> ++
> + 	echo "##### Building packages and commands for host, $GOHOSTOS/$GOHOSTARCH."
> + 	# CC_FOR_TARGET is recorded as the default compiler for the go tool. When building for the host, however,
> + 	# use the host compiler, CC, from `cmd/dist/dist env` instead.
> +@@ -157,11 +168,20 @@ if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOH
> + 	echo
> + fi
> +
> +-echo "##### Building packages and commands for $GOOS/$GOARCH."
> +-CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
> +-echo
> ++if [ "$do_target_build" = "yes" ]; then
> ++    GO_INSTALL="${GO_TARGET_INSTALL:-std cmd}"
> ++    echo "##### Building packages and commands for $GOOS/$GOARCH."
> ++    if [ "$GOHOSTOS" = "$GOOS" -a "$GOHOSTARCH" = "$GOARCH" -a "$do_host_build" = "yes" ]; then
> ++	rm -rf ./host-tools
> ++	mkdir ./host-tools
> ++	mv "$GOTOOLDIR"/* ./host-tools
> ++	GOTOOLDIR="$PWD/host-tools"
> ++    fi
> ++    GOTOOLDIR="$GOTOOLDIR" CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v ${GO_INSTALL}
> ++    echo
> +
> +-rm -f "$GOTOOLDIR"/go_bootstrap
> ++    rm -f "$GOTOOLDIR"/go_bootstrap
> ++fi
> +
> + if [ "$1" != "--no-banner" ]; then
> + 	"$GOTOOLDIR"/dist banner
> diff --git a/meta/recipes-devtools/go/go-1.6/syslog.patch b/meta/recipes-devtools/go/go-1.6/syslog.patch
> new file mode 100644
> index 0000000..29be06f
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.6/syslog.patch
> @@ -0,0 +1,62 @@
> +Add timeouts to logger
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +
> +diff -r -u go/src/log/syslog/syslog.go /home/achang/GOCOPY/go/src/log/syslog/syslog.go
> +--- go/src/log/syslog/syslog.go	2013-11-28 13:38:28.000000000 -0800
> ++++ /home/achang/GOCOPY/go/src/log/syslog/syslog.go	2014-10-03 11:44:37.710403200 -0700
> +@@ -33,6 +33,9 @@
> + const severityMask = 0x07
> + const facilityMask = 0xf8
> +
> ++var writeTimeout = 1 * time.Second
> ++var connectTimeout = 1 * time.Second
> ++
> + const (
> + 	// Severity.
> +
> +@@ -100,6 +103,7 @@
> + type serverConn interface {
> + 	writeString(p Priority, hostname, tag, s, nl string) error
> + 	close() error
> ++	setWriteDeadline(t time.Time) error
> + }
> +
> + type netConn struct {
> +@@ -273,7 +277,11 @@
> + 		nl = "\n"
> + 	}
> +
> +-	err := w.conn.writeString(p, w.hostname, w.tag, msg, nl)
> ++	err := w.conn.setWriteDeadline(time.Now().Add(writeTimeout))
> ++	if err != nil {
> ++		return 0, err
> ++	}
> ++	err = w.conn.writeString(p, w.hostname, w.tag, msg, nl)
> + 	if err != nil {
> + 		return 0, err
> + 	}
> +@@ -305,6 +313,10 @@
> + 	return n.conn.Close()
> + }
> +
> ++func (n *netConn) setWriteDeadline(t time.Time) error {
> ++	return n.conn.SetWriteDeadline(t)
> ++}
> ++
> + // NewLogger creates a log.Logger whose output is written to
> + // the system log service with the specified priority. The logFlag
> + // argument is the flag set passed through to log.New to create
> +diff -r -u go/src/log/syslog/syslog_unix.go /home/achang/GOCOPY/go/src/log/syslog/syslog_unix.go
> +--- go/src/log/syslog/syslog_unix.go	2013-11-28 13:38:28.000000000 -0800
> ++++ /home/achang/GOCOPY/go/src/log/syslog/syslog_unix.go	2014-10-03 11:44:39.010403175 -0700
> +@@ -19,7 +19,7 @@
> + 	logPaths := []string{"/dev/log", "/var/run/syslog"}
> + 	for _, network := range logTypes {
> + 		for _, path := range logPaths {
> +-			conn, err := net.Dial(network, path)
> ++			conn, err := net.DialTimeout(network, path, connectTimeout)
> + 			if err != nil {
> + 				continue
> + 			} else {
> diff --git a/meta/recipes-devtools/go/go-1.7.inc b/meta/recipes-devtools/go/go-1.7.inc
> new file mode 100644
> index 0000000..1f73715
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.7.inc
> @@ -0,0 +1,18 @@
> +require go-common.inc
> +
> +PV = "1.7.3"
> +GO_BASEVERSION = "1.7"
> +FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
> +
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
> +
> +SRC_URI += "\
> +       file://armhf-elf-header.patch \
> +       file://syslog.patch \
> +       file://fix-target-cc-for-build.patch \
> +       file://fix-cc-handling.patch \
> +       file://split-host-and-target-build.patch \
> +       file://gotooldir.patch \
> +"
> +SRC_URI[md5sum] = "83d1b7bd4281479ab7d153e5152c9fc9"
> +SRC_URI[sha256sum] = "79430a0027a09b0b3ad57e214c4c1acfdd7af290961dd08d322818895af1ef44"
> diff --git a/meta/recipes-devtools/go/go-1.7/armhf-elf-header.patch b/meta/recipes-devtools/go/go-1.7/armhf-elf-header.patch
> new file mode 100644
> index 0000000..1e3a16b
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.7/armhf-elf-header.patch
> @@ -0,0 +1,23 @@
> +Encode arm EABI ( hard/soft ) calling convention in ELF header
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +Index: go/src/cmd/link/internal/ld/elf.go
> +===================================================================
> +--- go.orig/src/cmd/link/internal/ld/elf.go
> ++++ go/src/cmd/link/internal/ld/elf.go
> +@@ -827,7 +827,13 @@
> + 	// 32-bit architectures
> + 	case '5':
> + 		// we use EABI on both linux/arm and freebsd/arm.
> +-		if HEADTYPE == obj.Hlinux || HEADTYPE == obj.Hfreebsd {
> ++		if HEADTYPE == obj.Hlinux {
> ++			if Ctxt.Goarm == 7 {
> ++				ehdr.flags = 0x5000402 // has entry point, Version5 EABI, hard float
> ++			} else {
> ++				ehdr.flags = 0x5000202 // has entry point, Version5 EABI, soft float
> ++			}
> ++		} else if HEADTYPE == obj.Hfreebsd {
> + 			// We set a value here that makes no indication of which
> + 			// float ABI the object uses, because this is information
> + 			// used by the dynamic linker to compare executables and
> diff --git a/meta/recipes-devtools/go/go-1.7/fix-cc-handling.patch b/meta/recipes-devtools/go/go-1.7/fix-cc-handling.patch
> new file mode 100644
> index 0000000..a67caf4
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.7/fix-cc-handling.patch
> @@ -0,0 +1,50 @@
> +Accept CC with multiple words in its name
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +Index: go/src/cmd/go/build.go
> +===================================================================
> +--- go.orig/src/cmd/go/build.go
> ++++ go/src/cmd/go/build.go
> +@@ -2991,12 +2991,24 @@ func (b *builder) gccCmd(objdir string)
> + 	return b.ccompilerCmd("CC", defaultCC, objdir)
> + }
> +
> ++// gccCmd returns a gcc command line prefix
> ++// defaultCC is defined in zdefaultcc.go, written by cmd/dist.
> ++func (b *builder) gccCmdForReal() []string {
> ++	return envList("CC", defaultCC)
> ++}
> ++
> + // gxxCmd returns a g++ command line prefix
> + // defaultCXX is defined in zdefaultcc.go, written by cmd/dist.
> + func (b *builder) gxxCmd(objdir string) []string {
> + 	return b.ccompilerCmd("CXX", defaultCXX, objdir)
> + }
> +
> ++// gxxCmd returns a g++ command line prefix
> ++// defaultCXX is defined in zdefaultcc.go, written by cmd/dist.
> ++func (b *builder) gxxCmdForReal() []string {
> ++	return envList("CXX", defaultCXX)
> ++}
> ++
> + // gfortranCmd returns a gfortran command line prefix.
> + func (b *builder) gfortranCmd(objdir string) []string {
> + 	return b.ccompilerCmd("FC", "gfortran", objdir)
> +Index: go/src/cmd/go/env.go
> +===================================================================
> +--- go.orig/src/cmd/go/env.go
> ++++ go/src/cmd/go/env.go
> +@@ -51,10 +51,9 @@ func mkEnv() []envVar {
> +
> + 	if goos != "plan9" {
> + 		cmd := b.gccCmd(".")
> +-		env = append(env, envVar{"CC", cmd[0]})
> ++		env = append(env, envVar{"CC", strings.Join(b.gccCmdForReal(), " ")})
> + 		env = append(env, envVar{"GOGCCFLAGS", strings.Join(cmd[3:], " ")})
> +-		cmd = b.gxxCmd(".")
> +-		env = append(env, envVar{"CXX", cmd[0]})
> ++		env = append(env, envVar{"CXX", strings.Join(b.gxxCmdForReal(), " ")})
> + 	}
> +
> + 	if buildContext.CgoEnabled {
> diff --git a/meta/recipes-devtools/go/go-1.7/fix-target-cc-for-build.patch b/meta/recipes-devtools/go/go-1.7/fix-target-cc-for-build.patch
> new file mode 100644
> index 0000000..2f6156e
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.7/fix-target-cc-for-build.patch
> @@ -0,0 +1,17 @@
> +Put Quotes around CC_FOR_TARGET since it can be mutliple words e.g. in OE
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +Index: go/src/make.bash
> +===================================================================
> +--- go.orig/src/make.bash	2015-07-29 13:28:11.334031696 -0700
> ++++ go/src/make.bash	2015-07-29 13:36:55.814465630 -0700
> +@@ -158,7 +158,7 @@
> + fi
> +
> + echo "##### Building packages and commands for $GOOS/$GOARCH."
> +-CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
> ++CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
> + echo
> +
> + rm -f "$GOTOOLDIR"/go_bootstrap
> diff --git a/meta/recipes-devtools/go/go-1.7/gotooldir.patch b/meta/recipes-devtools/go/go-1.7/gotooldir.patch
> new file mode 100644
> index 0000000..9467025
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.7/gotooldir.patch
> @@ -0,0 +1,30 @@
> +Define tooldir in relation to GOTOOLDIR env var
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +Index: go/src/go/build/build.go
> +===================================================================
> +--- go.orig/src/go/build/build.go
> ++++ go/src/go/build/build.go
> +@@ -1388,7 +1388,7 @@ func init() {
> + }
> +
> + // ToolDir is the directory containing build tools.
> +-var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
> ++var ToolDir = envOr("GOTOOLDIR", filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH))
> +
> + // IsLocalImport reports whether the import path is
> + // a local import path, like ".", "..", "./foo", or "../foo".
> +Index: go/src/cmd/go/build.go
> +===================================================================
> +--- go.orig/src/cmd/go/build.go
> ++++ go/src/cmd/go/build.go
> +@@ -1312,7 +1312,7 @@ func (b *builder) build(a *action) (err
> + 		}
> +
> + 		cgoExe := tool("cgo")
> +-		if a.cgo != nil && a.cgo.target != "" {
> ++		if a.cgo != nil && a.cgo.target != "" && os.Getenv("GOTOOLDIR") == "" {
> + 			cgoExe = a.cgo.target
> + 		}
> + 		outGo, outObj, err := b.cgo(a.p, cgoExe, obj, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, cxxfiles, a.p.MFiles)
> diff --git a/meta/recipes-devtools/go/go-1.7/split-host-and-target-build.patch b/meta/recipes-devtools/go/go-1.7/split-host-and-target-build.patch
> new file mode 100644
> index 0000000..b0dd95b
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.7/split-host-and-target-build.patch
> @@ -0,0 +1,62 @@
> +Add new option --target-only to build target components
> +Separates the host and target pieces of build
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +Index: go/src/make.bash
> +===================================================================
> +--- go.orig/src/make.bash
> ++++ go/src/make.bash
> +@@ -154,13 +154,22 @@ if [ "$1" = "--no-clean" ]; then
> + 	buildall=""
> + 	shift
> + fi
> +-./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap
> ++do_host_build="yes"
> ++do_target_build="yes"
> ++if [ "$1" = "--target-only" ]; then
> ++	do_host_build="no"
> ++	shift
> ++elif [ "$1" = "--host-only" ]; then
> ++	do_target_build="no"
> ++	shift
> ++fi
> +
> +-# Delay move of dist tool to now, because bootstrap may clear tool directory.
> +-mv cmd/dist/dist "$GOTOOLDIR"/dist
> +-echo
> ++if [ "$do_host_build" = "yes" ]; then
> ++	./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap
> ++	# Delay move of dist tool to now, because bootstrap may clear tool directory.
> ++	mv cmd/dist/dist "$GOTOOLDIR"/dist
> ++	echo
> +
> +-if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then
> + 	echo "##### Building packages and commands for host, $GOHOSTOS/$GOHOSTARCH."
> + 	# CC_FOR_TARGET is recorded as the default compiler for the go tool. When building for the host, however,
> + 	# use the host compiler, CC, from `cmd/dist/dist env` instead.
> +@@ -169,11 +178,20 @@ if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOH
> + 	echo
> + fi
> +
> +-echo "##### Building packages and commands for $GOOS/$GOARCH."
> +-CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
> +-echo
> ++if [ "$do_target_build" = "yes" ]; then
> ++    GO_INSTALL="${GO_TARGET_INSTALL:-std cmd}"
> ++    echo "##### Building packages and commands for $GOOS/$GOARCH."
> ++    if [ "$GOHOSTOS" = "$GOOS" -a "$GOHOSTARCH" = "$GOARCH" -a "$do_host_build" = "yes" ]; then
> ++	rm -rf ./host-tools
> ++	mkdir ./host-tools
> ++	mv "$GOTOOLDIR"/* ./host-tools
> ++	GOTOOLDIR="$PWD/host-tools"
> ++    fi
> ++    GOTOOLDIR="$GOTOOLDIR" CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v ${GO_INSTALL}
> ++    echo
> +
> +-rm -f "$GOTOOLDIR"/go_bootstrap
> ++    rm -f "$GOTOOLDIR"/go_bootstrap
> ++fi
> +
> + if [ "$1" != "--no-banner" ]; then
> + 	"$GOTOOLDIR"/dist banner
> diff --git a/meta/recipes-devtools/go/go-1.7/syslog.patch b/meta/recipes-devtools/go/go-1.7/syslog.patch
> new file mode 100644
> index 0000000..29be06f
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-1.7/syslog.patch
> @@ -0,0 +1,62 @@
> +Add timeouts to logger
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +
> +diff -r -u go/src/log/syslog/syslog.go /home/achang/GOCOPY/go/src/log/syslog/syslog.go
> +--- go/src/log/syslog/syslog.go	2013-11-28 13:38:28.000000000 -0800
> ++++ /home/achang/GOCOPY/go/src/log/syslog/syslog.go	2014-10-03 11:44:37.710403200 -0700
> +@@ -33,6 +33,9 @@
> + const severityMask = 0x07
> + const facilityMask = 0xf8
> +
> ++var writeTimeout = 1 * time.Second
> ++var connectTimeout = 1 * time.Second
> ++
> + const (
> + 	// Severity.
> +
> +@@ -100,6 +103,7 @@
> + type serverConn interface {
> + 	writeString(p Priority, hostname, tag, s, nl string) error
> + 	close() error
> ++	setWriteDeadline(t time.Time) error
> + }
> +
> + type netConn struct {
> +@@ -273,7 +277,11 @@
> + 		nl = "\n"
> + 	}
> +
> +-	err := w.conn.writeString(p, w.hostname, w.tag, msg, nl)
> ++	err := w.conn.setWriteDeadline(time.Now().Add(writeTimeout))
> ++	if err != nil {
> ++		return 0, err
> ++	}
> ++	err = w.conn.writeString(p, w.hostname, w.tag, msg, nl)
> + 	if err != nil {
> + 		return 0, err
> + 	}
> +@@ -305,6 +313,10 @@
> + 	return n.conn.Close()
> + }
> +
> ++func (n *netConn) setWriteDeadline(t time.Time) error {
> ++	return n.conn.SetWriteDeadline(t)
> ++}
> ++
> + // NewLogger creates a log.Logger whose output is written to
> + // the system log service with the specified priority. The logFlag
> + // argument is the flag set passed through to log.New to create
> +diff -r -u go/src/log/syslog/syslog_unix.go /home/achang/GOCOPY/go/src/log/syslog/syslog_unix.go
> +--- go/src/log/syslog/syslog_unix.go	2013-11-28 13:38:28.000000000 -0800
> ++++ /home/achang/GOCOPY/go/src/log/syslog/syslog_unix.go	2014-10-03 11:44:39.010403175 -0700
> +@@ -19,7 +19,7 @@
> + 	logPaths := []string{"/dev/log", "/var/run/syslog"}
> + 	for _, network := range logTypes {
> + 		for _, path := range logPaths {
> +-			conn, err := net.Dial(network, path)
> ++			conn, err := net.DialTimeout(network, path, connectTimeout)
> + 			if err != nil {
> + 				continue
> + 			} else {
> diff --git a/meta/recipes-devtools/go/go-common.inc b/meta/recipes-devtools/go/go-common.inc
> new file mode 100644
> index 0000000..8897cb1
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-common.inc
> @@ -0,0 +1,21 @@
> +SUMMARY = "Go programming language compiler"
> +DESCRIPTION = " The Go programming language is an open source project to make \
> + programmers more productive. Go is expressive, concise, clean, and\
> + efficient. Its concurrency mechanisms make it easy to write programs\
> + that get the most out of multicore and networked machines, while its\
> + novel type system enables flexible and modular program construction.\
> + Go compiles quickly to machine code yet has the convenience of\
> + garbage collection and the power of run-time reflection. It's a\
> + fast, statically typed, compiled language that feels like a\
> + dynamically typed, interpreted language."
> +
> +HOMEPAGE = " http://golang.org/"
> +LICENSE = "BSD-3-Clause"
> +
> +inherit goarch
> +
> +SRC_URI = "http://golang.org/dl/go${PV}.src.tar.gz"
> +S = "${WORKDIR}/go"
> +B = "${S}"
> +
> +INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
> diff --git a/meta/recipes-devtools/go/go-native.inc b/meta/recipes-devtools/go/go-native.inc
> new file mode 100644
> index 0000000..cb2dd2a
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-native.inc
> @@ -0,0 +1,54 @@
> +inherit native
> +
> +export GOOS = "${BUILD_GOOS}"
> +export GOARCH = "${BUILD_GOARCH}"
> +export GOROOT_FINAL = "${STAGING_LIBDIR_NATIVE}/go"
> +export CGO_ENABLED = "1"
> +
> +do_configure[noexec] = "1"
> +
> +do_compile() {
> +    export GOBIN="${B}/bin"
> +    rm -rf ${GOBIN}
> +    mkdir ${GOBIN}
> +
> +    export TMPDIR=${WORKDIR}/build-tmp
> +    mkdir -p ${WORKDIR}/build-tmp
> +
> +    cd src
> +    CGO_ENABLED=0 ./make.bash --host-only
> +}
> +
> +
> +make_wrapper() {
> +    rm -f ${D}${bindir}/$2
> +    cat <<END >${D}${bindir}/$2
> +#!/bin/bash
> +here=\`dirname \$0\`
> +export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}"
> +\$here/../lib/go/bin/$1 "\$@"
> +END
> +    chmod +x ${D}${bindir}/$2
> +}
> +
> +do_install() {
> +    install -d ${D}${libdir}/go
> +    cp -a ${B}/pkg ${D}${libdir}/go/
> +    install -d ${D}${libdir}/go/src
> +    (cd ${S}/src; for d in *; do \
> +        [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \
> +    done)
> +    install -d ${D}${bindir} ${D}${libdir}/go/bin
> +    for f in ${B}/bin/*
> +    do
> +        base=`basename $f`
> +        install -m755 $f ${D}${libdir}/go/bin
> +        make_wrapper $base $base
> +    done
> +}
> +
> +do_package[noexec] = "1"
> +do_packagedata[noexec] = "1"
> +do_package_write_ipk[noexec] = "1"
> +do_package_write_deb[noexec] = "1"
> +do_package_write_rpm[noexec] = "1"
> diff --git a/meta/recipes-devtools/go/go-native_1.4.bb b/meta/recipes-devtools/go/go-native_1.4.bb
> new file mode 100644
> index 0000000..bbf3c0d
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go-native_1.4.bb
> @@ -0,0 +1,2 @@
> +require ${PN}.inc
> +require go-${PV}.inc
> diff --git a/meta/recipes-devtools/go/go.inc b/meta/recipes-devtools/go/go.inc
> new file mode 100644
> index 0000000..732ffa4
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go.inc
> @@ -0,0 +1,74 @@
> +inherit goarch
> +# libgcc is required for the target specific libraries to build properly
> +DEPENDS += " go-native libgcc"
> +# Prevent runstrip from running because you get errors when the host arch != target arch
> +INHIBIT_PACKAGE_STRIP = "1"
> +INHIBIT_SYSROOT_STRIP = "1"
> +
> +export GOHOSTOS = "${BUILD_GOOS}"
> +export GOHOSTARCH = "${BUILD_GOARCH}"
> +export GOOS = "${TARGET_GOOS}"
> +export GOARCH = "${TARGET_GOARCH}"
> +export GOARM = "${TARGET_GOARM}"
> +export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go"
> +export GOROOT_FINAL = "${libdir}/go"
> +export CGO_ENABLED = "1"
> +export CC_FOR_TARGET="${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
> +export CXX_FOR_TARGET="${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
> +
> +do_configure[noexec] = "1"
> +
> +do_compile() {
> +    export GOBIN="${B}/bin"
> +    export CC="${@d.getVar('BUILD_CC', True).strip()}"
> +    rm -rf ${GOBIN} ${B}/pkg
> +    mkdir ${GOBIN}
> +
> +    export TMPDIR=${WORKDIR}/build-tmp
> +    mkdir -p ${WORKDIR}/build-tmp
> +
> +    cd src
> +    ./make.bash --host-only
> +    # Ensure cgo.a is built with the target toolchain
> +    export GOBIN="${B}/target/bin"
> +    rm -rf ${GOBIN}
> +    mkdir -p ${GOBIN}
> +    GO_FLAGS="-a" ./make.bash
> +}
> +
> +do_install_class-target() {
> +    install -d ${D}${libdir}/go
> +    cp -a ${B}/pkg ${D}${libdir}/go/
> +    install -d ${D}${libdir}/go/src
> +    (cd ${S}/src; for d in *; do \
> +        [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \
> +    done)
> +    install -d ${D}${bindir}
> +    for f in ${B}/bin/${GOOS}_${GOARCH}/*
> +    do
> +        install -m755 $f ${D}${bindir}
> +    done
> +}
> +
> +do_install_class-cross() {
> +    install -d ${D}${libdir}/go
> +    cp -a ${B}/pkg ${D}${libdir}/go/
> +    install -d ${D}${libdir}/go/src
> +    (cd ${S}/src; for d in *; do \
> +        [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \
> +    done)
> +    install -d ${D}${bindir}
> +    for f in ${B}/bin/go*
> +    do
> +        install -m755 $f ${D}${bindir}
> +    done
> +}
> +
> +INSANE_SKIP_${PN} += "staticdev"
> +RDEPENDS_${PN} += "perl"
> +
> +do_package[noexec] = "1"
> +do_packagedata[noexec] = "1"
> +do_package_write_ipk[noexec] = "1"
> +do_package_write_deb[noexec] = "1"
> +do_package_write_rpm[noexec] = "1"
> diff --git a/meta/recipes-devtools/go/go_1.6.bb b/meta/recipes-devtools/go/go_1.6.bb
> new file mode 100644
> index 0000000..2f59033
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go_1.6.bb
> @@ -0,0 +1,4 @@
> +require go.inc
> +require go-${PV}.inc
> +
> +BBCLASSEXTEND = "cross"
> diff --git a/meta/recipes-devtools/go/go_1.7.bb b/meta/recipes-devtools/go/go_1.7.bb
> new file mode 100644
> index 0000000..8186427
> --- /dev/null
> +++ b/meta/recipes-devtools/go/go_1.7.bb
> @@ -0,0 +1,4 @@
> +require go-${PV}.inc
> +require go.inc
> +
> +BBCLASSEXTEND = "cross"
>

Looking at these recipes and they seem like a good starting point.
I did have some issues though:

* bitbake go - didn't create any target installable packages, although the
   .../image directory seemed to be well populated.
* bitbake go-helloworld - had these errors:
ERROR: go-helloworld-0.1-r0 do_populate_lic: QA Issue: go-helloworld: LIC_FILES_CHKSUM points to an invalid file: /MIT 
[license-checksum]
ERROR: go-helloworld-0.1-r0 do_compile: Function failed: do_compile (log file is located at 
/build/p0382_2016-01-13/tmp/work/cortexa9hf-neon-amltd-linux-gnueabi/go-helloworld/0.1-r0/temp/log.do_compile.31170)
ERROR: Logfile of failure stored in: 
/build/p0382_2016-01-13/tmp/work/cortexa9hf-neon-amltd-linux-gnueabi/go-helloworld/0.1-r0/temp/log.do_compile.31170
Log data follows:
| DEBUG: Executing shell function do_compile
| stat helloworld.go: no such file or directory
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at 
/build/p0382_2016-01-13/tmp/work/cortexa9hf-neon-amltd-linux-gnueabi/go-helloworld/0.1-r0/temp/log.do_compile.31170)
ERROR: Task (/local/poky-cutting-edge/meta/recipes-extended/go-examples/go-helloworld_0.1.bb:do_compile) failed with 
exit code '1'

I forced the compiler to my target (rsync is _my_ friend) and was
able to run 'helloword.go'.  I've not tested much past this point,
but I am enthusiastic about getting 'go' into OE-core

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


^ permalink raw reply

* Re: [PATCH] fontconfig: Fix namespace conflicts with glibc
From: Burton, Ross @ 2016-12-12 12:45 UTC (permalink / raw)
  To: Khem Raj; +Cc: OE-core
In-Reply-To: <20161211230719.28765-1-raj.khem@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 6326 bytes --]

Has fallout, for example libxft:

| ../../libXft-2.3.2/src/xftfreetype.c:675:43: error: ‘FC_CHAR_WIDTH’
undeclared (first use in this function)

Ross

On 11 December 2016 at 23:07, Khem Raj <raj.khem@gmail.com> wrote:

> glibc 2.25 will come with TS 18661-1 macro definitions in limits.h which
> ends with following errors
>
> | ../../fontconfig-2.12.1/src/fcmatch.c:324:63: error:
> 'PRI_CHAR_WIDTH_STRONG' undeclared here (not in a function)
> |  #define FC_OBJECT(NAME, Type, Cmp) { FC_##NAME##_OBJECT, Cmp,
> PRI_##NAME##_STRONG, PRI_##NAME##_WEAK },
> |                                                                ^
> | ../../fontconfig-2.12.1/src/fcobjs.h:54:1: note: in expansion of macro
> 'FC_OBJECT'
> |  FC_OBJECT (CHAR_WIDTH,  FcTypeInteger, NULL)
> |  ^~~~~~~~~
> | ../../fontconfig-2.12.1/src/fcmatch.c:324:84: error:
> 'PRI_CHAR_WIDTH_WEAK' undeclared here (not in a function)
> |  #define FC_OBJECT(NAME, Type, Cmp) { FC_##NAME##_OBJECT, Cmp,
> PRI_##NAME##_STRONG, PRI_##NAME##_WEAK },
> |
>            ^
> | ../../fontconfig-2.12.1/src/fcobjs.h:54:1: note: in expansion of macro
> 'FC_OBJECT'
> |  FC_OBJECT (CHAR_WIDTH,  FcTypeInteger, NULL)
> |  ^~~~~~~~~
> | make[3]: *** [Makefile:632: fcmatch.lo] Error 1
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  ...icts-with-integer-width-macros-from-TS-18.patch | 74
> ++++++++++++++++++++++
>  .../fontconfig/fontconfig_2.12.1.bb                |  1 +
>  2 files changed, 75 insertions(+)
>  create mode 100644 meta/recipes-graphics/fontconfig/fontconfig/0001-
> Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
>
> diff --git a/meta/recipes-graphics/fontconfig/fontconfig/0001-
> Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
> b/meta/recipes-graphics/fontconfig/fontconfig/0001-
> Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
> new file mode 100644
> index 0000000..326ff3c
> --- /dev/null
> +++ b/meta/recipes-graphics/fontconfig/fontconfig/0001-
> Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
> @@ -0,0 +1,74 @@
> +From 20cddc824c6501c2082cac41b162c34cd5fcc530 Mon Sep 17 00:00:00 2001
> +From: Khem Raj <raj.khem@gmail.com>
> +Date: Sun, 11 Dec 2016 14:32:00 -0800
> +Subject: [PATCH] Avoid conflicts with integer width macros from TS
> + 18661-1:2014
> +
> +glibc 2.25+ has now defined these macros in <limits.h>
> +https://sourceware.org/git/?p=glibc.git;a=commit;h=
> 5b17fd0da62bf923cb61d1bb7b08cf2e1f1f9c1a
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +---
> +Upstream-Status: Submitted
> +
> + fontconfig/fontconfig.h | 2 +-
> + src/fcobjs.h            | 2 +-
> + src/fcobjshash.gperf    | 2 +-
> + src/fcobjshash.h        | 2 +-
> + 4 files changed, 4 insertions(+), 4 deletions(-)
> +
> +diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
> +index 5c72b22..843c532 100644
> +--- a/fontconfig/fontconfig.h
> ++++ b/fontconfig/fontconfig.h
> +@@ -128,7 +128,7 @@ typedef int                FcBool;
> + #define FC_USER_CACHE_FILE        ".fonts.cache-" FC_CACHE_VERSION
> +
> + /* Adjust outline rasterizer */
> +-#define FC_CHAR_WIDTH     "charwidth" /* Int */
> ++#define FC_CHARWIDTH      "charwidth" /* Int */
> + #define FC_CHAR_HEIGHT            "charheight"/* Int */
> + #define FC_MATRIX         "matrix"    /* FcMatrix */
> +
> +diff --git a/src/fcobjs.h b/src/fcobjs.h
> +index 1fc4f65..d27864b 100644
> +--- a/src/fcobjs.h
> ++++ b/src/fcobjs.h
> +@@ -51,7 +51,7 @@ FC_OBJECT (DPI,                      FcTypeDouble,
>  NULL)
> + FC_OBJECT (RGBA,              FcTypeInteger,  NULL)
> + FC_OBJECT (SCALE,             FcTypeDouble,   NULL)
> + FC_OBJECT (MINSPACE,          FcTypeBool,     NULL)
> +-FC_OBJECT (CHAR_WIDTH,                FcTypeInteger,  NULL)
> ++FC_OBJECT (CHARWIDTH,         FcTypeInteger,  NULL)
> + FC_OBJECT (CHAR_HEIGHT,               FcTypeInteger,  NULL)
> + FC_OBJECT (MATRIX,            FcTypeMatrix,   NULL)
> + FC_OBJECT (CHARSET,           FcTypeCharSet,  FcCompareCharSet)
> +diff --git a/src/fcobjshash.gperf b/src/fcobjshash.gperf
> +index 80a0237..eb4ad84 100644
> +--- a/src/fcobjshash.gperf
> ++++ b/src/fcobjshash.gperf
> +@@ -44,7 +44,7 @@ int id;
> + "rgba",FC_RGBA_OBJECT
> + "scale",FC_SCALE_OBJECT
> + "minspace",FC_MINSPACE_OBJECT
> +-"charwidth",FC_CHAR_WIDTH_OBJECT
> ++"charwidth",FC_CHARWIDTH_OBJECT
> + "charheight",FC_CHAR_HEIGHT_OBJECT
> + "matrix",FC_MATRIX_OBJECT
> + "charset",FC_CHARSET_OBJECT
> +diff --git a/src/fcobjshash.h b/src/fcobjshash.h
> +index 5a4d1ea..4e66bb0 100644
> +--- a/src/fcobjshash.h
> ++++ b/src/fcobjshash.h
> +@@ -284,7 +284,7 @@ FcObjectTypeLookup (register const char *str,
> register unsigned int len)
> +       {(int)(long)&((struct FcObjectTypeNamePool_t
> *)0)->FcObjectTypeNamePool_str43,FC_CHARSET_OBJECT},
> +       {-1},
> + #line 47 "fcobjshash.gperf"
> +-      {(int)(long)&((struct FcObjectTypeNamePool_t
> *)0)->FcObjectTypeNamePool_str45,FC_CHAR_WIDTH_OBJECT},
> ++      {(int)(long)&((struct FcObjectTypeNamePool_t
> *)0)->FcObjectTypeNamePool_str45,FC_CHARWIDTH_OBJECT},
> + #line 48 "fcobjshash.gperf"
> +       {(int)(long)&((struct FcObjectTypeNamePool_t
> *)0)->FcObjectTypeNamePool_str46,FC_CHAR_HEIGHT_OBJECT},
> + #line 55 "fcobjshash.gperf"
> +--
> +2.10.2
> +
> diff --git a/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
> b/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
> index 115f558..8616154 100644
> --- a/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
> +++ b/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
> @@ -22,6 +22,7 @@ DEPENDS = "expat freetype zlib"
>
>  SRC_URI = "http://fontconfig.org/release/fontconfig-${PV}.tar.gz \
>             file://revert-static-pkgconfig.patch \
> +           file://0001-Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
> \
>             "
>  SRC_URI[md5sum] = "ce55e525c37147eee14cc2de6cc09f6c"
>  SRC_URI[sha256sum] = "a9f42d03949f948a3a4f762287dbc1
> 6e53a927c91a07ee64207ebd90a9e5e292"
> --
> 2.10.2
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>

[-- Attachment #2: Type: text/html, Size: 8666 bytes --]

^ permalink raw reply

* [PATCH] curl: add ptest
From: Maxin B. John @ 2016-12-12 13:09 UTC (permalink / raw)
  To: openembedded-core; +Cc: Cristian Iorga

Add ptest support to curl

[YOCTO #6707]

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 .../curl/0001-runtests.pl-remove-warning.patch     | 31 ++++++++++++++++++++++
 meta/recipes-support/curl/curl/run-ptest           |  5 ++++
 meta/recipes-support/curl/curl_7.51.0.bb           | 24 +++++++++++++++--
 3 files changed, 58 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-support/curl/curl/0001-runtests.pl-remove-warning.patch
 create mode 100644 meta/recipes-support/curl/curl/run-ptest

diff --git a/meta/recipes-support/curl/curl/0001-runtests.pl-remove-warning.patch b/meta/recipes-support/curl/curl/0001-runtests.pl-remove-warning.patch
new file mode 100644
index 0000000..283aa20
--- /dev/null
+++ b/meta/recipes-support/curl/curl/0001-runtests.pl-remove-warning.patch
@@ -0,0 +1,31 @@
+From c1d3bf13567909395715e441bc329793a5d2566b Mon Sep 17 00:00:00 2001
+From: "Maxin B. John" <maxin.john@intel.com>
+Date: Mon, 12 Dec 2016 12:49:46 +0200
+Subject: [PATCH] runtests.pl: remove warning
+
+Remove the warning which floods the console while executing tests.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
+---
+ tests/runtests.pl | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/tests/runtests.pl b/tests/runtests.pl
+index b8497f9..3cc6415 100755
+--- a/tests/runtests.pl
++++ b/tests/runtests.pl
+@@ -2879,9 +2879,6 @@ sub singletest {
+     # timestamp test preparation start
+     $timeprepini{$testnum} = Time::HiRes::time() if($timestats);
+ 
+-    if($disttests !~ /test$testnum\W/ ) {
+-        logmsg "Warning: test$testnum not present in tests/data/Makefile.inc\n";
+-    }
+     if($disabled{$testnum}) {
+         logmsg "Warning: test$testnum is explicitly disabled\n";
+     }
+-- 
+2.4.0
+
diff --git a/meta/recipes-support/curl/curl/run-ptest b/meta/recipes-support/curl/curl/run-ptest
new file mode 100644
index 0000000..c91f294
--- /dev/null
+++ b/meta/recipes-support/curl/curl/run-ptest
@@ -0,0 +1,5 @@
+#!/bin/sh
+cd tests
+./runtests.pl -a -n -s | sed \
+     -e 's|\([^ ]* *\) \([^ ]* *\)...OK|PASS: \1 \2|' \
+     -e 's|\([^ ]* *\) \([^ ]* *\)...FAILED|FAIL: \1 \2|'
diff --git a/meta/recipes-support/curl/curl_7.51.0.bb b/meta/recipes-support/curl/curl_7.51.0.bb
index e1a996b..c8002c9 100644
--- a/meta/recipes-support/curl/curl_7.51.0.bb
+++ b/meta/recipes-support/curl/curl_7.51.0.bb
@@ -7,6 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;beginline=8;md5=3a34942f4ae3fbf1a303160714e66
 
 SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \
            file://0001-replace-krb5-config-with-pkg-config.patch \
+           file://0001-runtests.pl-remove-warning.patch \
+           file://run-ptest \
 "
 
 # curl likes to set -g0 in CFLAGS, so we stop it
@@ -17,7 +19,7 @@ SRC_URI += " file://configure_ac.patch"
 SRC_URI[md5sum] = "09a7c5769a7eae676d5e2c86d51f167e"
 SRC_URI[sha256sum] = "7f8240048907e5030f67be0a6129bc4b333783b9cca1391026d700835a788dde"
 
-inherit autotools pkgconfig binconfig multilib_header
+inherit autotools pkgconfig binconfig multilib_header ptest
 
 PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)} gnutls proxy zlib"
 PACKAGECONFIG_class-native = "ipv6 proxy ssl zlib"
@@ -61,11 +63,29 @@ do_install_append_class-target() {
 	sed -i -e 's,${STAGING_DIR_HOST},,g' ${D}${bindir}/curl-config
 }
 
+do_compile_ptest() {
+     oe_runmake test
+     oe_runmake -C ${B}/tests/data/ show
+     oe_runmake -C ${B}/tests/server
+}
+
+do_install_ptest() {
+     cp -rf ${B}/tests ${D}${PTEST_PATH}
+     cp -rf ${S}/tests ${D}${PTEST_PATH}
+     install -d ${D}${PTEST_PATH}/src
+     ln -sf ${bindir}/curl   ${D}${PTEST_PATH}/src/curl
+}
+
 PACKAGES =+ "lib${BPN}"
 
 FILES_lib${BPN} = "${libdir}/lib*.so.*"
 RRECOMMENDS_lib${BPN} += "ca-certificates"
-
+RDEPENDS_${PN}-ptest += "make bash perl perl-module-cwd \
+                         perl-module-ipc-open2 perl-module-digest-md5\
+                         perl-module-file-basename perl-module-posix \
+                         perl-module-errno python python-netserver \
+                         python-argparse python-pprint diffutils openssh \
+                        "
 FILES_${PN} += "${datadir}/zsh"
 
 BBCLASSEXTEND = "native nativesdk"
-- 
2.4.0



^ permalink raw reply related

* Re: [PATCH] libpcap: Disable exposed bits of WinPCAP remote capture support
From: Burton, Ross @ 2016-12-12 13:26 UTC (permalink / raw)
  To: Lei, Maohui; +Cc: openembedded-core@lists.openembedded.org
In-Reply-To: <1B56A49860EB2D45ADE3731B15C959FDFE5ADEB5@G08CNEXMBPEKD01.g08.fujitsu.local>

[-- Attachment #1: Type: text/plain, Size: 278 bytes --]

On 12 December 2016 at 06:55, Lei, Maohui <leimaohui@cn.fujitsu.com> wrote:

> I met the same issue when I build wireshark comes from meta-oe.
> Why this patch hasn't been merged yet?
>

I had the wrong tag on it locally so it didn't get merged.  In staging now.

Ross

[-- Attachment #2: Type: text/html, Size: 734 bytes --]

^ permalink raw reply

* [PATCH 1/3] libxml2: Necessary changes before fixing CVE-2016-5131 Fix comaparation with root node in xmlXPathCmpNodes and NULL pointer deref in XPointer
From: Andrej Valek @ 2016-12-12 13:20 UTC (permalink / raw)
  To: openembedded-core

xpath:
 - Check for errors after evaluating first operand.
 - Add sanity check for empty stack.
 - Include comparation in changes from xmlXPathCmpNodesExt to xmlXPathCmpNodes

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
---
 .../libxml2/libxml2-fix_node_comparison.patch      | 67 ++++++++++++++++++++++
 meta/recipes-core/libxml/libxml2_2.9.4.bb          |  1 +
 2 files changed, 68 insertions(+)
 create mode 100644 meta/recipes-core/libxml/libxml2/libxml2-fix_node_comparison.patch

diff --git a/meta/recipes-core/libxml/libxml2/libxml2-fix_node_comparison.patch b/meta/recipes-core/libxml/libxml2/libxml2-fix_node_comparison.patch
new file mode 100644
index 0000000..11718bb
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2/libxml2-fix_node_comparison.patch
@@ -0,0 +1,67 @@
+libxml2-2.9.4: Fix comparison with root node in xmlXPathCmpNodes and NULL pointer deref in XPointer
+
+xpath:
+ - Check for errors after evaluating first operand.
+ - Add sanity check for empty stack.
+ - Include comparation in changes from xmlXPathCmpNodesExt to xmlXPathCmpNodes
+
+Upstream-Status: Backported
+ - [https://git.gnome.org/browse/libxml2/commit/?id=c1d1f7121194036608bf555f08d3062a36fd344b]
+ - [https://git.gnome.org/browse/libxml2/commit/?id=a005199330b86dada19d162cae15ef9bdcb6baa8]
+CVE: necessary changes for fixing CVE-2016-5131
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
+
+diff --git a/result/XPath/xptr/viderror b/result/XPath/xptr/viderror
+new file mode 100644
+index 0000000..d589882
+--- /dev/null
++++ b/result/XPath/xptr/viderror
+@@ -0,0 +1,4 @@
++
++========================
++Expression: xpointer(non-existing-fn()/range-to(id('chapter2')))
++Object is empty (NULL)
+diff --git a/test/XPath/xptr/viderror b/test/XPath/xptr/viderror
+new file mode 100644
+index 0000000..da8c53b
+--- /dev/null
++++ b/test/XPath/xptr/viderror
+@@ -0,0 +1 @@
++xpointer(non-existing-fn()/range-to(id('chapter2')))
+diff --git a/xpath.c b/xpath.c
+index 113bce6..d992841 100644
+--- a/xpath.c
++++ b/xpath.c
+@@ -3342,13 +3342,13 @@ xmlXPathCmpNodes(xmlNodePtr node1, xmlNodePtr node2) {
+      * compute depth to root
+      */
+     for (depth2 = 0, cur = node2;cur->parent != NULL;cur = cur->parent) {
+-	if (cur == node1)
++	if (cur->parent == node1)
+ 	    return(1);
+ 	depth2++;
+     }
+     root = cur;
+     for (depth1 = 0, cur = node1;cur->parent != NULL;cur = cur->parent) {
+-	if (cur == node2)
++	if (cur->parent == node2)
+ 	    return(-1);
+ 	depth1++;
+     }
+@@ -14005,9 +14005,14 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op)
+                 xmlNodeSetPtr oldset;
+                 int i, j;
+ 
+-                if (op->ch1 != -1)
++                if (op->ch1 != -1) {
+                     total +=
+                         xmlXPathCompOpEval(ctxt, &comp->steps[op->ch1]);
++                    CHECK_ERROR0;
++                }
++                if (ctxt->value == NULL) {
++                    XP_ERROR0(XPATH_INVALID_OPERAND);
++                }
+                 if (op->ch2 == -1)
+                     return (total);
+ 
diff --git a/meta/recipes-core/libxml/libxml2_2.9.4.bb b/meta/recipes-core/libxml/libxml2_2.9.4.bb
index 1fed90b..66a8940 100644
--- a/meta/recipes-core/libxml/libxml2_2.9.4.bb
+++ b/meta/recipes-core/libxml/libxml2_2.9.4.bb
@@ -19,6 +19,7 @@ SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \
            file://run-ptest \
            file://python-sitepackages-dir.patch \
            file://libxml-m4-use-pkgconfig.patch \
+           file://libxml2-fix_node_comparison.patch \
            file://libxml2-CVE-2016-5131.patch \
           "
 
-- 
2.1.4



^ permalink raw reply related

* [PATCH 2/3] libxml2: fix CVE-2016-4658 Disallow namespace nodes in XPointer points and ranges
From: Andrej Valek @ 2016-12-12 13:20 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <1481548821-15878-1-git-send-email-andrej.valek@siemens.com>

Namespace nodes must be copied to avoid use-after-free errors.
But they don't necessarily have a physical representation in a
document, so simply disallow them in XPointer ranges.

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
---
 .../libxml/libxml2/libxml2-CVE-2016-4658.patch     | 269 +++++++++++++++++++++
 meta/recipes-core/libxml/libxml2_2.9.4.bb          |   1 +
 2 files changed, 270 insertions(+)
 create mode 100644 meta/recipes-core/libxml/libxml2/libxml2-CVE-2016-4658.patch

diff --git a/meta/recipes-core/libxml/libxml2/libxml2-CVE-2016-4658.patch b/meta/recipes-core/libxml/libxml2/libxml2-CVE-2016-4658.patch
new file mode 100644
index 0000000..5412e8c
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2/libxml2-CVE-2016-4658.patch
@@ -0,0 +1,269 @@
+libxml2-2.9.4: Fix CVE-2016-4658
+
+[No upstream tracking] -- https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-4658
+
+xpointer: Disallow namespace nodes in XPointer points and ranges
+
+Namespace nodes must be copied to avoid use-after-free errors.
+But they don't necessarily have a physical representation in a
+document, so simply disallow them in XPointer ranges.
+
+Upstream-Status: Backported 
+ - [https://git.gnome.org/browse/libxml2/commit/?id=c1d1f7121194036608bf555f08d3062a36fd344b]
+ - [https://git.gnome.org/browse/libxml2/commit/?id=3f8a91036d338e51c059d54397a42d645f019c65]
+CVE: CVE-2016-4658
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
+
+diff --git a/xpointer.c b/xpointer.c
+index 676c510..911680d 100644
+--- a/xpointer.c
++++ b/xpointer.c
+@@ -320,6 +320,45 @@ xmlXPtrRangesEqual(xmlXPathObjectPtr range1, xmlXPathObjectPtr range2) {
+ }
+ 
+ /**
++ * xmlXPtrNewRangeInternal:
++ * @start:  the starting node
++ * @startindex:  the start index
++ * @end:  the ending point
++ * @endindex:  the ending index
++ *
++ * Internal function to create a new xmlXPathObjectPtr of type range
++ *
++ * Returns the newly created object.
++ */
++static xmlXPathObjectPtr
++xmlXPtrNewRangeInternal(xmlNodePtr start, int startindex,
++                        xmlNodePtr end, int endindex) {
++    xmlXPathObjectPtr ret;
++
++    /*
++     * Namespace nodes must be copied (see xmlXPathNodeSetDupNs).
++     * Disallow them for now.
++     */
++    if ((start != NULL) && (start->type == XML_NAMESPACE_DECL))
++	return(NULL);
++    if ((end != NULL) && (end->type == XML_NAMESPACE_DECL))
++	return(NULL);
++
++    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
++    if (ret == NULL) {
++        xmlXPtrErrMemory("allocating range");
++	return(NULL);
++    }
++    memset(ret, 0, sizeof(xmlXPathObject));
++    ret->type = XPATH_RANGE;
++    ret->user = start;
++    ret->index = startindex;
++    ret->user2 = end;
++    ret->index2 = endindex;
++    return(ret);
++}
++
++/**
+  * xmlXPtrNewRange:
+  * @start:  the starting node
+  * @startindex:  the start index
+@@ -344,17 +383,7 @@ xmlXPtrNewRange(xmlNodePtr start, int startindex,
+     if (endindex < 0)
+ 	return(NULL);
+ 
+-    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
+-    if (ret == NULL) {
+-        xmlXPtrErrMemory("allocating range");
+-	return(NULL);
+-    }
+-    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
+-    ret->type = XPATH_RANGE;
+-    ret->user = start;
+-    ret->index = startindex;
+-    ret->user2 = end;
+-    ret->index2 = endindex;
++    ret = xmlXPtrNewRangeInternal(start, startindex, end, endindex);
+     xmlXPtrRangeCheckOrder(ret);
+     return(ret);
+ }
+@@ -381,17 +410,8 @@ xmlXPtrNewRangePoints(xmlXPathObjectPtr start, xmlXPathObjectPtr end) {
+     if (end->type != XPATH_POINT)
+ 	return(NULL);
+ 
+-    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
+-    if (ret == NULL) {
+-        xmlXPtrErrMemory("allocating range");
+-	return(NULL);
+-    }
+-    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
+-    ret->type = XPATH_RANGE;
+-    ret->user = start->user;
+-    ret->index = start->index;
+-    ret->user2 = end->user;
+-    ret->index2 = end->index;
++    ret = xmlXPtrNewRangeInternal(start->user, start->index, end->user,
++				  end->index);
+     xmlXPtrRangeCheckOrder(ret);
+     return(ret);
+ }
+@@ -416,17 +436,7 @@ xmlXPtrNewRangePointNode(xmlXPathObjectPtr start, xmlNodePtr end) {
+     if (start->type != XPATH_POINT)
+ 	return(NULL);
+ 
+-    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
+-    if (ret == NULL) {
+-        xmlXPtrErrMemory("allocating range");
+-	return(NULL);
+-    }
+-    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
+-    ret->type = XPATH_RANGE;
+-    ret->user = start->user;
+-    ret->index = start->index;
+-    ret->user2 = end;
+-    ret->index2 = -1;
++    ret = xmlXPtrNewRangeInternal(start->user, start->index, end, -1);
+     xmlXPtrRangeCheckOrder(ret);
+     return(ret);
+ }
+@@ -453,17 +463,7 @@ xmlXPtrNewRangeNodePoint(xmlNodePtr start, xmlXPathObjectPtr end) {
+     if (end->type != XPATH_POINT)
+ 	return(NULL);
+ 
+-    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
+-    if (ret == NULL) {
+-        xmlXPtrErrMemory("allocating range");
+-	return(NULL);
+-    }
+-    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
+-    ret->type = XPATH_RANGE;
+-    ret->user = start;
+-    ret->index = -1;
+-    ret->user2 = end->user;
+-    ret->index2 = end->index;
++    ret = xmlXPtrNewRangeInternal(start, -1, end->user, end->index);
+     xmlXPtrRangeCheckOrder(ret);
+     return(ret);
+ }
+@@ -486,17 +486,7 @@ xmlXPtrNewRangeNodes(xmlNodePtr start, xmlNodePtr end) {
+     if (end == NULL)
+ 	return(NULL);
+ 
+-    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
+-    if (ret == NULL) {
+-        xmlXPtrErrMemory("allocating range");
+-	return(NULL);
+-    }
+-    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
+-    ret->type = XPATH_RANGE;
+-    ret->user = start;
+-    ret->index = -1;
+-    ret->user2 = end;
+-    ret->index2 = -1;
++    ret = xmlXPtrNewRangeInternal(start, -1, end, -1);
+     xmlXPtrRangeCheckOrder(ret);
+     return(ret);
+ }
+@@ -516,17 +506,7 @@ xmlXPtrNewCollapsedRange(xmlNodePtr start) {
+     if (start == NULL)
+ 	return(NULL);
+ 
+-    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
+-    if (ret == NULL) {
+-        xmlXPtrErrMemory("allocating range");
+-	return(NULL);
+-    }
+-    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
+-    ret->type = XPATH_RANGE;
+-    ret->user = start;
+-    ret->index = -1;
+-    ret->user2 = NULL;
+-    ret->index2 = -1;
++    ret = xmlXPtrNewRangeInternal(start, -1, NULL, -1);
+     return(ret);
+ }
+ 
+@@ -541,6 +521,8 @@ xmlXPtrNewCollapsedRange(xmlNodePtr start) {
+  */
+ xmlXPathObjectPtr
+ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {
++    xmlNodePtr endNode;
++    int endIndex;
+     xmlXPathObjectPtr ret;
+ 
+     if (start == NULL)
+@@ -549,7 +531,12 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {
+ 	return(NULL);
+     switch (end->type) {
+ 	case XPATH_POINT:
++	    endNode = end->user;
++	    endIndex = end->index;
++	    break;
+ 	case XPATH_RANGE:
++	    endNode = end->user2;
++	    endIndex = end->index2;
+ 	    break;
+ 	case XPATH_NODESET:
+ 	    /*
+@@ -557,39 +544,15 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {
+ 	     */
+ 	    if (end->nodesetval->nodeNr <= 0)
+ 		return(NULL);
++	    endNode = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1];
++	    endIndex = -1;
+ 	    break;
+ 	default:
+ 	    /* TODO */
+ 	    return(NULL);
+     }
+ 
+-    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
+-    if (ret == NULL) {
+-        xmlXPtrErrMemory("allocating range");
+-	return(NULL);
+-    }
+-    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
+-    ret->type = XPATH_RANGE;
+-    ret->user = start;
+-    ret->index = -1;
+-    switch (end->type) {
+-	case XPATH_POINT:
+-	    ret->user2 = end->user;
+-	    ret->index2 = end->index;
+-	    break;
+-	case XPATH_RANGE:
+-	    ret->user2 = end->user2;
+-	    ret->index2 = end->index2;
+-	    break;
+-	case XPATH_NODESET: {
+-	    ret->user2 = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1];
+-	    ret->index2 = -1;
+-	    break;
+-	}
+-	default:
+-	    STRANGE
+-	    return(NULL);
+-    }
++    ret = xmlXPtrNewRangeInternal(start, -1, endNode, endIndex);
+     xmlXPtrRangeCheckOrder(ret);
+     return(ret);
+ }
+@@ -1835,8 +1798,8 @@ xmlXPtrStartPointFunction(xmlXPathParserContextPtr ctxt, int nargs) {
+ 		case XPATH_RANGE: {
+ 		    xmlNodePtr node = tmp->user;
+ 		    if (node != NULL) {
+-			if (node->type == XML_ATTRIBUTE_NODE) {
+-			    /* TODO: Namespace Nodes ??? */
++			if ((node->type == XML_ATTRIBUTE_NODE) ||
++			     (node->type == XML_NAMESPACE_DECL)) {
+ 			    xmlXPathFreeObject(obj);
+ 			    xmlXPtrFreeLocationSet(newset);
+ 			    XP_ERROR(XPTR_SYNTAX_ERROR);
+@@ -1931,8 +1894,8 @@ xmlXPtrEndPointFunction(xmlXPathParserContextPtr ctxt, int nargs) {
+ 		case XPATH_RANGE: {
+ 		    xmlNodePtr node = tmp->user2;
+ 		    if (node != NULL) {
+-			if (node->type == XML_ATTRIBUTE_NODE) {
+-			    /* TODO: Namespace Nodes ??? */
++			if ((node->type == XML_ATTRIBUTE_NODE) ||
++			     (node->type == XML_NAMESPACE_DECL)) {
+ 			    xmlXPathFreeObject(obj);
+ 			    xmlXPtrFreeLocationSet(newset);
+ 			    XP_ERROR(XPTR_SYNTAX_ERROR);
diff --git a/meta/recipes-core/libxml/libxml2_2.9.4.bb b/meta/recipes-core/libxml/libxml2_2.9.4.bb
index 66a8940..a1d1e9e 100644
--- a/meta/recipes-core/libxml/libxml2_2.9.4.bb
+++ b/meta/recipes-core/libxml/libxml2_2.9.4.bb
@@ -21,6 +21,7 @@ SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \
            file://libxml-m4-use-pkgconfig.patch \
            file://libxml2-fix_node_comparison.patch \
            file://libxml2-CVE-2016-5131.patch \
+           file://libxml2-CVE-2016-4658.patch \
           "
 
 SRC_URI[libtar.md5sum] = "ae249165c173b1ff386ee8ad676815f5"
-- 
2.1.4



^ permalink raw reply related

* [PATCH 0/3] Upgrade piglit, compress generated tests
From: Jussi Kukkonen @ 2016-12-12 13:35 UTC (permalink / raw)
  To: openembedded-core

These patches were already on the list in another patchset, the only
change is that piglit-generated-tests now RDEPENDS on tar.

Original cover letter follows:


Piglit was removed because the current version was making sdk
images too large. This patchset reduces the installed size by 1.5GB
and adds piglit back to core-tools-testapps.

Running piglit still requires the same amount of space so in practice
this is useful for installed images only.

Thanks,
 Jussi


The following changes since commit 36e178a62f04e7f2611b26964efe46b9af97189a:

  linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.8 (2016-12-09 08:54:07 +0000)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib jku/piglit-compress-tests
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=jku/piglit-compress-tests

Jussi Kukkonen (3):
  piglit: Package tests in compressed form as well
  core-tools-testapps: Re-add piglit
  piglit: Upgrade to current master head

 .../packagegroup-core-tools-testapps.bb            |  2 +
 .../0001-cmake-Link-test-utils-with-ldl.patch      | 41 ----------------
 ...0001-cmake-Link-utils-with-xcb-explicitly.patch | 54 ----------------------
 meta/recipes-graphics/piglit/piglit/piglit.sh      | 20 ++++++++
 meta/recipes-graphics/piglit/piglit_git.bb         | 27 +++++++++--
 5 files changed, 44 insertions(+), 100 deletions(-)
 delete mode 100644 meta/recipes-graphics/piglit/piglit/0001-cmake-Link-test-utils-with-ldl.patch
 delete mode 100644 meta/recipes-graphics/piglit/piglit/0001-cmake-Link-utils-with-xcb-explicitly.patch
 create mode 100644 meta/recipes-graphics/piglit/piglit/piglit.sh

-- 
2.1.4



^ permalink raw reply

* [PATCH 1/3] piglit: Package tests in compressed form as well
From: Jussi Kukkonen @ 2016-12-12 13:35 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481549486.git.jussi.kukkonen@intel.com>

Modify packaging so that generated tests are available in two forms:
* piglit-generated-tests contains the tests as they are now (1.5GB
  when installed)
* piglit-generated-tests-compressed contains a tar.gz with the same
  files (45 MB when installed)

Add wrapper script that decompresses the tests at runtime: this
requires 1.5GB free space.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 meta/recipes-graphics/piglit/piglit/piglit.sh | 20 ++++++++++++++++++++
 meta/recipes-graphics/piglit/piglit_git.bb    | 21 ++++++++++++++++++++-
 2 files changed, 40 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-graphics/piglit/piglit/piglit.sh

diff --git a/meta/recipes-graphics/piglit/piglit/piglit.sh b/meta/recipes-graphics/piglit/piglit/piglit.sh
new file mode 100644
index 0000000..3308b70
--- /dev/null
+++ b/meta/recipes-graphics/piglit/piglit/piglit.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# If we're using compressed generated tests we may need to
+# decompress first. This is going to require at least 1.5 GB of space
+if [[ /usr/lib/piglit/generated_tests.tar.gz -nt /usr/lib/piglit/generated_tests/ ]]; then
+    echo "Decompressing generated tests..."
+    tar -C /usr/lib/piglit/ -zxf /usr/lib/piglit/generated_tests.tar.gz || {
+        echo "Failed to decompress tests, exiting."
+        exit 1
+    }
+    touch /usr/lib/piglit/generated_tests
+fi
+
+if ! [[ -d /usr/lib/piglit/generated_tests ]]; then
+    echo "NOTE: No generated tests found, install piglit-generated-tests-compressed"
+    echo "      or piglit-generated-tests to include them in the tests."
+fi
+
+echo "Now running piglit..."
+PIGLIT_NO_WINDOW=1 piglit.real "$@"
diff --git a/meta/recipes-graphics/piglit/piglit_git.bb b/meta/recipes-graphics/piglit/piglit_git.bb
index 82adcde..63f9f17 100644
--- a/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/meta/recipes-graphics/piglit/piglit_git.bb
@@ -7,6 +7,7 @@ SRC_URI = "git://anongit.freedesktop.org/piglit \
            file://0001-tests-Use-FE_UPWARD-only-if-its-defined-in-fenv.h.patch \
            file://0001-cmake-Link-utils-with-xcb-explicitly.patch \
            file://0001-cmake-Link-test-utils-with-ldl.patch \
+           file://piglit.sh \
            "
 
 # From 2016-07-07
@@ -39,9 +40,14 @@ do_configure_prepend() {
 }
 
 do_install() {
-	oe_runmake -C ${B} 'DESTDIR=${D}' install/strip
+    oe_runmake -C ${B} 'DESTDIR=${D}' install/strip
+    mv ${D}${bindir}/piglit ${D}${bindir}/piglit.real
+    install -m 755 ${WORKDIR}/piglit.sh ${D}${bindir}/piglit
+    tar -C ${D}${libdir}/piglit/ -czf ${D}${libdir}/piglit/generated_tests.tar.gz generated_tests/
 }
 
+PACKAGES =+ "${PN}-generated-tests ${PN}-generated-tests-compressed"
+
 RDEPENDS_${PN} = "waffle python3 python3-mako python3-json \
 	python3-subprocess python3-misc python3-importlib \
 	python3-unixadmin python3-xml python3-multiprocessing \
@@ -50,3 +56,16 @@ RDEPENDS_${PN} = "waffle python3 python3-mako python3-json \
 	"
 
 INSANE_SKIP_${PN} += "dev-so already-stripped"
+
+SUMMARY_${PN}-generated-tests = "Generated piglit tests (multiple GB)"
+FILES_${PN}-generated-tests = "${libdir}/piglit/generated_tests/*"
+CONFLICTS_${PN}-generated-tests = "${PN}-generated-tests-compressed"
+RDEPENDS_${PN}-generated-tests += "tar"
+
+SUMMARY_${PN}-generated-tests-compressed = "Generated piglit tests in compressed archive"
+FILES_${PN}-generated-tests-compressed = "${libdir}/piglit/generated_tests.tar.gz"
+CONFLICTS_${PN}-generated-tests-compressed = "${PN}-generated-tests"
+pkg_postrm_${PN}-generated-tests-compressed () {
+    rm -rf $D${libdir}/piglit/generated_tests/
+}
+
-- 
2.1.4



^ permalink raw reply related

* [PATCH 2/3] core-tools-testapps: Re-add piglit
From: Jussi Kukkonen @ 2016-12-12 13:35 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481549486.git.jussi.kukkonen@intel.com>

Piglit was removed from testapps in 9e227ecb3a because it made
sdk images massive. Add piglit back now that the installed size is
no longer humongous: it still needs 1.5 GB free space at runtime but
the image sizes stay reasonable.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
index 3170978..69cfd57 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
@@ -17,6 +17,8 @@ KEXECTOOLS_nios2 ?= ""
 
 X11GLTOOLS = "\
     mesa-demos \
+    piglit \
+    piglit-generated-tests-compressed \
     "
 
 3GTOOLS = "\
-- 
2.1.4



^ permalink raw reply related

* [PATCH 3/3] piglit: Upgrade to current master head
From: Jussi Kukkonen @ 2016-12-12 13:35 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <cover.1481549486.git.jussi.kukkonen@intel.com>

Remove upstreamed patches.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 .../0001-cmake-Link-test-utils-with-ldl.patch      | 41 ----------------
 ...0001-cmake-Link-utils-with-xcb-explicitly.patch | 54 ----------------------
 meta/recipes-graphics/piglit/piglit_git.bb         |  6 +--
 3 files changed, 2 insertions(+), 99 deletions(-)
 delete mode 100644 meta/recipes-graphics/piglit/piglit/0001-cmake-Link-test-utils-with-ldl.patch
 delete mode 100644 meta/recipes-graphics/piglit/piglit/0001-cmake-Link-utils-with-xcb-explicitly.patch

diff --git a/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-test-utils-with-ldl.patch b/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-test-utils-with-ldl.patch
deleted file mode 100644
index 2e1c947..0000000
--- a/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-test-utils-with-ldl.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Backport patch to fix build with gold linker.
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Upstream-Status: Backport
-
-
-
-From 93a7113485cf1c55fd7076116faf5b3a690706b2 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Tue, 30 Aug 2016 17:17:28 +0300
-Subject: [PATCH] cmake: Link test utils with "-ldl"
-
-Without this linking CXX executables (e.g. fbo-blit-stretch) fails
-with gold linker:
-
-| libpiglitutil_gl.so.0: error: undefined reference to 'dlsym'
-| libpiglitutil_gl.so.0: error: undefined reference to 'dlerror'
-| libpiglitutil_gl.so.0: error: undefined reference to 'dlopen'
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
----
- tests/util/CMakeLists.txt | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt
-index e1f8073..3d5bef5 100644
---- a/tests/util/CMakeLists.txt
-+++ b/tests/util/CMakeLists.txt
-@@ -11,6 +11,8 @@ set_source_files_properties(
- 	PROPERTIES GENERATED 1
- 	)
- 
-+link_libraries(${CMAKE_DL_LIBS})
-+
- if(HAVE_LIBCACA)
-     link_libraries(caca)
- endif()
--- 
-2.9.3
-
diff --git a/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-utils-with-xcb-explicitly.patch b/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-utils-with-xcb-explicitly.patch
deleted file mode 100644
index 845804d..0000000
--- a/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-utils-with-xcb-explicitly.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 73e4fbc5777eddd89bb0fb16e90343551fe3e0ef Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Tue, 5 Jul 2016 10:56:23 +0300
-Subject: [PATCH] cmake: Link utils with xcb explicitly
-
-Linking with g++ can reportedly lead to:
-
-libpiglitutil_gl.so.0: error: undefined reference to 'xcb_connect'
-libpiglitutil_gl.so.0: error: undefined reference to 'xcb_get_setup'
-libpiglitutil_gl.so.0: error: undefined reference to 'xcb_setup_roots_iterator'
-
-This may have appeared now because xcb-dri2 used to overlink publicly
-but now does not.
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Upstream-Status: Accepted
----
- CMakeLists.txt            | 1 +
- tests/util/CMakeLists.txt | 2 ++
- 2 files changed, 3 insertions(+)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8e2abba..2e1a473 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -151,6 +151,7 @@ IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
- 
- 	pkg_check_modules(LIBDRM QUIET libdrm)
- 	pkg_check_modules(LIBDRM_INTEL QUIET libdrm_intel)
-+	pkg_check_modules(XCB QUIET xcb)
- 	pkg_check_modules(XCB_DRI2 QUIET xcb-dri2)
- 	pkg_check_modules(GLPROTO QUIET glproto)
- ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
-diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt
-index fb22ffa..e1f8073 100644
---- a/tests/util/CMakeLists.txt
-+++ b/tests/util/CMakeLists.txt
-@@ -121,11 +121,13 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
- 
- 		list(APPEND UTIL_GL_LIBS
- 			${LIBDRM_LDFLAGS}
-+			${XCB_LDFLAGS}
- 			${XCB_DRI2_LDFLAGS}
- 		)
- 
- 		list(APPEND UTIL_GL_INCLUDES
- 			${LIBDRM_INCLUDE_DIRS}
-+			${XCB_INCLUDE_DIRS}
- 			${XCB_DRI2_INCLUDE_DIRS}
- 		)
- 
--- 
-2.1.4
-
diff --git a/meta/recipes-graphics/piglit/piglit_git.bb b/meta/recipes-graphics/piglit/piglit_git.bb
index 63f9f17..21d9677 100644
--- a/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/meta/recipes-graphics/piglit/piglit_git.bb
@@ -5,13 +5,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b2beded7103a3d8a442a2a0391d607b0"
 SRC_URI = "git://anongit.freedesktop.org/piglit \
            file://0001-cmake-install-bash-completions-in-the-right-place.patch \
            file://0001-tests-Use-FE_UPWARD-only-if-its-defined-in-fenv.h.patch \
-           file://0001-cmake-Link-utils-with-xcb-explicitly.patch \
-           file://0001-cmake-Link-test-utils-with-ldl.patch \
            file://piglit.sh \
            "
 
-# From 2016-07-07
-SRCREV = "c39e41a86551eb390b8da23232dc8577639403d0"
+# Head of master 2016-11-16
+SRCREV = "1619c37a88770c9c0d8467939e34ffd337241c14"
 # (when PV goes above 1.0 remove the trailing r)
 PV = "1.0+gitr${SRCPV}"
 
-- 
2.1.4



^ permalink raw reply related

* Re: [PATCH 1/3] libxml2: Necessary changes before fixing CVE-2016-5131 Fix comaparation with root node in xmlXPathCmpNodes and NULL pointer deref in XPointer
From: Burton, Ross @ 2016-12-12 13:44 UTC (permalink / raw)
  To: Andrej Valek; +Cc: OE-core
In-Reply-To: <1481548821-15878-1-git-send-email-andrej.valek@siemens.com>

[-- Attachment #1: Type: text/plain, Size: 4583 bytes --]

I see part 1 and 2 but no part 3.

Also, have you asked upstream if they'll be making a point release with
these in?

Ross

On 12 December 2016 at 13:20, Andrej Valek <andrej.valek@siemens.com> wrote:

> xpath:
>  - Check for errors after evaluating first operand.
>  - Add sanity check for empty stack.
>  - Include comparation in changes from xmlXPathCmpNodesExt to
> xmlXPathCmpNodes
>
> Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
> Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
> ---
>  .../libxml2/libxml2-fix_node_comparison.patch      | 67
> ++++++++++++++++++++++
>  meta/recipes-core/libxml/libxml2_2.9.4.bb          |  1 +
>  2 files changed, 68 insertions(+)
>  create mode 100644 meta/recipes-core/libxml/libxml2/libxml2-fix_node_
> comparison.patch
>
> diff --git a/meta/recipes-core/libxml/libxml2/libxml2-fix_node_comparison.patch
> b/meta/recipes-core/libxml/libxml2/libxml2-fix_node_comparison.patch
> new file mode 100644
> index 0000000..11718bb
> --- /dev/null
> +++ b/meta/recipes-core/libxml/libxml2/libxml2-fix_node_comparison.patch
> @@ -0,0 +1,67 @@
> +libxml2-2.9.4: Fix comparison with root node in xmlXPathCmpNodes and NULL
> pointer deref in XPointer
> +
> +xpath:
> + - Check for errors after evaluating first operand.
> + - Add sanity check for empty stack.
> + - Include comparation in changes from xmlXPathCmpNodesExt to
> xmlXPathCmpNodes
> +
> +Upstream-Status: Backported
> + - [https://git.gnome.org/browse/libxml2/commit/?id=
> c1d1f7121194036608bf555f08d3062a36fd344b]
> + - [https://git.gnome.org/browse/libxml2/commit/?id=
> a005199330b86dada19d162cae15ef9bdcb6baa8]
> +CVE: necessary changes for fixing CVE-2016-5131
> +Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
> +Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
> +
> +diff --git a/result/XPath/xptr/viderror b/result/XPath/xptr/viderror
> +new file mode 100644
> +index 0000000..d589882
> +--- /dev/null
> ++++ b/result/XPath/xptr/viderror
> +@@ -0,0 +1,4 @@
> ++
> ++========================
> ++Expression: xpointer(non-existing-fn()/range-to(id('chapter2')))
> ++Object is empty (NULL)
> +diff --git a/test/XPath/xptr/viderror b/test/XPath/xptr/viderror
> +new file mode 100644
> +index 0000000..da8c53b
> +--- /dev/null
> ++++ b/test/XPath/xptr/viderror
> +@@ -0,0 +1 @@
> ++xpointer(non-existing-fn()/range-to(id('chapter2')))
> +diff --git a/xpath.c b/xpath.c
> +index 113bce6..d992841 100644
> +--- a/xpath.c
> ++++ b/xpath.c
> +@@ -3342,13 +3342,13 @@ xmlXPathCmpNodes(xmlNodePtr node1, xmlNodePtr
> node2) {
> +      * compute depth to root
> +      */
> +     for (depth2 = 0, cur = node2;cur->parent != NULL;cur = cur->parent) {
> +-      if (cur == node1)
> ++      if (cur->parent == node1)
> +           return(1);
> +       depth2++;
> +     }
> +     root = cur;
> +     for (depth1 = 0, cur = node1;cur->parent != NULL;cur = cur->parent) {
> +-      if (cur == node2)
> ++      if (cur->parent == node2)
> +           return(-1);
> +       depth1++;
> +     }
> +@@ -14005,9 +14005,14 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr
> ctxt, xmlXPathStepOpPtr op)
> +                 xmlNodeSetPtr oldset;
> +                 int i, j;
> +
> +-                if (op->ch1 != -1)
> ++                if (op->ch1 != -1) {
> +                     total +=
> +                         xmlXPathCompOpEval(ctxt, &comp->steps[op->ch1]);
> ++                    CHECK_ERROR0;
> ++                }
> ++                if (ctxt->value == NULL) {
> ++                    XP_ERROR0(XPATH_INVALID_OPERAND);
> ++                }
> +                 if (op->ch2 == -1)
> +                     return (total);
> +
> diff --git a/meta/recipes-core/libxml/libxml2_2.9.4.bb
> b/meta/recipes-core/libxml/libxml2_2.9.4.bb
> index 1fed90b..66a8940 100644
> --- a/meta/recipes-core/libxml/libxml2_2.9.4.bb
> +++ b/meta/recipes-core/libxml/libxml2_2.9.4.bb
> @@ -19,6 +19,7 @@ SRC_URI = "ftp://xmlsoft.org/libxml2/
> libxml2-${PV}.tar.gz;name=libtar \
>             file://run-ptest \
>             file://python-sitepackages-dir.patch \
>             file://libxml-m4-use-pkgconfig.patch \
> +           file://libxml2-fix_node_comparison.patch \
>             file://libxml2-CVE-2016-5131.patch \
>            "
>
> --
> 2.1.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>

[-- Attachment #2: Type: text/html, Size: 6731 bytes --]

^ permalink raw reply

* [PATCH 3/3] libxml2: Fix more NULL pointer derefs
From: Andrej Valek @ 2016-12-12 13:20 UTC (permalink / raw)
  To: openembedded-core
In-Reply-To: <1481548821-15878-1-git-send-email-andrej.valek@siemens.com>

The NULL pointer dereferencing could produced some
security problems.
This is a preventive security fix.

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
---
 .../libxml2/libxml2-fix_NULL_pointer_derefs.patch  | 46 ++++++++++++++++++++++
 meta/recipes-core/libxml/libxml2_2.9.4.bb          |  1 +
 2 files changed, 47 insertions(+)
 create mode 100644 meta/recipes-core/libxml/libxml2/libxml2-fix_NULL_pointer_derefs.patch

diff --git a/meta/recipes-core/libxml/libxml2/libxml2-fix_NULL_pointer_derefs.patch b/meta/recipes-core/libxml/libxml2/libxml2-fix_NULL_pointer_derefs.patch
new file mode 100644
index 0000000..83552ca
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2/libxml2-fix_NULL_pointer_derefs.patch
@@ -0,0 +1,46 @@
+libxml2-2.9.4: Fix more NULL pointer derefs
+
+xpointer: Fix more NULL pointer derefs
+
+Upstream-Status: Backported [https://git.gnome.org/browse/libxml2/commit/?id=e905f08123e4a6e7731549e6f09dadff4cab65bd]
+CVE: -
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
+
+diff --git a/xpointer.c b/xpointer.c
+index 676c510..074db24 100644
+--- a/xpointer.c
++++ b/xpointer.c
+@@ -555,7 +555,7 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {
+ 	    /*
+ 	     * Empty set ...
+ 	     */
+-	    if (end->nodesetval->nodeNr <= 0)
++	    if ((end->nodesetval == NULL) || (end->nodesetval->nodeNr <= 0))
+ 		return(NULL);
+ 	    break;
+ 	default:
+@@ -1400,7 +1400,7 @@ xmlXPtrEval(const xmlChar *str, xmlXPathContextPtr ctx) {
+ 		     */
+ 		    xmlNodeSetPtr set;
+ 		    set = tmp->nodesetval;
+-		    if ((set->nodeNr != 1) ||
++		    if ((set == NULL) || (set->nodeNr != 1) ||
+ 			(set->nodeTab[0] != (xmlNodePtr) ctx->doc))
+ 			stack++;
+ 		} else
+@@ -2073,9 +2073,11 @@ xmlXPtrRangeFunction(xmlXPathParserContextPtr ctxt, int nargs) {
+ 	xmlXPathFreeObject(set);
+         XP_ERROR(XPATH_MEMORY_ERROR);
+     }
+-    for (i = 0;i < oldset->locNr;i++) {
+-	xmlXPtrLocationSetAdd(newset,
+-		xmlXPtrCoveringRange(ctxt, oldset->locTab[i]));
++    if (oldset != NULL) {
++	for (i = 0;i < oldset->locNr;i++) {
++	  xmlXPtrLocationSetAdd(newset,
++		  xmlXPtrCoveringRange(ctxt, oldset->locTab[i]));
++      }
+     }
+ 
+     /*
diff --git a/meta/recipes-core/libxml/libxml2_2.9.4.bb b/meta/recipes-core/libxml/libxml2_2.9.4.bb
index a1d1e9e..ba08c9c 100644
--- a/meta/recipes-core/libxml/libxml2_2.9.4.bb
+++ b/meta/recipes-core/libxml/libxml2_2.9.4.bb
@@ -22,6 +22,7 @@ SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \
            file://libxml2-fix_node_comparison.patch \
            file://libxml2-CVE-2016-5131.patch \
            file://libxml2-CVE-2016-4658.patch \
+           file://libxml2-fix_NULL_pointer_derefs.patch \
           "
 
 SRC_URI[libtar.md5sum] = "ae249165c173b1ff386ee8ad676815f5"
-- 
2.1.4



^ permalink raw reply related

* [PATCH] sstatesig: don't squash dependencies of useradd packages
From: Maxin B. John @ 2016-12-12 13:48 UTC (permalink / raw)
  To: openembedded-core

Without this change, sstate dependency filter squashes dependencies
of packages which inherits useradd class. That causes failures while
rebuilding it for another MACHINE.

Fixes [YOCTO #8078]

Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 meta/lib/oe/sstatesig.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 8224e3a..88b2290 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -17,6 +17,9 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCache):
     def isAllArch(fn):
         inherits = " ".join(dataCache.inherits[fn])
         return "/allarch.bbclass" in inherits
+    def isUserAdd(fn):
+        inherits = " ".join(dataCache.inherits[fn])
+        return "/useradd.bbclass" in inherits
     def isImage(fn):
         return "/image.bbclass" in " ".join(dataCache.inherits[fn])
 
@@ -39,6 +42,10 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCache):
 
     # Only target packages beyond here
 
+    # Don't squash the dependencies of packages inheritting useradd class
+    if  isUserAdd(fn):
+        return True
+
     # allarch packagegroups are assumed to have well behaved names which don't change between architecures/tunes
     if isPackageGroup(fn) and isAllArch(fn) and not isNative(depname):
         return False  
-- 
2.4.0



^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox