poky: sumo refresh 3b8dc3a88e..36d5cee56b

Update poky to sumo HEAD.

Andreas Müller (1):
      libsdl2: Fix left rotated display for RaspPi/VC4/GLES2

Anuj Mittal (2):
      qemux86-directdisk: remove mem= parameter
      initramfs-framework/udev: call settle before kill

Armin Kuster (1):
      libcroco: CVE-2017-7961

Awais Belal (1):
      bitbake: toaster: Fix bitbake flexible path error from Bugzilla #12891

Chong Yi Chai (1):
      mkefidisk: fix installation of kernel image

Paulo Neves (1):
      bitbake: fetcher: Fixed remote removal not throwing exception.

Richard Purdie (1):
      bitbake: main: Fix environment handling for UI module imports

Ross Burton (2):
      security_flags: disable static PIE in glibc
      cmake: put cmake.m4 and toolchain file in PN

Sinan Kaya (1):
      gnupg: CVE-2018-9234

Change-Id: Ia9ff256122334cf5f1fb8d377ac3f295605ac68b
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index 3de83be..7b618c6 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -354,10 +354,9 @@
             if not self._contains_ref(ud, d, name, ud.clonedir):
                 needupdate = True
         if needupdate:
-            try: 
-                runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir)
-            except bb.fetch2.FetchError:
-                logger.debug(1, "No Origin")
+            output = runfetchcmd("%s remote" % ud.basecmd, d, quiet=True, workdir=ud.clonedir)
+            if "origin" in output:
+              runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir)
 
             runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d, workdir=ud.clonedir)
             fetch_cmd = "LANG=C %s fetch -f --prune --progress %s refs/*:refs/*" % (ud.basecmd, repourl)
diff --git a/poky/bitbake/lib/bb/main.py b/poky/bitbake/lib/bb/main.py
index f4474e4..732a315 100755
--- a/poky/bitbake/lib/bb/main.py
+++ b/poky/bitbake/lib/bb/main.py
@@ -405,9 +405,6 @@
         # In status only mode there are no logs and no UI
         logger.addHandler(handler)
 
-    # Clear away any spurious environment variables while we stoke up the cooker
-    cleanedvars = bb.utils.clean_environment()
-
     if configParams.server_only:
         featureset = []
         ui_module = None
@@ -423,6 +420,10 @@
 
     server_connection = None
 
+    # Clear away any spurious environment variables while we stoke up the cooker
+    # (done after import_extension_module() above since for example import gi triggers env var usage)
+    cleanedvars = bb.utils.clean_environment()
+
     if configParams.remote_server:
         # Connect to a remote XMLRPC server
         server_connection = bb.server.xmlrpcclient.connectXMLRPC(configParams.remote_server, featureset,
diff --git a/poky/meta/conf/distro/include/security_flags.inc b/poky/meta/conf/distro/include/security_flags.inc
index d66dd57..aaeca69 100644
--- a/poky/meta/conf/distro/include/security_flags.inc
+++ b/poky/meta/conf/distro/include/security_flags.inc
@@ -6,7 +6,7 @@
 # in the DISTRO="poky-lsb" configuration.
 
 GCCPIE ?= "--enable-default-pie"
-GLIBCPIE ?= "--enable-static-pie"
+# If static PIE is known to work well, GLIBCPIE="--enable-static-pie" can be set
 
 # _FORTIFY_SOURCE requires -O1 or higher, so disable in debug builds as they use
 # -O0 which then results in a compiler warning.
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-framework/udev b/poky/meta/recipes-core/initrdscripts/initramfs-framework/udev
index 79c8867..87551ff 100644
--- a/poky/meta/recipes-core/initrdscripts/initramfs-framework/udev
+++ b/poky/meta/recipes-core/initrdscripts/initramfs-framework/udev
@@ -6,6 +6,7 @@
 	status=$1
 	module=$2
 	if [ "$status" = "pre" ] && [ "$module" = "finish" ]; then
+		udevadm settle
 		killall `basename $_UDEV_DAEMON` 2>/dev/null
 	fi
 }
diff --git a/poky/meta/recipes-devtools/cmake/cmake_3.10.3.bb b/poky/meta/recipes-devtools/cmake/cmake_3.10.3.bb
index 3f8fd7a..7d81edc 100644
--- a/poky/meta/recipes-devtools/cmake/cmake_3.10.3.bb
+++ b/poky/meta/recipes-devtools/cmake/cmake_3.10.3.bb
@@ -44,7 +44,8 @@
 
 FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}"
 
-FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION}"
+FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION} ${datadir}/cmake ${datadir}/aclocal"
 FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}"
+FILES_${PN}-dev = ""
 
 BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-GLES2-Get-sin-cos-out-of-vertex-shader.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-GLES2-Get-sin-cos-out-of-vertex-shader.patch
new file mode 100644
index 0000000..9b32b37
--- /dev/null
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-GLES2-Get-sin-cos-out-of-vertex-shader.patch
@@ -0,0 +1,141 @@
+From c215ba1d52a3d4ef03af3ab1a5baa1863f812aed Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 24 Aug 2018 23:10:25 +0200
+Subject: [PATCH] GLES2: Get sin/cos out of vertex shader
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The only place angle is activated and causes effect is RenderCopyEx. All other
+methods which use vertex shader, leave angle disabled and cause useless sin/cos
+calculation in shader.
+
+To get around shader's interface is changed to a vector that contains results
+of sin and cos. To behave properly when disabled, cos value is set with offset
+-1.0 making 0.0 default when deactivated.
+
+As nice side effect it simplifies GLES2_UpdateVertexBuffer: All attributes are
+vectors now.
+
+Additional background:
+
+* On RaspberryPi it gives a performace win for operations. Tested with
+  [1] numbers go down for 5-10% (not easy to estimate due to huge variation).
+* SDL_RenderCopyEx was tested with [2]
+* It works around left rotated display caused by low accuracy sin implemetation
+  in RaspberryPi/VC4 [3]
+
+Upstream-Status: Accepted [4]
+
+[1] https://github.com/schnitzeltony/sdl2box
+[2] https://github.com/schnitzeltony/sdl2rendercopyex
+[3] https://github.com/anholt/mesa/issues/110
+[4] https://hg.libsdl.org/SDL/rev/e5a666405750
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/render/opengles2/SDL_render_gles2.c  | 17 ++++++++++++-----
+ src/render/opengles2/SDL_shaders_gles2.c | 14 +++++++++-----
+ 2 files changed, 21 insertions(+), 10 deletions(-)
+
+diff --git a/src/render/opengles2/SDL_render_gles2.c b/src/render/opengles2/SDL_render_gles2.c
+index 14671f7c8..7c54a7333 100644
+--- a/src/render/opengles2/SDL_render_gles2.c
++++ b/src/render/opengles2/SDL_render_gles2.c
+@@ -1530,7 +1530,7 @@ GLES2_UpdateVertexBuffer(SDL_Renderer *renderer, GLES2_Attribute attr,
+     GLES2_DriverContext *data = (GLES2_DriverContext *)renderer->driverdata;
+ 
+ #if !SDL_GLES2_USE_VBOS
+-    data->glVertexAttribPointer(attr, attr == GLES2_ATTRIBUTE_ANGLE ? 1 : 2, GL_FLOAT, GL_FALSE, 0, vertexData);
++    data->glVertexAttribPointer(attr, 2, GL_FLOAT, GL_FALSE, 0, vertexData);
+ #else
+     if (!data->vertex_buffers[attr]) {
+         data->glGenBuffers(1, &data->vertex_buffers[attr]);
+@@ -1545,7 +1545,7 @@ GLES2_UpdateVertexBuffer(SDL_Renderer *renderer, GLES2_Attribute attr,
+         data->glBufferSubData(GL_ARRAY_BUFFER, 0, dataSizeInBytes, vertexData);
+     }
+ 
+-    data->glVertexAttribPointer(attr, attr == GLES2_ATTRIBUTE_ANGLE ? 1 : 2, GL_FLOAT, GL_FALSE, 0, 0);
++    data->glVertexAttribPointer(attr, 2, GL_FLOAT, GL_FALSE, 0, 0);
+ #endif
+ 
+     return 0;
+@@ -1853,6 +1853,8 @@ GLES2_RenderCopy(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect *s
+     return GL_CheckError("", renderer);
+ }
+ 
++#define PI 3.14159265f
++
+ static int
+ GLES2_RenderCopyEx(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect *srcrect,
+                  const SDL_FRect *dstrect, const double angle, const SDL_FPoint *center, const SDL_RendererFlip flip)
+@@ -1861,8 +1863,9 @@ GLES2_RenderCopyEx(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect
+     GLfloat vertices[8];
+     GLfloat texCoords[8];
+     GLfloat translate[8];
+-    GLfloat fAngle[4];
++    GLfloat fAngle[8];
+     GLfloat tmp;
++    float radian_angle;
+ 
+     GLES2_ActivateRenderer(renderer);
+ 
+@@ -1872,7 +1875,11 @@ GLES2_RenderCopyEx(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect
+ 
+     data->glEnableVertexAttribArray(GLES2_ATTRIBUTE_CENTER);
+     data->glEnableVertexAttribArray(GLES2_ATTRIBUTE_ANGLE);
+-    fAngle[0] = fAngle[1] = fAngle[2] = fAngle[3] = (GLfloat)(360.0f - angle);
++
++    radian_angle = PI * (360.0f - angle) / 180.f;
++    fAngle[0] = fAngle[2] = fAngle[4] = fAngle[6] = (GLfloat)sin(radian_angle);
++    /* render expects cos value - 1 (see GLES2_VertexSrc_Default_) */
++    fAngle[1] = fAngle[3] = fAngle[5] = fAngle[7] = (GLfloat)cos(radian_angle) - 1.0f;
+     /* Calculate the center of rotation */
+     translate[0] = translate[2] = translate[4] = translate[6] = (center->x + dstrect->x);
+     translate[1] = translate[3] = translate[5] = translate[7] = (center->y + dstrect->y);
+@@ -1901,7 +1908,7 @@ GLES2_RenderCopyEx(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect
+     data->glVertexAttribPointer(GLES2_ATTRIBUTE_CENTER, 2, GL_FLOAT, GL_FALSE, 0, translate);
+     data->glVertexAttribPointer(GLES2_ATTRIBUTE_POSITION, 2, GL_FLOAT, GL_FALSE, 0, vertices);*/
+ 
+-    GLES2_UpdateVertexBuffer(renderer, GLES2_ATTRIBUTE_ANGLE, fAngle, 4 * sizeof(GLfloat));
++    GLES2_UpdateVertexBuffer(renderer, GLES2_ATTRIBUTE_ANGLE, fAngle, 8 * sizeof(GLfloat));
+     GLES2_UpdateVertexBuffer(renderer, GLES2_ATTRIBUTE_CENTER, translate, 8 * sizeof(GLfloat));
+     GLES2_UpdateVertexBuffer(renderer, GLES2_ATTRIBUTE_POSITION, vertices, 8 * sizeof(GLfloat));
+ 
+diff --git a/src/render/opengles2/SDL_shaders_gles2.c b/src/render/opengles2/SDL_shaders_gles2.c
+index b0bcdff25..f428a4945 100644
+--- a/src/render/opengles2/SDL_shaders_gles2.c
++++ b/src/render/opengles2/SDL_shaders_gles2.c
+@@ -30,20 +30,24 @@
+ /*************************************************************************************************
+  * Vertex/fragment shader source                                                                 *
+  *************************************************************************************************/
+-
++/* Notes on a_angle:
++   * It is a vector containing sin and cos for rotation matrix
++   * To get correct rotation for most cases when a_angle is disabled cos
++     value is decremented by 1.0 to get proper output with 0.0 which is
++     default value
++*/
+ static const Uint8 GLES2_VertexSrc_Default_[] = " \
+     uniform mat4 u_projection; \
+     attribute vec2 a_position; \
+     attribute vec2 a_texCoord; \
+-    attribute float a_angle; \
++    attribute vec2 a_angle; \
+     attribute vec2 a_center; \
+     varying vec2 v_texCoord; \
+     \
+     void main() \
+     { \
+-        float angle = radians(a_angle); \
+-        float c = cos(angle); \
+-        float s = sin(angle); \
++        float s = a_angle[0]; \
++        float c = a_angle[1] + 1.0; \
+         mat2 rotationMatrix = mat2(c, -s, s, c); \
+         vec2 position = rotationMatrix * (a_position - a_center) + a_center; \
+         v_texCoord = a_texCoord; \
+-- 
+2.14.4
+
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb
index c0cf70d..8092fad 100644
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb
@@ -16,6 +16,7 @@
 
 SRC_URI = " \
     http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
+    file://0001-GLES2-Get-sin-cos-out-of-vertex-shader.patch \
 "
 
 S = "${WORKDIR}/SDL2-${PV}"
diff --git a/poky/meta/recipes-support/gnupg/gnupg/CVE-2018-9234.patch b/poky/meta/recipes-support/gnupg/gnupg/CVE-2018-9234.patch
new file mode 100644
index 0000000..d4ba1d8
--- /dev/null
+++ b/poky/meta/recipes-support/gnupg/gnupg/CVE-2018-9234.patch
@@ -0,0 +1,28 @@
+From ce055269c80f6e7c1393c0deec7bc5f0d37895ea Mon Sep 17 00:00:00 2001
+From: Sinan Kaya <okaya@kernel.org>
+Date: Sun, 23 Sep 2018 04:05:47 +0000
+Subject: [PATCH] g10: Fix filtering by PK->REQ_USAGE
+
+Upstream-Status: Backport [https://dev.gnupg.org/rGa17d2d1f690ebe5d005b4589a5fe378b6487c657]
+CVE: CVE-2018-9234
+Signed-off-by: Sinan Kaya <okaya@kernel.org>
+---
+ g10/getkey.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/g10/getkey.c b/g10/getkey.c
+index e31e023..ca2500c 100644
+--- a/g10/getkey.c
++++ b/g10/getkey.c
+@@ -1810,6 +1810,8 @@ get_pubkey_byfprint (ctrl_t ctrl, PKT_public_key *pk, kbnode_t *r_keyblock,
+       ctx.items[0].mode = fprint_len == 16 ? KEYDB_SEARCH_MODE_FPR16
+ 	: KEYDB_SEARCH_MODE_FPR20;
+       memcpy (ctx.items[0].u.fpr, fprint, fprint_len);
++      if (pk)
++        ctx.req_usage = pk->req_usage;
+       rc = lookup (ctrl, &ctx, 0, &kb, &found_key);
+       if (!rc && pk)
+ 	pk_from_block (pk, kb, found_key);
+-- 
+2.19.0
+
diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.2.4.bb b/poky/meta/recipes-support/gnupg/gnupg_2.2.4.bb
index d6bfaff..d777fcb 100644
--- a/poky/meta/recipes-support/gnupg/gnupg_2.2.4.bb
+++ b/poky/meta/recipes-support/gnupg/gnupg_2.2.4.bb
@@ -15,6 +15,7 @@
            file://0003-dirmngr-uses-libgpg-error.patch \
            file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \
            file://CVE-2018-12020.patch \
+           file://CVE-2018-9234.patch \
           "
 SRC_URI_append_class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch"
 
diff --git a/poky/meta/recipes-support/libcroco/libcroco/CVE-2017-7961.patch b/poky/meta/recipes-support/libcroco/libcroco/CVE-2017-7961.patch
new file mode 100644
index 0000000..8ac11ec
--- /dev/null
+++ b/poky/meta/recipes-support/libcroco/libcroco/CVE-2017-7961.patch
@@ -0,0 +1,46 @@
+From 5fa3165613b77b516e2b0dc128f73b673bd3ec8b Mon Sep 17 00:00:00 2001
+From: Ignacio Casal Quinteiro <qignacio@amazon.com>
+Date: Sun, 16 Apr 2017 13:56:09 +0200
+Subject: [PATCH] tknzr: support only max long rgb values
+
+This fixes a possible out of bound when reading rgbs which
+are longer than the support MAXLONG
+
+Upstream-Status: Backport [https://git.gnome.org/browse/libcroco/patch/?id=9ad72875e9f08e4c519ef63d44cdbd94aa9504f7]
+CVE: CVE-2017-7961
+Signed-off-by: Sinan Kaya <okaya@kernel.org>
+---
+ src/cr-tknzr.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/cr-tknzr.c b/src/cr-tknzr.c
+index e3af0ee..76886ec 100644
+--- a/src/cr-tknzr.c
++++ b/src/cr-tknzr.c
+@@ -1280,6 +1280,11 @@ cr_tknzr_parse_rgb (CRTknzr * a_this, CRRgb ** a_rgb)
+         status = cr_tknzr_parse_num (a_this, &num);
+         ENSURE_PARSING_COND ((status == CR_OK) && (num != NULL));
+ 
++        if (num->val > G_MAXLONG) {
++                status = CR_PARSING_ERROR;
++                goto error;
++        }
++
+         red = num->val;
+         cr_num_destroy (num);
+         num = NULL;
+@@ -1299,6 +1304,11 @@ cr_tknzr_parse_rgb (CRTknzr * a_this, CRRgb ** a_rgb)
+                 status = cr_tknzr_parse_num (a_this, &num);
+                 ENSURE_PARSING_COND ((status == CR_OK) && (num != NULL));
+ 
++                if (num->val > G_MAXLONG) {
++                        status = CR_PARSING_ERROR;
++                        goto error;
++                }
++
+                 PEEK_BYTE (a_this, 1, &next_bytes[0]);
+                 if (next_bytes[0] == '%') {
+                         SKIP_CHARS (a_this, 1);
+-- 
+2.19.0
+
diff --git a/poky/meta/recipes-support/libcroco/libcroco_0.6.12.bb b/poky/meta/recipes-support/libcroco/libcroco_0.6.12.bb
index 5b962ee..c7507e0 100644
--- a/poky/meta/recipes-support/libcroco/libcroco_0.6.12.bb
+++ b/poky/meta/recipes-support/libcroco/libcroco_0.6.12.bb
@@ -16,7 +16,8 @@
 
 inherit gnomebase gtk-doc binconfig-disabled
 
-SRC_URI += "file://CVE-2017-7960.patch"
+SRC_URI += "file://CVE-2017-7960.patch \
+            file://CVE-2017-7961.patch "
 
 SRC_URI[archive.md5sum] = "bc0984fce078ba2ce29f9500c6b9ddce"
 SRC_URI[archive.sha256sum] = "ddc4b5546c9fb4280a5017e2707fbd4839034ed1aba5b7d4372212f34f84f860"
diff --git a/poky/scripts/contrib/mkefidisk.sh b/poky/scripts/contrib/mkefidisk.sh
index ac4ec9c..39e4bcf 100755
--- a/poky/scripts/contrib/mkefidisk.sh
+++ b/poky/scripts/contrib/mkefidisk.sh
@@ -381,7 +381,15 @@
 
 info "Preparing boot partition"
 EFIDIR="$BOOTFS_MNT/EFI/BOOT"
-cp $HDDIMG_MNT/vmlinuz $BOOTFS_MNT >$OUT 2>&1 || error "Failed to copy vmlinuz"
+# Get kernel image name
+if [ -e "$HDDIMG_MNT/vmlinuz" ]; then
+	kernel_image="vmlinuz"
+elif [ "$HDDIMG_MNT/bzImage" ]; then
+	kernel_image="bzImage"
+else
+	die "No kernel image found"
+fi
+cp $HDDIMG_MNT/${kernel_image} $BOOTFS_MNT >$OUT 2>&1 || error "Failed to copy ${kernel_image}"
 # Copy the efi loader and configs (booti*.efi and grub.cfg if it exists)
 cp -r $HDDIMG_MNT/EFI $BOOTFS_MNT >$OUT 2>&1 || error "Failed to copy EFI dir"
 # Silently ignore a missing systemd-boot loader dir (we might just be a GRUB image)
@@ -407,7 +415,7 @@
 	sed -i "s/ LABEL=[^ ]*/ /" $GRUB_CFG
 
 	sed -i "s@ root=[^ ]*@ @" $GRUB_CFG
-	sed -i "s@vmlinuz @vmlinuz root=$TARGET_ROOTFS ro rootwait console=ttyS0 console=tty0 @" $GRUB_CFG
+	sed -i "s@${kernel_image} @${kernel_image} root=$TARGET_ROOTFS ro rootwait console=ttyS0 console=tty0 @" $GRUB_CFG
 fi
 
 # Look for a systemd-boot installation
diff --git a/poky/scripts/lib/wic/canned-wks/qemux86-directdisk.wks b/poky/scripts/lib/wic/canned-wks/qemux86-directdisk.wks
index be51c4e..c8d9f12 100644
--- a/poky/scripts/lib/wic/canned-wks/qemux86-directdisk.wks
+++ b/poky/scripts/lib/wic/canned-wks/qemux86-directdisk.wks
@@ -4,5 +4,5 @@
 
 include common.wks.inc
 
-bootloader  --timeout=0  --append="vga=0 rw mem=256M oprofile.timer=1 rootfstype=ext4 "
+bootloader  --timeout=0  --append="vga=0 rw oprofile.timer=1 rootfstype=ext4 "