meta-openembedded: sumo refresh be79b8b111..2bb21ef27c

Update meta-openembedded to sumo HEAD.

Armin Kuster (1):
      grpc: move it from oe to networking layer

Khem Raj (2):
      gedit: Add dep on python-six-native
      poppler: Update to 0.64

Martin Jansa (2):
      libqb: Fix build with gold
      openocd: prevent fetching git submodules during do_configure

Nicolas Dechesne (1):
      meta-multimedia: fixup LAYERDEPENDS

Paul Eggleton (1):
      protobuf: make python-protobuf dependency optional and default to off

Sinan Kaya (1):
      dnsmasq: CVE-2017-15107

Takuro Ashie (1):
      uim: Fix SRC_URI

Change-Id: I611fc4019b8a7fcbcaf2bcca40d7e35a650e5120
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb
index ba425ad..ea6439d 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb
@@ -3,11 +3,13 @@
 LICENSE = "GPLv2+"
 PR = "r2"
 
-DEPENDS = "gvfs enchant gconf gnome-doc-utils glib-2.0 gtk+ gtksourceview2 iso-codes intltool-native gnome-common-native libice"
+DEPENDS = "gvfs enchant gconf gnome-doc-utils glib-2.0 gtk+ \
+           gtksourceview2 iso-codes intltool-native gnome-common-native \
+           libice python3-six-native"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-inherit distro_features_check gnome gettext pythonnative
+inherit distro_features_check gnome gettext python3native
 
 REQUIRED_DISTRO_FEATURES = "x11"
 
diff --git a/meta-openembedded/meta-multimedia/conf/layer.conf b/meta-openembedded/meta-multimedia/conf/layer.conf
index cfedf2f..a1dfed4 100644
--- a/meta-openembedded/meta-multimedia/conf/layer.conf
+++ b/meta-openembedded/meta-multimedia/conf/layer.conf
@@ -27,6 +27,6 @@
 # cause compatibility issues with other layers
 LAYERVERSION_multimedia-layer = "1"
 
-LAYERDEPENDS_multimedia-layer = "core"
+LAYERDEPENDS_multimedia-layer = "core openembedded-layer"
 
 LAYERSERIES_COMPAT_multimedia-layer = "sumo"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
rename to meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
rename to meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
rename to meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.8.5.bb b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.8.5.bb
rename to meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb
diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb
index 4d1dc6e..d2465f8 100644
--- a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb
+++ b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb
@@ -2,6 +2,7 @@
 
 SRC_URI += "\
     file://lua.patch \
+    file://CVE-2017-15107.patch \
 "
 
 SRC_URI[dnsmasq-2.78.md5sum] = "3bb97f264c73853f802bf70610150788"
diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/CVE-2017-15107.patch b/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/CVE-2017-15107.patch
new file mode 100644
index 0000000..701101b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/CVE-2017-15107.patch
@@ -0,0 +1,263 @@
+From 5a56e1b78a753d3295564daddc9ce389cc69fd68 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Fri, 19 Jan 2018 12:26:08 +0000
+Subject: [PATCH] DNSSEC fix for wildcard NSEC records. CVE-2017-15107 applies.
+
+It's OK for NSEC records to be expanded from wildcards,
+but in that case, the proof of non-existence is only valid
+starting at the wildcard name, *.<domain> NOT the name expanded
+from the wildcard. Without this check it's possible for an
+attacker to craft an NSEC which wrongly proves non-existence
+in a domain which includes a wildcard for NSEC.
+
+Upstream-Status: Backport [http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=4fe6744a220eddd3f1749b40cac3dfc510787de6]
+CVE: CVE-2017-15107
+Signed-off-by: Sinan Kaya <okaya@kernel.org>
+---
+ CHANGELOG    |  44 +++++++++++++++++++
+ src/dnssec.c | 117 +++++++++++++++++++++++++++++++++++++++++++++------
+ 2 files changed, 147 insertions(+), 14 deletions(-)
+
+diff --git a/CHANGELOG b/CHANGELOG
+index 075fe1a6..5226dce8 100644
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -1,3 +1,47 @@
++version 2.79
++	Fix parsing of CNAME arguments, which are confused by extra spaces.
++	Thanks to Diego Aguirre for spotting the bug.
++
++	Where available, use IP_UNICAST_IF or IPV6_UNICAST_IF to bind
++	upstream servers to an interface, rather than SO_BINDTODEVICE.
++	Thanks to Beniamino Galvani for the patch.
++
++	Always return a SERVFAIL answer to DNS queries without the
++	recursion desired bit set, UNLESS acting as an authoritative
++	DNS server. This avoids a potential route to cache snooping.
++
++	Add support for Ed25519 signatures in DNSSEC validation.
++
++	No longer support RSA/MD5 signatures in DNSSEC validation,
++	since these are not secure. This behaviour is mandated in
++	RFC-6944.
++
++	Fix incorrect error exit code from dhcp_release6 utility.
++	Thanks Gaudenz Steinlin for the bug report.
++
++	Use SIGINT (instead of overloading SIGHUP) to turn on DNSSEC
++	time validation when --dnssec-no-timecheck is in use.
++	Note that this is an incompatible change from earlier releases.
++
++	Allow more than one --bridge-interface option to refer to an
++	interface, so that we can use
++	--bridge-interface=int1,alias1
++	--bridge-interface=int1,alias2
++	as an alternative to
++	--bridge-interface=int1,alias1,alias2
++	Thanks to Neil Jerram for work on this.
++
++	Fix for DNSSEC with wildcard-derived NSEC records.
++	It's OK for NSEC records to be expanded from wildcards,
++	but in that case, the proof of non-existence is only valid
++	starting at the wildcard name, *.<domain> NOT the name expanded
++	from the wildcard. Without this check it's possible for an
++	attacker to craft an NSEC which wrongly proves non-existence.
++	Thanks to Ralph Dolmans for finding this, and co-ordinating 
++	the vulnerability tracking and fix release.
++	CVE-2017-15107 applies.
++
++
+ version 2.78
+         Fix logic of appending ".<layer>" to PXE basename. Thanks to Chris
+ 	Novakovic for the patch.
+diff --git a/src/dnssec.c b/src/dnssec.c
+index a74d01ab..1417be56 100644
+--- a/src/dnssec.c
++++ b/src/dnssec.c
+@@ -424,15 +424,17 @@ static void from_wire(char *name)
+ static int count_labels(char *name)
+ {
+   int i;
+-
++  char *p;
++  
+   if (*name == 0)
+     return 0;
+ 
+-  for (i = 0; *name; name++)
+-    if (*name == '.')
++  for (p = name, i = 0; *p; p++)
++    if (*p == '.')
+       i++;
+ 
+-  return i+1;
++  /* Don't count empty first label. */
++  return *name == '.' ? i : i+1;
+ }
+ 
+ /* Implement RFC1982 wrapped compare for 32-bit numbers */
+@@ -1405,8 +1407,8 @@ static int hostname_cmp(const char *a, const char *b)
+     }
+ }
+ 
+-static int prove_non_existence_nsec(struct dns_header *header, size_t plen, unsigned char **nsecs, int nsec_count,
+-				    char *workspace1, char *workspace2, char *name, int type, int *nons)
++static int prove_non_existence_nsec(struct dns_header *header, size_t plen, unsigned char **nsecs, unsigned char **labels, int nsec_count,
++				    char *workspace1_in, char *workspace2, char *name, int type, int *nons)
+ {
+   int i, rc, rdlen;
+   unsigned char *p, *psave;
+@@ -1419,6 +1421,9 @@ static int prove_non_existence_nsec(struct dns_header *header, size_t plen, unsi
+   /* Find NSEC record that proves name doesn't exist */
+   for (i = 0; i < nsec_count; i++)
+     {
++      char *workspace1 = workspace1_in;
++      int sig_labels, name_labels;
++
+       p = nsecs[i];
+       if (!extract_name(header, plen, &p, workspace1, 1, 10))
+ 	return 0;
+@@ -1427,7 +1432,27 @@ static int prove_non_existence_nsec(struct dns_header *header, size_t plen, unsi
+       psave = p;
+       if (!extract_name(header, plen, &p, workspace2, 1, 10))
+ 	return 0;
+-      
++
++      /* If NSEC comes from wildcard expansion, use original wildcard
++	 as name for computation. */
++      sig_labels = *labels[i];
++      name_labels = count_labels(workspace1);
++
++      if (sig_labels < name_labels)
++	{
++	  int k;
++	  for (k = name_labels - sig_labels; k != 0; k--)
++	    {
++	      while (*workspace1 != '.' && *workspace1 != 0)
++		workspace1++;
++	      if (k != 1 && *workspace1 == '.')
++		workspace1++;
++	    }
++	  
++	  workspace1--;
++	  *workspace1 = '*';
++	}
++	  
+       rc = hostname_cmp(workspace1, name);
+       
+       if (rc == 0)
+@@ -1825,24 +1850,26 @@ static int prove_non_existence_nsec3(struct dns_header *header, size_t plen, uns
+ 
+ static int prove_non_existence(struct dns_header *header, size_t plen, char *keyname, char *name, int qtype, int qclass, char *wildname, int *nons)
+ {
+-  static unsigned char **nsecset = NULL;
+-  static int nsecset_sz = 0;
++  static unsigned char **nsecset = NULL, **rrsig_labels = NULL;
++  static int nsecset_sz = 0, rrsig_labels_sz = 0;
+   
+   int type_found = 0;
+-  unsigned char *p = skip_questions(header, plen);
++  unsigned char *auth_start, *p = skip_questions(header, plen);
+   int type, class, rdlen, i, nsecs_found;
+   
+   /* Move to NS section */
+   if (!p || !(p = skip_section(p, ntohs(header->ancount), header, plen)))
+     return 0;
++
++  auth_start = p;
+   
+   for (nsecs_found = 0, i = ntohs(header->nscount); i != 0; i--)
+     {
+       unsigned char *pstart = p;
+       
+-      if (!(p = skip_name(p, header, plen, 10)))
++      if (!extract_name(header, plen, &p, daemon->workspacename, 1, 10))
+ 	return 0;
+-      
++	  
+       GETSHORT(type, p); 
+       GETSHORT(class, p);
+       p += 4; /* TTL */
+@@ -1859,7 +1886,69 @@ static int prove_non_existence(struct dns_header *header, size_t plen, char *key
+ 	  if (!expand_workspace(&nsecset, &nsecset_sz, nsecs_found))
+ 	    return 0; 
+ 	  
+-	  nsecset[nsecs_found++] = pstart;
++	  if (type == T_NSEC)
++	    {
++	      /* If we're looking for NSECs, find the corresponding SIGs, to 
++		 extract the labels value, which we need in case the NSECs
++		 are the result of wildcard expansion.
++		 Note that the NSEC may not have been validated yet
++		 so if there are multiple SIGs, make sure the label value
++		 is the same in all, to avoid be duped by a rogue one.
++		 If there are no SIGs, that's an error */
++	      unsigned char *p1 = auth_start;
++	      int res, j, rdlen1, type1, class1;
++	      
++	      if (!expand_workspace(&rrsig_labels, &rrsig_labels_sz, nsecs_found))
++		return 0;
++	      
++	      rrsig_labels[nsecs_found] = NULL;
++	      
++	      for (j = ntohs(header->nscount); j != 0; j--)
++		{
++		  if (!(res = extract_name(header, plen, &p1, daemon->workspacename, 0, 10)))
++		    return 0;
++
++		   GETSHORT(type1, p1); 
++		   GETSHORT(class1, p1);
++		   p1 += 4; /* TTL */
++		   GETSHORT(rdlen1, p1);
++
++		   if (!CHECK_LEN(header, p1, plen, rdlen1))
++		     return 0;
++		   
++		   if (res == 1 && class1 == qclass && type1 == T_RRSIG)
++		     {
++		       int type_covered;
++		       unsigned char *psav = p1;
++		       
++		       if (rdlen < 18)
++			 return 0; /* bad packet */
++
++		       GETSHORT(type_covered, p1);
++
++		       if (type_covered == T_NSEC)
++			 {
++			   p1++; /* algo */
++			   
++			   /* labels field must be the same in every SIG we find. */
++			   if (!rrsig_labels[nsecs_found])
++			     rrsig_labels[nsecs_found] = p1;
++			   else if (*rrsig_labels[nsecs_found] != *p1) /* algo */
++			     return 0;
++			   }
++		       p1 = psav;
++		     }
++		   
++		   if (!ADD_RDLEN(header, p1, plen, rdlen1))
++		     return 0;
++		}
++
++	      /* Must have found at least one sig. */
++	      if (!rrsig_labels[nsecs_found])
++		return 0;
++	    }
++
++	  nsecset[nsecs_found++] = pstart;   
+ 	}
+       
+       if (!ADD_RDLEN(header, p, plen, rdlen))
+@@ -1867,7 +1956,7 @@ static int prove_non_existence(struct dns_header *header, size_t plen, char *key
+     }
+   
+   if (type_found == T_NSEC)
+-    return prove_non_existence_nsec(header, plen, nsecset, nsecs_found, daemon->workspacename, keyname, name, qtype, nons);
++    return prove_non_existence_nsec(header, plen, nsecset, rrsig_labels, nsecs_found, daemon->workspacename, keyname, name, qtype, nons);
+   else if (type_found == T_NSEC3)
+     return prove_non_existence_nsec3(header, plen, nsecset, nsecs_found, daemon->workspacename, keyname, name, qtype, wildname, nons);
+   else
+-- 
+2.19.0
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
index 20bc663..1a15e53 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -4,14 +4,22 @@
 DEPENDS = "libusb-compat libftdi"
 RDEPENDS_${PN} = "libusb1"
 
-SRC_URI = "git://repo.or.cz/openocd.git \
-           file://0001-Add-fallthrough-comments.patch \
-           file://0002-Workaround-new-warnings-generated-by-GCC-7.patch \
-           file://0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch \
-           file://0004-Fix-overflow-warning.patch \
-           file://0005-command-Move-the-fall-through-comment-to-right-scope.patch \
+SRC_URI = " \
+    git://repo.or.cz/openocd.git;protocol=http;name=openocd \
+    git://repo.or.cz/r/git2cl.git;protocol=http;destsuffix=tools/git2cl;name=git2cl \
+    git://repo.or.cz/r/jimtcl.git;protocol=http;destsuffix=git/jimtcl;name=jimtcl \
+    git://repo.or.cz/r/libjaylink.git;protocol=http;destsuffix=git/src/jtag/drivers/libjaylink;name=libjaylink \
+    file://0001-Add-fallthrough-comments.patch \
+    file://0002-Workaround-new-warnings-generated-by-GCC-7.patch \
+    file://0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch \
+    file://0004-Fix-overflow-warning.patch \
+    file://0005-command-Move-the-fall-through-comment-to-right-scope.patch \
 "
-SRCREV = "1025be363e2bf42f1613083223a2322cc3a9bd4c"
+SRCREV_FORMAT = "openocd"
+SRCREV_openocd = "1025be363e2bf42f1613083223a2322cc3a9bd4c"
+SRCREV_git2cl = "8373c9f74993e218a08819cbcdbab3f3564bbeba"
+SRCREV_jimtcl = "a9bf5975fd0f89974d689a2d9ebd0873c8d64787"
+SRCREV_libjaylink = "699b7001d34a79c8e7064503dde1bede786fd7f0"
 
 PV = "0.10+gitr${SRCPV}"
 S = "${WORKDIR}/git"
@@ -20,10 +28,10 @@
 
 BBCLASSEXTEND += "nativesdk"
 
-EXTRA_OECONF = "--enable-ftdi --disable-doxygen-html "
+EXTRA_OECONF = "--enable-ftdi --disable-doxygen-html"
 
 do_configure() {
-    ./bootstrap
+    ./bootstrap nosubmodule
     oe_runconf ${EXTRA_OECONF}
 }
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb
index 1ffb79d..073dfae 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb
@@ -12,7 +12,7 @@
 DEPENDS_append_class-target  = " protobuf-native"
 RDEPENDS_${PN}-compiler = "${PN}"
 RDEPENDS_${PN}-dev += "${PN}-compiler"
-RDEPENDS_${PN}-ptest = "bash python-protobuf"
+RDEPENDS_${PN}-ptest = "bash ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python-protobuf', '', d)}"
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=35953c752efc9299b184f91bef540095"
 
@@ -24,13 +24,16 @@
 	   file://run-ptest \
           "
 
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[python] = ",,"
+
 EXTRA_OECONF += " --with-protoc=echo"
 
 inherit autotools-brokensep pkgconfig ptest
 
 S = "${WORKDIR}/git"
 TEST_SRC_DIR="examples"
-LANG_SUPPORT="cpp python"
+LANG_SUPPORT = "cpp ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '', d)}"
 
 do_compile_ptest() {
 	# Modify makefile to use the cross-compiler
diff --git a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.3.bb b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.3.bb
index 73cea5e..d857344 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.3.bb
@@ -18,6 +18,14 @@
           "
 S = "${WORKDIR}/git"
 
+# otherwise do_configure fails
+# configure:21609: checking whether linker workaround for orphan sections usable
+# configure:21639: i586-oe-linux-gcc  -m32 -march=i586 --sysroot=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot -o conftest  -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0=/usr/src/debug/libqb/1.0.3+gitAUTOINC+c235284b5f-r0 -fdebug-prefix-map=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot= -fdebug-prefix-map=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot-native=  -pipe  -pthread -D_REENTRANT  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,conftest.ld conftest.c  >&5
+# WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot-native/usr/bin/i586-oe-linux/../../libexec/i586-oe-linux/gcc/i586-oe-linux/8.1.0/ld: error: conftest.ld: SECTIONS seen after other input files; try -T/--script
+# WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot-native/usr/bin/i586-oe-linux/../../libexec/i586-oe-linux/gcc/i586-oe-linux/8.1.0/ld: internal error in write_sections, at ../../gold/reloc.cc:791
+# collect2: error: ld returned 1 exit status
+EXTRA_OECONF_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' --enable-nosection-fallback', '', d)}"
+
 CFLAGS += "-pthread -D_REENTRANT"
 do_configure_prepend() {
     ( cd ${S}
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch
new file mode 100644
index 0000000..7ed795e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch
@@ -0,0 +1,29 @@
+From d488de23b75b2f3e235f1c184b2253d1402b4c0f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 10 May 2018 23:47:56 -0700
+Subject: [PATCH] glib/CMakeLists.txt: Add libpoppler to link along with
+ poppler-glib
+
+This is required since poppler-glib uses symbols from poppler and
+we use --as-needed
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ glib/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt
+index 33c6608..87e1b44 100644
+--- a/glib/CMakeLists.txt
++++ b/glib/CMakeLists.txt
+@@ -127,7 +127,7 @@ if (HAVE_INTROSPECTION AND BUILD_SHARED_LIBS)
+   get_directory_property(_tmp_includes INCLUDE_DIRECTORIES)
+   _list_prefix(_includes _tmp_includes "-I")
+   set(Poppler_0_18_gir_CFLAGS ${_includes} -L${CMAKE_BINARY_DIR})
+-  set(Poppler_0_18_gir_LIBS poppler-glib)
++  set(Poppler_0_18_gir_LIBS poppler-glib poppler)
+   _list_prefix(_abs_introspection_files introspection_files "${CMAKE_CURRENT_SOURCE_DIR}/")
+   list(APPEND _abs_introspection_files
+     ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.63.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.64.0.bb
similarity index 76%
rename from meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.63.0.bb
rename to meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.64.0.bb
index 8acb356..1e87ae6 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.63.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.64.0.bb
@@ -2,15 +2,15 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
-SRC_URI = " \
-    http://poppler.freedesktop.org/${BP}.tar.xz \
-    file://0001-Do-not-overwrite-all-our-build-flags.patch \
-    file://0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch \
-"
-SRC_URI[md5sum] = "66a54da4896b1408611699feda5c1821"
-SRC_URI[sha256sum] = "27cc8addafc791e1a26ce6acc2b490926ea73a4f89196dd8a7742cff7cf8a111"
+SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \
+           file://0001-Do-not-overwrite-all-our-build-flags.patch \
+           file://0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch \
+           file://0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch \
+           "
+SRC_URI[md5sum] = "f7f687ebb60004f8ad61994575018044"
+SRC_URI[sha256sum] = "b21df92ca99f78067785cf2dc8e06deb04726b62389c0ee1f5d8b103c77f64b1"
 
-DEPENDS = "fontconfig zlib cairo lcms"
+DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
 
 inherit cmake pkgconfig gobject-introspection
 
@@ -29,9 +29,11 @@
 SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
 
 EXTRA_OECMAKE += " \
+    -DENABLE_CMS=lcms2 \
     -DENABLE_XPDF_HEADERS=ON \
     -DBUILD_GTK_TESTS=OFF \
     -DENABLE_ZLIB=ON \
+    -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}' \
 "
 
 do_configure_append() {
diff --git a/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb b/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
index af28895..1c58d40 100644
--- a/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=32463fd29aa303fb2360faeeae17256b"
 SECTION = "inputmethods"
 
-SRC_URI = "http://uim.googlecode.com/files/uim-${PV}.tar.bz2"
+SRC_URI = "https://github.com/uim/uim/releases/download/uim-${PV}/uim-${PV}.tar.bz2"
 
 SRC_URI_append_class-target = " file://uim-module-manager.patch \
     file://0001-fix-bug-for-cross-compile.patch \